summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/amarok/default.nix4
-rw-r--r--pkgs/applications/audio/apple-music-electron/default.nix2
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/cantata/default.nix125
-rw-r--r--pkgs/applications/audio/carla/default.nix8
-rw-r--r--pkgs/applications/audio/cd-discid/default.nix1
-rw-r--r--pkgs/applications/audio/drumgizmo/default.nix22
-rw-r--r--pkgs/applications/audio/fdkaac/default.nix6
-rw-r--r--pkgs/applications/audio/flacon/default.nix4
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix6
-rw-r--r--pkgs/applications/audio/kmetronome/default.nix4
-rw-r--r--pkgs/applications/audio/midi-visualizer/default.nix4
-rw-r--r--pkgs/applications/audio/mousai/default.nix69
-rw-r--r--pkgs/applications/audio/mpg123/default.nix25
-rw-r--r--pkgs/applications/audio/mpg321/default.nix1
-rw-r--r--pkgs/applications/audio/mympd/default.nix7
-rw-r--r--pkgs/applications/audio/myxer/default.nix38
-rw-r--r--pkgs/applications/audio/ncmpcpp/default.nix1
-rw-r--r--pkgs/applications/audio/nuclear/default.nix2
-rw-r--r--pkgs/applications/audio/opusfile/default.nix14
-rw-r--r--pkgs/applications/audio/opusfile/disable-cert-store.patch35
-rw-r--r--pkgs/applications/audio/plexamp/default.nix2
-rw-r--r--pkgs/applications/audio/ptcollab/default.nix22
-rw-r--r--pkgs/applications/audio/pulseeffects/default.nix6
-rw-r--r--pkgs/applications/audio/qmmp/default.nix10
-rw-r--r--pkgs/applications/audio/quodlibet/default.nix1
-rw-r--r--pkgs/applications/audio/r128gain/default.nix12
-rw-r--r--pkgs/applications/audio/sayonara/default.nix20
-rw-r--r--pkgs/applications/audio/scream/default.nix43
-rw-r--r--pkgs/applications/audio/sidplayfp/default.nix43
-rw-r--r--pkgs/applications/audio/sublime-music/default.nix37
-rw-r--r--pkgs/applications/audio/vmpk/default.nix11
-rw-r--r--pkgs/applications/audio/whipper/default.nix2
-rw-r--r--pkgs/applications/blockchains/crypto-org-wallet.nix2
-rw-r--r--pkgs/applications/blockchains/electrs.nix6
-rw-r--r--pkgs/applications/blockchains/openethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/trezor-suite/default.nix20
-rw-r--r--pkgs/applications/blockchains/zcash/default.nix26
-rw-r--r--pkgs/applications/editors/atom/env.nix3
-rw-r--r--pkgs/applications/editors/eclipse/default.nix48
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix42
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix120
-rw-r--r--pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json2877
-rw-r--r--pkgs/applications/editors/featherpad/default.nix14
-rw-r--r--pkgs/applications/editors/gophernotes/default.nix1
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix63
-rw-r--r--pkgs/applications/editors/kakoune/plugins/generated.nix54
-rw-r--r--pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names2
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix2
-rw-r--r--pkgs/applications/editors/netbeans/default.nix3
-rw-r--r--pkgs/applications/editors/poke/default.nix4
-rw-r--r--pkgs/applications/editors/texmacs/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/generic.nix51
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix11
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix86
-rw-r--r--pkgs/applications/graphics/ImageMagick/6.x.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix5
-rw-r--r--pkgs/applications/graphics/digikam/default.nix4
-rw-r--r--pkgs/applications/graphics/drawing/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix3
-rw-r--r--pkgs/applications/graphics/foxotron/default.nix74
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix5
-rw-r--r--pkgs/applications/graphics/kodelife/default.nix16
-rw-r--r--pkgs/applications/graphics/krita/default.nix8
-rw-r--r--pkgs/applications/graphics/mcomix3/default.nix6
-rw-r--r--pkgs/applications/graphics/openboard/default.nix115
-rw-r--r--pkgs/applications/graphics/pixelnuke/default.nix29
-rw-r--r--pkgs/applications/graphics/runwayml/default.nix44
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan4/default.nix11
-rw-r--r--pkgs/applications/graphics/vimiv-qt/default.nix49
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/srcs.nix1792
-rw-r--r--pkgs/applications/logging/humioctl/default.nix4
-rw-r--r--pkgs/applications/misc/archivy/default.nix29
-rw-r--r--pkgs/applications/misc/bleachbit/default.nix1
-rw-r--r--pkgs/applications/misc/bottles/default.nix11
-rw-r--r--pkgs/applications/misc/calcurse/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix16
-rw-r--r--pkgs/applications/misc/cheat/default.nix4
-rw-r--r--pkgs/applications/misc/coolreader/default.nix4
-rw-r--r--pkgs/applications/misc/cura/default.nix6
-rw-r--r--pkgs/applications/misc/cura/plugins.nix20
-rw-r--r--pkgs/applications/misc/curaengine/default.nix6
-rw-r--r--pkgs/applications/misc/dasel/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix18
-rw-r--r--pkgs/applications/misc/dwmblocks/default.nix35
-rw-r--r--pkgs/applications/misc/electrum/default.nix9
-rw-r--r--pkgs/applications/misc/fme/default.nix47
-rw-r--r--pkgs/applications/misc/fuzzel/default.nix4
-rw-r--r--pkgs/applications/misc/gcalcli/default.nix2
-rw-r--r--pkgs/applications/misc/get_iplayer/default.nix8
-rw-r--r--pkgs/applications/misc/go-org/default.nix4
-rw-r--r--pkgs/applications/misc/googleearth-pro/default.nix111
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/gxkb/default.nix4
-rw-r--r--pkgs/applications/misc/haunt/default.nix59
-rw-r--r--pkgs/applications/misc/heimer/default.nix4
-rw-r--r--pkgs/applications/misc/hugo/default.nix4
-rw-r--r--pkgs/applications/misc/hunter/default.nix77
-rw-r--r--pkgs/applications/misc/jiten/default.nix91
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix6
-rw-r--r--pkgs/applications/misc/josm/default.nix17
-rw-r--r--pkgs/applications/misc/jp2a/default.nix32
-rw-r--r--pkgs/applications/misc/kanboard/default.nix4
-rw-r--r--pkgs/applications/misc/khal/default.nix4
-rw-r--r--pkgs/applications/misc/kile-wl/default.nix26
-rw-r--r--pkgs/applications/misc/kile-wl/update-Cargo-lock.diff153
-rw-r--r--pkgs/applications/misc/kupfer/default.nix12
-rw-r--r--pkgs/applications/misc/mediaelch/default.nix10
-rw-r--r--pkgs/applications/misc/megasync/default.nix4
-rw-r--r--pkgs/applications/misc/nnn/default.nix36
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix78
-rw-r--r--pkgs/applications/misc/polybar/default.nix85
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix4
-rw-r--r--pkgs/applications/misc/rofi-power-menu/default.nix26
-rw-r--r--pkgs/applications/misc/safeeyes/default.nix7
-rw-r--r--pkgs/applications/misc/sc-im/default.nix15
-rw-r--r--pkgs/applications/misc/shfm/default.nix38
-rw-r--r--pkgs/applications/misc/sigal/default.nix25
-rw-r--r--pkgs/applications/misc/simplenote/default.nix4
-rw-r--r--pkgs/applications/misc/stork/default.nix12
-rw-r--r--pkgs/applications/misc/stretchly/default.nix5
-rw-r--r--pkgs/applications/misc/tdrop/default.nix8
-rw-r--r--pkgs/applications/misc/tint2/default.nix10
-rw-r--r--pkgs/applications/misc/veracrypt/default.nix2
-rw-r--r--pkgs/applications/misc/waybar/default.nix16
-rw-r--r--pkgs/applications/misc/with-shell/default.nix76
-rw-r--r--pkgs/applications/misc/xplr/default.nix22
-rw-r--r--pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch24
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix10
-rw-r--r--pkgs/applications/misc/zettlr/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix59
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/get-commit-message.py3
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json52
-rw-r--r--pkgs/applications/networking/browsers/ephemeral/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix778
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix7
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix3
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix5
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix134
-rw-r--r--pkgs/applications/networking/browsers/qutebrowser/default.nix19
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix11
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix13
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix68
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix1
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix1
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kube-capacity/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kube-score/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix6
-rw-r--r--pkgs/applications/networking/cluster/starboard/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix30
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json18
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix21
-rw-r--r--pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch23
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/velero/default.nix11
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix6
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix17
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/chatterino2/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/base.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-commander/default.nix42
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/default.nix194
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile (renamed from pkgs/applications/networking/instant-messengers/mikutter/Gemfile)8
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock (renamed from pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock)78
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix (renamed from pkgs/applications/networking/instant-messengers/mikutter/gemset.nix)144
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile (renamed from pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile)0
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile (renamed from pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile)0
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile (renamed from pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile)0
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile5
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop9
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile6
-rw-r--r--pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb10
-rwxr-xr-xpkgs/applications/networking/instant-messengers/mikutter/update.sh51
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/profanity/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix55
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/default.nix87
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch9
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch26
-rwxr-xr-xpkgs/applications/networking/instant-messengers/slack/update.sh4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix60
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--pkgs/applications/networking/irc/catgirl/default.nix4
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix4
-rw-r--r--pkgs/applications/networking/irc/glowing-bear/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/himalaya/default.nix51
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix25
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix9
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix3
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/openbazaar/default.nix8
-rw-r--r--pkgs/applications/networking/p2p/frostwire/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix38
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix2
-rw-r--r--pkgs/applications/networking/pcloud/default.nix4
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix6
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix12
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/networking/super-productivity/default.nix106
-rw-r--r--pkgs/applications/networking/sync/acd_cli/default.nix5
-rw-r--r--pkgs/applications/networking/tmpmail/default.nix33
-rw-r--r--pkgs/applications/office/elementary-planner/default.nix12
-rw-r--r--pkgs/applications/office/libreoffice/wrapper.sh5
-rw-r--r--pkgs/applications/office/onlyoffice-bin/default.nix2
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/scribus/unstable.nix12
-rw-r--r--pkgs/applications/office/super-productivity/default.nix55
-rw-r--r--pkgs/applications/office/timeular/default.nix3
-rw-r--r--pkgs/applications/office/todofi.sh/default.nix42
-rw-r--r--pkgs/applications/office/todoman/default.nix5
-rw-r--r--pkgs/applications/office/trilium/default.nix10
-rw-r--r--pkgs/applications/radio/airspy/default.nix4
-rw-r--r--pkgs/applications/radio/rtl-sdr/default.nix39
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix100
-rw-r--r--pkgs/applications/radio/wsjtx/default.nix10
-rw-r--r--pkgs/applications/science/biology/MACS2/default.nix25
-rw-r--r--pkgs/applications/science/biology/octopus/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix13
-rw-r--r--pkgs/applications/science/geometry/tetgen/default.nix4
-rw-r--r--pkgs/applications/science/logic/alt-ergo/default.nix17
-rw-r--r--pkgs/applications/science/logic/beluga/default.nix8
-rw-r--r--pkgs/applications/science/logic/coq/default.nix1
-rw-r--r--pkgs/applications/science/logic/elan/default.nix10
-rw-r--r--pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--pkgs/applications/science/logic/potassco/clingo.nix4
-rw-r--r--pkgs/applications/science/math/R/default.nix1
-rw-r--r--pkgs/applications/science/math/calc/default.nix4
-rw-r--r--pkgs/applications/science/math/gap/default.nix31
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--pkgs/applications/science/math/pynac/default.nix34
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/default.nix12
-rw-r--r--pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch92
-rw-r--r--pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch16
-rw-r--r--pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch131
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch34
-rw-r--r--pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch25
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix6
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix154
-rw-r--r--pkgs/applications/science/math/sage/sage_docbuild.nix20
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix12
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix16
-rw-r--r--pkgs/applications/science/math/sage/threejs-sage.nix18
-rw-r--r--pkgs/applications/science/math/singular/default.nix149
-rw-r--r--pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch112
-rw-r--r--pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch15
-rw-r--r--pkgs/applications/science/math/singular/redhat-aarch64.patch38
-rw-r--r--pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch194
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix8
-rw-r--r--pkgs/applications/terminal-emulators/nimmm/default.nix8
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix6
-rw-r--r--pkgs/applications/version-management/cvs-fast-export/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/bit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix19
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-chglog/default.nix19
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix17
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/lefthook/default.nix14
-rw-r--r--pkgs/applications/version-management/git-review/default.nix29
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/data.json12
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix18
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile8
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock34
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix40
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch50
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch22
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile51
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock239
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix227
-rw-r--r--pkgs/applications/version-management/gitlab/yarnPkgs.nix280
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/subversion/default.nix25
-rw-r--r--pkgs/applications/version-management/yadm/default.nix23
-rw-r--r--pkgs/applications/video/byzanz/default.nix2
-rw-r--r--pkgs/applications/video/ffmpeg-normalize/default.nix10
-rw-r--r--pkgs/applications/video/giph/default.nix43
-rw-r--r--pkgs/applications/video/haruna/default.nix71
-rw-r--r--pkgs/applications/video/jellyfin-media-player/default.nix110
-rw-r--r--pkgs/applications/video/jellyfin-media-player/disable-update-notifications.patch13
-rw-r--r--pkgs/applications/video/jellyfin-media-player/fix-osx-resources.patch15
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix67
-rw-r--r--pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix8
-rw-r--r--pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/pvr-hts/default.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix7
-rw-r--r--pkgs/applications/video/kodi-packages/youtube/default.nix29
-rw-r--r--pkgs/applications/video/kodi/build-kodi-binary-addon.nix3
-rw-r--r--pkgs/applications/video/kodi/packages.nix560
-rw-r--r--pkgs/applications/video/kodi/unwrapped.nix1
-rw-r--r--pkgs/applications/video/kooha/default.nix4
-rw-r--r--pkgs/applications/video/lbry/default.nix49
-rw-r--r--pkgs/applications/video/losslesscut-bin/appimage.nix45
-rw-r--r--pkgs/applications/video/losslesscut-bin/default.nix24
-rw-r--r--pkgs/applications/video/losslesscut-bin/dmg.nix31
-rw-r--r--pkgs/applications/video/losslesscut-bin/windows.nix45
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--pkgs/applications/video/mplayer/default.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/autoload.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/convert.nix31
-rw-r--r--pkgs/applications/video/mpv/scripts/convert.patch81
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix37
-rw-r--r--pkgs/applications/video/mpv/scripts/mpvacious.nix8
-rw-r--r--pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/sponsorblock.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/thumbnail.nix4
-rw-r--r--pkgs/applications/video/screenkey/default.nix13
-rw-r--r--pkgs/applications/video/shotcut/default.nix4
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix20
-rw-r--r--pkgs/applications/video/simplescreenrecorder/fix-paths.patch22
-rw-r--r--pkgs/applications/video/srt-live-server/default.nix37
-rw-r--r--pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch61
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix2
-rw-r--r--pkgs/applications/video/streamlink/default.nix23
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix4
-rw-r--r--pkgs/applications/virtualization/crun/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/default.nix7
-rw-r--r--pkgs/applications/virtualization/firecracker/default.nix29
-rw-r--r--pkgs/applications/virtualization/ignite/default.nix72
-rw-r--r--pkgs/applications/virtualization/looking-glass-client/0001-client-all-fix-more-maybe-uninitialized-when-O3-is-i.patch45
-rw-r--r--pkgs/applications/virtualization/looking-glass-client/default.nix19
-rw-r--r--pkgs/applications/virtualization/podman/default.nix7
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix123
-rw-r--r--pkgs/applications/virtualization/spice-vdagent/default.nix13
-rw-r--r--pkgs/applications/virtualization/spice-vdagent/timeout.diff84
-rw-r--r--pkgs/applications/window-managers/cage/default.nix3
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix3
-rw-r--r--pkgs/applications/window-managers/fvwm/default.nix42
-rw-r--r--pkgs/applications/window-managers/hikari/default.nix29
-rw-r--r--pkgs/applications/window-managers/i3/workstyle.nix27
-rw-r--r--pkgs/applications/window-managers/i3/wsr.nix6
-rw-r--r--pkgs/applications/window-managers/neocomp/default.nix31
-rw-r--r--pkgs/applications/window-managers/river/default.nix44
-rw-r--r--pkgs/applications/window-managers/sway/lock-effects.nix27
-rw-r--r--pkgs/applications/window-managers/waybox/default.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/default.nix10
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-config.nix17
-rw-r--r--pkgs/applications/window-managers/wio/default.nix2
-rw-r--r--pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh81
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix29
-rw-r--r--pkgs/build-support/bintools-wrapper/ld-wrapper.sh8
-rw-r--r--pkgs/build-support/build-fhs-userenv/env.nix3
-rw-r--r--pkgs/build-support/cc-wrapper/add-flags.sh8
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix21
-rw-r--r--pkgs/build-support/docker/default.nix36
-rw-r--r--pkgs/build-support/docker/examples.nix19
-rw-r--r--pkgs/build-support/wrapper-common/utils.bash29
-rwxr-xr-xpkgs/common-updater/scripts/update-source-version43
-rw-r--r--pkgs/data/documentation/man-pages-posix/default.nix15
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix6
-rw-r--r--pkgs/data/fonts/andagii/default.nix2
-rw-r--r--pkgs/data/fonts/anonymous-pro/default.nix2
-rw-r--r--pkgs/data/fonts/courier-prime/default.nix24
-rw-r--r--pkgs/data/fonts/font-awesome-5/default.nix4
-rw-r--r--pkgs/data/fonts/inconsolata/default.nix2
-rw-r--r--pkgs/data/fonts/last-resort/default.nix24
-rw-r--r--pkgs/data/fonts/mononoki/default.nix4
-rw-r--r--pkgs/data/fonts/oldstandard/default.nix2
-rw-r--r--pkgs/data/fonts/scheherazade/default.nix4
-rw-r--r--pkgs/data/fonts/termsyn/default.nix26
-rw-r--r--pkgs/data/fonts/undefined-medium/default.nix1
-rw-r--r--pkgs/data/icons/beauty-line-icon-theme/default.nix39
-rw-r--r--pkgs/data/icons/luna-icons/default.nix7
-rw-r--r--pkgs/data/icons/numix-icon-theme-circle/default.nix6
-rw-r--r--pkgs/data/icons/numix-icon-theme-square/default.nix6
-rw-r--r--pkgs/data/icons/numix-icon-theme/default.nix10
-rw-r--r--pkgs/data/icons/tela-icon-theme/default.nix36
-rw-r--r--pkgs/data/misc/graphs/default.nix8
-rw-r--r--pkgs/data/misc/mailcap/default.nix8
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix33
-rw-r--r--pkgs/data/themes/gruvbox-dark-gtk/default.nix4
-rw-r--r--pkgs/data/themes/orchis/default.nix21
-rw-r--r--pkgs/data/themes/qogir/default.nix4
-rw-r--r--pkgs/data/themes/vertex/default.nix2
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix37
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix33
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/libdir.patch25
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/use-sane-install-dir.patch33
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix29
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix12
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch29
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix21
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/use-sane-install-dir.patch27
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix7
-rw-r--r--pkgs/desktops/cinnamon/cjs/default.nix11
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/nemo/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/warpinator/default.nix1
-rw-r--r--pkgs/desktops/enlightenment/evisum/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/extensions/unite/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/default.nix1
-rw-r--r--pkgs/desktops/lxqt/libfm-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/liblxqt/default.nix8
-rw-r--r--pkgs/desktops/lxqt/libqtxdg/default.nix4
-rw-r--r--pkgs/desktops/lxqt/libsysstat/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lximage-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-about/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-admin/default.nix11
-rw-r--r--pkgs/desktops/lxqt/lxqt-archiver/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/default.nix9
-rw-r--r--pkgs/desktops/lxqt/lxqt-config/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-globalkeys/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-notificationd/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-panel/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-policykit/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-powermanagement/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-qtplugin/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-runner/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-session/default.nix6
-rw-r--r--pkgs/desktops/lxqt/lxqt-sudo/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-themes/default.nix4
-rw-r--r--pkgs/desktops/lxqt/pavucontrol-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/pcmanfm-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qps/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qtermwidget/default.nix4
-rw-r--r--pkgs/desktops/lxqt/screengrab/default.nix6
-rw-r--r--pkgs/desktops/mate/atril/default.nix9
-rw-r--r--pkgs/desktops/mate/caja-dropbox/default.nix6
-rw-r--r--pkgs/desktops/mate/caja-extensions/default.nix6
-rw-r--r--pkgs/desktops/mate/caja-with-extensions/default.nix2
-rw-r--r--pkgs/desktops/mate/caja/default.nix16
-rw-r--r--pkgs/desktops/mate/default.nix10
-rw-r--r--pkgs/desktops/mate/engrampa/default.nix16
-rw-r--r--pkgs/desktops/mate/eom/default.nix10
-rw-r--r--pkgs/desktops/mate/libmatekbd/default.nix6
-rw-r--r--pkgs/desktops/mate/libmatemixer/default.nix7
-rw-r--r--pkgs/desktops/mate/libmateweather/default.nix6
-rw-r--r--pkgs/desktops/mate/marco/default.nix13
-rw-r--r--pkgs/desktops/mate/mate-applets/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-backgrounds/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-calc/default.nix8
-rw-r--r--pkgs/desktops/mate/mate-common/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-control-center/default.nix15
-rw-r--r--pkgs/desktops/mate/mate-desktop/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-icon-theme-faenza/default.nix12
-rw-r--r--pkgs/desktops/mate/mate-icon-theme/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-indicator-applet/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-media/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-menus/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-netbook/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-notification-daemon/default.nix10
-rw-r--r--pkgs/desktops/mate/mate-panel/default.nix10
-rw-r--r--pkgs/desktops/mate/mate-polkit/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-power-manager/default.nix10
-rw-r--r--pkgs/desktops/mate/mate-screensaver/default.nix8
-rw-r--r--pkgs/desktops/mate/mate-sensors-applet/default.nix5
-rw-r--r--pkgs/desktops/mate/mate-session-manager/default.nix13
-rw-r--r--pkgs/desktops/mate/mate-settings-daemon/default.nix10
-rw-r--r--pkgs/desktops/mate/mate-system-monitor/default.nix8
-rw-r--r--pkgs/desktops/mate/mate-terminal/default.nix6
-rw-r--r--pkgs/desktops/mate/mate-themes/default.nix19
-rw-r--r--pkgs/desktops/mate/mate-tweak/default.nix12
-rw-r--r--pkgs/desktops/mate/mate-user-guide/default.nix4
-rw-r--r--pkgs/desktops/mate/mate-user-share/default.nix5
-rw-r--r--pkgs/desktops/mate/mate-utils/default.nix5
-rw-r--r--pkgs/desktops/mate/mozo/default.nix8
-rw-r--r--pkgs/desktops/mate/pluma/default.nix17
-rw-r--r--pkgs/desktops/mate/python-caja/default.nix4
-rwxr-xr-xpkgs/desktops/mate/update.sh64
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/bluedevil.nix1
-rw-r--r--pkgs/desktops/plasma-5/default.nix24
-rw-r--r--pkgs/desktops/plasma-5/discover.nix1
-rw-r--r--pkgs/desktops/plasma-5/kactivitymanagerd.nix1
-rw-r--r--pkgs/desktops/plasma-5/kdecoration.nix1
-rw-r--r--pkgs/desktops/plasma-5/kgamma5.nix1
-rw-r--r--pkgs/desktops/plasma-5/khotkeys.nix1
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix1
-rw-r--r--pkgs/desktops/plasma-5/kscreenlocker.nix1
-rw-r--r--pkgs/desktops/plasma-5/ksshaskpass.nix1
-rw-r--r--pkgs/desktops/plasma-5/ksysguard.nix1
-rw-r--r--pkgs/desktops/plasma-5/kwayland-integration.nix1
-rw-r--r--pkgs/desktops/plasma-5/kwayland-server/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/kwrited.nix1
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix3
-rw-r--r--pkgs/desktops/plasma-5/libksysguard/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/milou.nix1
-rw-r--r--pkgs/desktops/plasma-5/plasma-nm/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/plasma-pa.nix1
-rw-r--r--pkgs/desktops/plasma-5/plasma-systemmonitor.nix1
-rw-r--r--pkgs/desktops/plasma-5/polkit-kde-agent.nix1
-rw-r--r--pkgs/desktops/plasma-5/sddm-kcm.nix1
-rw-r--r--pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix1
-rw-r--r--pkgs/desktops/xfce/applications/xfdashboard/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/exo/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings/default.nix4
-rw-r--r--pkgs/development/beam-modules/default.nix2
-rw-r--r--pkgs/development/beam-modules/elixir_ls.nix71
-rw-r--r--pkgs/development/beam-modules/hex/default.nix4
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix1
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix1
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix63
-rw-r--r--pkgs/development/compilers/dmd/default.nix1
-rw-r--r--pkgs/development/compilers/dotnet/default.nix11
-rw-r--r--pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch306
-rw-r--r--pkgs/development/compilers/gcc/11/default.nix299
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix1
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix1
-rw-r--r--pkgs/development/compilers/gcc/common/configure-flags.nix1
-rw-r--r--pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix2
-rw-r--r--pkgs/development/compilers/ghdl/default.nix12
-rw-r--r--pkgs/development/compilers/ghdl/expected-output.txt8
-rw-r--r--pkgs/development/compilers/ghdl/simple-tb.vhd78
-rw-r--r--pkgs/development/compilers/ghdl/simple.vhd45
-rw-r--r--pkgs/development/compilers/ghdl/test-simple.nix23
-rw-r--r--pkgs/development/compilers/go/1.16.nix4
-rw-r--r--pkgs/development/compilers/haxe/default.nix27
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix4
-rw-r--r--pkgs/development/compilers/julia/1.0.nix10
-rw-r--r--pkgs/development/compilers/julia/1.3.nix161
-rw-r--r--pkgs/development/compilers/julia/1.5.nix10
-rw-r--r--pkgs/development/compilers/julia/README.md24
-rw-r--r--pkgs/development/compilers/julia/allow_nix_mtime.patch25
-rw-r--r--pkgs/development/compilers/julia/diagonal-test.patch27
-rw-r--r--pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch (renamed from pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch)0
-rw-r--r--pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch (renamed from pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch)0
-rwxr-xr-xpkgs/development/compilers/julia/update-1.5.py22
-rw-r--r--pkgs/development/compilers/koka/default.nix13
-rw-r--r--pkgs/development/compilers/llvm/10/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/11/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/11/llvm/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/12/bintools/default.nix (renamed from pkgs/development/compilers/llvm/12/bintools.nix)0
-rw-r--r--pkgs/development/compilers/llvm/12/clang/default.nix27
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch (renamed from pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch (renamed from pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch (renamed from pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/default.nix (renamed from pkgs/development/compilers/llvm/12/compiler-rt.nix)19
-rw-r--r--pkgs/development/compilers/llvm/12/compiler-rt/sanitizers-nongnu.patch (renamed from pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/default.nix35
-rw-r--r--pkgs/development/compilers/llvm/12/libcxx/default.nix (renamed from pkgs/development/compilers/llvm/12/libc++/default.nix)19
-rw-r--r--pkgs/development/compilers/llvm/12/libcxxabi/default.nix (renamed from pkgs/development/compilers/llvm/12/libc++abi.nix)22
-rw-r--r--pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch (renamed from pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/libunwind.nix21
-rw-r--r--pkgs/development/compilers/llvm/12/libunwind/default.nix33
-rw-r--r--pkgs/development/compilers/llvm/12/lld.nix39
-rw-r--r--pkgs/development/compilers/llvm/12/lld/default.nix45
-rw-r--r--pkgs/development/compilers/llvm/12/lldb/default.nix (renamed from pkgs/development/compilers/llvm/12/lldb.nix)20
-rw-r--r--pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch (renamed from pkgs/development/compilers/llvm/12/lldb-procfs.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/llvm/default.nix (renamed from pkgs/development/compilers/llvm/12/llvm.nix)41
-rw-r--r--pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch (renamed from pkgs/development/compilers/llvm/12/llvm-outputs.patch)0
-rw-r--r--pkgs/development/compilers/llvm/12/openmp.nix25
-rw-r--r--pkgs/development/compilers/llvm/12/openmp/default.nix34
-rw-r--r--pkgs/development/compilers/llvm/5/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/6/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/7/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/8/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/9/libc++abi/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/exegesis-force-bdver2.patch11
-rw-r--r--pkgs/development/compilers/mrustc/bootstrap.nix153
-rw-r--r--pkgs/development/compilers/mrustc/default.nix53
-rw-r--r--pkgs/development/compilers/mrustc/minicargo.nix39
-rw-r--r--pkgs/development/compilers/mrustc/patches/0001-use-shared-llvm.patch12
-rw-r--r--pkgs/development/compilers/mrustc/patches/0002-dont-build-llvm.patch14
-rw-r--r--pkgs/development/compilers/mrustc/patches/0003-echo-newlines.patch13
-rw-r--r--pkgs/development/compilers/mrustc/patches/0004-increase-parallelism.patch28
-rw-r--r--pkgs/development/compilers/openjdk/11.nix1
-rw-r--r--pkgs/development/compilers/openjdk/12.nix1
-rw-r--r--pkgs/development/compilers/openjdk/13.nix1
-rw-r--r--pkgs/development/compilers/openjdk/14.nix1
-rw-r--r--pkgs/development/compilers/openjdk/15.nix (renamed from pkgs/development/compilers/openjdk/default.nix)5
-rw-r--r--pkgs/development/compilers/openjdk/16.nix165
-rw-r--r--pkgs/development/compilers/openjdk/8.nix1
-rw-r--r--pkgs/development/compilers/openjdk/darwin/default.nix6
-rw-r--r--pkgs/development/compilers/openjdk/jre.nix38
-rw-r--r--pkgs/development/compilers/openjdk/jre_minimal_test1.nix16
-rw-r--r--pkgs/development/compilers/openjdk/tests/hello-logging.nix47
-rw-r--r--pkgs/development/compilers/openjdk/tests/hello.nix42
-rw-r--r--pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix16
-rw-r--r--pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix21
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk-linux-base.nix1
-rw-r--r--pkgs/development/compilers/roslyn/deps.nix6
-rw-r--r--pkgs/development/compilers/rust/1_51.nix1
-rwxr-xr-xpkgs/development/compilers/rust/print-hashes.sh1
-rw-r--r--pkgs/development/compilers/scala/dotty-bare.nix6
-rw-r--r--pkgs/development/compilers/scala/dotty.nix7
-rw-r--r--pkgs/development/compilers/sdcc/default.nix10
-rw-r--r--pkgs/development/compilers/xa/dxa.nix5
-rw-r--r--pkgs/development/compilers/xa/xa.nix26
-rw-r--r--pkgs/development/compilers/zulu/8.nix1
-rw-r--r--pkgs/development/compilers/zulu/default.nix1
-rw-r--r--pkgs/development/coq-modules/ITree/default.nix17
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix2
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix13
-rw-r--r--pkgs/development/coq-modules/coq-ext-lib/default.nix2
-rw-r--r--pkgs/development/coq-modules/coqeal/default.nix2
-rw-r--r--pkgs/development/coq-modules/coqhammer/default.nix15
-rw-r--r--pkgs/development/coq-modules/equations/default.nix11
-rw-r--r--pkgs/development/coq-modules/paramcoq/default.nix3
-rw-r--r--pkgs/development/coq-modules/simple-io/default.nix2
-rw-r--r--pkgs/development/coq-modules/tlc/default.nix14
-rw-r--r--pkgs/development/guile-modules/guile-cairo/default.nix26
-rw-r--r--pkgs/development/guile-modules/guile-commonmark/default.nix42
-rw-r--r--pkgs/development/guile-modules/guile-fibers/default.nix29
-rw-r--r--pkgs/development/guile-modules/guile-gnome/default.nix48
-rw-r--r--pkgs/development/guile-modules/guile-lib/default.nix29
-rw-r--r--pkgs/development/guile-modules/guile-ncurses/default.nix31
-rw-r--r--pkgs/development/guile-modules/guile-opengl/default.nix24
-rw-r--r--pkgs/development/guile-modules/guile-reader/default.nix43
-rw-r--r--pkgs/development/guile-modules/guile-sdl/default.nix38
-rw-r--r--pkgs/development/guile-modules/guile-sdl2/default.nix42
-rw-r--r--pkgs/development/guile-modules/guile-xcb/default.nix39
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix60
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml162
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix34
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix2
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix3411
-rw-r--r--pkgs/development/interpreters/clojure/babashka.nix10
-rw-r--r--pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--pkgs/development/interpreters/erlang/R23.nix4
-rw-r--r--pkgs/development/interpreters/janet/default.nix4
-rw-r--r--pkgs/development/interpreters/joker/default.nix4
-rw-r--r--pkgs/development/interpreters/mujs/default.nix6
-rw-r--r--pkgs/development/interpreters/php/generic.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/CVE-2021-23336.patch390
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/default.nix2
-rw-r--r--pkgs/development/interpreters/python/default.nix13
-rw-r--r--pkgs/development/interpreters/python/mk-python-derivation.nix4
-rw-r--r--pkgs/development/interpreters/ruby/default.nix12
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix4
-rw-r--r--pkgs/development/libraries/SDL2/default.nix3
-rw-r--r--pkgs/development/libraries/ace/default.nix15
-rw-r--r--pkgs/development/libraries/afflib/default.nix5
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix4
-rw-r--r--pkgs/development/libraries/agda/functional-linear-algebra/default.nix4
-rw-r--r--pkgs/development/libraries/agda/standard-library/default.nix4
-rw-r--r--pkgs/development/libraries/alembic/default.nix4
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix12
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/attr/default.nix10
-rw-r--r--pkgs/development/libraries/avro-c/default.nix4
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix3
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--pkgs/development/libraries/belcard/default.nix4
-rw-r--r--pkgs/development/libraries/belr/default.nix4
-rw-r--r--pkgs/development/libraries/bootil/default.nix24
-rw-r--r--pkgs/development/libraries/boringssl/default.nix34
-rw-r--r--pkgs/development/libraries/botan/2.0.nix6
-rw-r--r--pkgs/development/libraries/botan/default.nix4
-rw-r--r--pkgs/development/libraries/botan/generic.nix2
-rw-r--r--pkgs/development/libraries/caf/default.nix4
-rw-r--r--pkgs/development/libraries/cimg/default.nix14
-rw-r--r--pkgs/development/libraries/cosmopolitan/default.nix80
-rw-r--r--pkgs/development/libraries/cxxopts/default.nix6
-rw-r--r--pkgs/development/libraries/doctest/default.nix4
-rw-r--r--pkgs/development/libraries/drumstick/default.nix13
-rw-r--r--pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch9
-rw-r--r--pkgs/development/libraries/drumstick/drumstick-plugins.patch4
-rw-r--r--pkgs/development/libraries/eclib/default.nix4
-rw-r--r--pkgs/development/libraries/eigen/2.0.nix11
-rw-r--r--pkgs/development/libraries/eigen/default.nix15
-rw-r--r--pkgs/development/libraries/entt/default.nix4
-rw-r--r--pkgs/development/libraries/fcft/default.nix9
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix4
-rw-r--r--pkgs/development/libraries/ffms/default.nix32
-rw-r--r--pkgs/development/libraries/flint/default.nix2
-rw-r--r--pkgs/development/libraries/freeimage/default.nix4
-rw-r--r--pkgs/development/libraries/ftgl/default.nix33
-rw-r--r--pkgs/development/libraries/gnutls/default.nix7
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix4
-rw-r--r--pkgs/development/libraries/gupnp-igd/default.nix4
-rw-r--r--pkgs/development/libraries/igraph/default.nix17
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/iodash/0001-Add-cmake-install-directives.patch44
-rw-r--r--pkgs/development/libraries/iodash/default.nix27
-rw-r--r--pkgs/development/libraries/isl/0.20.0.nix4
-rw-r--r--pkgs/development/libraries/jasper/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/attica.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/bluez-qt.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/breeze-icons.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/default.nix26
-rw-r--r--pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/frameworkintegration.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities-stats.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kactivities.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kapidox.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/karchive.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kauth/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kbookmarks.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcalendarcore.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcmutils/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcodecs.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcompletion.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfig.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-QDirIterator-follow-symlinks.patch (renamed from pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch)21
-rw-r--r--pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix5
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcoreaddons.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kcrash.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdbusaddons.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdeclarative.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdesu/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdnssd.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdoctools/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kemoticons.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix30
-rw-r--r--pkgs/development/libraries/kde-frameworks/kglobalaccel.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kguiaddons.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/khtml.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/ki18n.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kidletime.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kimageformats.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/default.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/0001-Remove-impure-smbd-search-path.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/0002-Debug-module-loader.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/kio-debug-module-loader.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kirigami2.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemmodels.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kitemviews.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjobwidgets.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjs.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kjsembed.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kmediaplayer.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/0001-Delay-resolving-knsrcdir.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/default.nix (renamed from pkgs/development/libraries/kde-frameworks/knewstuff.nix)12
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifications.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/knotifyconfig.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/0001-Allow-external-paths-default.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/0002-QDirIterator-follow-symlinks.patch39
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch13
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/default.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch26
-rw-r--r--pkgs/development/libraries/kde-frameworks/kparts.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpeople.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kplotting.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kpty.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kquickcharts.nix7
-rw-r--r--pkgs/development/libraries/kde-frameworks/kross.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kservice/default.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktexteditor.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/ktextwidgets.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kunitconversion.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwallet.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwayland.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlgui.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/plasma-framework.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/prison.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/solid.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/sonnet.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/kde-frameworks/syndication.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix6
-rw-r--r--pkgs/development/libraries/kde-frameworks/threadweaver.nix6
-rw-r--r--pkgs/development/libraries/kissfft/0001-pkgconfig-darwin.patch48
-rw-r--r--pkgs/development/libraries/kissfft/default.nix87
-rw-r--r--pkgs/development/libraries/kronosnet/default.nix33
-rw-r--r--pkgs/development/libraries/libbsd/default.nix2
-rw-r--r--pkgs/development/libraries/libcaca/default.nix61
-rw-r--r--pkgs/development/libraries/libchewing/default.nix16
-rw-r--r--pkgs/development/libraries/libcint/default.nix4
-rw-r--r--pkgs/development/libraries/libconfig/default.nix4
-rw-r--r--pkgs/development/libraries/libdrm/default.nix10
-rw-r--r--pkgs/development/libraries/libevdevplus/0001-Add-cmake-install-directives.patch41
-rw-r--r--pkgs/development/libraries/libevdevplus/default.nix10
-rw-r--r--pkgs/development/libraries/libexsid/default.nix47
-rw-r--r--pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix12
-rw-r--r--pkgs/development/libraries/libfsm/default.nix6
-rw-r--r--pkgs/development/libraries/libgpiod/default.nix4
-rw-r--r--pkgs/development/libraries/libguestfs/default.nix2
-rw-r--r--pkgs/development/libraries/libguestfs/ocaml-4.12.patch11
-rw-r--r--pkgs/development/libraries/libmwaw/default.nix8
-rw-r--r--pkgs/development/libraries/libnbd/default.nix4
-rw-r--r--pkgs/development/libraries/libopus/default.nix2
-rw-r--r--pkgs/development/libraries/libosmium/default.nix4
-rw-r--r--pkgs/development/libraries/libpcap/default.nix5
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix4
-rw-r--r--pkgs/development/libraries/libquotient/default.nix2
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix2
-rw-r--r--pkgs/development/libraries/librtlsdr/default.nix39
-rw-r--r--pkgs/development/libraries/libsearpc/default.nix17
-rw-r--r--pkgs/development/libraries/libsearpc/libsearpc.pc.patch10
-rw-r--r--pkgs/development/libraries/libsidplayfp/default.nix83
-rw-r--r--pkgs/development/libraries/libspectrum/default.nix3
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix1
-rw-r--r--pkgs/development/libraries/libuinputplus/0001-Add-cmake-install-directives.patch40
-rw-r--r--pkgs/development/libraries/libuinputplus/default.nix11
-rw-r--r--pkgs/development/libraries/liburing/default.nix8
-rw-r--r--pkgs/development/libraries/libvpx/default.nix4
-rw-r--r--pkgs/development/libraries/libxc/default.nix5
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix9
-rw-r--r--pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch20
-rw-r--r--pkgs/development/libraries/libxlsxwriter/default.nix46
-rw-r--r--pkgs/development/libraries/libzip/default.nix19
-rw-r--r--pkgs/development/libraries/lief/default.nix64
-rw-r--r--pkgs/development/libraries/lmdb/default.nix14
-rw-r--r--pkgs/development/libraries/lmdbxx/default.nix6
-rw-r--r--pkgs/development/libraries/matio/default.nix4
-rw-r--r--pkgs/development/libraries/mbedtls/default.nix12
-rw-r--r--pkgs/development/libraries/mesa/default.nix35
-rw-r--r--pkgs/development/libraries/mesa/stubs.nix6
-rw-r--r--pkgs/development/libraries/mpfi/default.nix14
-rw-r--r--pkgs/development/libraries/mpir/default.nix8
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix4
-rw-r--r--pkgs/development/libraries/nanopb/default.nix4
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix4
-rw-r--r--pkgs/development/libraries/opencascade-occt/default.nix4
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix214
-rw-r--r--pkgs/development/libraries/opencv/cmake-don-t-use-OpenCVFindOpenEXR.patch34
-rw-r--r--pkgs/development/libraries/openmpi/default.nix6
-rw-r--r--pkgs/development/libraries/openssl/default.nix18
-rw-r--r--pkgs/development/libraries/pangolin/default.nix13
-rw-r--r--pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch12
-rw-r--r--pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch14
-rw-r--r--pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch16
-rw-r--r--pkgs/development/libraries/pipewire/0070-installed-tests-path.patch20
-rw-r--r--pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch24
-rw-r--r--pkgs/development/libraries/pipewire/default.nix52
-rw-r--r--pkgs/development/libraries/pipewire/test-paths.nix2
-rwxr-xr-xpkgs/development/libraries/pipewire/update.sh24
-rw-r--r--pkgs/development/libraries/protobuf/3.15.nix4
-rw-r--r--pkgs/development/libraries/pupnp/default.nix6
-rw-r--r--pkgs/development/libraries/py3c/default.nix31
-rw-r--r--pkgs/development/libraries/qhull/default.nix9
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix1
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch56
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix2
-rw-r--r--pkgs/development/libraries/rapidjson/default.nix9
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix52
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix66
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-full.nix27
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/wcslib/default.nix13
-rw-r--r--pkgs/development/libraries/science/biology/bicpl/default.nix12
-rw-r--r--pkgs/development/libraries/science/biology/oobicpl/default.nix32
-rw-r--r--pkgs/development/libraries/science/math/cudnn/default.nix25
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix19
-rw-r--r--pkgs/development/libraries/simgear/default.nix8
-rw-r--r--pkgs/development/libraries/spice-protocol/default.nix10
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix4
-rw-r--r--pkgs/development/libraries/sqlitecpp/default.nix31
-rw-r--r--pkgs/development/libraries/tracker/default.nix2
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix4
-rw-r--r--pkgs/development/libraries/waffle/default.nix30
-rw-r--r--pkgs/development/libraries/wayland/default.nix41
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix4
-rw-r--r--pkgs/development/libraries/wlroots/default.nix6
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix8
-rw-r--r--pkgs/development/libraries/xine-lib/default.nix25
-rw-r--r--pkgs/development/libraries/zlib/default.nix2
-rw-r--r--pkgs/development/libraries/zookeeper_mt/default.nix4
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix46
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix34
-rw-r--r--pkgs/development/mobile/androidenv/examples/shell.nix18
-rw-r--r--pkgs/development/mobile/androidenv/repo.json561
-rw-r--r--pkgs/development/mobile/gomobile/default.nix61
-rw-r--r--pkgs/development/mobile/gomobile/resolve-nix-android-sdk.patch15
-rw-r--r--pkgs/development/node-packages/default.nix20
-rw-r--r--pkgs/development/node-packages/node-packages.json6
-rw-r--r--pkgs/development/node-packages/node-packages.nix7966
-rw-r--r--pkgs/development/ocaml-modules/cairo2/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/caqti/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/dap/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/dtoa/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/earlybird/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/extlib/1.7.7.nix14
-rw-r--r--pkgs/development/ocaml-modules/ezxmlm/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/h2/default.nix59
-rw-r--r--pkgs/development/ocaml-modules/hpack/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/irmin/ppx.nix4
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.14.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk3/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/lablgtk3/gtkspell3.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk3/sourceview3.nix2
-rw-r--r--pkgs/development/ocaml-modules/labltk/default.nix54
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/default.nix84
-rw-r--r--pkgs/development/ocaml-modules/mirage-bootvar-xen/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-net-xen/default.nix39
-rw-r--r--pkgs/development/ocaml-modules/mirage-xen/default.nix78
-rw-r--r--pkgs/development/ocaml-modules/mirage-xen/makefile-no-opam.patch12
-rw-r--r--pkgs/development/ocaml-modules/mirage-xen/pkg-config.patch13
-rw-r--r--pkgs/development/ocaml-modules/netchannel/default.nix55
-rw-r--r--pkgs/development/ocaml-modules/paf/default.nix82
-rw-r--r--pkgs/development/ocaml-modules/path_glob/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/postgresql/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/safepass/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/sedlex/2.nix12
-rw-r--r--pkgs/development/ocaml-modules/shared-memory-ring/default.nix41
-rw-r--r--pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix37
-rw-r--r--pkgs/development/ocaml-modules/wayland/default.nix49
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/xenstore_transport/default.nix2
-rw-r--r--pkgs/development/perl-modules/generic/default.nix6
-rw-r--r--pkgs/development/php-packages/composer/1.x.nix6
-rw-r--r--pkgs/development/php-packages/composer/default.nix6
-rw-r--r--pkgs/development/php-packages/couchbase/default.nix2
-rw-r--r--pkgs/development/python-modules/Fabric/default.nix10
-rw-r--r--pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--pkgs/development/python-modules/Markups/default.nix4
-rw-r--r--pkgs/development/python-modules/Pygments/2_5.nix4
-rw-r--r--pkgs/development/python-modules/Pygments/default.nix11
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adb-enhanced/default.nix5
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix4
-rw-r--r--pkgs/development/python-modules/aiodiscover/default.nix25
-rw-r--r--pkgs/development/python-modules/aiodns/default.nix7
-rw-r--r--pkgs/development/python-modules/aioeventlet/default.nix35
-rw-r--r--pkgs/development/python-modules/aiohttp-cors/default.nix2
-rw-r--r--pkgs/development/python-modules/aioimaplib/default.nix8
-rw-r--r--pkgs/development/python-modules/aiorecollect/default.nix17
-rw-r--r--pkgs/development/python-modules/aiosmb/default.nix12
-rw-r--r--pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--pkgs/development/python-modules/altair/default.nix2
-rw-r--r--pkgs/development/python-modules/angr/default.nix94
-rw-r--r--pkgs/development/python-modules/angrop/default.nix37
-rw-r--r--pkgs/development/python-modules/aniso8601/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix4
-rw-r--r--pkgs/development/python-modules/arabic-reshaper/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/arrow/2.nix40
-rw-r--r--pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--pkgs/development/python-modules/arviz/default.nix4
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--pkgs/development/python-modules/astroid/default.nix4
-rw-r--r--pkgs/development/python-modules/astropy-healpix/default.nix4
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix4
-rwxr-xr-xpkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix10
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-xray-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-cosmosdb-table/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-datalake-store/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-mgmt-synapse/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-storage-file-share/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-storage-file/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-storage/default.nix2
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix15
-rw-r--r--pkgs/development/python-modules/backports-entry-points-selectable/default.nix36
-rw-r--r--pkgs/development/python-modules/backports_functools_lru_cache/default.nix4
-rw-r--r--pkgs/development/python-modules/banal/default.nix27
-rw-r--r--pkgs/development/python-modules/beaker/default.nix4
-rw-r--r--pkgs/development/python-modules/beautifultable/default.nix32
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix5
-rw-r--r--pkgs/development/python-modules/bip_utils/default.nix4
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix11
-rw-r--r--pkgs/development/python-modules/bitmath/default.nix2
-rw-r--r--pkgs/development/python-modules/blessed/default.nix4
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix2
-rw-r--r--pkgs/development/python-modules/boto3/default.nix6
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/bpython/default.nix4
-rw-r--r--pkgs/development/python-modules/brother/default.nix4
-rw-r--r--pkgs/development/python-modules/brotli/default.nix6
-rw-r--r--pkgs/development/python-modules/btrfs/default.nix10
-rw-r--r--pkgs/development/python-modules/build/default.nix2
-rw-r--r--pkgs/development/python-modules/can/default.nix2
-rw-r--r--pkgs/development/python-modules/canmatrix/default.nix2
-rw-r--r--pkgs/development/python-modules/capstone/default.nix6
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix2
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix7
-rw-r--r--pkgs/development/python-modules/chalice/default.nix6
-rw-r--r--pkgs/development/python-modules/chardet/2.nix29
-rw-r--r--pkgs/development/python-modules/chardet/default.nix29
-rw-r--r--pkgs/development/python-modules/chart-studio/default.nix6
-rw-r--r--pkgs/development/python-modules/cheetah3/default.nix4
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix4
-rw-r--r--pkgs/development/python-modules/cjkwrap/default.nix19
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/class-registry/default.nix2
-rw-r--r--pkgs/development/python-modules/cle/default.nix79
-rw-r--r--pkgs/development/python-modules/clevercsv/default.nix60
-rw-r--r--pkgs/development/python-modules/click-threading/default.nix2
-rw-r--r--pkgs/development/python-modules/clickhouse-cli/default.nix36
-rw-r--r--pkgs/development/python-modules/clikit/default.nix2
-rw-r--r--pkgs/development/python-modules/clldutils/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudscraper/default.nix4
-rw-r--r--pkgs/development/python-modules/cocotb/default.nix4
-rw-r--r--pkgs/development/python-modules/commoncode/default.nix55
-rw-r--r--pkgs/development/python-modules/configparser/default.nix4
-rw-r--r--pkgs/development/python-modules/confluent-kafka/default.nix2
-rw-r--r--pkgs/development/python-modules/connexion/default.nix2
-rw-r--r--pkgs/development/python-modules/construct/default.nix12
-rw-r--r--pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix2
-rw-r--r--pkgs/development/python-modules/css-html-js-minify/default.nix26
-rw-r--r--pkgs/development/python-modules/curtsies/default.nix2
-rw-r--r--pkgs/development/python-modules/cve-bin-tool/default.nix83
-rw-r--r--pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/cxxfilt/default.nix33
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix2
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix2
-rw-r--r--pkgs/development/python-modules/dask/default.nix25
-rw-r--r--pkgs/development/python-modules/datadog/default.nix4
-rw-r--r--pkgs/development/python-modules/debian-inspector/default.nix53
-rw-r--r--pkgs/development/python-modules/debut/default.nix38
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix41
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix4
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix47
-rw-r--r--pkgs/development/python-modules/defusedxml/default.nix4
-rw-r--r--pkgs/development/python-modules/dependency-injector/default.nix4
-rw-r--r--pkgs/development/python-modules/diff_cover/default.nix7
-rw-r--r--pkgs/development/python-modules/django-extensions/default.nix6
-rw-r--r--pkgs/development/python-modules/django-mailman3/default.nix2
-rw-r--r--pkgs/development/python-modules/django-pipeline/default.nix2
-rw-r--r--pkgs/development/python-modules/django/2.nix4
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/django_silk/default.nix2
-rw-r--r--pkgs/development/python-modules/django_treebeard/default.nix4
-rw-r--r--pkgs/development/python-modules/dnspython/default.nix4
-rw-r--r--pkgs/development/python-modules/docplex/default.nix2
-rw-r--r--pkgs/development/python-modules/dparse/default.nix27
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix15
-rw-r--r--pkgs/development/python-modules/dsmr-parser/default.nix41
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/eth-hash/default.nix21
-rw-r--r--pkgs/development/python-modules/eth-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix4
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/extractcode/7z.nix48
-rw-r--r--pkgs/development/python-modules/extractcode/default.nix60
-rw-r--r--pkgs/development/python-modules/extractcode/libarchive.nix62
-rw-r--r--pkgs/development/python-modules/faadelays/default.nix4
-rw-r--r--pkgs/development/python-modules/faker/default.nix4
-rw-r--r--pkgs/development/python-modules/fasteners/default.nix22
-rw-r--r--pkgs/development/python-modules/fastrlock/default.nix4
-rw-r--r--pkgs/development/python-modules/ffmpeg-progress-yield/default.nix33
-rw-r--r--pkgs/development/python-modules/ffmpeg-python/default.nix17
-rw-r--r--pkgs/development/python-modules/fido2/default.nix2
-rw-r--r--pkgs/development/python-modules/fingerprints/default.nix42
-rw-r--r--pkgs/development/python-modules/flake8/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix19
-rw-r--r--pkgs/development/python-modules/flask-jwt-extended/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-mongoengine/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/flit-core/default.nix10
-rw-r--r--pkgs/development/python-modules/flit/default.nix14
-rw-r--r--pkgs/development/python-modules/flufl/lock.nix21
-rw-r--r--pkgs/development/python-modules/fs/default.nix6
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix24
-rw-r--r--pkgs/development/python-modules/fusepy/default.nix5
-rw-r--r--pkgs/development/python-modules/gcsfs/default.nix37
-rw-r--r--pkgs/development/python-modules/gemfileparser/default.nix29
-rw-r--r--pkgs/development/python-modules/gentools/default.nix2
-rw-r--r--pkgs/development/python-modules/ghp-import/default.nix29
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix4
-rw-r--r--pkgs/development/python-modules/gitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/goocalendar/default.nix1
-rw-r--r--pkgs/development/python-modules/google-auth-httplib2/default.nix2
-rw-r--r--pkgs/development/python-modules/google-auth-oauthlib/default.nix3
-rw-r--r--pkgs/development/python-modules/google-auth/default.nix13
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix2
-rw-r--r--pkgs/development/python-modules/google-cloud-core/default.nix2
-rw-r--r--pkgs/development/python-modules/google-cloud-org-policy/default.nix2
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix2
-rw-r--r--pkgs/development/python-modules/googleapis-common-protos/default.nix2
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix6
-rw-r--r--pkgs/development/python-modules/graphql-core/default.nix24
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix4
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix2
-rw-r--r--pkgs/development/python-modules/guessit/default.nix4
-rw-r--r--pkgs/development/python-modules/gym/default.nix29
-rw-r--r--pkgs/development/python-modules/ha-ffmpeg/default.nix12
-rw-r--r--pkgs/development/python-modules/habanero/default.nix8
-rw-r--r--pkgs/development/python-modules/hachoir/default.nix35
-rw-r--r--pkgs/development/python-modules/hatasmota/default.nix4
-rw-r--r--pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--pkgs/development/python-modules/homeconnect/default.nix33
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix18
-rw-r--r--pkgs/development/python-modules/humanize/default.nix4
-rw-r--r--pkgs/development/python-modules/hyperion-py/default.nix52
-rw-r--r--pkgs/development/python-modules/hyperlink/default.nix6
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix4
-rw-r--r--pkgs/development/python-modules/idna/2.nix23
-rw-r--r--pkgs/development/python-modules/idna/default.nix7
-rw-r--r--pkgs/development/python-modules/ignite/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio/default.nix2
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/imapclient/default.nix17
-rw-r--r--pkgs/development/python-modules/importlib-metadata/2.nix39
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix37
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix8
-rw-r--r--pkgs/development/python-modules/incremental/default.nix4
-rw-r--r--pkgs/development/python-modules/intake/default.nix4
-rw-r--r--pkgs/development/python-modules/intbitset/default.nix44
-rw-r--r--pkgs/development/python-modules/intbitset/remove-impure-tuning.patch24
-rw-r--r--pkgs/development/python-modules/invoke/default.nix4
-rw-r--r--pkgs/development/python-modules/ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/ipfsapi/default.nix30
-rw-r--r--pkgs/development/python-modules/ipfshttpclient/default.nix82
-rw-r--r--pkgs/development/python-modules/ipydatawidgets/default.nix4
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyparallel/default.nix2
-rw-r--r--pkgs/development/python-modules/ipyvuetify/default.nix4
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix6
-rw-r--r--pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_collections/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_functools/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch27
-rw-r--r--pkgs/development/python-modules/jaraco_itertools/default.nix8
-rw-r--r--pkgs/development/python-modules/jaraco_logging/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_stream/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_text/default.nix4
-rw-r--r--pkgs/development/python-modules/javaproperties/default.nix5
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix2
-rw-r--r--pkgs/development/python-modules/joblib/default.nix4
-rw-r--r--pkgs/development/python-modules/josepy/default.nix16
-rw-r--r--pkgs/development/python-modules/jpylyzer/default.nix10
-rw-r--r--pkgs/development/python-modules/jsonpatch/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonpickle/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonpointer/default.nix4
-rw-r--r--pkgs/development/python-modules/jug/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-packaging/default.nix23
-rw-r--r--pkgs/development/python-modules/jupyter-repo2docker/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_console/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_server/default.nix13
-rw-r--r--pkgs/development/python-modules/jupyterlab-widgets/default.nix30
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix4
-rw-r--r--pkgs/development/python-modules/kaitaistruct/default.nix33
-rw-r--r--pkgs/development/python-modules/karton-config-extractor/default.nix41
-rw-r--r--pkgs/development/python-modules/karton-dashboard/default.nix43
-rw-r--r--pkgs/development/python-modules/karton-mwdb-reporter/default.nix40
-rw-r--r--pkgs/development/python-modules/karton-yaramatcher/default.nix45
-rw-r--r--pkgs/development/python-modules/keepkey/default.nix4
-rw-r--r--pkgs/development/python-modules/keyring/default.nix63
-rw-r--r--pkgs/development/python-modules/kmapper/default.nix4
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--pkgs/development/python-modules/langcodes/default.nix4
-rw-r--r--pkgs/development/python-modules/lazy-object-proxy/default.nix20
-rw-r--r--pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libgpuarray/default.nix4
-rw-r--r--pkgs/development/python-modules/liblzfse/default.nix34
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--pkgs/development/python-modules/libversion/default.nix4
-rw-r--r--pkgs/development/python-modules/liquidctl/default.nix4
-rw-r--r--pkgs/development/python-modules/livestreamer/default.nix4
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix4
-rw-r--r--pkgs/development/python-modules/lmdb/default.nix7
-rw-r--r--pkgs/development/python-modules/logzero/default.nix4
-rw-r--r--pkgs/development/python-modules/mail-parser/default.nix4
-rw-r--r--pkgs/development/python-modules/mailman-hyperkitty/default.nix2
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix2
-rw-r--r--pkgs/development/python-modules/malduck/default.nix48
-rw-r--r--pkgs/development/python-modules/markdown-it-py/default.nix4
-rw-r--r--pkgs/development/python-modules/markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix4
-rw-r--r--pkgs/development/python-modules/mcstatus/default.nix8
-rw-r--r--pkgs/development/python-modules/md2gemini/default.nix23
-rw-r--r--pkgs/development/python-modules/mido/default.nix26
-rw-r--r--pkgs/development/python-modules/minidump/default.nix4
-rw-r--r--pkgs/development/python-modules/minikerberos/default.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mistune/common.nix19
-rw-r--r--pkgs/development/python-modules/mistune/default.nix26
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix4
-rw-r--r--pkgs/development/python-modules/mock-services/default.nix56
-rw-r--r--pkgs/development/python-modules/moderngl/default.nix4
-rw-r--r--pkgs/development/python-modules/mongoengine/default.nix4
-rw-r--r--pkgs/development/python-modules/monty/default.nix4
-rw-r--r--pkgs/development/python-modules/moto/default.nix3
-rw-r--r--pkgs/development/python-modules/mpmath/default.nix9
-rw-r--r--pkgs/development/python-modules/msldap/default.nix4
-rw-r--r--pkgs/development/python-modules/msrest/default.nix4
-rw-r--r--pkgs/development/python-modules/multimethod/default.nix31
-rw-r--r--pkgs/development/python-modules/mwdblib/default.nix49
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix10
-rw-r--r--pkgs/development/python-modules/nbsphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--pkgs/development/python-modules/nclib/default.nix27
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix4
-rw-r--r--pkgs/development/python-modules/nltk/default.nix2
-rw-r--r--pkgs/development/python-modules/normality/default.nix42
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix21
-rw-r--r--pkgs/development/python-modules/numba/default.nix4
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix4
-rw-r--r--pkgs/development/python-modules/oci/default.nix45
-rw-r--r--pkgs/development/python-modules/omnilogic/default.nix6
-rw-r--r--pkgs/development/python-modules/ondilo/default.nix38
-rw-r--r--pkgs/development/python-modules/onnx/default.nix20
-rw-r--r--pkgs/development/python-modules/openapi-schema-validator/default.nix34
-rw-r--r--pkgs/development/python-modules/openapi-spec-validator/default.nix8
-rw-r--r--pkgs/development/python-modules/openerz-api/default.nix39
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--pkgs/development/python-modules/openshift/default.nix39
-rw-r--r--pkgs/development/python-modules/opentracing/default.nix2
-rw-r--r--pkgs/development/python-modules/optuna/default.nix4
-rw-r--r--pkgs/development/python-modules/owslib/default.nix4
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/panel/node/node-packages.nix12
-rw-r--r--pkgs/development/python-modules/papermill/default.nix6
-rw-r--r--pkgs/development/python-modules/parse/default.nix4
-rw-r--r--pkgs/development/python-modules/path.py/default.nix5
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix4
-rw-r--r--pkgs/development/python-modules/pc-ble-driver-py/default.nix6
-rw-r--r--pkgs/development/python-modules/pecan/default.nix2
-rw-r--r--pkgs/development/python-modules/perfplot/default.nix4
-rw-r--r--pkgs/development/python-modules/persim/default.nix30
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix11
-rw-r--r--pkgs/development/python-modules/pgpy/default.nix2
-rw-r--r--pkgs/development/python-modules/pgspecial/default.nix4
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--pkgs/development/python-modules/pika/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix7
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/pillowfight/default.nix4
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/pkginfo/default.nix4
-rw-r--r--pkgs/development/python-modules/plac/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/plugincode/default.nix47
-rw-r--r--pkgs/development/python-modules/plugnplay/default.nix27
-rw-r--r--pkgs/development/python-modules/plumbum/default.nix4
-rw-r--r--pkgs/development/python-modules/poetry-core/default.nix13
-rw-r--r--pkgs/development/python-modules/poetry/default.nix7
-rw-r--r--pkgs/development/python-modules/ppdeep/default.nix25
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix4
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix4
-rw-r--r--pkgs/development/python-modules/prompt_toolkit/default.nix4
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix2
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix2
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix4
-rw-r--r--pkgs/development/python-modules/ptyprocess/default.nix13
-rw-r--r--pkgs/development/python-modules/pudb/default.nix4
-rw-r--r--pkgs/development/python-modules/pulsectl/default.nix4
-rw-r--r--pkgs/development/python-modules/pur/default.nix35
-rw-r--r--pkgs/development/python-modules/py-vapid/default.nix4
-rw-r--r--pkgs/development/python-modules/py/default.nix6
-rw-r--r--pkgs/development/python-modules/py3exiv2/default.nix4
-rw-r--r--pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--pkgs/development/python-modules/py4j/default.nix4
-rw-r--r--pkgs/development/python-modules/pyGithub/default.nix29
-rw-r--r--pkgs/development/python-modules/pyaftership/default.nix4
-rw-r--r--pkgs/development/python-modules/pyairvisual/default.nix8
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix4
-rw-r--r--pkgs/development/python-modules/pybtex/default.nix4
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--pkgs/development/python-modules/pycairo/1.18.nix49
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix13
-rw-r--r--pkgs/development/python-modules/pycdio/default.nix1
-rw-r--r--pkgs/development/python-modules/pycm/default.nix4
-rw-r--r--pkgs/development/python-modules/pycmarkgfm/default.nix4
-rw-r--r--pkgs/development/python-modules/pycocotools/default.nix37
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix4
-rw-r--r--pkgs/development/python-modules/pycomfoconnect/default.nix33
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix12
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix4
-rw-r--r--pkgs/development/python-modules/pydeconz/default.nix8
-rw-r--r--pkgs/development/python-modules/pydroid-ipcam/default.nix36
-rw-r--r--pkgs/development/python-modules/pydub/default.nix4
-rw-r--r--pkgs/development/python-modules/pyee/default.nix18
-rw-r--r--pkgs/development/python-modules/pyenchant/default.nix4
-rw-r--r--pkgs/development/python-modules/pyface/default.nix10
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix4
-rw-r--r--pkgs/development/python-modules/pyflakes/default.nix4
-rw-r--r--pkgs/development/python-modules/pyflume/default.nix4
-rw-r--r--pkgs/development/python-modules/pygccxml/default.nix4
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix4
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix4
-rw-r--r--pkgs/development/python-modules/pyicu/default.nix1
-rw-r--r--pkgs/development/python-modules/pyimpfuzzy/default.nix37
-rw-r--r--pkgs/development/python-modules/pyjwt/default.nix4
-rw-r--r--pkgs/development/python-modules/pykeepass/default.nix4
-rw-r--r--pkgs/development/python-modules/pykmtronic/default.nix4
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix4
-rw-r--r--pkgs/development/python-modules/pylint/default.nix4
-rw-r--r--pkgs/development/python-modules/pylxd/default.nix44
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pymaven-patch/default.nix44
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix13
-rw-r--r--pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--pkgs/development/python-modules/pymdstat/default.nix30
-rw-r--r--pkgs/development/python-modules/pymeeus/default.nix4
-rw-r--r--pkgs/development/python-modules/pymetar/default.nix4
-rw-r--r--pkgs/development/python-modules/pymetno/default.nix25
-rw-r--r--pkgs/development/python-modules/pymysql/default.nix4
-rw-r--r--pkgs/development/python-modules/pynamodb/default.nix4
-rw-r--r--pkgs/development/python-modules/pynetdicom/default.nix2
-rw-r--r--pkgs/development/python-modules/pynisher/default.nix4
-rw-r--r--pkgs/development/python-modules/pynndescent/default.nix21
-rw-r--r--pkgs/development/python-modules/pynvim/default.nix5
-rw-r--r--pkgs/development/python-modules/pynx584/default.nix48
-rw-r--r--pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyparted/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperclip/default.nix4
-rw-r--r--pkgs/development/python-modules/pyperf/default.nix4
-rw-r--r--pkgs/development/python-modules/pypinyin/default.nix38
-rw-r--r--pkgs/development/python-modules/pypiserver/default.nix40
-rw-r--r--pkgs/development/python-modules/pypykatz/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro5/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroma/2.nix26
-rw-r--r--pkgs/development/python-modules/pyroma/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix15
-rw-r--r--pkgs/development/python-modules/pysma/default.nix4
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix4
-rw-r--r--pkgs/development/python-modules/pysmart-smartx/default.nix36
-rw-r--r--pkgs/development/python-modules/pysmartapp/default.nix38
-rw-r--r--pkgs/development/python-modules/pysmartthings/default.nix38
-rw-r--r--pkgs/development/python-modules/pysonos/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--pkgs/development/python-modules/pystray/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-helpers-namespace/default.nix30
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-order/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-sanic/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-services/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-subprocess/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-subtesthack/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-xprocess/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest/default.nix9
-rw-r--r--pkgs/development/python-modules/pytestrunner/2.nix30
-rw-r--r--pkgs/development/python-modules/pytestrunner/default.nix4
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix4
-rw-r--r--pkgs/development/python-modules/python-frontmatter/default.nix20
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix29
-rw-r--r--pkgs/development/python-modules/python-gnupg/default.nix4
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix2
-rw-r--r--pkgs/development/python-modules/python-language-server/default.nix9
-rw-r--r--pkgs/development/python-modules/python-lz4/default.nix4
-rw-r--r--pkgs/development/python-modules/python-periphery/default.nix4
-rw-r--r--pkgs/development/python-modules/python-picnic-api/default.nix34
-rw-r--r--pkgs/development/python-modules/python-ptrace/default.nix4
-rw-r--r--pkgs/development/python-modules/python-rapidjson/default.nix4
-rw-r--r--pkgs/development/python-modules/python-registry/default.nix34
-rw-r--r--pkgs/development/python-modules/python-smarttub/default.nix5
-rw-r--r--pkgs/development/python-modules/python-snap7/default.nix6
-rw-r--r--pkgs/development/python-modules/python-stdnum/default.nix4
-rw-r--r--pkgs/development/python-modules/python-string-utils/default.nix27
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix35
-rw-r--r--pkgs/development/python-modules/pytools/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch-metric-learning/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix3
-rw-r--r--pkgs/development/python-modules/pytube/default.nix4
-rw-r--r--pkgs/development/python-modules/pyturbojpeg/default.nix4
-rw-r--r--pkgs/development/python-modules/pyu2f/default.nix26
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix12
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix7
-rw-r--r--pkgs/development/python-modules/pyvmomi/default.nix4
-rw-r--r--pkgs/development/python-modules/pywebpush/default.nix31
-rw-r--r--pkgs/development/python-modules/pywemo/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxbe/default.nix36
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix4
-rw-r--r--pkgs/development/python-modules/qds_sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/qiling/default.nix45
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/radio_beam/default.nix4
-rw-r--r--pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--pkgs/development/python-modules/rebulk/default.nix4
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--pkgs/development/python-modules/requests/default.nix5
-rw-r--r--pkgs/development/python-modules/requirements-parser/default.nix33
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/rfc3339-validator/default.nix31
-rw-r--r--pkgs/development/python-modules/rich/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework-sshlibrary/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix19
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix41
-rw-r--r--pkgs/development/python-modules/rpmfile/default.nix32
-rw-r--r--pkgs/development/python-modules/rpy2/default.nix4
-rw-r--r--pkgs/development/python-modules/rq/default.nix4
-rw-r--r--pkgs/development/python-modules/rsa/default.nix4
-rw-r--r--pkgs/development/python-modules/rtmidi-python/default.nix2
-rw-r--r--pkgs/development/python-modules/ruamel_yaml/default.nix8
-rw-r--r--pkgs/development/python-modules/ruamel_yaml_clib/default.nix2
-rw-r--r--pkgs/development/python-modules/s3transfer/default.nix6
-rw-r--r--pkgs/development/python-modules/sacn/default.nix4
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix6
-rw-r--r--pkgs/development/python-modules/saneyaml/default.nix41
-rw-r--r--pkgs/development/python-modules/sanic-routing/default.nix28
-rw-r--r--pkgs/development/python-modules/sanic-testing/default.nix40
-rw-r--r--pkgs/development/python-modules/sanic/default.nix34
-rw-r--r--pkgs/development/python-modules/scancode-toolkit/default.nix122
-rw-r--r--pkgs/development/python-modules/scapy/default.nix7
-rw-r--r--pkgs/development/python-modules/schedule/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-fmm/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-image/default.nix4
-rw-r--r--pkgs/development/python-modules/screenlogicpy/default.nix26
-rw-r--r--pkgs/development/python-modules/seabreeze/default.nix6
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/sentinel/default.nix4
-rw-r--r--pkgs/development/python-modules/seqeval/default.nix49
-rw-r--r--pkgs/development/python-modules/setuptools-declarative-requirements/default.nix28
-rw-r--r--pkgs/development/python-modules/setuptools_scm/2.nix24
-rw-r--r--pkgs/development/python-modules/setuptools_scm/default.nix4
-rw-r--r--pkgs/development/python-modules/shap/default.nix4
-rw-r--r--pkgs/development/python-modules/signedjson/default.nix28
-rw-r--r--pkgs/development/python-modules/simple-salesforce/default.nix4
-rw-r--r--pkgs/development/python-modules/singledispatch/default.nix11
-rw-r--r--pkgs/development/python-modules/sip/5.x.nix16
-rw-r--r--pkgs/development/python-modules/skein/default.nix4
-rw-r--r--pkgs/development/python-modules/skorch/default.nix4
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/slackclient/default.nix2
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix40
-rw-r--r--pkgs/development/python-modules/slob/default.nix12
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix4
-rw-r--r--pkgs/development/python-modules/smartypants/default.nix25
-rw-r--r--pkgs/development/python-modules/smartypants/hgtags17
-rw-r--r--pkgs/development/python-modules/smhi-pkg/default.nix47
-rw-r--r--pkgs/development/python-modules/smmap/default.nix4
-rw-r--r--pkgs/development/python-modules/snapcast/default.nix23
-rw-r--r--pkgs/development/python-modules/snowballstemmer/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/default.nix4
-rw-r--r--pkgs/development/python-modules/sparklines/default.nix31
-rw-r--r--pkgs/development/python-modules/sparse/default.nix23
-rw-r--r--pkgs/development/python-modules/spdx-tools/default.nix54
-rw-r--r--pkgs/development/python-modules/sphinx-autobuild/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-markdown-parser/default.nix44
-rw-r--r--pkgs/development/python-modules/sphinx-material/default.nix41
-rw-r--r--pkgs/development/python-modules/sphinx-serve/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinx_rtd_theme/default.nix9
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix4
-rw-r--r--pkgs/development/python-modules/spotipy/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/default.nix16
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix8
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix2
-rw-r--r--pkgs/development/python-modules/sqlobject/default.nix4
-rw-r--r--pkgs/development/python-modules/sshpubkeys/default.nix6
-rw-r--r--pkgs/development/python-modules/stevedore/default.nix16
-rw-r--r--pkgs/development/python-modules/stone/default.nix51
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/structlog/default.nix4
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix4
-rw-r--r--pkgs/development/python-modules/sumo/default.nix4
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix4
-rw-r--r--pkgs/development/python-modules/surt/default.nix37
-rw-r--r--pkgs/development/python-modules/survey/default.nix7
-rw-r--r--pkgs/development/python-modules/svg-path/default.nix4
-rw-r--r--pkgs/development/python-modules/symengine/default.nix4
-rw-r--r--pkgs/development/python-modules/systembridge/default.nix32
-rw-r--r--pkgs/development/python-modules/sysv_ipc/default.nix4
-rw-r--r--pkgs/development/python-modules/tablib/default.nix4
-rw-r--r--pkgs/development/python-modules/tabulate/default.nix4
-rw-r--r--pkgs/development/python-modules/tabview/default.nix31
-rw-r--r--pkgs/development/python-modules/tailer/default.nix32
-rw-r--r--pkgs/development/python-modules/taskw/default.nix4
-rw-r--r--pkgs/development/python-modules/telfhash/default.nix49
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix6
-rw-r--r--pkgs/development/python-modules/tensorboardx/default.nix64
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix17
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix4
-rw-r--r--pkgs/development/python-modules/terminado/default.nix4
-rw-r--r--pkgs/development/python-modules/tern/default.nix59
-rw-r--r--pkgs/development/python-modules/testfixtures/default.nix4
-rw-r--r--pkgs/development/python-modules/textdistance/default.nix23
-rw-r--r--pkgs/development/python-modules/thinc/default.nix12
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix10
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix4
-rw-r--r--pkgs/development/python-modules/tinydb/default.nix32
-rw-r--r--pkgs/development/python-modules/titlecase/default.nix4
-rw-r--r--pkgs/development/python-modules/tomlkit/default.nix2
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--pkgs/development/python-modules/tornado/4.nix10
-rw-r--r--pkgs/development/python-modules/tornado/5.nix10
-rw-r--r--pkgs/development/python-modules/tox/default.nix4
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix23
-rw-r--r--pkgs/development/python-modules/traits/default.nix4
-rw-r--r--pkgs/development/python-modules/transmission-rpc/default.nix4
-rw-r--r--pkgs/development/python-modules/treq/default.nix4
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trollius/default.nix52
-rw-r--r--pkgs/development/python-modules/trollius/tests.patch13
-rw-r--r--pkgs/development/python-modules/trustme/default.nix19
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/tweepy/default.nix4
-rw-r--r--pkgs/development/python-modules/twill/default.nix4
-rw-r--r--pkgs/development/python-modules/twine/default.nix7
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix4
-rw-r--r--pkgs/development/python-modules/txaio/default.nix4
-rw-r--r--pkgs/development/python-modules/typecode/default.nix53
-rw-r--r--pkgs/development/python-modules/typecode/libmagic.nix51
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix11
-rw-r--r--pkgs/development/python-modules/typing/default.nix5
-rw-r--r--pkgs/development/python-modules/umap-learn/default.nix16
-rw-r--r--pkgs/development/python-modules/unidecode/default.nix4
-rw-r--r--pkgs/development/python-modules/unify/default.nix30
-rw-r--r--pkgs/development/python-modules/untokenize/default.nix24
-rw-r--r--pkgs/development/python-modules/uproot3-methods/default.nix2
-rw-r--r--pkgs/development/python-modules/uproot3/default.nix2
-rw-r--r--pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--pkgs/development/python-modules/uritools/default.nix4
-rw-r--r--pkgs/development/python-modules/urlpy/default.nix44
-rw-r--r--pkgs/development/python-modules/variants/default.nix2
-rw-r--r--pkgs/development/python-modules/virtual-display/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--pkgs/development/python-modules/viv-utils/default.nix49
-rw-r--r--pkgs/development/python-modules/vivisect/default.nix46
-rw-r--r--pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix21
-rw-r--r--pkgs/development/python-modules/wcmatch/default.nix4
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix10
-rw-r--r--pkgs/development/python-modules/weboob/default.nix2
-rw-r--r--pkgs/development/python-modules/whois/default.nix5
-rw-r--r--pkgs/development/python-modules/woob/default.nix82
-rw-r--r--pkgs/development/python-modules/woob/no-test-requiring-network.patch54
-rw-r--r--pkgs/development/python-modules/woodblock/default.nix36
-rw-r--r--pkgs/development/python-modules/xarray/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix4
-rw-r--r--pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--pkgs/development/python-modules/xlrd/default.nix15
-rw-r--r--pkgs/development/python-modules/xlsx2csv/default.nix3
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix4
-rw-r--r--pkgs/development/python-modules/yamlloader/default.nix7
-rw-r--r--pkgs/development/python-modules/yeelight/default.nix4
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix4
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zipp/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_interface/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_testing/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_testrunner/default.nix4
-rwxr-xr-xpkgs/development/python-modules/zstandard/default.nix4
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix40
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix43
-rw-r--r--pkgs/development/ruby-modules/gem/default.nix4
-rw-r--r--pkgs/development/tools/air/default.nix4
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix62
-rwxr-xr-xpkgs/development/tools/analysis/radare2/update.py121
-rw-r--r--pkgs/development/tools/analysis/rizin/cutter.nix4
-rw-r--r--pkgs/development/tools/analysis/rizin/default.nix4
-rw-r--r--pkgs/development/tools/analysis/spin/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/aws-sam-cli/default.nix6
-rw-r--r--pkgs/development/tools/azcopy/default.nix6
-rw-r--r--pkgs/development/tools/b4/default.nix3
-rw-r--r--pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--pkgs/development/tools/buf/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/apache-maven/default.nix5
-rw-r--r--pkgs/development/tools/build-managers/bmake/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bmake/setup-hook.sh117
-rw-r--r--pkgs/development/tools/build-managers/buck/default.nix17
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/remake/default.nix29
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/tup/default.nix17
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/butane/default.nix (renamed from pkgs/development/tools/fedora-coreos-config-transpiler/default.nix)16
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix12
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix4
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/laminar/default.nix2
-rw-r--r--pkgs/development/tools/cue/default.nix6
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/movine/default.nix54
-rw-r--r--pkgs/development/tools/database/pgsync/Gemfile2
-rw-r--r--pkgs/development/tools/database/pgsync/Gemfile.lock23
-rw-r--r--pkgs/development/tools/database/pgsync/default.nix15
-rw-r--r--pkgs/development/tools/database/pgsync/gemset.nix64
-rw-r--r--pkgs/development/tools/dockle/default.nix6
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/documentation/gi-docgen/default.nix7
-rw-r--r--pkgs/development/tools/ecpdap/default.nix36
-rw-r--r--pkgs/development/tools/ecpdap/lock-update.patch345
-rw-r--r--pkgs/development/tools/electron/default.nix42
-rw-r--r--pkgs/development/tools/esbuild/default.nix22
-rw-r--r--pkgs/development/tools/flip-link/default.nix22
-rw-r--r--pkgs/development/tools/ghp-import/default.nix28
-rw-r--r--pkgs/development/tools/git-quick-stats/default.nix4
-rw-r--r--pkgs/development/tools/go-task/default.nix6
-rw-r--r--pkgs/development/tools/godot/default.nix6
-rw-r--r--pkgs/development/tools/godot/export-templates.nix17
-rw-r--r--pkgs/development/tools/gopls/default.nix6
-rw-r--r--pkgs/development/tools/gops/default.nix4
-rw-r--r--pkgs/development/tools/gotestsum/default.nix4
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix7
-rw-r--r--pkgs/development/tools/jql/default.nix22
-rw-r--r--pkgs/development/tools/just/default.nix17
-rw-r--r--pkgs/development/tools/kgt/default.nix81
-rw-r--r--pkgs/development/tools/kustomize/default.nix6
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/metals/default.nix4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix1
-rw-r--r--pkgs/development/tools/misc/checkbashisms/default.nix29
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix32
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/repository.nix40
-rw-r--r--pkgs/development/tools/misc/inotify-tools/default.nix17
-rw-r--r--pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch2
-rw-r--r--pkgs/development/tools/misc/luarocks/default.nix5
-rw-r--r--pkgs/development/tools/misc/stlink/default.nix19
-rw-r--r--pkgs/development/tools/misc/stm32cubemx/default.nix57
-rw-r--r--pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/misc/tockloader/default.nix20
-rw-r--r--pkgs/development/tools/nsis/default.nix31
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/generic.nix32
-rw-r--r--pkgs/development/tools/ocaml/ocp-build/default.nix10
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/parsing/antlr/3.5.nix9
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix31
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json8
-rw-r--r--pkgs/development/tools/protoc-gen-go-grpc/default.nix28
-rw-r--r--pkgs/development/tools/protoc-gen-go-grpc/deps.nix333
-rw-r--r--pkgs/development/tools/protoc-gen-twirp_php/default.nix10
-rw-r--r--pkgs/development/tools/purescript/spago/default.nix2
-rw-r--r--pkgs/development/tools/purescript/spago/spago.nix41
-rw-r--r--pkgs/development/tools/roswell/default.nix38
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix19
-rw-r--r--pkgs/development/tools/rust/cargo-raze/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/rust/rustup/default.nix6
-rw-r--r--pkgs/development/tools/rust/svd2rust/cargo-lock.patch423
-rw-r--r--pkgs/development/tools/rust/svd2rust/default.nix9
-rw-r--r--pkgs/development/tools/scenebuilder/default.nix2
-rw-r--r--pkgs/development/tools/skopeo/default.nix4
-rw-r--r--pkgs/development/tools/sumneko-lua-language-server/default.nix12
-rw-r--r--pkgs/development/tools/tabnine/default.nix9
-rw-r--r--pkgs/development/tools/treefmt/default.nix21
-rw-r--r--pkgs/development/tools/vala-language-server/default.nix4
-rw-r--r--pkgs/development/tools/wrangler/default.nix6
-rw-r--r--pkgs/development/tools/xcbuild/default.nix1
-rw-r--r--pkgs/development/tools/xcbuild/wrapper.nix2
-rw-r--r--pkgs/development/tools/zls/default.nix32
-rw-r--r--pkgs/development/web/cypress/default.nix3
-rw-r--r--pkgs/development/web/deno/default.nix9
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/development/web/insomnia/default.nix3
-rw-r--r--pkgs/development/web/nodejs/v16.nix13
-rw-r--r--pkgs/development/web/remarkjs/node-packages.nix2
-rw-r--r--pkgs/games/cdogs-sdl/default.nix4
-rw-r--r--pkgs/games/devilutionx/default.nix4
-rw-r--r--pkgs/games/factorio/versions.json40
-rw-r--r--pkgs/games/flightgear/default.nix8
-rw-r--r--pkgs/games/freeciv/default.nix4
-rw-r--r--pkgs/games/gimx/default.nix10
-rw-r--r--pkgs/games/gimx/noff.patch16
-rw-r--r--pkgs/games/ja2-stracciatella/Cargo.lock291
-rw-r--r--pkgs/games/ja2-stracciatella/default.nix56
-rw-r--r--pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch78
-rw-r--r--pkgs/games/katago/default.nix6
-rw-r--r--pkgs/games/lunar-client/default.nix13
-rw-r--r--pkgs/games/mar1d/default.nix68
-rw-r--r--pkgs/games/mindustry/default.nix4
-rw-r--r--pkgs/games/oh-my-git/default.nix115
-rw-r--r--pkgs/games/openttd/default.nix4
-rw-r--r--pkgs/games/openttd/jgrpp.nix4
-rw-r--r--pkgs/games/osu-lazer/default.nix4
-rw-r--r--pkgs/games/osu-lazer/deps.nix28
-rwxr-xr-xpkgs/games/osu-lazer/update.sh15
-rw-r--r--pkgs/games/scummvm/default.nix13
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix6
-rw-r--r--pkgs/games/shticker-book-unwritten/default.nix1
-rw-r--r--pkgs/games/shticker-book-unwritten/unwrapped.nix2
-rw-r--r--pkgs/games/soldat-unstable/default.nix34
-rw-r--r--pkgs/games/steam/fhsenv.nix8
-rw-r--r--pkgs/games/steam/steam.nix6
-rw-r--r--pkgs/games/warzone2100/default.nix4
-rw-r--r--pkgs/misc/drivers/infnoise/default.nix43
-rw-r--r--pkgs/misc/drivers/infnoise/makefile.patch14
-rw-r--r--pkgs/misc/emulators/maiko/default.nix26
-rw-r--r--pkgs/misc/emulators/pcsx2/default.nix1
-rw-r--r--pkgs/misc/emulators/pcsxr/default.nix1
-rw-r--r--pkgs/misc/emulators/punes/default.nix61
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix14
-rw-r--r--pkgs/misc/emulators/ryujinx/default.nix6
-rw-r--r--pkgs/misc/emulators/ryujinx/deps.nix400
-rw-r--r--pkgs/misc/emulators/wine/base.nix1
-rw-r--r--pkgs/misc/emulators/wine/sources.nix15
-rw-r--r--pkgs/misc/frescobaldi/default.nix10
-rw-r--r--pkgs/misc/openrussian-cli/default.nix61
-rw-r--r--pkgs/misc/scream-receivers/default.nix56
-rw-r--r--pkgs/misc/screensavers/multilockscreen/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/deprecated.json2
-rw-r--r--pkgs/misc/vim-plugins/generated.nix1044
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix725
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names26
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix159
-rw-r--r--pkgs/misc/vscode-extensions/default.nix65
-rw-r--r--pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix4
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix6
-rw-r--r--pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch7
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix11
-rw-r--r--pkgs/os-specific/darwin/chunkwm/default.nix2
-rw-r--r--pkgs/os-specific/darwin/darling/default.nix15
-rw-r--r--pkgs/os-specific/darwin/xcode/sdk-pkgs.nix9
-rw-r--r--pkgs/os-specific/linux/afuse/default.nix9
-rw-r--r--pkgs/os-specific/linux/anbox/kmod.nix2
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix14
-rw-r--r--pkgs/os-specific/linux/bluez/default.nix14
-rw-r--r--pkgs/os-specific/linux/btfs/default.nix2
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix6
-rw-r--r--pkgs/os-specific/linux/dropwatch/default.nix39
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix8
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix2
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix17
-rw-r--r--pkgs/os-specific/linux/flashbench/default.nix1
-rw-r--r--pkgs/os-specific/linux/fuse/common.nix2
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--pkgs/os-specific/linux/isgx/default.nix9
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix22
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json30
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.11.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-lqx.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-xanmod.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix4
-rwxr-xr-xpkgs/os-specific/linux/kernel/update-rt.sh1
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix4
-rw-r--r--pkgs/os-specific/linux/libfabric/default.nix4
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix7
-rw-r--r--pkgs/os-specific/linux/lm-sensors/default.nix1
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix26
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix2
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix6
-rw-r--r--pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix5
-rw-r--r--pkgs/os-specific/linux/radeontop/default.nix1
-rw-r--r--pkgs/os-specific/linux/rtw88/default.nix6
-rw-r--r--pkgs/os-specific/linux/sd-switch/default.nix6
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix7
-rw-r--r--pkgs/os-specific/linux/shadow/runtime-shell.patch13
-rw-r--r--pkgs/os-specific/linux/teck-udev-rules/default.nix22
-rw-r--r--pkgs/os-specific/linux/usbip/default.nix6
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix17
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix6
-rw-r--r--pkgs/os-specific/windows/libgnurx/default.nix5
-rw-r--r--pkgs/servers/asterisk/default.nix18
-rw-r--r--pkgs/servers/bazarr/default.nix4
-rw-r--r--pkgs/servers/calibre-web/default.nix1
-rw-r--r--pkgs/servers/clickhouse/default.nix3
-rw-r--r--pkgs/servers/consul/default.nix6
-rw-r--r--pkgs/servers/corosync/default.nix14
-rw-r--r--pkgs/servers/dico/default.nix4
-rw-r--r--pkgs/servers/dns/bind/default.nix4
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/gemini/agate/default.nix2
-rw-r--r--pkgs/servers/home-assistant/appdaemon.nix106
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix30
-rw-r--r--pkgs/servers/home-assistant/default.nix42
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py5
-rw-r--r--pkgs/servers/http/envoy/default.nix2
-rw-r--r--pkgs/servers/http/gitlab-pages/default.nix10
-rw-r--r--pkgs/servers/http/jetty/default.nix11
-rw-r--r--pkgs/servers/http/nginx/generic.nix5
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/quic.nix24
-rw-r--r--pkgs/servers/http/nginx/stable.nix4
-rw-r--r--pkgs/servers/http/tengine/default.nix7
-rw-r--r--pkgs/servers/irc/robustirc-bridge/default.nix1
-rw-r--r--pkgs/servers/jellyfin/10.5.x.nix61
-rw-r--r--pkgs/servers/jellyfin/default.nix9
-rw-r--r--pkgs/servers/ma1sd/default.nix6
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix9
-rw-r--r--pkgs/servers/mail/mailman/default.nix2
-rw-r--r--pkgs/servers/mail/mailman/hyperkitty.nix6
-rw-r--r--pkgs/servers/mail/mailman/postorius.nix2
-rw-r--r--pkgs/servers/mail/mailman/web.nix21
-rw-r--r--pkgs/servers/mail/opensmtpd/default.nix1
-rw-r--r--pkgs/servers/mail/postfix/default.nix7
-rw-r--r--pkgs/servers/mail/spamassassin/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/mautrix-signal/default.nix55
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/misc/podgrab/default.nix30
-rw-r--r--pkgs/servers/monitoring/alertmanager-bot/default.nix6
-rw-r--r--pkgs/servers/monitoring/alertmanager-irc-relay/default.nix6
-rw-r--r--pkgs/servers/monitoring/mackerel-agent/default.nix1
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_systemd.nix5
-rw-r--r--pkgs/servers/monitoring/prometheus/unbound-exporter.nix30
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix4
-rw-r--r--pkgs/servers/mxisd/default.nix70
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix6
-rw-r--r--pkgs/servers/nosql/redis/default.nix7
-rw-r--r--pkgs/servers/oauth2-proxy/default.nix (renamed from pkgs/servers/oauth2_proxy/default.nix)0
-rw-r--r--pkgs/servers/ombi/default.nix31
-rw-r--r--pkgs/servers/quagga/default.nix73
-rw-r--r--pkgs/servers/radicale/3.x.nix26
-rw-r--r--pkgs/servers/rippled/default.nix12
-rw-r--r--pkgs/servers/roon-server/default.nix6
-rw-r--r--pkgs/servers/search/groonga/default.nix4
-rw-r--r--pkgs/servers/simple-http-server/default.nix29
-rw-r--r--pkgs/servers/sonarr/default.nix4
-rw-r--r--pkgs/servers/sql/materialize/default.nix91
-rw-r--r--pkgs/servers/sql/materialize/npm_deps.nix62
-rw-r--r--pkgs/servers/sql/postgresql/default.nix9
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgvector.nix29
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix11
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix2
-rw-r--r--pkgs/servers/teleport/default.nix25
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix4
-rw-r--r--pkgs/servers/web-apps/searx/default.nix42
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix12
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix10
-rw-r--r--pkgs/servers/x11/xorg/tarballs.list4
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix120
-rw-r--r--pkgs/servers/zookeeper/default.nix8
-rw-r--r--pkgs/shells/fish/plugins/default.nix4
-rw-r--r--pkgs/shells/fish/plugins/done.nix25
-rw-r--r--pkgs/shells/fish/plugins/forgit.nix26
-rw-r--r--pkgs/shells/nushell/default.nix7
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/stdenv/darwin/default.nix17
-rw-r--r--pkgs/stdenv/freebsd/default.nix10
-rw-r--r--pkgs/stdenv/generic/check-meta.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix9
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix25
-rw-r--r--pkgs/stdenv/linux/bootstrap-tools-musl/default.nix6
-rw-r--r--pkgs/stdenv/linux/bootstrap-tools/default.nix6
-rw-r--r--pkgs/stdenv/linux/default.nix11
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix15
-rw-r--r--pkgs/stdenv/native/default.nix2
-rw-r--r--pkgs/stdenv/nix/default.nix1
-rw-r--r--pkgs/test/cuda/cuda-samples/default.nix8
-rw-r--r--pkgs/test/cuda/default.nix2
-rw-r--r--pkgs/test/default.nix2
-rw-r--r--pkgs/test/vim/default.nix72
-rw-r--r--pkgs/tools/X11/libstrangle/default.nix1
-rw-r--r--pkgs/tools/admin/aws-nuke/default.nix6
-rw-r--r--pkgs/tools/admin/aws-vault/default.nix17
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix9
-rw-r--r--pkgs/tools/admin/bash-my-aws/default.nix6
-rw-r--r--pkgs/tools/admin/cjdns-tools/default.nix46
-rw-r--r--pkgs/tools/admin/cjdns-tools/wrapper.sh29
-rw-r--r--pkgs/tools/admin/clair/default.nix6
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/admin/oci-cli/default.nix58
-rw-r--r--pkgs/tools/admin/pulumi/data.nix170
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh41
-rw-r--r--pkgs/tools/admin/ssl-cert-check/default.nix44
-rw-r--r--pkgs/tools/admin/trivy/default.nix21
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix1
-rw-r--r--pkgs/tools/audio/beets/default.nix6
-rw-r--r--pkgs/tools/audio/beets/plugins/alternatives.nix12
-rw-r--r--pkgs/tools/audio/beets/plugins/copyartifacts.nix9
-rw-r--r--pkgs/tools/audio/beets/plugins/extrafiles.nix8
-rw-r--r--pkgs/tools/audio/spotdl/default.nix14
-rw-r--r--pkgs/tools/audio/tts/default.nix69
-rw-r--r--pkgs/tools/audio/yabridge/default.nix10
-rw-r--r--pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch10
-rw-r--r--pkgs/tools/backup/bupstash/default.nix6
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/kopia/default.nix14
-rw-r--r--pkgs/tools/backup/zrepl/default.nix6
-rw-r--r--pkgs/tools/compression/imagelol/default.nix29
-rw-r--r--pkgs/tools/compression/nx2elf/default.nix37
-rw-r--r--pkgs/tools/compression/zstd/default.nix18
-rw-r--r--pkgs/tools/filesystems/9pfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/9pfs/fix-darwin-build.patch47
-rw-r--r--pkgs/tools/filesystems/aefs/default.nix21
-rw-r--r--pkgs/tools/filesystems/android-file-transfer/darwin-dont-vendor-dependencies.patch21
-rw-r--r--pkgs/tools/filesystems/android-file-transfer/default.nix26
-rw-r--r--pkgs/tools/filesystems/archivemount/default.nix2
-rw-r--r--pkgs/tools/filesystems/avfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/boxfs/default.nix7
-rw-r--r--pkgs/tools/filesystems/btrfs-heatmap/default.nix20
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix27
-rw-r--r--pkgs/tools/filesystems/cryfs/default.nix16
-rw-r--r--pkgs/tools/filesystems/cryfs/use-macfuse.patch207
-rw-r--r--pkgs/tools/filesystems/curlftpfs/default.nix19
-rw-r--r--pkgs/tools/filesystems/darling-dmg/default.nix9
-rw-r--r--pkgs/tools/filesystems/dislocker/default.nix19
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/exfat/default.nix2
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/gitfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/httpfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/hubicfuse/default.nix13
-rw-r--r--pkgs/tools/filesystems/ifuse/default.nix2
-rw-r--r--pkgs/tools/filesystems/jmtpfs/default.nix14
-rw-r--r--pkgs/tools/filesystems/moosefs/default.nix18
-rw-r--r--pkgs/tools/filesystems/mp3fs/default.nix2
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--pkgs/tools/filesystems/romdirfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/s3backer/default.nix8
-rw-r--r--pkgs/tools/filesystems/sasquatch/default.nix45
-rw-r--r--pkgs/tools/filesystems/securefs/add-macfuse-support.patch188
-rw-r--r--pkgs/tools/filesystems/securefs/default.nix8
-rw-r--r--pkgs/tools/filesystems/squashfs-tools-ng/default.nix11
-rw-r--r--pkgs/tools/filesystems/squashfuse/default.nix6
-rw-r--r--pkgs/tools/filesystems/svnfs/default.nix26
-rw-r--r--pkgs/tools/filesystems/tmsu/default.nix12
-rw-r--r--pkgs/tools/filesystems/tmsu/deps.nix4
-rw-r--r--pkgs/tools/filesystems/wdfs/default.nix23
-rw-r--r--pkgs/tools/games/ajour/default.nix6
-rw-r--r--pkgs/tools/graphics/agi/default.nix69
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix71
-rw-r--r--pkgs/tools/graphics/exif/default.nix17
-rw-r--r--pkgs/tools/graphics/grim/default.nix4
-rw-r--r--pkgs/tools/graphics/jhead/default.nix30
-rw-r--r--pkgs/tools/graphics/pikchr/default.nix36
-rw-r--r--pkgs/tools/graphics/timg/default.nix33
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix4
-rw-r--r--pkgs/tools/inputmethods/kime/default.nix113
-rw-r--r--pkgs/tools/inputmethods/remote-touchpad/default.nix33
-rw-r--r--pkgs/tools/misc/bat-extras/default.nix8
-rw-r--r--pkgs/tools/misc/betterdiscord-installer/default.nix2
-rw-r--r--pkgs/tools/misc/broot/default.nix11
-rw-r--r--pkgs/tools/misc/castty/default.nix25
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/ckb-next/default.nix10
-rw-r--r--pkgs/tools/misc/ckb-next/install-dirs.patch6
-rw-r--r--pkgs/tools/misc/ckb-next/modprobe.patch10
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix34
-rw-r--r--pkgs/tools/misc/cyclonedx-python/default.nix47
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix4
-rw-r--r--pkgs/tools/misc/ddcutil/nixos-paths.diff54
-rw-r--r--pkgs/tools/misc/dialog/default.nix (renamed from pkgs/development/tools/misc/dialog/default.nix)8
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/dylibbundler/default.nix22
-rw-r--r--pkgs/tools/misc/ethminer/default.nix22
-rw-r--r--pkgs/tools/misc/ffsend/default.nix15
-rw-r--r--pkgs/tools/misc/flexoptix-app/default.nix47
-rw-r--r--pkgs/tools/misc/fontforge/default.nix11
-rw-r--r--pkgs/tools/misc/goaccess/default.nix27
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/grit/default.nix6
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix2
-rw-r--r--pkgs/tools/misc/handlr/default.nix15
-rw-r--r--pkgs/tools/misc/inav-blackbox-tools/default.nix34
-rw-r--r--pkgs/tools/misc/lf/default.nix8
-rw-r--r--pkgs/tools/misc/macchina/default.nix29
-rw-r--r--pkgs/tools/misc/miniserve/default.nix6
-rw-r--r--pkgs/tools/misc/neofetch/default.nix14
-rw-r--r--pkgs/tools/misc/nncp/default.nix4
-rw-r--r--pkgs/tools/misc/ostree/default.nix8
-rw-r--r--pkgs/tools/misc/pcb2gcode/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/semiphemeral/default.nix26
-rw-r--r--pkgs/tools/misc/snapper/default.nix14
-rw-r--r--pkgs/tools/misc/sta/default.nix15
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix5
-rw-r--r--pkgs/tools/misc/tmux/default.nix16
-rw-r--r--pkgs/tools/misc/togglesg-download/default.nix46
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix14
-rw-r--r--pkgs/tools/misc/trash-cli/nix-paths.patch26
-rw-r--r--pkgs/tools/misc/tremor-rs/default.nix12
-rw-r--r--pkgs/tools/misc/vector/default.nix6
-rw-r--r--pkgs/tools/misc/watchexec/default.nix6
-rw-r--r--pkgs/tools/misc/websocat/default.nix14
-rw-r--r--pkgs/tools/misc/wemux/default.nix38
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix2
-rw-r--r--pkgs/tools/misc/xdxf2slob/default.nix1
-rw-r--r--pkgs/tools/misc/xflux/gui.nix2
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix4
-rw-r--r--pkgs/tools/misc/zellij/default.nix37
-rw-r--r--pkgs/tools/misc/zoxide/default.nix24
-rw-r--r--pkgs/tools/networking/anevicon/default.nix39
-rw-r--r--pkgs/tools/networking/babeld/default.nix10
-rw-r--r--pkgs/tools/networking/bgpq4/default.nix4
-rw-r--r--pkgs/tools/networking/boundary/default.nix8
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/networking/croc/test-local-relay.nix4
-rw-r--r--pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch139
-rw-r--r--pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch473
-rw-r--r--pkgs/tools/networking/curl/default.nix5
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--pkgs/tools/networking/dnstwist/default.nix37
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix19
-rw-r--r--pkgs/tools/networking/fastd/default.nix38
-rw-r--r--pkgs/tools/networking/gmrender-resurrect/default.nix18
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/innernet/default.nix51
-rw-r--r--pkgs/tools/networking/kea/default.nix5
-rw-r--r--pkgs/tools/networking/lychee/default.nix8
-rw-r--r--pkgs/tools/networking/minidlna/default.nix4
-rw-r--r--pkgs/tools/networking/ntp/default.nix2
-rw-r--r--pkgs/tools/networking/nxdomain/default.nix6
-rw-r--r--pkgs/tools/networking/qrcp/default.nix17
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/siege/default.nix19
-rw-r--r--pkgs/tools/networking/sish/default.nix25
-rw-r--r--pkgs/tools/networking/swagger-codegen/default.nix6
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix33
-rw-r--r--pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--pkgs/tools/networking/wstunnel/default.nix41
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix14
-rw-r--r--pkgs/tools/nix/manix/default.nix10
-rw-r--r--pkgs/tools/nix/rnix-hashes/default.nix11
-rw-r--r--pkgs/tools/package-management/cargo-audit/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--pkgs/tools/package-management/libdnf/darwin.patch57
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-update/default.nix8
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix6
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix16
-rw-r--r--pkgs/tools/package-management/protontricks/steam-run.patch376
-rw-r--r--pkgs/tools/security/badtouch/default.nix50
-rw-r--r--pkgs/tools/security/bettercap/default.nix12
-rw-r--r--pkgs/tools/security/cosign/default.nix20
-rw-r--r--pkgs/tools/security/cryptomator/default.nix10
-rw-r--r--pkgs/tools/security/dnsx/default.nix6
-rw-r--r--pkgs/tools/security/earlybird/default.nix26
-rw-r--r--pkgs/tools/security/ffuf/default.nix12
-rw-r--r--pkgs/tools/security/flare-floss/default.nix46
-rw-r--r--pkgs/tools/security/ghidra/default.nix9
-rw-r--r--pkgs/tools/security/gitleaks/default.nix4
-rw-r--r--pkgs/tools/security/grype/default.nix6
-rw-r--r--pkgs/tools/security/hfinger/default.nix4
-rw-r--r--pkgs/tools/security/honeytrap/default.nix28
-rw-r--r--pkgs/tools/security/httpx/default.nix4
-rw-r--r--pkgs/tools/security/keybase/gui.nix4
-rw-r--r--pkgs/tools/security/kubei/default.nix31
-rw-r--r--pkgs/tools/security/kubesec/default.nix28
-rw-r--r--pkgs/tools/security/ldeep/default.nix4
-rw-r--r--pkgs/tools/security/libmodsecurity/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock46
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix86
-rw-r--r--pkgs/tools/security/nbtscanner/default.nix29
-rw-r--r--pkgs/tools/security/nsjail/001-fix-bison-link-error.patch30
-rw-r--r--pkgs/tools/security/nsjail/default.nix7
-rw-r--r--pkgs/tools/security/ntlmrecon/default.nix35
-rw-r--r--pkgs/tools/security/nwipe/default.nix36
-rw-r--r--pkgs/tools/security/oath-toolkit/default.nix41
-rw-r--r--pkgs/tools/security/passphrase2pgp/default.nix6
-rw-r--r--pkgs/tools/security/pcsclite/default.nix38
-rw-r--r--pkgs/tools/security/pcsctools/default.nix37
-rw-r--r--pkgs/tools/security/plasma-pass/default.nix41
-rw-r--r--pkgs/tools/security/prs/default.nix15
-rw-r--r--pkgs/tools/security/rbw/bump-security-framework-crate.patch19
-rw-r--r--pkgs/tools/security/rbw/default.nix17
-rw-r--r--pkgs/tools/security/tboot/default.nix21
-rw-r--r--pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch50
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/security/tpm2-tools/default.nix6
-rw-r--r--pkgs/tools/security/traitor/default.nix30
-rw-r--r--pkgs/tools/security/trousers/allow-non-tss-config-file-owner.patch4
-rw-r--r--pkgs/tools/security/trousers/default.nix10
-rw-r--r--pkgs/tools/security/vault/default.nix4
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix10
-rw-r--r--pkgs/tools/security/wprecon/default.nix27
-rw-r--r--pkgs/tools/security/xorex/default.nix38
-rw-r--r--pkgs/tools/security/yarGen/default.nix58
-rw-r--r--pkgs/tools/security/yubikey-agent/default.nix10
-rw-r--r--pkgs/tools/security/yubikey-agent/yubikey-agent.service35
-rw-r--r--pkgs/tools/system/awstats/default.nix6
-rw-r--r--pkgs/tools/system/bpytop/default.nix12
-rw-r--r--pkgs/tools/system/gdu/default.nix14
-rw-r--r--pkgs/tools/system/gptman/default.nix22
-rw-r--r--pkgs/tools/system/hwinfo/default.nix8
-rw-r--r--pkgs/tools/system/inxi/default.nix6
-rw-r--r--pkgs/tools/text/amber/default.nix4
-rw-r--r--pkgs/tools/text/chroma/default.nix7
-rw-r--r--pkgs/tools/text/dcs/default.nix48
-rw-r--r--pkgs/tools/text/fastmod/default.nix6
-rw-r--r--pkgs/tools/text/frangipanni/default.nix4
-rw-r--r--pkgs/tools/text/highlight/default.nix4
-rw-r--r--pkgs/tools/text/languagetool/default.nix8
-rw-r--r--pkgs/tools/text/mdbook-mermaid/default.nix24
-rw-r--r--pkgs/tools/text/ocrmypdf/default.nix5
-rw-r--r--pkgs/tools/text/ripgrep-all/default.nix5
-rw-r--r--pkgs/tools/text/ripgrep/default.nix1
-rw-r--r--pkgs/tools/text/zoekt/default.nix29
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix28
-rw-r--r--pkgs/tools/typesetting/pdftk/default.nix1
-rw-r--r--pkgs/tools/virtualization/govc/default.nix4
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix14
-rw-r--r--pkgs/tools/wayland/slurp/default.nix4
-rw-r--r--pkgs/tools/wayland/wdomirror/default.nix38
-rw-r--r--pkgs/tools/wayland/wlsunset/default.nix8
-rw-r--r--pkgs/tools/wayland/ydotool/default.nix24
-rw-r--r--pkgs/tools/wayland/ydotool/fixup-cmakelists.patch58
-rw-r--r--pkgs/top-level/aliases.nix31
-rw-r--r--pkgs/top-level/all-packages.nix589
-rw-r--r--pkgs/top-level/beam-packages.nix2
-rw-r--r--pkgs/top-level/coq-packages.nix1
-rw-r--r--pkgs/top-level/kodi-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix36
-rw-r--r--pkgs/top-level/perl-packages.nix52
-rw-r--r--pkgs/top-level/python-packages.nix1161
-rw-r--r--pkgs/top-level/python2-packages.nix647
-rw-r--r--pkgs/top-level/ruby-packages.nix311
-rw-r--r--pkgs/top-level/static.nix18
2213 files changed, 42968 insertions, 20363 deletions
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index c75adb11ed4..10d1bb9ca65 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -3,7 +3,7 @@
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
 , fftw, phonon, plasma-framework, threadweaver
-, curl, ffmpeg_3, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+, curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
 }:
 
 mkDerivation rec {
@@ -23,7 +23,7 @@ mkDerivation rec {
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
     karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
     phonon plasma-framework threadweaver
-    curl fftw ffmpeg_3 gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+    curl fftw ffmpeg gdk-pixbuf libaio liblastfm libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
     pcre snappy taglib taglib_extras
   ];
 
diff --git a/pkgs/applications/audio/apple-music-electron/default.nix b/pkgs/applications/audio/apple-music-electron/default.nix
index e4d43d7f01f..850f644afc3 100644
--- a/pkgs/applications/audio/apple-music-electron/default.nix
+++ b/pkgs/applications/audio/apple-music-electron/default.nix
@@ -18,7 +18,7 @@ in appimageTools.wrapType2 {
 
     install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace "Exec=AppRun" "Exec=$out/bin/apple-music-electron"
+      --replace 'Exec=AppRun' 'Exec=${pname}'
     cp -r ${appimageContents}/usr/share/icons $out/share
   '';
 
diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix
index 3d8e0c8f356..01dd736dc59 100644
--- a/pkgs/applications/audio/bslizr/default.nix
+++ b/pkgs/applications/audio/bslizr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSlizr";
-  version = "1.2.12";
+  version = "1.2.14";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vPkcgG+pAfjsPRMyxdMRUxWGch+RG+pdaAcekP5pKEA=";
+    sha256 = "sha256-dut3I68tJWQH+X6acKROqb5HywufeBQ4/HkXFKsA3hY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 8f02e8da893..3d594a896cf 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -1,22 +1,42 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, pkg-config
-, qtbase, qtsvg, qttools, perl
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qtbase
+, qtsvg
+, qttools
+, perl
 
-# Cantata doesn't build with cdparanoia enabled so we disable that
-# default for now until I (or someone else) figure it out.
-, withCdda ? false, cdparanoia
-, withCddb ? false, libcddb
-, withLame ? false, lame
-, withMusicbrainz ? false, libmusicbrainz5
+  # Cantata doesn't build with cdparanoia enabled so we disable that
+  # default for now until I (or someone else) figure it out.
+, withCdda ? false
+, cdparanoia
+, withCddb ? false
+, libcddb
+, withLame ? false
+, lame
+, withMusicbrainz ? false
+, libmusicbrainz5
 
-, withTaglib ? true, taglib, taglib_extras
-, withHttpStream ? true, qtmultimedia
-, withReplaygain ? true, ffmpeg_3, speex, mpg123
-, withMtp ? true, libmtp
+, withTaglib ? true
+, taglib
+, taglib_extras
+, withHttpStream ? true
+, qtmultimedia
+, withReplaygain ? true
+, ffmpeg
+, speex
+, mpg123
+, withMtp ? true
+, libmtp
 , withOnlineServices ? true
-, withDevices ? true, udisks2
+, withDevices ? true
+, udisks2
 , withDynamic ? true
 , withHttpServer ? true
-, withLibVlc ? false, libvlc
+, withLibVlc ? false
+, libvlc
 , withStreams ? true
 }:
 
@@ -31,22 +51,25 @@ assert withReplaygain -> withTaglib;
 assert withLibVlc -> withHttpStream;
 
 let
-  version = "2.4.2";
-  pname = "cantata";
-  fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
-  fstats = x: map (fstat x);
+  fstat = x: fn:
+    "-DENABLE_${fn}=${if x then "ON" else "OFF"}";
+
+  fstats = x:
+    map (fstat x);
 
   withUdisks = (withTaglib && withDevices);
 
-  perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+  perl' = perl.withPackages (ppkgs: with ppkgs; [ URI ]);
 
-in mkDerivation {
-  name = "${pname}-${version}";
+in
+mkDerivation rec {
+  pname = "cantata";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
-    owner  = "CDrummond";
-    repo   = "cantata";
-    rev    = "v${version}";
+    owner = "CDrummond";
+    repo = "cantata";
+    rev = "v${version}";
     sha256 = "15qfx9bpfdplxxs08inwf2j8kvf7g5cln5sv1wj1l2l41vbf1mjr";
   };
 
@@ -63,44 +86,44 @@ in mkDerivation {
 
   buildInputs = [ qtbase qtsvg perl' ]
     ++ lib.optionals withTaglib [ taglib taglib_extras ]
-    ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
-    ++ lib.optional  withHttpStream qtmultimedia
-    ++ lib.optional  withCdda cdparanoia
-    ++ lib.optional  withCddb libcddb
-    ++ lib.optional  withLame lame
-    ++ lib.optional  withMtp libmtp
-    ++ lib.optional  withMusicbrainz libmusicbrainz5
-    ++ lib.optional  withUdisks udisks2
-    ++ lib.optional  withLibVlc libvlc;
+    ++ lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
+    ++ lib.optional withHttpStream qtmultimedia
+    ++ lib.optional withCdda cdparanoia
+    ++ lib.optional withCddb libcddb
+    ++ lib.optional withLame lame
+    ++ lib.optional withMtp libmtp
+    ++ lib.optional withMusicbrainz libmusicbrainz5
+    ++ lib.optional withUdisks udisks2
+    ++ lib.optional withLibVlc libvlc;
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
 
   cmakeFlags = lib.flatten [
-    (fstats withTaglib        [ "TAGLIB" "TAGLIB_EXTRAS" ])
-    (fstats withReplaygain    [ "FFMPEG" "MPG123" "SPEEXDSP" ])
-    (fstat withHttpStream     "HTTP_STREAM_PLAYBACK")
-    (fstat withCdda           "CDPARANOIA")
-    (fstat withCddb           "CDDB")
-    (fstat withLame           "LAME")
-    (fstat withMtp            "MTP")
-    (fstat withMusicbrainz    "MUSICBRAINZ")
+    (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
+    (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
+    (fstat withHttpStream "HTTP_STREAM_PLAYBACK")
+    (fstat withCdda "CDPARANOIA")
+    (fstat withCddb "CDDB")
+    (fstat withLame "LAME")
+    (fstat withMtp "MTP")
+    (fstat withMusicbrainz "MUSICBRAINZ")
     (fstat withOnlineServices "ONLINE_SERVICES")
-    (fstat withDynamic        "DYNAMIC")
-    (fstat withDevices        "DEVICES_SUPPORT")
-    (fstat withHttpServer     "HTTP_SERVER")
-    (fstat withLibVlc         "LIBVLC")
-    (fstat withStreams        "STREAMS")
-    (fstat withUdisks         "UDISKS2")
+    (fstat withDynamic "DYNAMIC")
+    (fstat withDevices "DEVICES_SUPPORT")
+    (fstat withHttpServer "HTTP_SERVER")
+    (fstat withLibVlc "LIBVLC")
+    (fstat withStreams "STREAMS")
+    (fstat withUdisks "UDISKS2")
     "-DENABLE_HTTPS_SUPPORT=ON"
   ];
 
   meta = with lib; {
-    homepage    = "https://github.com/cdrummond/cantata";
     description = "A graphical client for MPD";
-    license     = licenses.gpl3;
+    homepage = "https://github.com/cdrummond/cantata";
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
-    # Technically Cantata can run on Windows so if someone wants to
+    # Technically, Cantata should run on Darwin/Windows so if someone wants to
     # bother figuring that one out, be my guest.
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix
index 40fb0cfda59..04c15eca599 100644
--- a/pkgs/applications/audio/carla/default.nix
+++ b/pkgs/applications/audio/carla/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, ffmpeg_3, jack2,
+{ lib, stdenv, fetchFromGitHub, alsaLib, file, fluidsynth, jack2,
   liblo, libpulseaudio, libsndfile, pkg-config, python3Packages,
   which, withFrontend ? true,
   withQt ? true, qtbase ? null, wrapQtAppsHook ? null,
@@ -15,13 +15,13 @@ assert withGtk3 -> gtk3 != null;
 
 stdenv.mkDerivation rec {
   pname = "carla";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "falkTX";
     repo = pname;
     rev = "v${version}";
-    sha256 = "B4xoRuNEW4Lz9haP8fqxOTcysGTNEXFOq9UXqUJLSFw=";
+    sha256 = "sha256-724EFBpbmPMuU1m3T0XMaeohURJA5JcxHfUPYbZ/2LE=";
   };
 
   nativeBuildInputs = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ] ++ optional withFrontend pyqt5;
 
   buildInputs = [
-    file liblo alsaLib fluidsynth ffmpeg_3 jack2 libpulseaudio libsndfile
+    file liblo alsaLib fluidsynth jack2 libpulseaudio libsndfile
   ] ++ optional withQt qtbase
     ++ optional withGtk2 gtk2
     ++ optional withGtk3 gtk3;
diff --git a/pkgs/applications/audio/cd-discid/default.nix b/pkgs/applications/audio/cd-discid/default.nix
index 109ce1295b4..16c574e8d03 100644
--- a/pkgs/applications/audio/cd-discid/default.nix
+++ b/pkgs/applications/audio/cd-discid/default.nix
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://linukz.org/cd-discid.shtml";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
     description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
 
diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix
index dfaf7127f4b..ef4970a1608 100644
--- a/pkgs/applications/audio/drumgizmo/default.nix
+++ b/pkgs/applications/audio/drumgizmo/default.nix
@@ -1,37 +1,29 @@
-{ lib, stdenv, fetchurl, fetchpatch, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
+{ lib, stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
 , libpthreadstubs, libsmf, libsndfile, lv2, pkg-config, zita-resampler
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.18.1";
+  version = "0.9.19";
   pname = "drumgizmo";
 
   src = fetchurl {
     url = "https://www.drumgizmo.org/releases/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7";
+    sha256 = "18x28vhif0c97xz02k22xwqxxig6fi6j0356mlz2vf7vb25z69kl";
   };
 
-  patches = [
-    # Fix build for lv2 1.18.0
-    (fetchpatch {
-      url = "http://cgit.drumgizmo.org/plugingizmo.git/patch/?id=be64ddf9da525cd5c6757464efc966052731ba71";
-      sha256 = "17w8g78i5avssc7m8rpw64ka3rai8dff81wfzir9cpxp8s2h44qf";
-      extraPrefix = "plugin/plugingizmo/";
-      stripLen = 1;
-    })
-  ];
-
   configureFlags = [ "--enable-lv2" ];
 
+  nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [
     alsaLib expat glib libjack2 libXext libX11 libpng libpthreadstubs
-    libsmf libsndfile lv2 pkg-config zita-resampler
+    libsmf libsndfile lv2 zita-resampler
   ];
 
   meta = with lib; {
     description = "An LV2 sample based drum plugin";
     homepage = "https://www.drumgizmo.org";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.goibhniu maintainers.nico202 ];
   };
diff --git a/pkgs/applications/audio/fdkaac/default.nix b/pkgs/applications/audio/fdkaac/default.nix
index 31b009c4133..fd6726e9ac2 100644
--- a/pkgs/applications/audio/fdkaac/default.nix
+++ b/pkgs/applications/audio/fdkaac/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fdkaac";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "nu774";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02mzx4bird2q5chzpavfc9pg259hwfvq6px85xarm59vmj9nryb6";
+    sha256 = "tHhICq/FzbkvWkDdNzGqGoo7nIDb+DJXmkFwtPIA89c=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "Command line encoder frontend for libfdk-aac encder";
+    description = "Command line encoder frontend for libfdk-aac encoder";
     longDescription = ''
       fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
       and encodes it into either M4A / AAC file.
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index a9dc7308aca..83d9c5da838 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flacon";
-  version = "6.1.0";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "flacon";
     repo = "flacon";
     rev = "v${version}";
-    sha256 = "04yp3aym7h70xjni9ancqv5lc4zds5a8dgw3fzgqs8k5nmh074gv";
+    sha256 = "sha256-35tARJkyhC8EisIyDCwuT/UUruzLjJRUuZysuqeNssM=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index e794726e050..490591ec9e6 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hydrogen";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "hydrogen-music";
     repo = pname;
     rev = version;
-    sha256 = "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1";
+    sha256 = "sha256-t3f+T1QTNbuJnWmD+q0yPgQxXPXvl91lZN17pKUVFlo=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Advanced drum machine";
     homepage = "http://www.hydrogen-music.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ goibhniu orivej ];
   };
diff --git a/pkgs/applications/audio/kmetronome/default.nix b/pkgs/applications/audio/kmetronome/default.nix
index 02353fcf4f5..51c853809fd 100644
--- a/pkgs/applications/audio/kmetronome/default.nix
+++ b/pkgs/applications/audio/kmetronome/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kmetronome";
-  version = "1.0.1";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0bzm6vzlm32kjrgn1nvp096b2d41ybys2sk145nhy992wg56v32s";
+    sha256 = "1ln0nm24w6bj7wc8cay08j5azzznigd39cbbw3h4skg6fxd8p0s7";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
diff --git a/pkgs/applications/audio/midi-visualizer/default.nix b/pkgs/applications/audio/midi-visualizer/default.nix
index 37cfd0fac40..0213dc4af6d 100644
--- a/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/pkgs/applications/audio/midi-visualizer/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "MIDIVisualizer";
-  version = "6.3";
+  version = "6.4";
 
   src = fetchFromGitHub {
     owner = "kosua20";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U/YmxHD6e13I++aW+z1Y5xtZ+MN0KUJLSskrF4+UgTE=";
+    sha256 = "sha256-XR5xmQYVbBR6QWt/+PLeGqg0t4xl35MPrQNaPsmgAYA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper];
diff --git a/pkgs/applications/audio/mousai/default.nix b/pkgs/applications/audio/mousai/default.nix
new file mode 100644
index 00000000000..502842c7aa7
--- /dev/null
+++ b/pkgs/applications/audio/mousai/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, python3
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, gettext
+, glib
+, gobject-introspection
+, gst_all_1
+, gtk3
+, libhandy
+, librsvg
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "mousai";
+  version = "0.3.1";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "SeaDve";
+    repo = "Mousai";
+    rev = "v${version}";
+    sha256 = "0x57dci0prhlj79h74yh79cazn48rn0bckz5j3z4njk4fwc3fvfx";
+  };
+
+  postPatch = ''
+    patchShebangs build-aux/meson
+  '';
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    gettext
+    glib
+    gtk3
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gtk3
+    libhandy
+    librsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+    requests
+  ];
+
+  meta = with lib; {
+    description = "Identify any songs in seconds";
+    homepage = "https://github.com/SeaDve/Mousai";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix
index a3e5b3e50eb..153e8b9940b 100644
--- a/pkgs/applications/audio/mpg123/default.nix
+++ b/pkgs/applications/audio/mpg123/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv
 , fetchurl
 , makeWrapper
-
 , alsaLib
 , perl
+, withConplay ? !stdenv.targetPlatform.isWindows
 }:
 
 stdenv.mkDerivation rec {
@@ -14,35 +14,36 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-UCqX4Nk1vn432YczgCHY8wG641wohPKoPVnEtSRm7wY=";
   };
 
-  outputs = [ "out" "conplay" ];
+  outputs = [ "out" ] ++ lib.optionals withConplay [ "conplay" ];
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = lib.optionals withConplay [ makeWrapper ];
 
-  buildInputs = [ perl ] ++ lib.optional (!stdenv.isDarwin) alsaLib;
+  buildInputs = lib.optionals withConplay [ perl ]
+    ++ lib.optionals (!stdenv.isDarwin && !stdenv.targetPlatform.isWindows) [ alsaLib ];
 
   configureFlags = lib.optional
     (stdenv.hostPlatform ? mpg123)
     "--with-cpu=${stdenv.hostPlatform.mpg123.cpu}";
 
-  postInstall = ''
+  postInstall = lib.optionalString withConplay ''
     mkdir -p $conplay/bin
     mv scripts/conplay $conplay/bin/
   '';
 
-  preFixup = ''
+  preFixup = lib.optionalString withConplay ''
     patchShebangs $conplay/bin/conplay
   '';
 
-  postFixup = ''
+  postFixup = lib.optionalString withConplay ''
     wrapProgram $conplay/bin/conplay \
       --prefix PATH : $out/bin
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Fast console MPEG Audio Player and decoder library";
-    homepage = "http://mpg123.org";
-    license = lib.licenses.lgpl21;
-    maintainers = [ lib.maintainers.ftrvxmtrx ];
-    platforms = lib.platforms.unix;
+    homepage = "https://mpg123.org";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.ftrvxmtrx ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix
index 0079947438c..37f647a4a47 100644
--- a/pkgs/applications/audio/mpg321/default.nix
+++ b/pkgs/applications/audio/mpg321/default.nix
@@ -37,7 +37,6 @@ stdenv.mkDerivation rec {
     description = "Command-line MP3 player";
     homepage = "http://mpg321.sourceforge.net/";
     license = licenses.gpl2;
-    maintainers = [ maintainers.rycee ];
     platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/mympd/default.nix b/pkgs/applications/audio/mympd/default.nix
index bd00a692b7f..03d0556326a 100644
--- a/pkgs/applications/audio/mympd/default.nix
+++ b/pkgs/applications/audio/mympd/default.nix
@@ -8,18 +8,18 @@
 , lua5_3
 , libid3tag
 , flac
-, mongoose
+, pcre
 }:
 
 stdenv.mkDerivation rec {
   pname = "mympd";
-  version = "6.10.0";
+  version = "7.0.2";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${version}";
-    sha256 = "sha256-QGJti1tKKJlumLgABPmROplF0UVGMWMnyRXLb2cEieQ=";
+    sha256 = "sha256-2V3LbgnJfTIO71quZ+hfLnw/lNLYxXt19jw2Od6BVvM=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     lua5_3
     libid3tag
     flac
+    pcre
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/audio/myxer/default.nix b/pkgs/applications/audio/myxer/default.nix
new file mode 100644
index 00000000000..0aa3727f797
--- /dev/null
+++ b/pkgs/applications/audio/myxer/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, libpulseaudio
+, glib
+, pango
+, gtk3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "myxer";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "Aurailus";
+    repo = pname;
+    rev = version;
+    sha256 = "0bnhpzmx4yyasv0j7bp31q6jm20p0qwcia5bzmpkz1jhnc27ngix";
+  };
+
+  cargoSha256 = "1cyh0nk627sgyr78rcnhj7af5jcahvjkiv5sz7xwqfdhvx5kqsk5";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libpulseaudio glib pango gtk3 ];
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A modern Volume Mixer for PulseAudio";
+    homepage = "https://github.com/Aurailus/Myxer";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ erin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index c0fa2722878..fee5dc88403 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-+qv2FXyMsbJKBZryduFi+p+aO5zTgQxDuRKIYMk4Ohs=";
   };
 
+  enableParallelBuilding = true;
   configureFlags = [ "BOOST_LIB_SUFFIX=" ]
     ++ optional outputsSupport "--enable-outputs"
     ++ optional visualizerSupport "--enable-visualizer --with-fftw"
diff --git a/pkgs/applications/audio/nuclear/default.nix b/pkgs/applications/audio/nuclear/default.nix
index 6b2a5b67122..e107f44cf6f 100644
--- a/pkgs/applications/audio/nuclear/default.nix
+++ b/pkgs/applications/audio/nuclear/default.nix
@@ -18,7 +18,7 @@ in appimageTools.wrapType2 {
 
     install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=$out/bin/nuclear'
+      --replace 'Exec=AppRun' 'Exec=${pname}'
     cp -r ${appimageContents}/usr/share/icons $out/share
   '';
 
diff --git a/pkgs/applications/audio/opusfile/default.nix b/pkgs/applications/audio/opusfile/default.nix
index e4f7e6ca6b4..a6683904cb1 100644
--- a/pkgs/applications/audio/opusfile/default.nix
+++ b/pkgs/applications/audio/opusfile/default.nix
@@ -1,23 +1,27 @@
 { lib, stdenv, fetchurl, pkg-config, openssl, libogg, libopus }:
 
 stdenv.mkDerivation rec {
-  name = "opusfile-0.12";
+  pname = "opusfile";
+  version = "0.12";
   src = fetchurl {
-    url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+    url = "http://downloads.xiph.org/releases/opus/opusfile-${version}.tar.gz";
     sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl libogg ];
   propagatedBuildInputs = [ libopus ];
-  patches = [ ./include-multistream.patch ];
+  patches = [ ./include-multistream.patch ]
+    # fixes problem with openssl 1.1 dependency
+    # see https://github.com/xiph/opusfile/issues/13
+    ++ lib.optionals stdenv.hostPlatform.isWindows [ ./disable-cert-store.patch ];
   configureFlags = [ "--disable-examples" ];
 
   meta = with lib; {
     description = "High-level API for decoding and seeking in .opus files";
     homepage = "https://www.opus-codec.org/";
     license = licenses.bsd3;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ taeer ];
   };
 }
diff --git a/pkgs/applications/audio/opusfile/disable-cert-store.patch b/pkgs/applications/audio/opusfile/disable-cert-store.patch
new file mode 100644
index 00000000000..e0a7dd4fe3d
--- /dev/null
+++ b/pkgs/applications/audio/opusfile/disable-cert-store.patch
@@ -0,0 +1,35 @@
+diff --git a/src/http.c b/src/http.c
+index bd08562..3a3592c 100644
+--- a/src/http.c
++++ b/src/http.c
+@@ -327,10 +327,12 @@ static int op_poll_win32(struct pollfd *_fds,nfds_t _nfds,int _timeout){
+ typedef ptrdiff_t ssize_t;
+ #  endif
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ /*Load certificates from the built-in certificate store.*/
+ int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx);
+ #  define SSL_CTX_set_default_verify_paths \
+  SSL_CTX_set_default_verify_paths_win32
++#endif
+ 
+ # else
+ /*Normal Berkeley sockets.*/
+diff --git a/src/wincerts.c b/src/wincerts.c
+index 409a4e0..c355952 100644
+--- a/src/wincerts.c
++++ b/src/wincerts.c
+@@ -33,6 +33,8 @@
+ # include <openssl/err.h>
+ # include <openssl/x509.h>
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++
+ static int op_capi_new(X509_LOOKUP *_lu){
+   HCERTSTORE h_store;
+   h_store=CertOpenStore(CERT_STORE_PROV_SYSTEM_A,0,0,
+@@ -171,3 +173,4 @@ int SSL_CTX_set_default_verify_paths_win32(SSL_CTX *_ssl_ctx){
+ }
+ 
+ #endif
++#endif
diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index cb682f91b6d..47b74cc865b 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -25,7 +25,7 @@ in appimageTools.wrapType2 {
     install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
     install -m 444 -D ${appimageContents}/plexamp.png \
       $out/share/icons/hicolor/512x512/apps/plexamp.png
-    substituteInPlace $out/share/applications/plexamp.desktop \
+    substituteInPlace $out/share/applications/${pname}.desktop \
       --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
diff --git a/pkgs/applications/audio/ptcollab/default.nix b/pkgs/applications/audio/ptcollab/default.nix
index 36495986201..f5752dd96f4 100644
--- a/pkgs/applications/audio/ptcollab/default.nix
+++ b/pkgs/applications/audio/ptcollab/default.nix
@@ -1,26 +1,40 @@
 { mkDerivation
-, lib, stdenv
+, lib
+, stdenv
 , fetchFromGitHub
+, nix-update-script
 , qmake
 , qtbase
 , qtmultimedia
 , libvorbis
+, rtmidi
 }:
 
 mkDerivation rec {
   pname = "ptcollab";
-  version = "0.3.5.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "yuxshao";
     repo = "ptcollab";
     rev = "v${version}";
-    sha256 = "1ahfxjm1chz8k65rs7rgn4s2bgippq58fjcxl8fr21pzn718wqf1";
+    sha256 = "1yfnf47saxxj17x0vyxihr343kp7gz3fashzky79j80sqlm6ng85";
   };
 
+  postPatch = ''
+    substituteInPlace src/editor.pro \
+      --replace '/usr/include/rtmidi' '${rtmidi}/include/rtmidi'
+  '';
+
   nativeBuildInputs = [ qmake ];
 
-  buildInputs = [ qtbase qtmultimedia libvorbis ];
+  buildInputs = [ qtbase qtmultimedia libvorbis rtmidi ];
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
 
   meta = with lib; {
     description = "Experimental pxtone editor where you can collaborate with friends";
diff --git a/pkgs/applications/audio/pulseeffects/default.nix b/pkgs/applications/audio/pulseeffects/default.nix
index 33b15e977e7..7a7c7175a45 100644
--- a/pkgs/applications/audio/pulseeffects/default.nix
+++ b/pkgs/applications/audio/pulseeffects/default.nix
@@ -46,15 +46,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "pulseeffects";
-  # 5.0.3 crashes. Test carefully before updating.
-  # https://github.com/wwmm/pulseeffects/issues/927
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "14ir25q6bws26im6qmj3k6hkfdh5pc6mbvln7wkdwy5dv0vix3cm";
+    sha256 = "1dicvq17vajk3vr4g1y80599ahkw0dp5ynlany1cfljfjz40s8sx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 25263f2a2cb..2ff145d45cf 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -4,7 +4,7 @@
 , curl, libmms
 # input plugins
 , libmad, taglib, libvorbis, libogg, flac, libmpcdec, libmodplug, libsndfile
-, libcdio, cdparanoia, libcddb, faad2, ffmpeg_3, wildmidi
+, libcdio, cdparanoia, libcddb, faad2, ffmpeg, wildmidi
 # output plugins
 , alsaLib, libpulseaudio
 # effect plugins
@@ -44,7 +44,7 @@ mkDerivation rec {
       curl libmms
       # input plugins
       libmad taglib libvorbis libogg flac libmpcdec libmodplug libsndfile
-      libcdio cdparanoia libcddb faad2 ffmpeg_3 wildmidi
+      libcdio cdparanoia libcddb faad2 ffmpeg wildmidi
       # output plugins
       alsaLib libpulseaudio
       # effect plugins
@@ -53,10 +53,10 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based audio player that looks like Winamp";
-    homepage = "http://qmmp.ylsoftware.com/";
-    license = licenses.gpl2;
+    homepage = "https://qmmp.ylsoftware.com/";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
-    repositories.svn = "http://qmmp.googlecode.com/svn/";
+    repositories.svn = "https://svn.code.sf.net/p/qmmp-dev/code";
   };
 }
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index 571097ad478..2110a0deb24 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -30,7 +30,6 @@ python3.pkgs.buildPythonApplication rec {
       ++ optionals withDbusPython [ dbus-python ]
       ++ optionals withPyInotify [ pyinotify ]
       ++ optionals withMusicBrainzNgs [ musicbrainzngs ]
-      ++ optionals stdenv.isDarwin [ pyobjc ]
       ++ optionals withPahoMqtt [ paho-mqtt ];
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/applications/audio/r128gain/default.nix b/pkgs/applications/audio/r128gain/default.nix
index 3044acb3264..96053d08d00 100644
--- a/pkgs/applications/audio/r128gain/default.nix
+++ b/pkgs/applications/audio/r128gain/default.nix
@@ -3,7 +3,7 @@
 , genericUpdater
 , substituteAll
 , common-updater-scripts
-, ffmpeg_3
+, ffmpeg
 , python3Packages
 , sox
 }:
@@ -20,12 +20,10 @@ python3Packages.buildPythonApplication rec {
   };
 
   patches = [
-    (
-      substituteAll {
-        src = ./ffmpeg-location.patch;
-        ffmpeg = ffmpeg_3;
-      }
-    )
+    (substituteAll {
+      src = ./ffmpeg-location.patch;
+      inherit ffmpeg;
+    })
   ];
 
   propagatedBuildInputs = with python3Packages; [ crcmod ffmpeg-python mutagen tqdm ];
diff --git a/pkgs/applications/audio/sayonara/default.nix b/pkgs/applications/audio/sayonara/default.nix
index 722333134d9..651ac20db22 100644
--- a/pkgs/applications/audio/sayonara/default.nix
+++ b/pkgs/applications/audio/sayonara/default.nix
@@ -1,6 +1,7 @@
 { mkDerivation
 , cmake
 , fetchFromGitLab
+, nix-update-script
 , gst_all_1
 , lib
 , libpulseaudio
@@ -11,17 +12,23 @@
 , qttools
 , taglib
 , zlib
+, python3
 }:
 
+let
+  py = python3.withPackages (ps: with ps; [
+    pydbus
+  ]);
+in
 mkDerivation rec {
-  pname = "sayonara-player";
-  version = "1.6.0-beta6";
+  pname = "sayonara";
+  version = "1.6.0-beta7";
 
   src = fetchFromGitLab {
     owner = "luciocarreras";
     repo = "sayonara-player";
     rev = version;
-    sha256 = "sha256-SbJS0DQvbW++CNXbuDHQxFlLRb1kTtDdIdHOqu0YxeQ=";
+    sha256 = "14svszfldx32vn937rszd21rgl31vb5kzs0hnrg41ygx0br61rvd";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config qttools ];
@@ -32,6 +39,7 @@ mkDerivation rec {
     qtbase
     taglib
     zlib
+    py
   ]
   ++ (with gst_all_1; [
     gstreamer
@@ -54,6 +62,12 @@ mkDerivation rec {
     qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with lib; {
     description = "Sayonara music player";
     homepage = "https://sayonara-player.com/";
diff --git a/pkgs/applications/audio/scream/default.nix b/pkgs/applications/audio/scream/default.nix
new file mode 100644
index 00000000000..976ede5803d
--- /dev/null
+++ b/pkgs/applications/audio/scream/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, config, fetchFromGitHub, cmake, pkg-config
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "scream";
+  version = "3.6";
+
+  src = fetchFromGitHub {
+    owner = "duncanthrax";
+    repo = pname;
+    rev = version;
+    sha256 = "01k2zhfb781gfj3apmcjqbm5m05m6pvnh7fb5k81zwvqibai000v";
+  };
+
+  buildInputs = lib.optional pulseSupport libpulseaudio
+    ++ lib.optional alsaSupport alsaLib;
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [
+    "-DPULSEAUDIO_ENABLE=${if pulseSupport then "ON" else "OFF"}"
+    "-DALSA_ENABLE=${if alsaSupport then "ON" else "OFF"}"
+  ];
+
+  cmakeDir = "../Receivers/unix";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    set +o pipefail
+
+    # Programs exit with code 1 when testing help, so grep for a string
+    $out/bin/scream -h 2>&1 | grep -q Usage:
+  '';
+
+  meta = with lib; {
+    description = "Audio receiver for the Scream virtual network sound card";
+    homepage = "https://github.com/duncanthrax/scream";
+    license = licenses.mspl;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ arcnmx ];
+  };
+}
diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix
index cebf0d83e16..65f21c13612 100644
--- a/pkgs/applications/audio/sidplayfp/default.nix
+++ b/pkgs/applications/audio/sidplayfp/default.nix
@@ -1,40 +1,47 @@
 { stdenv
 , lib
-, fetchurl
+, fetchFromGitHub
+, autoreconfHook
+, perl
 , pkg-config
 , libsidplayfp
 , alsaSupport ? stdenv.hostPlatform.isLinux
 , alsaLib
 , pulseSupport ? stdenv.hostPlatform.isLinux
 , libpulseaudio
+, out123Support ? stdenv.hostPlatform.isDarwin
+, mpg123
 }:
 
-assert alsaSupport -> alsaLib != null;
-assert pulseSupport -> libpulseaudio != null;
-let
-  inherit (lib) optional;
-  inherit (lib.versions) majorMinor;
-in
 stdenv.mkDerivation rec {
   pname = "sidplayfp";
-  version = "2.0.2";
+  version = "2.1.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/${majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "1s2dfs9z1hwarpfzawg11wax9nh0zcqx4cafwq7iysckyg4scz4k";
+  src = fetchFromGitHub {
+    owner = "libsidplayfp";
+    repo = "sidplayfp";
+    rev = "v${version}";
+    sha256 = "0s3xmg3yzfqbsnlh2y46w7b5jim5zq7mshs6hx03q8wdr75cvwh4";
   };
 
-  nativeBuildInputs = [ pkg-config ]
-    ++ optional alsaSupport alsaLib
-    ++ optional pulseSupport libpulseaudio;
+  nativeBuildInputs = [ autoreconfHook perl pkg-config ];
 
-  buildInputs = [ libsidplayfp ];
+  buildInputs = [ libsidplayfp ]
+    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional pulseSupport libpulseaudio
+    ++ lib.optional out123Support mpg123;
+
+  configureFlags = lib.optionals out123Support [
+    "--with-out123"
+  ];
+
+  enableParallelBuilding = true;
 
   meta = with lib; {
     description = "A SID player using libsidplayfp";
-    homepage = "https://sourceforge.net/projects/sidplay-residfp/";
+    homepage = "https://github.com/libsidplayfp/sidplayfp";
     license = with licenses; [ gpl2Plus ];
-    maintainers = with maintainers; [ dezgeg ];
-    platforms = with platforms; linux;
+    maintainers = with maintainers; [ dezgeg OPNA2608 ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
index f584b13a292..15963faf06b 100644
--- a/pkgs/applications/audio/sublime-music/default.nix
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -1,4 +1,12 @@
-{ fetchFromGitLab, lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+{ fetchFromGitLab
+, fetchpatch
+, lib
+, python3Packages
+, gobject-introspection
+, gtk3
+, pango
+, wrapGAppsHook
+, xvfb_run
 , chromecastSupport ? false
 , serverSupport ? false
 , keyringSupport ? true
@@ -8,18 +16,29 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sublime-music";
-  version = "0.11.10";
+  version = "0.11.11";
+  format = "pyproject";
 
   src = fetchFromGitLab {
     owner = "sublime-music";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g78gmiywg07kaywfc9q0yab2bzxs936vb3157ni1z0flbmcwrry";
+    sha256 = "sha256-r4Tn/7CGDny8Aa4kF4PM5ZKMYthMJ7801X3zPdvXh4Q=";
   };
 
+  patches = [
+    # Switch to poetry-core:
+    # https://gitlab.com/sublime-music/sublime-music/-/merge_requests/60
+    (fetchpatch {
+      name = "use-poetry-core.patch";
+      url = "https://gitlab.com/sublime-music/sublime-music/-/commit/9b0af19dbdfdcc5a0fa23e73bb34c7135a8c2855.patch";
+      sha256 = "sha256-cXG0RvrnBpme6yKWM0nfqMqoK0qPT6spflJ9AaaslVg=";
+    })
+  ];
+
   nativeBuildInputs = [
     gobject-introspection
-    python3Packages.setuptools
+    python3Packages.poetry-core
     wrapGAppsHook
   ];
 
@@ -53,8 +72,14 @@ python3Packages.buildPythonApplication rec {
   # https://github.com/NixOS/nixpkgs/issues/56943
   strictDeps = false;
 
-  # no tests
-  doCheck = false;
+  # Use the test suite provided by the upstream project.
+  checkInputs = with python3Packages; [
+    pytest
+    pytest-cov
+  ];
+  checkPhase = "${xvfb_run}/bin/xvfb-run pytest";
+
+  # Also run the python import check for sanity
   pythonImportsCheck = [ "sublime_music" ];
 
   postInstall = ''
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index dfae5d40e11..45142568f98 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -5,16 +5,21 @@
 
 mkDerivation rec {
   pname = "vmpk";
-  version = "0.7.2";
+  version = "0.8.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "5oLrjQADg59Mxpb0CNLQAE574IOSYLDLJNaQ/9q2cMQ=";
+    sha256 = "1kv256j13adk4ib7r464gsl4vjhih820bq37ddhqfyfd07wh53a2";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools docbook-xsl-nons ];
 
-  buildInputs = [ qtx11extras drumstick ];
+  buildInputs = [ drumstick qtx11extras ];
+
+  postInstall = ''
+    # vmpk drumstickLocales looks here:
+    ln -s ${drumstick}/share/drumstick $out/share/
+  '';
 
   meta = with lib; {
     description = "Virtual MIDI Piano Keyboard";
diff --git a/pkgs/applications/audio/whipper/default.nix b/pkgs/applications/audio/whipper/default.nix
index 97d42eb9c69..3405cf99ddd 100644
--- a/pkgs/applications/audio/whipper/default.nix
+++ b/pkgs/applications/audio/whipper/default.nix
@@ -55,7 +55,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/whipper-team/whipper";
     description = "A CD ripper aiming for accuracy over speed";
-    maintainers = with maintainers; [ rycee emily ];
+    maintainers = with maintainers; [ emily ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/blockchains/crypto-org-wallet.nix b/pkgs/applications/blockchains/crypto-org-wallet.nix
index be45967018d..7b0a895f4a1 100644
--- a/pkgs/applications/blockchains/crypto-org-wallet.nix
+++ b/pkgs/applications/blockchains/crypto-org-wallet.nix
@@ -20,7 +20,7 @@ in appimageTools.wrapType2 rec {
     ${imagemagick}/bin/convert ${appimageContents}/${pname}.png -resize 512x512 ${pname}_512.png
     install -m 444 -D ${pname}_512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
     substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun --no-sandbox %U' "Exec=$out/bin/${pname}"
+      --replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname} %U'
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/blockchains/electrs.nix b/pkgs/applications/blockchains/electrs.nix
index b43a6edc5e5..30742f8d719 100644
--- a/pkgs/applications/blockchains/electrs.nix
+++ b/pkgs/applications/blockchains/electrs.nix
@@ -6,20 +6,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "electrs";
-  version = "0.8.7";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "romanz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "101prhxg7dr701gwm4s15maxb7cf65hf85hc7ai53b404v39vm71";
+    sha256 = "01fli2k5yh4iwlds97p5c36q19s3zxrqhkzp9dsjbgsf7sv35r3y";
   };
 
   # needed for librocksdb-sys
   nativeBuildInputs = [ llvmPackages.clang ];
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
 
-  cargoSha256 = "12ypx0rkpbjl4awzx8ga30qhiqqd56a24q4jwlxxnfpw9ks1z252";
+  cargoSha256 = "1rqpadlr9r4z2z825li6vi5a21hivc3bsn5ibxshrdrwiycyyxz8";
 
   meta = with lib; {
     description = "An efficient re-implementation of Electrum Server in Rust";
diff --git a/pkgs/applications/blockchains/openethereum/default.nix b/pkgs/applications/blockchains/openethereum/default.nix
index e4d8d72fb4c..82b6f2c1adb 100644
--- a/pkgs/applications/blockchains/openethereum/default.nix
+++ b/pkgs/applications/blockchains/openethereum/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "openethereum";
-  version = "3.2.1";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "openethereum";
     repo = "openethereum";
     rev = "v${version}";
-    sha256 = "sha256-+bzMo0s+wdp8T/YjPk6mrPSPid1G8WScB8FJhXdL9JQ=";
+    sha256 = "143w0b0ff1s73qzr844l25w90d2y2z0b3w2fr5kkbc1wsnpcq7jp";
   };
 
-  cargoSha256 = "sha256-ibjjJ5zGF6wbO24/RoYKsTYsMNXHb1EdekDwSICPc5g=";
+  cargoSha256 = "1gm02pcfll362add8a0dcb0sk0mag8z0q23b87yb6fs870bqvhib";
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index 098a948c845..2f5e6ac0104 100644
--- a/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchurl
 , appimageTools
 , tor
@@ -7,12 +8,20 @@
 
 let
   pname = "trezor-suite";
-  version = "21.2.2";
+  version = "21.4.1";
   name = "${pname}-${version}";
 
+  suffix = {
+    aarch64-linux = "linux-arm64";
+    x86_64-linux  = "linux-x86_64";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
   src = fetchurl {
-    url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-linux-x86_64.AppImage";
-    sha256 = "0dj3azx9jvxchrpm02w6nkcis6wlnc6df04z7xc6f66fwn6r3kkw";
+    url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
+    sha256 = {
+      aarch64-linux = "51ea8a5210f008d13a729ac42085563b5e8b971b17ed766f84d69d76dcb2db0c";
+      x86_64-linux  = "9219168a504356152b3b807e1e7282e21952461d277596c6b82ddfe81ac2419c";
+    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -35,7 +44,8 @@ appimageTools.wrapType2 rec {
     install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
     install -m 444 -D ${appimageContents}/${pname}.png $out/share/icons/hicolor/512x512/apps/${pname}.png
     install -m 444 -D ${appimageContents}/resources/images/icons/512x512.png $out/share/icons/hicolor/512x512/apps/${pname}.png
-    substituteInPlace $out/share/applications/trezor-suite.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
 
     # symlink system binaries instead bundled ones
     mkdir -p $out/share/${pname}/resources/bin/{bridge,tor}
@@ -48,6 +58,6 @@ appimageTools.wrapType2 rec {
     homepage = "https://suite.trezor.io";
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 77601aa3d56..a899071fe58 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,25 +1,26 @@
 { rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
-, fetchpatch, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump
-, libsodium, libevent, utf8cpp, util-linux, withWallet ? true, withDaemon ? true
-, withUtils ? true
+, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump, libsodium
+, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
+, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
 }:
 
 rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   pname = "zcash";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "00pn1jw8j90y7i8nc92b51znz4gczphvdzbkbcjx63cf6vk7v4ks";
+    sha256 = "19vhblyqkaf1lapx8s4v88xjpslqmrd1jnar46rschzcz0mm9sq4";
   };
 
-  cargoSha256 = "1rl9sjbvpfrv1mlyb04vw1935qx0kz9cs177xl7izdva1ixk9blr";
+  cargoSha256 = "1yiy1506ijndxb9bx79p7fkfvw1c5zdsljil4m55xz1mv8dzhbgm";
 
   nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
   buildInputs = [ boost174 libevent libsodium utf8cpp ]
-    ++ lib.optional withWallet db62;
+    ++ lib.optional withWallet db62
+    ++ lib.optional withZmq zeromq;
 
   # Use the stdenv default phases (./configure; make) instead of the
   # ones from buildRustPackage.
@@ -28,14 +29,6 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
   checkPhase = "checkPhase";
   installPhase = "installPhase";
 
-  patches = [
-    # See https://github.com/zcash/zcash/pull/5015
-    (fetchpatch {
-      url = "https://github.com/zcash/zcash/commit/a0ac27ec6ed434a233c7ad2468258f6e6e7e9688.patch";
-      sha256 = "0pmx1spql9p8vvpjgw7qf3qy46f4mh9ni16bq4ss1xz1z9zgjc4k";
-    })
-  ];
-
   postPatch = ''
     # Have to do this here instead of in preConfigure because
     # cargoDepsCopy gets unset after postPatch.
@@ -49,7 +42,8 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
     "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
   ] ++ lib.optional (!withWallet) "--disable-wallet"
     ++ lib.optional (!withDaemon) "--without-daemon"
-    ++ lib.optional (!withUtils) "--without-utils";
+    ++ lib.optional (!withUtils) "--without-utils"
+    ++ lib.optional (!withMining) "--disable-mining";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/editors/atom/env.nix b/pkgs/applications/editors/atom/env.nix
index 3c0f348ebd5..53150e0ad61 100644
--- a/pkgs/applications/editors/atom/env.nix
+++ b/pkgs/applications/editors/atom/env.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, zlib, glib, alsaLib, dbus, gtk3, atk, pango, freetype, fontconfig
 , libgnome-keyring3, gdk-pixbuf, cairo, cups, expat, libgpgerror, nspr
 , gconf, nss, xorg, libcap, systemd, libnotify, libsecret, libuuid, at-spi2-atk
-, at-spi2-core, libdbusmenu
+, at-spi2-core, libdbusmenu, mesa
 }:
 
 let
@@ -12,6 +12,7 @@ let
     xorg.libXcomposite xorg.libXi xorg.libXfixes xorg.libXrandr
     xorg.libXcursor xorg.libxkbfile xorg.libXScrnSaver libcap systemd libnotify
     xorg.libxcb libsecret libuuid at-spi2-atk at-spi2-core libdbusmenu
+    mesa # required for libgbm
   ];
 
   libPathNative = lib.makeLibraryPath packages;
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 2c067250309..000726dd81a 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -12,14 +12,14 @@ assert stdenv ? glibc;
 # find the downloads needed for new versions
 #
 # to test:
-# $ for e in cpp modeling platform sdk java committers rcp rust; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done
+# $ for e in cpp modeling platform sdk java jee committers rcp; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done
 
 let
   platform_major = "4";
-  platform_minor = "18";
-  year = "2020";
-  month = "12";
-  timestamp = "${year}${month}021800";
+  platform_minor = "19";
+  year = "2021";
+  month = "03";
+  timestamp = "${year}${month}031800";
   gtk = gtk3;
 in rec {
 
@@ -37,7 +37,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "MR6ddNmBKyXCyVGlGPfq6K2zJRywy4I5QDXji3rh81eJQ6zkEguo+VvD75i/szg/+FbCVA09vDVV06JgL4SHwQ==";
+        sha512 = "3j0lmll0glcr9p0hf49jiaq9xr8hadsy0y58wbbkdpldj3rclxr056dkswmiw2bkypfiwrjygbli5qxyp6mz380562hc2kjwijqq476";
       };
   };
 
@@ -49,7 +49,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "hSi3IL+fWhlUfEJYv4LFO7WNbZpiofAgNGZbEOIBS0VpeHfJ5Y6UKMKMLfQlG3hlkAL5jg/cEJKb/ad4DxHbjQ==";
+        sha512 = "0iqz9a3ixcbmaci6lnspdnzwd2h1fcygi54hmsl89pq3d1k5scyhcl123ixi24csi782w847bn0lq00n0zwras9akmnhsflra4mw5pz";
       };
   };
 
@@ -61,7 +61,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "cPRa7ICogpcuwzOlzSSCEcWpwpUhQuIv6lGBKuAu9mOwj7Nz0TPaWVWNqN1541uVRXVTzcWX+mwc2UBPzWUPxg==";
+        sha512 = "03v1ly7j9d9qnl3d9rl5a9kp483dz8i8v3cfnh55ksm9fk8iy2fzg6wq178ggnx2z5x9k88a4wk6n647yilh2hgc2l7926imkh2j1ly";
       };
   };
 
@@ -86,7 +86,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "iN6z5iSJ2bhE1IH3uJj7aiaF/nSIgIAqadvaTBpE4gkgLAXgtfraFAzgcw0zJr5m2u5mULfW45hLkmIXselniQ==";
+        sha512 = "37m91my121pch12bwpwk5svfqkm7vl07wjx4fkhpy947v5kjf36hm6x0i45swdg7f0hk72y2qz5ka15ki5jv890qy5psj6z7ax9sys7";
       };
   };
 
@@ -98,7 +98,19 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "HVqsWUVNNRdcaziGdNI96R9F2VMUE4nYK1VX1G3pK+srFDlkJ7+rj2sZjtWL7WcJR1XSbT03nJJzPyp01RsCvQ==";
+        sha512 = "3qrnj6krhrqc9rfwlim3v7kshwfhsi050pszw6xdfbj56mzr9whr7l76isbpxd5j0zipgfw3qrzrx379pdp899d35fv284ilvllzl4k";
+      };
+  };
+
+  ### Eclipse Java EE
+
+  eclipse-jee = buildEclipse {
+    name = "eclipse-jee-${platform_major}.${platform_minor}";
+    description = "Eclipse IDE for Enterprise Java and Web Developers";
+    src =
+      fetchurl {
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "04k4x9imabxddqlrgajn33ak8i58wcap40ll09xz23d1sxn9a8prh01s06ymgwg6ldg939srphvbz4112p8p0b1hl7m25a02qll91zv";
       };
   };
 
@@ -110,7 +122,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "UtI4piLNRM3TsM9PzbGgsPqTkiurJ+7Q7jVra45an4YJHtfWcGTxxwUNnRzay6cHT49AjrWtVf1bovWSDXMiQA==";
+        sha512 = "2yksl3w7yr1a3h4zdpa9zf394r5c185zqxhigdv858ldg46kmr9h0l2c7shbgb16kkybcnrk4x44dhjvh60x8xw6ma05klp4lp9v5va";
       };
   };
 
@@ -122,19 +134,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "9DqNjSx1Ypdzpt1jIOJ9KFx8y+cG55K6bqkWTqnGjjDr4h4mWSzvGjHGUtFrKl92WRzQZKjNPxzVreDMcUkc/g==";
-      };
-  };
-
-  ### Eclipse IDE for Rust Developers
-
-  eclipse-rust = buildEclipse {
-    name = "eclipse-rust-${platform_major}.${platform_minor}";
-    description = "Eclipse IDE for Rust Developers";
-    src =
-      fetchurl {
-        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rust-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "QbaG1knCMFnVQkPeApcIamJMXPyL8zUQa0ZsTJOuTgU/fD1RiHN7/WS6ax5azzIJhpjEtj2LMU4XV+MwkzResw==";
+        sha512 = "3fhrhwbyqcys56c93s1vl9rbvn269nn5y3cb9f3n1qwgw6i97mim2zy98jl3r8cksf97jwsmqmsqclsgz9v799wcckv81dj1l628382";
       };
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 2f97e361322..5937311b5c9 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -110,7 +110,6 @@ rec {
       description = "Provides fast jumps to text based on initial letter";
       license = licenses.mit;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -133,7 +132,6 @@ rec {
       description = "Adds support for ANSI escape sequences in the Eclipse console";
       license = licenses.asl20;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -156,7 +154,6 @@ rec {
       homepage = "https://www.antlr.org/";
       license = licenses.bsd3;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -179,7 +176,6 @@ rec {
       homepage = "https://www.antlr.org/";
       license = licenses.bsd3;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -202,7 +198,6 @@ rec {
       description = "Adds new tools to the context menu of text-based editors";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -225,7 +220,6 @@ rec {
       description = "Show file encoding and line ending for the active editor in the eclipse status bar";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -248,19 +242,18 @@ rec {
       description = "Shows disassembled bytecode of current java editor or class file";
       license = licenses.bsd2;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
     # find current version at https://www.eclipse.org/cdt/downloads.php
-    version = "10.1.0";
+    version = "10.2.0";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.1/${name}/${name}.zip";
-      sha256 = "1hbswcar3a5cw20mwrj82w9pvpkvvj6jrvqqf1lincva0r5sl7h8";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.2/${name}/${name}.zip";
+      sha256 = "1r30cbpbzw3dfcsn54p6sqip86dqhydhsppjgaz60b6z138vzx49";
     };
 
     meta = with lib; {
@@ -287,7 +280,6 @@ rec {
       description = "Checkstyle integration into the Eclipse IDE";
       license = licenses.lgpl21;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
 
   };
@@ -311,7 +303,6 @@ rec {
       description = "Plugin to switch color themes conveniently and without side effects";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -386,7 +377,6 @@ rec {
       description = "EclEmma is a free Java code coverage tool for Eclipse";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -409,7 +399,6 @@ rec {
       description = "Plugin that uses static analysis to look for bugs in Java code";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -482,26 +471,6 @@ rec {
       homepage = "https://github.com/boothen/Json-Eclipse-Plugin";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
-    };
-  };
-
-  jdt = buildEclipseUpdateSite rec {
-    name = "jdt-${version}";
-    version = "4.18";
-
-    src = fetchzip {
-      stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202012021800/org.eclipse.jdt-${version}.zip";
-      sha256 = "q0O6OE2u0bdz1+nOkzXDrrOOzoEbVaXnejx4lX7uZgk=";
-    };
-
-    meta = with lib; {
-      homepage = "https://www.eclipse.org/jdt/";
-      description = "Eclipse Java development tools";
-      license = licenses.epl10;
-      platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -524,7 +493,6 @@ rec {
       description = "Provides JDT Java CodeMining";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -567,7 +535,6 @@ rec {
       description = "The Scala IDE for Eclipse";
       license = licenses.bsd3;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -586,7 +553,6 @@ rec {
       description = "Plugin that uses static analysis to look for bugs in Java code";
       license = licenses.lgpl21;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -609,7 +575,6 @@ rec {
       description = "Eclipse plugin for the TestNG testing framework";
       license = licenses.asl20;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
@@ -654,7 +619,6 @@ rec {
       description = "A YAML editor plugin for Eclipse";
       license = licenses.epl10;
       platforms = platforms.all;
-      maintainers = [ maintainers.rycee ];
     };
   };
 
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index 857b0562c00..ca76e43e413 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -110,6 +110,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    aggressive-completion = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "aggressive-completion";
+        ename = "aggressive-completion";
+        version = "1.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/aggressive-completion-1.5.tar";
+          sha256 = "1gy0q5yc1a0w31qpyb92f672zcfgxbp5s104ycgk11jxk4y17nw9";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/aggressive-completion.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     aggressive-indent = callPackage ({ cl-lib ? null
                                      , elpaBuild
                                      , emacs
@@ -219,16 +234,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    auctex = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+    auctex = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "13.0.5";
+        version = "13.0.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-13.0.5.tar";
-          sha256 = "072wwsqfl8n2gi2inbp0s8k1ydr6fh1zyvc3rgynwzibjjniy319";
+          url = "https://elpa.gnu.org/packages/auctex-13.0.6.tar";
+          sha256 = "00wp388rh2nnk8fam53kilykg90jylps31qxv9ijy1lsp1hqdjys";
         };
-        packageRequires = [ cl-lib emacs ];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/auctex.html";
           license = lib.licenses.free;
@@ -925,10 +940,10 @@
       elpaBuild {
         pname = "dts-mode";
         ename = "dts-mode";
-        version = "0.1.0";
+        version = "0.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dts-mode-0.1.0.el";
-          sha256 = "08xwqbdg0gwipc3gfacs3gpc6zz6lhkw7pyj7n9qhg020c4qv7hq";
+          url = "https://elpa.gnu.org/packages/dts-mode-0.1.1.tar";
+          sha256 = "1hdbf7snfbg3pfg1vhbak1gq5smaklvaqj1y9mjcnxyipqi47q28";
         };
         packageRequires = [];
         meta = {
@@ -1133,10 +1148,10 @@
       elpaBuild {
         pname = "emms";
         ename = "emms";
-        version = "6.3";
+        version = "7.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/emms-6.3.tar";
-          sha256 = "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf";
+          url = "https://elpa.gnu.org/packages/emms-7.1.tar";
+          sha256 = "1dng8dy0w0wsdvvnjnrllwv5a8wq3kj20jik994b7prdx5dn6y52";
         };
         packageRequires = [ cl-lib seq ];
         meta = {
@@ -1205,10 +1220,10 @@
       elpaBuild {
         pname = "excorporate";
         ename = "excorporate";
-        version = "0.9.3";
+        version = "0.9.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/excorporate-0.9.3.tar";
-          sha256 = "1ybj0ww7x7l7ymykk6hs720whabavmwnrwq7x8dkn41wma181zzy";
+          url = "https://elpa.gnu.org/packages/excorporate-0.9.5.tar";
+          sha256 = "0z5x8lqvxh8zra23nmh36cdnr2yk855i4fc3mlbwaj5sdy9sqpf5";
         };
         packageRequires = [ emacs fsm nadvice soap-client url-http-ntlm ];
         meta = {
@@ -1366,16 +1381,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    ggtags = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
+    ggtags = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "ggtags";
         ename = "ggtags";
-        version = "0.8.13";
+        version = "0.9.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ggtags-0.8.13.el";
-          sha256 = "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg";
+          url = "https://elpa.gnu.org/packages/ggtags-0.9.0.tar";
+          sha256 = "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg";
         };
-        packageRequires = [ cl-lib emacs ];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/ggtags.html";
           license = lib.licenses.free;
@@ -1779,10 +1794,10 @@
       elpaBuild {
         pname = "ivy-posframe";
         ename = "ivy-posframe";
-        version = "0.5.5";
+        version = "0.6.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ivy-posframe-0.5.5.tar";
-          sha256 = "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95";
+          url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.0.tar";
+          sha256 = "07dzglrcdl54lkznyphw97xwd9bcwzdcgzkav0vqfk7f5cwh1wkf";
         };
         packageRequires = [ emacs ivy posframe ];
         meta = {
@@ -2497,16 +2512,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    org = callPackage ({ elpaBuild, fetchurl, lib }:
+    org = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.4.4";
+        version = "9.4.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.4.4.tar";
-          sha256 = "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b";
+          url = "https://elpa.gnu.org/packages/org-9.4.5.tar";
+          sha256 = "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk";
         };
-        packageRequires = [];
+        packageRequires = [ emacs ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/org.html";
           license = lib.licenses.free;
@@ -2561,10 +2576,10 @@
       elpaBuild {
         pname = "osc";
         ename = "osc";
-        version = "0.2";
+        version = "0.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/osc-0.2.el";
-          sha256 = "1b1ck9kb9mkyd7nlj4cqahsshar6h8mpvqss6n3dp4cl3r6dk1sw";
+          url = "https://elpa.gnu.org/packages/osc-0.4.tar";
+          sha256 = "0zfrzxalvvf9wwwhwsqgl3v2ca6m2rfl5hd7sz662s6gmbwawqqa";
         };
         packageRequires = [];
         meta = {
@@ -2726,10 +2741,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "0.8.8";
+        version = "1.0.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-0.8.8.tar";
-          sha256 = "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd";
+          url = "https://elpa.gnu.org/packages/posframe-1.0.0.tar";
+          sha256 = "1k06dbh9xqn2vix5qkcapl57v0c21b344r8dx6j5qr4jxirsn2x5";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3676,10 +3691,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.0.2";
+        version = "2.5.0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.0.2.tar";
-          sha256 = "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.0.3.tar";
+          sha256 = "0c77d1ihn17lzk9jb7ss346ryprnbii1zmijl6zj0kk4lm8fpfl3";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3897,10 +3912,10 @@
       elpaBuild {
         pname = "verilog-mode";
         ename = "verilog-mode";
-        version = "2021.2.2.263931197";
+        version = "2021.4.12.188864585";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/verilog-mode-2021.2.2.263931197.tar";
-          sha256 = "0rizadyzrsprc3mw3h2ag4760wapx5gxzsr11rgrllwzzqwin1ks";
+          url = "https://elpa.gnu.org/packages/verilog-mode-2021.4.12.188864585.tar";
+          sha256 = "0np2q0jhf1fbb1nl5nx1q9hw40yg62bhlddp2raqryxbkvsh0nbv";
         };
         packageRequires = [];
         meta = {
@@ -3908,6 +3923,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    vertico = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "vertico";
+        ename = "vertico";
+        version = "0.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/vertico-0.4.tar";
+          sha256 = "1af9ri51i7pn1pcsmbavnwqafrn46vbxrbqjzfi6a7q6n5yv77im";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/vertico.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     vigenere = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "vigenere";
@@ -3930,10 +3960,10 @@
       elpaBuild {
         pname = "visual-filename-abbrev";
         ename = "visual-filename-abbrev";
-        version = "1.0";
+        version = "1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/visual-filename-abbrev-1.0.el";
-          sha256 = "086cmyv08jd3qadjrd14b7c932i8msxjdvxxa36pyac18d3i50kj";
+          url = "https://elpa.gnu.org/packages/visual-filename-abbrev-1.1.tar";
+          sha256 = "1l2wq7q28lcl78flxqvsxc9h96whpynqq8kpmbiy3nzlw2mrgr8g";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4268,10 +4298,10 @@
       elpaBuild {
         pname = "ztree";
         ename = "ztree";
-        version = "1.0.5";
+        version = "1.0.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ztree-1.0.5.tar";
-          sha256 = "14pbbsyav1dzz8m8waqdcmcx9bhw5g8m2kh1ahpxc3i2lfhdan1x";
+          url = "https://elpa.gnu.org/packages/ztree-1.0.6.tar";
+          sha256 = "1cyd31az566dmh3lyp7czw7kkkih7drr4c88b7da1xzbfkvibm2j";
         };
         packageRequires = [ cl-lib ];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 01ad01f9049..0114f4dc180 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20210322";
+        version = "20210412";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20210322.tar";
-          sha256 = "0iv54rhwa0972yr1wqzmlkggs5vc6qajz8mmyfhynp65ap088g6v";
+          url = "https://orgmode.org/elpa/org-20210412.tar";
+          sha256 = "17hj4y0c9hjqqa7inzjadz9z64vh621lm4cb0asm13r7d1v186yf";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20210322";
+        version = "20210412";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20210322.tar";
-          sha256 = "0riswc3ira8hsawm37yypji55z47bw2477kaw3qx7ghz3n62r9nf";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20210412.tar";
+          sha256 = "162nl1a62l9d4nazply93sx4lih11845z87hxmpfd0n7i7s290mh";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index 7703579db80..b24f79ed260 100644
--- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -201,8 +201,8 @@
     20210316,
     2027
    ],
-   "commit": "af9d405a0f6ea078ae5b6567f664f4166f9f0ab0",
-   "sha256": "0jsnvnpvrrz5b4vh9jf3sjjm0pgh4241zw54bjkqa1ld9vvxwkxn"
+   "commit": "e2b3edafd7aafa8c47833a70984d7404c607626c",
+   "sha256": "0xg651vfjnq5dywg855wf7ld34gnfspql4b0b0413kydhh15fmxi"
   },
   "stable": {
    "version": [
@@ -302,16 +302,16 @@
   "repo": "abstools/abs-mode",
   "unstable": {
    "version": [
-    20210303,
-    1059
+    20210411,
+    1013
    ],
    "deps": [
     "erlang",
     "flymake",
     "maude-mode"
    ],
-   "commit": "5a766c734fcdf3b6c2ad88bbeb5c1cd79cdeaf44",
-   "sha256": "10ywyz0g4nnkap66xc7ynr9lq9z9jpsd0i3qwxs3fqkjwixwylz5"
+   "commit": "c9b7a2af3232aad8a51138194544c9a427cf46ca",
+   "sha256": "0h8assjgwwcgnqhlndsc86z9lc1nzlglhvhzxdnkz2ksk90n85q1"
   },
   "stable": {
    "version": [
@@ -510,15 +510,15 @@
   "repo": "atilaneves/ac-dcd",
   "unstable": {
    "version": [
-    20190902,
-    1124
+    20210329,
+    1928
    ],
    "deps": [
     "auto-complete",
     "flycheck-dmd-dub"
    ],
-   "commit": "d378d33c7bedc6c108eda7f674bd0aa1d8664857",
-   "sha256": "1gpqxfc83p7gzjrhs95gimwg46v9pq58m81m0fhz6slk7i005mdl"
+   "commit": "56cdead8c9d2ca64db1f24c59d005ba8b3780bd5",
+   "sha256": "1z38mg76376xac3rnamzhhmx4h4yzn89xycx7kk51vkcjffjzvg6"
   },
   "stable": {
    "version": [
@@ -1133,8 +1133,8 @@
     "auto-complete",
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -1918,8 +1918,8 @@
     "annotation",
     "eri"
    ],
-   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
-   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
+   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
+   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
   },
   "stable": {
    "version": [
@@ -2378,11 +2378,11 @@
   "repo": "domtronn/all-the-icons.el",
   "unstable": {
    "version": [
-    20210313,
-    2205
+    20210411,
+    1650
    ],
-   "commit": "a8c84176af7f3b97019423ebf3e02f983f4ebdf9",
-   "sha256": "07vscdf28wjjxsqaich694r94rf9iffjbqsvmqcq8h0qhqzfp2pq"
+   "commit": "07a4f7315bf5dd609f95e18390a9707b5a29fe9c",
+   "sha256": "0z0bqs2cqwndkjaiv301l1n4i1g7h6v89cl95inilfxxkyxhbzig"
   },
   "stable": {
    "version": [
@@ -2405,14 +2405,14 @@
   "repo": "wyuenho/all-the-icons-dired",
   "unstable": {
    "version": [
-    20210302,
-    1410
+    20210411,
+    1226
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "f401fe289cd93936e7747b1541aa98117b7ca96f",
-   "sha256": "1j5vbrsxy6blickkbblagyn6binvpalc2kxr7b438xhx8mgfbapv"
+   "commit": "07f035d2f6df4f1e840572784a96f5b407a74680",
+   "sha256": "134p5wz5jgbwfri6ihwf4p8xxbdmwwzpkklxn195gl46r2zqnnwx"
   }
  },
  {
@@ -2504,15 +2504,15 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20210303,
-    1747
+    20210405,
+    1824
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "2efbbf231ea3b3248177051a10c52c151686c4b4",
-   "sha256": "1rrnanmmq07jx83w51b9gpwv2al1xw01xqb6xbpzd4bi2gjlayy5"
+   "commit": "e7775f85a2bb9c13a4c55417ae8d6f16477e3ca0",
+   "sha256": "0jys6kvwgkf04cyzxh5r2g38qfcpqas4qqyqqkmp8z8vc68fnwz0"
   },
   "stable": {
    "version": [
@@ -2790,8 +2790,8 @@
   "repo": "pythonic-emacs/anaconda-mode",
   "unstable": {
    "version": [
-    20210304,
-    1723
+    20210409,
+    1536
    ],
    "deps": [
     "dash",
@@ -2799,8 +2799,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "344727c9e07e108896740c782689bf3588edcce5",
-   "sha256": "020ix7jlzx3k9g9flwcq8ddgplby62gcfj28wxhq0pcngy8fnqjz"
+   "commit": "4f367c768a84465070c44327444b17015091d08d",
+   "sha256": "1lvijddzzfsr295w327vdnfpz51zaqm0g24gn2wjqny3nc7kyaz4"
   },
   "stable": {
    "version": [
@@ -3146,8 +3146,8 @@
     20200914,
     644
    ],
-   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
-   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
+   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
+   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
   },
   "stable": {
    "version": [
@@ -3644,11 +3644,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20210316,
-    2156
+    20210408,
+    1935
    ],
-   "commit": "22b394e3c9fc8db3a33c0f7fa36263ce44b0dec5",
-   "sha256": "1075f1gp9q210h4varmrj69g35wf8dygamzwsgfp38kqggdqdrxq"
+   "commit": "a21c143b7cc92a0d8402955d079fc78c4140c2ff",
+   "sha256": "04zs9785b7j16gcgbi26xcl6bhmclprz5pj1jzb40igy7f2kwyqs"
   },
   "stable": {
    "version": [
@@ -4237,8 +4237,8 @@
   "repo": "jyp/attrap",
   "unstable": {
    "version": [
-    20210219,
-    1001
+    20210407,
+    1826
    ],
    "deps": [
     "dash",
@@ -4246,8 +4246,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "778382eba8e1a449862b1573e90c1e79cf5caeb1",
-   "sha256": "0a2n1p2nasd2ikv86p3sm5sn4qb3avj2sni9gja3yn6kdqn8s8jp"
+   "commit": "4b088698ec81f7cd0f715b30e280b37e3881b91d",
+   "sha256": "1jil04a69fx946vh6f81x3ki84jmmdfz7g3c9v4phddz58clb1sb"
   },
   "stable": {
    "version": [
@@ -5216,11 +5216,14 @@
   "url": "https://git.sr.ht/~zge/autocrypt",
   "unstable": {
    "version": [
-    20201115,
-    912
+    20210411,
+    1759
+   ],
+   "deps": [
+    "cl-generic"
    ],
-   "commit": "050d4967162dff6de5ef480db8a22c5896d483c7",
-   "sha256": "1f5h7ln78rvjg428vpqddr4ahz8yxfsr471p1qib1kh3zahjy2iy"
+   "commit": "39c06eb4020c38de8f282340449691210cc23bb8",
+   "sha256": "0gvdjgfnisx1acy5jmzs82yngmnmiimq1ralbvw9a28knlsdbnig"
   }
  },
  {
@@ -5454,8 +5457,8 @@
     "avy",
     "embark"
    ],
-   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
-   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
+   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
+   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
   },
   "stable": {
    "version": [
@@ -5948,11 +5951,11 @@
   "url": "https://git.sr.ht/~zge/bang",
   "unstable": {
    "version": [
-    20200924,
-    1601
+    20210405,
+    1640
    ],
-   "commit": "a2077ecf974fb8299fef0f008aa974d782245ec8",
-   "sha256": "1l9915ir87d3iabrz1af2hrk1yp1dmq1i763117aln5b5mbmvn5a"
+   "commit": "b5252a77aed6d1c533367fde0f11d6901bf23d96",
+   "sha256": "1m0wmcm1akdk19vf132y1g6wjdx9kgschf66qgggd97gl50za5ab"
   },
   "stable": {
    "version": [
@@ -6040,11 +6043,11 @@
   "repo": "belak/base16-emacs",
   "unstable": {
    "version": [
-    20210320,
-    519
+    20210406,
+    1956
    ],
-   "commit": "0c3aa33520ae4cb467c76ce53d438827df77eb1a",
-   "sha256": "0ibwxwyncyrgbpvhcx523813njdgln34wmqf0x826qv4hh4ai0yw"
+   "commit": "b35d21ae0d46856416b64851ccbb5e44ee9498d0",
+   "sha256": "04vs50a5wh0ziq34hh9li5d84nv39p3akaync1i9sbmr4kxkhr1l"
   },
   "stable": {
    "version": [
@@ -6228,11 +6231,11 @@
   "repo": "bazelbuild/emacs-bazel-mode",
   "unstable": {
    "version": [
-    20200627,
-    1625
+    20210410,
+    1645
    ],
-   "commit": "43026c5e09dfca86fb84b9a857708ad419f2215f",
-   "sha256": "0bwabpx56ybk114456x0p4k8xqh0s060ig40jdsqibq89h6m1nab"
+   "commit": "fd1a8c53fabdf2ee1ada9338b3feb08d154ccbc9",
+   "sha256": "1jrla85sbj0cbrqifqhc6zx66bhagb6r62hwhgdc4vh3srmadiqx"
   },
   "stable": {
    "version": [
@@ -6956,6 +6959,24 @@
   }
  },
  {
+  "ename": "bibtex-actions",
+  "commit": "a6050cc5f04343c5a0e3992d223eca3b50acec7c",
+  "sha256": "1yfrs54gb38877322rmg6p7lqy91km33vil867qgbyj016ss4x7s",
+  "fetcher": "github",
+  "repo": "bdarcus/bibtex-actions",
+  "unstable": {
+   "version": [
+    20210411,
+    1846
+   ],
+   "deps": [
+    "bibtex-completion"
+   ],
+   "commit": "516cbdb63810bcb571e41436e2c568c328fc8980",
+   "sha256": "0n3byfv1khn2lr9c1r619gc52993hf01nwl5c7ih7nmrr5q3rckk"
+  }
+ },
+ {
   "ename": "bibtex-completion",
   "commit": "873ae2af16e03c8e10494be3f0e7840eb27172a3",
   "sha256": "06mg9fwp6jwr6fbnzh4z8am47bspcl8hv0icmdpc9lmzbcyfpg8f",
@@ -6963,8 +6984,8 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20210223,
-    840
+    20210408,
+    1649
    ],
    "deps": [
     "biblio",
@@ -6974,8 +6995,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
-   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
+   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
+   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
   },
   "stable": {
    "version": [
@@ -7362,11 +7383,11 @@
   "repo": "pythonic-emacs/blacken",
   "unstable": {
    "version": [
-    20200626,
-    2018
+    20210406,
+    813
    ],
-   "commit": "784da60033fe3743336d1da0f33239f1bf514266",
-   "sha256": "1s7isvih1xl4l6say8xa69r9lf3prq9sd6d9fmn1n8g8p3w09cnq"
+   "commit": "880cf502198753643a3e2ccd4131ee6973be2e8a",
+   "sha256": "1285hmdwixsw2jfyf5xzwmalc9v8w4iyc1q9f60im2zzigff5y5b"
   }
  },
  {
@@ -7853,15 +7874,15 @@
   "repo": "emacscollective/borg",
   "unstable": {
    "version": [
-    20210105,
-    1045
+    20210330,
+    1213
    ],
    "deps": [
     "epkg",
     "magit"
    ],
-   "commit": "d0283edfaead36564ba4e64dcf8785f6d65f288c",
-   "sha256": "076n6jh084f6pra12cbl3fp1gv3229rj5nxbpcmr9rpp50x2c790"
+   "commit": "7f6642c297044ffa10a287a5a74748ce0b3f8c27",
+   "sha256": "1alr4wx5ldr07ifkdansgvrvdbwqs9zli99flbjq5zjwwy5f142a"
   },
   "stable": {
    "version": [
@@ -8115,16 +8136,16 @@
   "repo": "rmuslimov/browse-at-remote",
   "unstable": {
    "version": [
-    20200820,
-    654
+    20210405,
+    430
    ],
    "deps": [
     "cl-lib",
     "f",
     "s"
    ],
-   "commit": "fadf99d6d8e891f3b112e36c772e0eea0b9bc7f2",
-   "sha256": "15x32g8g90jjxlxj8h6yzyi1k9dgnk8an2c66ibj93dzcfci28m9"
+   "commit": "e02ad2189c87da33f80bf4967a968772ce3e4431",
+   "sha256": "0vn53zlwmhi4d6i81840i9pmrs8w4j6az2p0b4hw99xvk68grfiz"
   },
   "stable": {
    "version": [
@@ -9613,15 +9634,15 @@
   "repo": "kwrooijen/cargo.el",
   "unstable": {
    "version": [
-    20210217,
-    904
+    20210327,
+    1821
    ],
    "deps": [
     "markdown-mode",
     "rust-mode"
    ],
-   "commit": "9442af81d64f73935d3590948c97594f0bc79d4a",
-   "sha256": "1xci8kx10vxaniyzxgzzs0zd7m7s0grd0bbrxaxhyjjdvic77mq1"
+   "commit": "4846373bf1ed6268f1a1d9f9c489f8740351d8bb",
+   "sha256": "0y4wxddjp055kisv7yx6zs9bzggw65b08aa1g3y0vlaafrps8bga"
   },
   "stable": {
    "version": [
@@ -9708,8 +9729,8 @@
   "repo": "cask/cask",
   "unstable": {
    "version": [
-    20210319,
-    2155
+    20210410,
+    2057
    ],
    "deps": [
     "ansi",
@@ -9720,8 +9741,8 @@
     "s",
     "shut-up"
    ],
-   "commit": "7ae2d54004b26ebb891f7a011c86cff706acbf1a",
-   "sha256": "1ksw4rcbghjjni7v622cdfd84312fs39xhiyzbk7xmh57clrbx4f"
+   "commit": "dce91052dc8fae386a1898fd88d554b5cb527fdc",
+   "sha256": "1j853gbdc50s1csvsi2a0f6i2vakgnd8afb97qkkj5alpwq8883p"
   },
   "stable": {
    "version": [
@@ -9916,11 +9937,11 @@
   "repo": "skk-dev/ddskk",
   "unstable": {
    "version": [
-    20200904,
-    1431
+    20210403,
+    1958
    ],
-   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
-   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
+   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
+   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
   }
  },
  {
@@ -9968,8 +9989,8 @@
     20200904,
     1431
    ],
-   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
-   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
+   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
+   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
   }
  },
  {
@@ -10238,8 +10259,8 @@
     20171115,
     2108
    ],
-   "commit": "9914e9c951e1598bafb6bce8cf5ad5cbe260d290",
-   "sha256": "1ziq8xq94nys5g95jrng1w33rsmhfi0k3bfbsfh8ifvz2lhd1ai5"
+   "commit": "02478862ea707ed51223c1d5d2d8cd8d61d2915d",
+   "sha256": "0vf94pkd2slwkrgv93yqh2qb2y72bzya9nq5gmqd0g08nb6kdmjx"
   },
   "stable": {
    "version": [
@@ -10973,8 +10994,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20210325,
-    825
+    20210408,
+    1212
    ],
    "deps": [
     "clojure-mode",
@@ -10985,8 +11006,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "4278d7cf0b54af5cc84f4a521ee1ed6e81a96adc",
-   "sha256": "1538cfygk1yr8nr5axjqa29jd2n8v6mwk6plgvnrdrp1msspcvm2"
+   "commit": "fd2bb0c64eb3590cffa91188644d1e40fbbc634b",
+   "sha256": "0mhscf5cpcqs68c863ns6rbjwr1p71wb7kp80ds5qzar8x2k2qwn"
   },
   "stable": {
    "version": [
@@ -11684,8 +11705,8 @@
   "repo": "clojure-emacs/clj-refactor.el",
   "unstable": {
    "version": [
-    20210322,
-    2122
+    20210407,
+    724
    ],
    "deps": [
     "cider",
@@ -11698,8 +11719,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "9f3e7357117e96135de051b78deabc0a327c7b06",
-   "sha256": "1k9w8bzl92cz0dl7lly6ba3i2vcvdfngqk0abji00pmpgrkla1rk"
+   "commit": "9f88174878d62e3906be5b04b8ba7788e6ca4570",
+   "sha256": "155lhb3myzxpxnnp257p3rxhgw9xmr3l2h39gj23q5sr0hhsnm5s"
   },
   "stable": {
    "version": [
@@ -12279,8 +12300,8 @@
     20210104,
     1831
    ],
-   "commit": "b22c800604e22a0ffdb13aa5fd4cfb7ee26896a4",
-   "sha256": "1gf0l4jwhm0xf4j1gnnb8158g8cycv2m2ijxbpc5fhwdbcfdfc13"
+   "commit": "b1c739ad8bcacae6d66d88514102dcd4423c2dcb",
+   "sha256": "1jwkscld38b6b6f4w3hw1m9dgdvcvbbwwfx2dd5v7548mp3wpxrj"
   },
   "stable": {
    "version": [
@@ -13244,17 +13265,17 @@
  },
  {
   "ename": "company",
-  "commit": "96e7b4184497d0d0db532947f2801398b72432e4",
-  "sha256": "0v4x038ly970lkzb0n8fbqssfqwx1p46xldr7nss32jiqvavr4m4",
+  "commit": "f42849df31122aa293edcbcbed834260d21037b2",
+  "sha256": "0fci8v7grd2c6vfky0fdsrxi0874jfkw52zba4ap43bbx1mb2166",
   "fetcher": "github",
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20210327,
-    150
+    20210411,
+    2221
    ],
-   "commit": "7207cb143829edbcaa2a4b4c0011090747d2207c",
-   "sha256": "017rjccvidcjsc5pbb36hwdssnvpnfm4wjciv75aaq6d5jhj0889"
+   "commit": "4037e82cf82b459b6a1d8529f2a3bb3e310fbdf7",
+   "sha256": "0hqm4529cng2zwj5nlm9b5k1yngf0viywmrq7k052g3fpx21b4l2"
   },
   "stable": {
    "version": [
@@ -13424,8 +13445,8 @@
   "repo": "sebastiencs/company-box",
   "unstable": {
    "version": [
-    20210103,
-    1605
+    20210330,
+    1155
    ],
    "deps": [
     "company",
@@ -13433,8 +13454,8 @@
     "dash-functional",
     "frame-local"
    ],
-   "commit": "ec8f44674dc10dd4d50785a1f97820b29d392ea2",
-   "sha256": "1bzmwf6nv10pipaa3934kkly4vyzdc7hcb4r7ygimqxxcx0zvipj"
+   "commit": "aa5f09a5492344e3cc831f0f169a6a8345dec358",
+   "sha256": "15wbhf04qj8wplf03hbwixhwbrw3r3vb2ih2lvxjhgpg0lq1gjz5"
   }
  },
  {
@@ -13771,16 +13792,16 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20210123,
-    1814
+    20210329,
+    1543
    ],
    "deps": [
     "company",
     "ht",
     "s"
    ],
-   "commit": "4d6d56a8b92af72aa3b1e0af1a7e7add965bf468",
-   "sha256": "1yr050zgygjvhwjmm2yd5p889y24vars90cr4pyqc4zhmgzrdkw5"
+   "commit": "a90e45ee69bac18205418aea68d981c12835eb81",
+   "sha256": "0rm2nw5h74qhc5sqrwgw7l94x32kp35fw3xdpfpglr6bmqyqjbmz"
   },
   "stable": {
    "version": [
@@ -14020,8 +14041,8 @@
     "lean-mode",
     "s"
    ],
-   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
-   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
+   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
+   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
   }
  },
  {
@@ -14434,15 +14455,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20201214,
-    52
+    20210331,
+    325
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "5ea0b565972ca8d80f29a40068c65bab97384748",
-   "sha256": "18zlwcp1vcz82573nmkix1rixv54p9sjj0fhddmf3yc8hsy2mp4g"
+   "commit": "a28f38213a2a30ce68fdb0b124cadc68ebbcb24f",
+   "sha256": "1ys40y62c0aqs8nlyhnkahb67slh0i4dpvxvj8mcvcmp68aiih3f"
   },
   "stable": {
    "version": [
@@ -14473,8 +14494,8 @@
     "company",
     "prescient"
    ],
-   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
-   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
+   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
+   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
   },
   "stable": {
    "version": [
@@ -14516,15 +14537,15 @@
   "repo": "company-mode/company-quickhelp",
   "unstable": {
    "version": [
-    20201208,
-    2308
+    20210329,
+    1602
    ],
    "deps": [
     "company",
     "pos-tip"
    ],
-   "commit": "b13ff1ba0d6176825f165920b17625948f1256c5",
-   "sha256": "0kbingznnzmd4qfck2pg696ixrzxlqzqv2vgq77cvbf1ijld1rgh"
+   "commit": "8c667a9d7c06782340ebe91cd94f490e44dd2547",
+   "sha256": "0vmypqlh2b1qjbrp0mw2c1ikdpm2d02chpqc1qps9j27yvv6y27w"
   },
   "stable": {
    "version": [
@@ -14662,8 +14683,8 @@
     "company",
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -14728,8 +14749,8 @@
     "company",
     "solidity-mode"
    ],
-   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
-   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
+   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
+   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
   },
   "stable": {
    "version": [
@@ -15264,8 +15285,8 @@
   "repo": "necaris/conda.el",
   "unstable": {
    "version": [
-    20210114,
-    123
+    20210409,
+    37
    ],
    "deps": [
     "dash",
@@ -15273,8 +15294,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "dce431b25f5a13af58cc7cacfa7968b5a888609c",
-   "sha256": "1q4hnb42kp73ida37cgrrwi5dxl8vjdl1ibj8l51h47l2rlcrn09"
+   "commit": "6db0720b6dc8880d7d6e7dc2953b4769ca6bbf71",
+   "sha256": "1p44pnjy9gyjhnqg986ab5qv4dm1cfz3mr7n6r4kvy0xkilk8ikx"
   },
   "stable": {
    "version": [
@@ -15446,11 +15467,11 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210323,
-    1627
+    20210411,
+    2120
    ],
-   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
-   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
+   "commit": "812204b647b1f45cc9d04d7d2f565061940f5e70",
+   "sha256": "11jpmswhx5x69wsrl5mg9wmxm49hqkdn2r9swz9z7hikk7485mx8"
   },
   "stable": {
    "version": [
@@ -15469,15 +15490,15 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20210301,
-    2310
+    20210410,
+    1355
    ],
    "deps": [
     "consult",
     "flycheck"
    ],
-   "commit": "19540d37783dc34bdb98d7cea24e8bb57090dab4",
-   "sha256": "0vsgxfxb9bhgncxyhrvxpaan4pwca2vwvpr4qjcgqh1bb147rrkr"
+   "commit": "812204b647b1f45cc9d04d7d2f565061940f5e70",
+   "sha256": "11jpmswhx5x69wsrl5mg9wmxm49hqkdn2r9swz9z7hikk7485mx8"
   },
   "stable": {
    "version": [
@@ -15524,6 +15545,24 @@
   }
  },
  {
+  "ename": "consult-recoll",
+  "commit": "e570f099cb90817115609b960f4f31ca21545b74",
+  "sha256": "1iw1bj207wyga9nflgg9lk36brd3qdmin1pn1r004kfq9jfcds82",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/consult-recoll.git",
+  "unstable": {
+   "version": [
+    20210411,
+    1300
+   ],
+   "deps": [
+    "consult"
+   ],
+   "commit": "9038cfa4222f428e28bdafa0aeb57362104a873d",
+   "sha256": "0sqwczfvplmlwkjmpd3l8i6gjsfw180kafyvkzdkdig4cwa39yks"
+  }
+ },
+ {
   "ename": "consult-spotify",
   "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
   "sha256": "0y393qwvjv7blc8d4qih9ksm2521az28v29hgczjlady0fjp9bn9",
@@ -15531,16 +15570,16 @@
   "url": "https://codeberg.org/jao/espotify",
   "unstable": {
    "version": [
-    20210220,
-    2229
+    20210411,
+    1305
    ],
    "deps": [
     "consult",
     "espotify",
     "marginalia"
    ],
-   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
-   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
+   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
+   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
   }
  },
  {
@@ -15856,15 +15895,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210322,
-    24
+    20210404,
+    1716
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "47b496544e238041bca5e3c9ca55848648344312",
-   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
+   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
   },
   "stable": {
    "version": [
@@ -16058,14 +16097,14 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20210226,
-    1218
+    20210410,
+    1256
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "e41a39cd07c594b5fa1c6757e9464be56a3dadea",
-   "sha256": "1dcph2ak1r5yrw0hfygrb6d80y3jkx1fsj1rrp7sg3p37rnfhq94"
+   "commit": "5d7ee6776ed5c314472e2af2797ebfdc725e6a70",
+   "sha256": "116yylad46sjfvadpl3lj3sb17ariswyp6k1ihh8ba5jn9f9hl5h"
   },
   "stable": {
    "version": [
@@ -16155,15 +16194,15 @@
   "repo": "200ok-ch/counsel-jq",
   "unstable": {
    "version": [
-    20201230,
-    1703
+    20210329,
+    749
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "153d70b576df1d572c56d84039cb40749310cfe7",
-   "sha256": "1r8bbdbvxczbcw8359v9s451fnpcsna0hqg43k26cbwba137vxl7"
+   "commit": "8cadd2e96470402ede4881b4e955872976443689",
+   "sha256": "1chfrzkqfsw1rlwkb3k7v827fwipg0cish22rr3sxxydxr7kysx5"
   },
   "stable": {
    "version": [
@@ -16434,16 +16473,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20210320,
-    1641
+    20210330,
+    44
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "766b09cbe92cb5b689a36a9c136013a51da95712",
-   "sha256": "1p5b39574dpw0lljhm4l200if65fjpgnnbqsimf31r0y4rm1pr0d"
+   "commit": "62a4650f97eddebf6cd04b662a69b15ba72472c1",
+   "sha256": "01l38yfgzh4apvj9ipl50b5shf6vnyqdciklpbajciynz118p19q"
   }
  },
  {
@@ -16545,14 +16584,14 @@
   "repo": "emacsorphanage/cpp-auto-include",
   "unstable": {
    "version": [
-    20191221,
-    2319
+    20210318,
+    2217
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "08208ca7b9dc4ac940ce9ca1f79424d2f3d3d391",
-   "sha256": "0yspf51h5b7wbqvi9lbd22chyw799n5d05xdzl5axg0i33lzk7bq"
+   "commit": "0ce829f27d466c083e78b9fe210dcfa61fb417f4",
+   "sha256": "0160hxapdmbj7nc0wksk69xhc3r3lcpjxlbfkygi3z8d4xv48ccp"
   },
   "stable": {
    "version": [
@@ -16973,16 +17012,16 @@
   "repo": "emacs-csharp/csharp-mode",
   "unstable": {
    "version": [
-    20210321,
-    914
+    20210328,
+    2004
    ],
    "deps": [
     "tree-sitter",
     "tree-sitter-indent",
     "tree-sitter-langs"
    ],
-   "commit": "f977800161ccdb58d5650a8ca60017c83863d80a",
-   "sha256": "1j173ir1c95jhj5671yah6jmz2qfk3sfspl0naz48s0bs2n5bxcw"
+   "commit": "33e3042535e70a284389f8da1c495958fed8a826",
+   "sha256": "009qizx0cc97if0bdxrmw3l1slddwwhb21fq6npchg7dwswpnai4"
   },
   "stable": {
    "version": [
@@ -17219,11 +17258,11 @@
   "repo": "raxod502/ctrlf",
   "unstable": {
    "version": [
-    20210308,
-    25
+    20210404,
+    1704
    ],
-   "commit": "f9ef7a5e1b53f5ea9d486c93d47806e7d7f432ef",
-   "sha256": "0b5kyfr7qyv5id61d16r07k37yn690sx42rjnj2jk6q2rwib5zj7"
+   "commit": "45026a8655fb170004959f83b984589224cc156e",
+   "sha256": "0ij830jpkrp29rrpapmr9cglnjsdiycp3j620sd10s069wavbmcr"
   },
   "stable": {
    "version": [
@@ -17651,8 +17690,8 @@
     20190111,
     2150
    ],
-   "commit": "8609e0fa7d361f1392823ff6e1a618720cd62df3",
-   "sha256": "101nvcjf6x38fbcg8fhg5xryid3plncmj36i7137gnhsn1r9fsdv"
+   "commit": "8cef4203124241911f63dc171f5536665f324507",
+   "sha256": "0qm605xkr294yrmrkzsqq9bhdqyg9nxiwxwg1br6hzcj01wvgjqf"
   },
   "stable": {
    "version": [
@@ -17803,11 +17842,11 @@
   "repo": "rails-to-cosmos/danneskjold-theme",
   "unstable": {
    "version": [
-    20210325,
-    935
+    20210407,
+    1942
    ],
-   "commit": "ca13f96e5dfa319ceb7b094ee452ddf55b67905c",
-   "sha256": "0cyl8g5gbdypj44yk91sq4frkqahpwkgvnk1i3zda79m453dzg06"
+   "commit": "cd45635155aa6bae941156043217ce11531deca9",
+   "sha256": "1j2fr8gcy5pxzvaf3xh9z2k6bsdbw5z0a2ciys1zy8629sfx6w83"
   }
  },
  {
@@ -17859,8 +17898,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20210317,
-    151
+    20210405,
+    1739
    ],
    "deps": [
     "bui",
@@ -17872,8 +17911,8 @@
     "posframe",
     "s"
    ],
-   "commit": "ae395aa991d55eaddb2d2b80cd469089b9d19bb7",
-   "sha256": "1bxpnaj466n6sw00zc4fbw7i7nmkr0b6g8qvai6vql503lmm5f89"
+   "commit": "2cb49bb2ec22a7d6d4fd403bd4e2cc468f512501",
+   "sha256": "0zymjabd6xpsdy3jr72rag8dmd7c1hsr1d973yjmvwj1awh9d0dd"
   },
   "stable": {
    "version": [
@@ -18126,11 +18165,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20210308,
-    2109
+    20210330,
+    1544
    ],
-   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
-   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
+   "commit": "b9286a84975874b10493f1cb4ea051c501f51273",
+   "sha256": "13qmv5h2fvy1aqcc3xg7am3phpraw4jliz6qjcx0fjfshndkh5xl"
   },
   "stable": {
    "version": [
@@ -18205,8 +18244,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "a17b6b5409825891423b3867cd7bea84852d6ddd",
-   "sha256": "0swjqkz5bq1f9vphjc6a1mwr7b3rlr8j9jg56f9gwj9gcv9mgjab"
+   "commit": "b9286a84975874b10493f1cb4ea051c501f51273",
+   "sha256": "13qmv5h2fvy1aqcc3xg7am3phpraw4jliz6qjcx0fjfshndkh5xl"
   },
   "stable": {
    "version": [
@@ -18575,8 +18614,8 @@
     "ccc",
     "cdb"
    ],
-   "commit": "cec99365fb3ad725c44514b918696ab153596b8d",
-   "sha256": "0q1vxcm163cs0pwnpnbjanpm49hshiyfx4m915i1wxsa7q9vvv67"
+   "commit": "a266f70eb99ffb657b7821c2e1de49f5184a59ed",
+   "sha256": "0j1gcsi40yrfy9saqjdhxnwsvmqf32l9mnwfvhbbfxm82ddhwxnk"
   }
  },
  {
@@ -19308,11 +19347,11 @@
   "repo": "raxod502/diary-manager",
   "unstable": {
    "version": [
-    20210226,
-    416
+    20210404,
+    1821
    ],
-   "commit": "12f194bd411e52b72bdf555e48e9a831e5ff8357",
-   "sha256": "0mn90abd2ak5f9b1s3q5h3l2lfhi91mwx4j50hs8q91s0r43hixz"
+   "commit": "0fa122be62dd296cefe23bcf5074cc6159bd9868",
+   "sha256": "0zhhfba9ak7j713xp2qhxfdc3h9a9a1grp1nprlz7qnz3pkl2rjj"
   },
   "stable": {
    "version": [
@@ -19453,14 +19492,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20210318,
-    1413
+    20210410,
+    130
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "1af31fe1c177646ef7419c95b5d9c25655187ceb",
-   "sha256": "10gh6fl0j41ga612kk2yh82zh67hbd86rg640r1fk6gc0lcmwqih"
+   "commit": "8f4c2358ac00e32d261f7e77b29af60adfdf0e41",
+   "sha256": "1grd6pzbirdq42qcwxis3q97cxlx6r3m20lqg0lb77vk6k75y619"
   },
   "stable": {
    "version": [
@@ -19710,14 +19749,14 @@
   "repo": "dylan-lang/dylan-emacs-support",
   "unstable": {
    "version": [
-    20210319,
-    1414
+    20210329,
+    604
    ],
    "deps": [
     "dylan"
    ],
-   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
-   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
+   "commit": "040c8ebc884305fd4ff980d21c68946fa74b095a",
+   "sha256": "1f99wn0lgknvnplp7nk2lylf17yak2hw53n9a0vkxng01xhf50d2"
   }
  },
  {
@@ -19903,8 +19942,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -19915,16 +19954,16 @@
   "repo": "Fuco1/dired-hacks",
   "unstable": {
    "version": [
-    20210110,
-    1714
+    20210403,
+    1230
    ],
    "deps": [
     "dash",
     "dired-hacks-utils",
     "f"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20050,8 +20089,8 @@
     "dired-hacks-utils",
     "f"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20089,8 +20128,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20240,8 +20279,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20259,8 +20298,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20337,8 +20376,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20356,8 +20395,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -20513,8 +20552,8 @@
     "dash",
     "dired-hacks-utils"
    ],
-   "commit": "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388",
-   "sha256": "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"
+   "commit": "7c0ef09d57a80068a11edc74c3568e5ead5cc15a",
+   "sha256": "0qqj16r7p6pidlyj7fi0s3xhi13065642j20hlnply8nrq782vpj"
   }
  },
  {
@@ -21416,8 +21455,8 @@
   "repo": "Silex/docker.el",
   "unstable": {
    "version": [
-    20210313,
-    1943
+    20210404,
+    1000
    ],
    "deps": [
     "dash",
@@ -21427,8 +21466,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "ed0cdf08597ceb3a1f85e065d1b2b7aefd7e35ee",
-   "sha256": "1p0281gaj09jpavlkv24dzvf0gdh9r7ki1z53x0q49dm1fcday6m"
+   "commit": "ba55e1e52c20daa0063ccabce2ccc973d58b1669",
+   "sha256": "1r0fjdn7qrb3in8lgwihxi9zdzc325l21f8cs00mbipflss20si4"
   },
   "stable": {
    "version": [
@@ -21561,11 +21600,11 @@
   "repo": "spotify/dockerfile-mode",
   "unstable": {
    "version": [
-    20210326,
-    1812
+    20210404,
+    2224
    ],
-   "commit": "3b1374563f62d71aec11ebd33d37109459e54571",
-   "sha256": "1gvsibvg543jby99b7r13x0q4d9n21nl5sh0y2rb7alk0chx3pmx"
+   "commit": "ad06a41259ff2961d603bf23a3a8fbd22dde2161",
+   "sha256": "0p6byqjfzlq3g5ql77zghljj9vmnm9q2ffkjls1rv6q5rdj7p8c1"
   },
   "stable": {
    "version": [
@@ -21622,14 +21661,14 @@
   "repo": "jcs-elpa/docstr",
   "unstable": {
    "version": [
-    20210317,
-    1612
+    20210410,
+    1249
    ],
    "deps": [
     "s"
    ],
-   "commit": "5ce0d758dbabb6c250f761fcb6754930cd793c2a",
-   "sha256": "0x9sxcp40p83isjc6smhg00n42056q5dsf0w71gglb1gc5rqhhl6"
+   "commit": "67a219425d1fe9a29ad3beae0677d5ca0047bd53",
+   "sha256": "0irqfn5cxb8gkxvdmikmjz2j9km6k7057r7yw5aypgaxm89a404x"
   },
   "stable": {
    "version": [
@@ -21652,11 +21691,11 @@
   "repo": "progfolio/doct",
   "unstable": {
    "version": [
-    20210126,
-    310
+    20210329,
+    2337
    ],
-   "commit": "8ac08633ae413a6605b6506d2739eece7475272e",
-   "sha256": "09nmxq66cmwpbqc4l8p9f76pn6dmckfvpkj9fk99zsnhan4d8870"
+   "commit": "67fc46c8a68989b932bce879fbaa62c6a2456a1f",
+   "sha256": "0ax7lhfk98vmlf5ll7jdm0lb0axckvhji461aa3whccwjgbinif8"
   }
  },
  {
@@ -21771,16 +21810,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20210322,
-    1517
+    20210330,
+    1522
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "00bc89b8ded4c452ccf65edce5dce6f9a1e41611",
-   "sha256": "1k5qhxjh7h6hwdjxgjb1vxj9kclpli9wrrv350z5f40l4fwzawlw"
+   "commit": "669cac3839271f84ccfed06eddaad206224ca831",
+   "sha256": "1p5w5qbz6dgsk1dcy4fspdqwh03h4cxs175ng6zm6590dk0xs5bb"
   },
   "stable": {
    "version": [
@@ -22473,8 +22512,8 @@
     20210213,
     757
    ],
-   "commit": "a88ce5bbc996b550071c8df890276eb1b10e778c",
-   "sha256": "1957i1d2lv9jfd8ck22vj0wd59sk5gd04xi5qbvzw1y9dl9xshp7"
+   "commit": "65404cf973aa7ffc0e9dd7d05c9dd3709c7db2d4",
+   "sha256": "13v4i59f0m5syjz49g5xh4nnr7k2wck0nf0pc5hgsv6g61gkpwvj"
   },
   "stable": {
    "version": [
@@ -22524,11 +22563,11 @@
   "repo": "integral-dw/dw-passphrase-generator",
   "unstable": {
    "version": [
-    20210307,
-    1834
+    20210331,
+    2246
    ],
-   "commit": "8c5b5c9d435de97ce9b95b9280feb1c0a57a60f8",
-   "sha256": "1793bwfn3c2f9dxcs8mmps3riy25y5baz1fvbpdr9pq19sl58bj5"
+   "commit": "61c5718ba64ace4c9e29de18aa2690ecc3f0f258",
+   "sha256": "14nd544ispfj165ys6lv9bpy41p9j8kf4lwy73qigr4c7qlf43by"
   },
   "stable": {
    "version": [
@@ -22566,11 +22605,11 @@
   "repo": "dylan-lang/dylan-emacs-support",
   "unstable": {
    "version": [
-    20210317,
-    1405
+    20210329,
+    604
    ],
-   "commit": "c51cdb2d947494d8161a429134f9e9d23070a173",
-   "sha256": "0p4kp2gp27xgs4fw0cfd4qz06yp6kvn0k1pq902arzcxkrqz6lj3"
+   "commit": "040c8ebc884305fd4ff980d21c68946fa74b095a",
+   "sha256": "1f99wn0lgknvnplp7nk2lylf17yak2hw53n9a0vkxng01xhf50d2"
   }
  },
  {
@@ -23144,14 +23183,14 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20210316,
-    840
+    20210407,
+    2146
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "1a23ce943991d5dce4a3c3d71d7b5d6b6f9897fe",
-   "sha256": "1wwgfgcr83mvjp9w1yizg49j85j92kd2fyiyyl6x9v8bs4xsn4pi"
+   "commit": "bd1c9dcda79f734f6302e7c81ee0f13106a3a9e1",
+   "sha256": "1bd6hqiq178h1z8x0hjyrxg6l0h2inkzmrg6fadfj3ly1hbs5157"
   },
   "stable": {
    "version": [
@@ -23633,15 +23672,15 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20210309,
-    1345
+    20210407,
+    407
    ],
    "deps": [
     "cl-lib",
     "nadvice"
    ],
-   "commit": "9da2dab6474e1f735a2e9fbc7f26a553497c58c2",
-   "sha256": "0vpspvng3g0l2lqig3fvmxhxl4dqqs9zcyfgymjak03nfcilm394"
+   "commit": "e10fa22b1304c5801b026c10cc5d65a97ccc0a48",
+   "sha256": "15a0269qbymkvbqgdmv5d4pb7bhw1cplbwra4ydhgwnvwv5c5q9v"
   },
   "stable": {
    "version": [
@@ -23992,8 +24031,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20210326,
-    1008
+    20210410,
+    1942
    ],
    "deps": [
     "eldoc",
@@ -24002,8 +24041,8 @@
     "project",
     "xref"
    ],
-   "commit": "2fbcab293e11e1502a0128ca5f59de0ea7888a75",
-   "sha256": "0fsar0ab0wj74jkbgkbigcg4ia6hg574yvqr2wq2s8lw7m22j8c4"
+   "commit": "8a5598d06a0539492ec30fc90201a263ea6a03e6",
+   "sha256": "0jlqskw08zlqhckhz64w2c0a14kk100lmnadwf4li5h2b2clmr7l"
   },
   "stable": {
    "version": [
@@ -24029,16 +24068,16 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20210126,
-    454
+    20210330,
+    1442
    ],
    "deps": [
     "eglot",
     "fsharp-mode",
     "jsonrpc"
    ],
-   "commit": "78898a1535878394d83643c383f4320e7b5fcefd",
-   "sha256": "0d60jfaf8av0b7vx44lbqzb7v70dszvr2w1yjh1cxn71dnjphp4j"
+   "commit": "93b1fbc31d73286a18640a36fc2be87d1736e0f2",
+   "sha256": "0lq1izdlrkwp5xiqjp71adi12jy0xj3fsmn6fg2sv0451bwxghra"
   },
   "stable": {
    "version": [
@@ -24153,8 +24192,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20210322,
-    1150
+    20210330,
+    1531
    ],
    "deps": [
     "anaphora",
@@ -24165,8 +24204,8 @@
     "websocket",
     "with-editor"
    ],
-   "commit": "142ff5078b3074ce3ac8bf90abd8c38d9733253e",
-   "sha256": "05b4gqxfjap6bhfcxjj6v6kv2bhni5a1mzh9ylril5f81xj323gy"
+   "commit": "608c3cbfd58a626aab3cea6aa5b31d8a4032cf10",
+   "sha256": "103sg5wzzr7zp0x181nardc8r63cyx1f7s1l5drig5dwzp4dnd60"
   },
   "stable": {
    "version": [
@@ -24446,11 +24485,11 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20210226,
-    411
+    20210411,
+    1954
    ],
-   "commit": "5e823dc9a29e3be22597d93912f06119c38030d6",
-   "sha256": "0i7gvjy97cbfll93h5b9zyr1p075lklx7rdahkdy46c4kw6vy5py"
+   "commit": "14c35cee52b415fe9892440014c4b8dc045103df",
+   "sha256": "1v4wbfrr09n08lf8l72jmmg2ckhybagcyvk9jrsfarl0d9mxgd7v"
   },
   "stable": {
    "version": [
@@ -24712,11 +24751,11 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20210325,
-    2223
+    20210410,
+    1721
    ],
-   "commit": "a7211e47c1dd543ca5d84b7b85ca205fc6315abe",
-   "sha256": "0806wzrmcl58rp1gs2d3z0dz68h3jigwi0azf8rypz1fp5dkks7j"
+   "commit": "635744890ba2d55d9569a66cb72b13870418a513",
+   "sha256": "1hlsnd9ppw18p0kbjgf2g5xwikipjkzzqcvql63pn9ds5zr1gn6q"
   },
   "stable": {
    "version": [
@@ -24736,11 +24775,11 @@
   "repo": "casouri/eldoc-box",
   "unstable": {
    "version": [
-    20210313,
-    1824
+    20210402,
+    2039
    ],
-   "commit": "d4574ee392b9a8c537bec895be37468b600c25ac",
-   "sha256": "08fscq9amwqap741i25j7swb0gwzipkczqrvrgg3430jb3i0d663"
+   "commit": "f66f8d0641a0025d65da1ec21141ea594d6883da",
+   "sha256": "1y9ns6kmhgzi176z251cymplqc9bdk0axhhcvh4mn21vi5igz4pz"
   },
   "stable": {
    "version": [
@@ -25082,15 +25121,15 @@
   "repo": "fasheng/elfeed-protocol",
   "unstable": {
    "version": [
-    20201013,
-    751
+    20210401,
+    100
    ],
    "deps": [
     "cl-lib",
     "elfeed"
    ],
-   "commit": "4a59e26216ceb6eb466781f15b6ac770b90437f6",
-   "sha256": "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp"
+   "commit": "2b2aaf2f3b92e7c27827e0f280598cb52db558e0",
+   "sha256": "1nffhs0mnc0j87wfk6siw3zaj6p1dm1hxz55p54v9895x8c5bakv"
   },
   "stable": {
    "version": [
@@ -25890,8 +25929,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20210227,
-    56
+    20210328,
+    1852
    ],
    "deps": [
     "company",
@@ -25900,8 +25939,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "c31cd91325595573c489b92ad58e492a839d2dec",
-   "sha256": "0myypqnb4001zf9rpn6sakq900kn6mqhyjkp8vvc5y3j6123gj07"
+   "commit": "2203597e1254eba345d6873daa40c7b9d144931c",
+   "sha256": "0rzqmcbrq7xdk748cwy5ikzbg7f13g57jf7rhxyfy6j5pwn8q7k7"
   },
   "stable": {
    "version": [
@@ -26161,8 +26200,8 @@
     20180809,
     1612
    ],
-   "commit": "c3a7e31564256b9755b1ab9fb40d32ad78cd1ad2",
-   "sha256": "0dxa8g49fq4h1ab3sawnbgy1fxaxxsdac3l6im34qfw4km8brp9y"
+   "commit": "a13fcaf209d803e2e450ca2bf80dea94b40a0141",
+   "sha256": "1zcmqi2jmg5mah6n4i10gdnr9lwmap1iblbp23bks20cmv64q9hn"
   }
  },
  {
@@ -26524,11 +26563,11 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210326,
-    1428
+    20210411,
+    1954
    ],
-   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
-   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
+   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
+   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
   },
   "stable": {
    "version": [
@@ -26547,15 +26586,15 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20210308,
-    1615
+    20210411,
+    1808
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "49cd0aff39e7bc9173ec49d1c14d7ab8d9d25355",
-   "sha256": "19ihm3v7ck5rx4wff5hkrrzqbjk9g9vm8j0axvdf77hr6vzjsak8"
+   "commit": "a005eef82a63950927a68a5ef79b33d25245687b",
+   "sha256": "1dy01y87bqjddsdjqhmp6m144azn72yswsj0prywm5alxypck9lg"
   },
   "stable": {
    "version": [
@@ -26722,15 +26761,15 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20210310,
-    2103
+    20210407,
+    1604
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "de0c4079ccdf3e17b722e3ddf2a275e66703b6bb",
-   "sha256": "1m334c1c1b6jfh100xfdxfqs89i5q1vw6dwjf4alydl0d08q91lc"
+   "commit": "f79343bf03f6ece09638ec27eeb831c0abe59667",
+   "sha256": "1ki2hd38fxvd4112bhgfifr3raar3yz345h9hya7dn8aw9hscr14"
   },
   "stable": {
    "version": [
@@ -27435,6 +27474,21 @@
   }
  },
  {
+  "ename": "eping",
+  "commit": "d9c23f7274c0754cf45c73b1741ff10720f33893",
+  "sha256": "0l507kwsls1il9ik4nb5iay4fxwwq4fq4lk2r476d5640lknxlwr",
+  "fetcher": "github",
+  "repo": "sean-hut/eping",
+  "unstable": {
+   "version": [
+    20201027,
+    2149
+   ],
+   "commit": "99d3a4b6973d5b09864e0af7425a61f99c19b90a",
+   "sha256": "0k6isn6szbwc6jc7kzfq82p8w737z7iyn2yi9aqf6j54a6xa5aka"
+  }
+ },
+ {
   "ename": "epkg",
   "commit": "2df16abf56e53d4a1cc267a78797419520ff8a1c",
   "sha256": "0vvkjjaffvwvsvld3c6hwd18icmp2lc7f9yqvclifpadi98dhpww",
@@ -27601,11 +27655,11 @@
   "repo": "fossegrim/eradio",
   "unstable": {
    "version": [
-    20201220,
-    1010
+    20210327,
+    1000
    ],
-   "commit": "d9dcf81cfc5b0278a2ae51e77b3d44fa50e92ce8",
-   "sha256": "0i20g5c8sx8m5slldb765lbsxg3qdda1dqjl61s9idncp8dlllcl"
+   "commit": "47769986c79def84307921f0277e9bb2714756c2",
+   "sha256": "0lks2pph44qxc9l34nr55ha667974r8ckxdwmvcp6v9mnm05317s"
   }
  },
  {
@@ -28043,15 +28097,15 @@
   "repo": "ergoemacs/ergoemacs-mode",
   "unstable": {
    "version": [
-    20201114,
-    2201
+    20210402,
+    1642
    ],
    "deps": [
     "cl-lib",
     "undo-tree"
    ],
-   "commit": "ad3ec45ebbfdfaca052253c550102fd665b3bd1b",
-   "sha256": "06l7sx9bcvsm3p4jy6l4l5lgl357nrvr54491ignz7c9j403x6lm"
+   "commit": "f9d6e3f7d99b877a63fa6f5ab61e6ba05a7075c8",
+   "sha256": "0xw99i47mmry205aps4mha1ninnnzir652s7jh81fdsys8y5j7w1"
   },
   "stable": {
    "version": [
@@ -28098,8 +28152,8 @@
     20200914,
     644
    ],
-   "commit": "ecb93230ad9327991e542731756cbe1405c85d5f",
-   "sha256": "1acs54ngr26qw5hbhq7xdw4wspqhhmr97gj6rnwxhz4yx02wxd9w"
+   "commit": "3e079614f2b4810ff5920ae69a389da91c855217",
+   "sha256": "1jn0kp33b77lskhi02d0jm0rpcgxhrpxdj82bmr7vi7m199p5jn0"
   },
   "stable": {
    "version": [
@@ -28123,8 +28177,8 @@
     20210315,
     1640
    ],
-   "commit": "94c9738e10326554af80d128c76e4bded1c7b983",
-   "sha256": "1vyk87yy9vpscrxvcd0f14fvbd200af0fiwgw26fdd5f5j6iz2hk"
+   "commit": "165f8fe9354aaf23c166b5c54f352b3024da9bd3",
+   "sha256": "102dbzpfcysq7pinli2jcdff1mxh2af0s79qmia1wfm8jmzh0zhf"
   },
   "stable": {
    "version": [
@@ -28446,8 +28500,8 @@
    "deps": [
     "company"
    ],
-   "commit": "0f144815ebcc1f911a6a7e6df170f8cc10744c92",
-   "sha256": "1lss6q24pdkzbxdn3lj85xci1md9bs28j8ib3qsk1cmv6m691y28"
+   "commit": "30203fc7b8b63a489f34f74ca8b041bf61f4358f",
+   "sha256": "0w34m9va83grw5j566i5sdgkz475fhf3hibx9p1m0a92p1mg9v8s"
   },
   "stable": {
    "version": [
@@ -28726,14 +28780,14 @@
   "repo": "4DA/eshell-toggle",
   "unstable": {
    "version": [
-    20201112,
-    1008
+    20210407,
+    2039
    ],
    "deps": [
     "dash"
    ],
-   "commit": "bbf69e54ba97f23ae281f5c455c194e8a236549c",
-   "sha256": "1f3i9cr4qibjkg8bh719ayb7p3nr5y3hmzlvyflb9vi3108kspb8"
+   "commit": "7160518ca56444fead841b8acff59aeffc7cebb3",
+   "sha256": "0g0cg71n0cp1576i2qkgvg729gw1927vq0js3s64v5b8p9hmb1kq"
   }
  },
  {
@@ -28747,8 +28801,8 @@
     20170425,
     1737
    ],
-   "commit": "9c100bae5c3020e8d9307e4332d3b64e7dc28519",
-   "sha256": "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"
+   "commit": "ff84e6069b98f2ed00857a0f78bff19d96e4955c",
+   "sha256": "1mb576prni644ls7p133ahjgi7jkmclb37wsj8ws3m8r0ls3w76z"
   },
   "stable": {
    "version": [
@@ -28870,11 +28924,11 @@
   "url": "https://codeberg.org/jao/espotify",
   "unstable": {
    "version": [
-    20210224,
-    126
+    20210405,
+    1808
    ],
-   "commit": "b70b4737ece5a081411069eb08103ddbbf8e584a",
-   "sha256": "1kplm8rhyp5fssfi8pswafnck96m6zjkyvqjcwil459liy8lpw46"
+   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
+   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
   }
  },
  {
@@ -28986,11 +29040,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20210326,
-    1730
+    20210403,
+    520
    ],
-   "commit": "c101d44bd70a3f51bf546e18e74e98f62f4a3eba",
-   "sha256": "06b056fmkbvsdzf0l7zywghkax3fqszbkywv822qr3hiwb62lc21"
+   "commit": "b501beec408b66e2f2a8c4f3117e0c84ee1b0262",
+   "sha256": "03rd1qp9d8br36cynxm73ajac0f2kyyjnffnciix3vf7w5lpsily"
   },
   "stable": {
    "version": [
@@ -29075,14 +29129,14 @@
   "repo": "genovese/ess-smart-equals",
   "unstable": {
    "version": [
-    20190204,
-    449
+    20210411,
+    1333
    ],
    "deps": [
     "ess"
    ],
-   "commit": "746cf9e78c3b86cbbf78d69c335a8a4ff3da79d6",
-   "sha256": "1by8bzw3yl86mqzh7lwz5dca243n956jnd2rz4vilpgbh5cka2l3"
+   "commit": "fea9eea4b59c3e9559b379508e3500076ca99ef1",
+   "sha256": "1kfyvhvma31ym3xzld2msbmxvvl69wf6s0l3nj6rmrfvrlhqlnrd"
   },
   "stable": {
    "version": [
@@ -29387,15 +29441,18 @@
   "repo": "zzkt/ethermacs",
   "unstable": {
    "version": [
-    20210124,
-    1110
+    20210401,
+    1213
    ],
    "deps": [
+    "0xc",
     "let-alist",
-    "request"
+    "parsec",
+    "request",
+    "websocket"
    ],
-   "commit": "6d9c86dac6ab569d1842fcfa8bbe63ee9de8cd71",
-   "sha256": "0pawqmwv3cmr2fw5w0nvq36ms882k68w61nyb1d0bvzbjvrbbc03"
+   "commit": "fc7de212b34c34d93f5f0f19af846924404e38ae",
+   "sha256": "0a8d66na4c02mdvkcbldac44hhzsv18imz04yqqp8qn4cdamfi4g"
   }
  },
  {
@@ -29573,15 +29630,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20210325,
-    2108
+    20210411,
+    2050
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
-   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
+   "commit": "d998a8195e404b01e2ea62a455c3dec74d0823c3",
+   "sha256": "0d4839nqdhr858nzb2cqj3wak2g8ynm5l8ak3467p1k9sn4d487a"
   },
   "stable": {
    "version": [
@@ -29775,15 +29832,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20210323,
-    310
+    20210401,
+    1012
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "b45ec5b3156d27a18a949e4bf55643107a21abc2",
-   "sha256": "09sxky26kpdxjdc52vpabxq8h88fx9rnarykn1d2a063bpldz2rp"
+   "commit": "f2be91297029ae002d15e23510f9f686d848d7a8",
+   "sha256": "0ikb3ic84bxj9rzvkjhcvzgiwjpwmhfi6xli5yh03li7qdqsg5j5"
   },
   "stable": {
    "version": [
@@ -30600,14 +30657,14 @@
   "repo": "mamapanda/evil-owl",
   "unstable": {
    "version": [
-    20201115,
-    130
+    20210408,
+    32
    ],
    "deps": [
     "evil"
    ],
-   "commit": "7d21ba71685b4b829c733288865054cc12783b8f",
-   "sha256": "1087rfvvqv9bp33vjbiwka511iha7468y86xigyvmy5wa729blzd"
+   "commit": "949ab1331ed9ff65d04930b215e033ef19f3696e",
+   "sha256": "1nkqxpzczlpw7yn8jjr9lqs2izdbw86x7nz0y67x9yy49aj19v6q"
   },
   "stable": {
    "version": [
@@ -31098,8 +31155,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "7eace67fc6d1f992e447f216baf9a8b7be634c1e",
-   "sha256": "13cgja2ss5afrpabz0rlhrh89vaw7dzaf1gh43b3hdbma8gh9li8"
+   "commit": "d998a8195e404b01e2ea62a455c3dec74d0823c3",
+   "sha256": "0d4839nqdhr858nzb2cqj3wak2g8ynm5l8ak3467p1k9sn4d487a"
   },
   "stable": {
    "version": [
@@ -32083,10 +32140,11 @@
   "repo": "tumashu/exwm-x",
   "unstable": {
    "version": [
-    20190224,
-    1152
+    20210411,
+    1120
    ],
    "deps": [
+    "async",
     "bind-key",
     "cl-lib",
     "counsel",
@@ -32095,8 +32153,8 @@
     "swiper",
     "switch-window"
    ],
-   "commit": "02ec31cd8996b1b3fe305405fef7334c4d08e72b",
-   "sha256": "18cgfnh7bp152gi4zv2skrkjbxs0v2zn6jk35rc48y8nfivps2f4"
+   "commit": "7bc7a930998117a714cf1f2940dcab12bcac9b73",
+   "sha256": "1zs2sixp77q6dd9pdsk3w4y3nj1iz8j74q7nn5rsdmk0ja8i9sws"
   },
   "stable": {
    "version": [
@@ -32389,11 +32447,11 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20210324,
-    1332
+    20210331,
+    233
    ],
-   "commit": "38cddb422572ca6f7dc004583bb8ba6a99b3315a",
-   "sha256": "19c0n5yjannz7sqwmw65j7clvwx6idnzy5lmc01ayghf3w2ksir2"
+   "commit": "ef7efae7a86979e9267f9a600ef1482e0f6a2aa3",
+   "sha256": "0dl9i2l8186ir56v9vx32rw30pj9xgd7zhf24y6sqfjxn80hkdz8"
   },
   "stable": {
    "version": [
@@ -32864,11 +32922,15 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20210322,
-    1527
+    20210410,
+    1942
    ],
-   "commit": "ba14a7ddc21f8bc2b9bc58abd1655abbe12118d7",
-   "sha256": "0lypgn8hppivq3w8jddgbyfs7x67xjkbx2j0is96lfdb0zykp9b9"
+   "commit": "59ab02344f569069b9899a3a5ffdca4a30093df4",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 262 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 704 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 1035 ms\nwarning: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503; retrying in 2286 ms\nerror: unable to download 'https://gitlab.com/technomancy/fennel-mode/repository/archive.tar.gz?ref=59ab02344f569069b9899a3a5ffdca4a30093df4': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -33007,6 +33069,14 @@
   }
  },
  {
+  "ename": "filetree",
+  "commit": "b4714ecde7200de934165d8e3b7f94ab5d711fa6",
+  "sha256": "0d8ryxq7xa95av36fc25dxrrdxbm69iik22q52fjl9pzivrzlz58",
+  "error": "Not in archive",
+  "fetcher": "github",
+  "repo": "knpatel401/filetree"
+ },
+ {
   "ename": "fill-column-indicator",
   "commit": "a3c6e6adb1a63534275f9d3d3d0fe0f5e85c549b",
   "sha256": "1fd9l7idzn9vwcy3v80fnn2d8g4c9g3rc505sapc5wgkn8in0p6d",
@@ -34825,15 +34895,15 @@
   "repo": "atilaneves/flycheck-dmd-dub",
   "unstable": {
    "version": [
-    20200824,
-    852
+    20210329,
+    1926
    ],
    "deps": [
     "f",
     "flycheck"
    ],
-   "commit": "39f7fc3f80ea7567a49012d235d22cf640fb0dfa",
-   "sha256": "12vcf4lrpj852lygpz8533m2h8zf54xs05gna2izigj7jqhmqy2y"
+   "commit": "0799b16872829405e9da4e806ffffa42ad51fa36",
+   "sha256": "07jip6x59h439m714kx0fs6xfqi9p7yfl47js2py0q51hr51k2ij"
   },
   "stable": {
    "version": [
@@ -35179,15 +35249,15 @@
   "repo": "emacs-grammarly/flycheck-grammarly",
   "unstable": {
    "version": [
-    20210217,
-    909
+    20210405,
+    1319
    ],
    "deps": [
     "flycheck",
     "grammarly"
    ],
-   "commit": "67c1135193f98cfa4ee1ff83cc502dc11f648334",
-   "sha256": "1ns5rrpxxwf1n0g568g1dajvpr5i49hnv8v4i4g2sfxyszkijyj7"
+   "commit": "192109f43ca5508709a49875ff5f99c25b7f1696",
+   "sha256": "0ymnypijbivncjncs57dsn096wjccl7vwslv2pa8fl9hjl4y34r0"
   },
   "stable": {
    "version": [
@@ -35577,14 +35647,14 @@
   "repo": "whirm/flycheck-kotlin",
   "unstable": {
    "version": [
-    20190808,
-    630
+    20210406,
+    1148
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "5104ee9a3fdb7f0a0a3d3bcfd8dd3c45a9929310",
-   "sha256": "193l9amk45b0bkrqqm6cxx8y4a6jvm0mcncwq6kvhq2kj9slw7g2"
+   "commit": "bf1b398bdde128806a0a7479ebbe369bbaa40dae",
+   "sha256": "1dr2y8imd6blxkpwbpds7mzn5abqpfzl8nh5zrxykrkalq2px7f2"
   },
   "stable": {
    "version": [
@@ -36321,8 +36391,8 @@
     "flycheck",
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -36961,6 +37031,24 @@
   }
  },
  {
+  "ename": "flymake-flycheck",
+  "commit": "034eb68ae6c115ec0ad156df0ef174d45630f322",
+  "sha256": "13v65aywl0nq2xld8kjjr3lxh491a7h03c1xsjqkbhwhjw8m0ism",
+  "fetcher": "github",
+  "repo": "purcell/flymake-flycheck",
+  "unstable": {
+   "version": [
+    20210404,
+    2128
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "fd5e801b49a0dd085bc23fd6ea32b0e3be9edea7",
+   "sha256": "1rvrxnqplwxm2havrsfsv3nrfv0zgz574rh18dkz5ixlbscjcpx7"
+  }
+ },
+ {
   "ename": "flymake-gjshint",
   "commit": "b4673825b15519e9eb2204ade5cc045751771c52",
   "sha256": "19jcd5z4883z3fzlrdn4fzmsvn16f4hfnhgw4vbs5b0ma6a8ka44",
@@ -37055,14 +37143,14 @@
   "repo": "emacs-grammarly/flymake-grammarly",
   "unstable": {
    "version": [
-    20210217,
-    909
+    20210403,
+    1349
    ],
    "deps": [
     "grammarly"
    ],
-   "commit": "41d10f26a76208612fa184d1155ab40130f4cbf0",
-   "sha256": "1f5vflanpq0kdqnp2jz6aj5v0v4wvmr01rlgxjz3yz31bp444a0d"
+   "commit": "f09caa56254e6c639993afba29f5a4b8b9f9c73e",
+   "sha256": "0djjxnmy2bkkc6nyl5iq3axnp0marpzpnb8cgh79w1fch300avrf"
   },
   "stable": {
    "version": [
@@ -38282,15 +38370,15 @@
   "repo": "rolandwalker/font-utils",
   "unstable": {
    "version": [
-    20210124,
-    43
+    20210405,
+    1149
    ],
    "deps": [
     "pcache",
     "persistent-soft"
    ],
-   "commit": "88fb9b046e7094303e4f5b43e84b0f5d5283c508",
-   "sha256": "1qhrvmx8pcjb2hg3y3ra07nv3bcga3ckqxd9i89wrgay5kk7avcy"
+   "commit": "abc572eb0dc30a26584c0058c3fe6c7273a10003",
+   "sha256": "0hx3k2zx2kdavivr1b957jq7kcwk301yzw77aprxzbs7jz73a35x"
   },
   "stable": {
    "version": [
@@ -38445,8 +38533,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20210314,
-    2238
+    20210406,
+    1356
    ],
    "deps": [
     "closql",
@@ -38458,8 +38546,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "f4c95dd0e633b3dd332d6f91122c864ab3640912",
-   "sha256": "02jhimj1ykz0mfg63iwaaxg1i9fdijczcd1g5fz02zwj1v2dgqgh"
+   "commit": "ab3be5a703f319e6de7e76ed292d20deb60cb2d7",
+   "sha256": "1flpxzmxyz94vl0y2mw437nmcsls1fncapa75kqnbbcf641nidhy"
   },
   "stable": {
    "version": [
@@ -38659,14 +38747,14 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20210225,
-    1517
+    20210411,
+    1308
    ],
    "deps": [
     "seq"
    ],
-   "commit": "9b0079c10c73e5f0785a8e727c1240ea9a781a5d",
-   "sha256": "02qxrq582cmcc6wmflh314z724kzxfp2l31h5b71372lck3f0slq"
+   "commit": "3416d8cbf17af8b6f9118ae1963f203bf9b2509d",
+   "sha256": "1a9w6l46fs3dq52vih5dlm3163iy3dghz08d7c5xfg17c1b98yg8"
   },
   "stable": {
    "version": [
@@ -38881,16 +38969,16 @@
   "url": "https://git.launchpad.net/frecentf.el",
   "unstable": {
    "version": [
-    20210211,
-    1630
+    20210330,
+    1521
    ],
    "deps": [
     "async",
     "frecency",
     "persist"
    ],
-   "commit": "b385061a3103890df2d4b2e46a8b3ac775aeec00",
-   "sha256": "09s6fkshkd3mfhf0zynl50p70cnpx67qigi55is2byvhh5950fx5"
+   "commit": "19e2c48a8b8c8ee8cae5c93b58b57a0aa81a8c46",
+   "sha256": "1gjzis2jshsq5sdi5rv3a29cmk4iv7y6k2awxlddq3biyf80ialb"
   }
  },
  {
@@ -39210,14 +39298,14 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20210131,
-    1150
+    20210331,
+    1931
    ],
    "deps": [
     "s"
    ],
-   "commit": "78898a1535878394d83643c383f4320e7b5fcefd",
-   "sha256": "0d60jfaf8av0b7vx44lbqzb7v70dszvr2w1yjh1cxn71dnjphp4j"
+   "commit": "93b1fbc31d73286a18640a36fc2be87d1736e0f2",
+   "sha256": "0lq1izdlrkwp5xiqjp71adi12jy0xj3fsmn6fg2sv0451bwxghra"
   },
   "stable": {
    "version": [
@@ -39283,8 +39371,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "5bfeab6c0e13bfefddb98b30b6e60489a1574d8e",
-   "sha256": "193wbn2y0562gm08yaq8dim1y52vvxvz6vxh3gpxgk95zrr0ll1s"
+   "commit": "43dfeb07bd3932f9d42c2b964413001cf32f0d50",
+   "sha256": "16an39w1ycbw90d6l0d2mcvyndah1j21b2jf7iwnqipwsac9f1qm"
   },
   "stable": {
    "version": [
@@ -39782,11 +39870,11 @@
   "repo": "godotengine/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20210131,
-    1551
+    20210328,
+    2037
    ],
-   "commit": "16c631cd6f2f2eeb11730442c9897008e1e10f7a",
-   "sha256": "1ygwvavwrhpjrgw58psawcwp01y8j0xhsvc2bywiz8a1d2pngn1q"
+   "commit": "b7bfa6a3b294039f5093f85e4ff809ff05333abd",
+   "sha256": "1197cvf42b3191vd01gv5jj0781954p3b6w4clcxb1c5wxxlb07b"
   },
   "stable": {
    "version": [
@@ -39877,17 +39965,21 @@
  },
  {
   "ename": "geiser",
-  "commit": "67dc8d6e33f3522043f96761b23ea68c9c27084e",
-  "sha256": "1g7z6c3lfa7slwrxk7q8awqs39qibcv2kc4c2fwlwvgbcfhkw085",
+  "commit": "4f305d3a7823c69455aad9088789afef73477c7a",
+  "sha256": "0k0jv5a3qlad5qp72m80yi5xws3gdf38pj06azvdg4kzvhgrxpgz",
   "fetcher": "gitlab",
-  "repo": "jaor/geiser",
+  "repo": "emacs-geiser/geiser",
   "unstable": {
    "version": [
-    20210303,
-    1351
+    20210410,
+    2304
    ],
-   "commit": "8e61c27b628373523b7c467d5f71aac8c873258b",
-   "sha256": "1hnfyr4sbznmmqamk6zwwyq8z4a8vi628a0wfxmj8lyzjb2dqyi1"
+   "commit": "aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 278 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 535 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 1141 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503; retrying in 2003 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/geiser/repository/archive.tar.gz?ref=aa26163aa81b5af3bc5bbf23bec8b5776de3a8bc': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -39899,6 +39991,94 @@
   }
  },
  {
+  "ename": "geiser-chez",
+  "commit": "6c2ee4d4fbde853481aa66925763845daadd5439",
+  "sha256": "1csx76zgg26wqbq6q10v4yqj5hadsww0jw17dbz718521906a4ql",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/chez",
+  "unstable": {
+   "version": [
+    20210405,
+    1922
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "4cb7f2667ea1c53da53f0144910fbbd67bccbf4d",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 257 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 677 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 1142 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503; retrying in 2316 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chez/repository/archive.tar.gz?ref=4cb7f2667ea1c53da53f0144910fbbd67bccbf4d': HTTP error 503\n"
+   ]
+  }
+ },
+ {
+  "ename": "geiser-chibi",
+  "commit": "29aa9f96fa0826e8e26e2e1219b78c73f9af66fb",
+  "sha256": "17zkic298ckq8mdmlc25ycafcx2yy11xfdlfjnyy20p7nqqw8njj",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/chibi",
+  "unstable": {
+   "version": [
+    20210405,
+    1924
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "54e7f384618c73d8fb675b5289d443a8ee3e4dc8",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 530 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 1321 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503; retrying in 2133 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chibi/repository/archive.tar.gz?ref=54e7f384618c73d8fb675b5289d443a8ee3e4dc8': HTTP error 503\n"
+   ]
+  }
+ },
+ {
+  "ename": "geiser-chicken",
+  "commit": "cfc698ce9f759b5664217a4866a91605c11c13f6",
+  "sha256": "0pmy5gxsvp33m3dd5fnanxbjmds2vvaq649hp0nrjixykqhg9gf4",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/chicken",
+  "unstable": {
+   "version": [
+    20210405,
+    1931
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "47be5b43b35d3bf35b0f668b4c08715ea41fb97d",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 302 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 546 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 1206 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503; retrying in 2316 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/chicken/repository/archive.tar.gz?ref=47be5b43b35d3bf35b0f668b4c08715ea41fb97d': HTTP error 503\n"
+   ]
+  }
+ },
+ {
+  "ename": "geiser-gambit",
+  "commit": "3b4af6c41cf776dff3bcb09ae08f6f3acc880b33",
+  "sha256": "0vjq5b1warybr57kc855lbmda109vv4kbysn4s4zfi0mz45y0lbx",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/gambit",
+  "unstable": {
+   "version": [
+    20210405,
+    1925
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "0ee4156640988497779345452c3aa0417356e606",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 251 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 559 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 1131 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503; retrying in 2010 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/gambit/repository/archive.tar.gz?ref=0ee4156640988497779345452c3aa0417356e606': HTTP error 503\n"
+   ]
+  }
+ },
+ {
   "ename": "geiser-gauche",
   "commit": "1cb02b836748f31be26013d2e43ada6d68f35c90",
   "sha256": "1fbhfaz304bfzq7m75kifpfxb69zx4ymnvanfv7lnmbx6fqqfrqp",
@@ -39929,6 +40109,28 @@
   }
  },
  {
+  "ename": "geiser-guile",
+  "commit": "779ebb6fa2f9ee7a86425c4364ae8141f66a0f4f",
+  "sha256": "18w8spn3ys3ggnqic4isy6ggzdjjsvsc1rbpq346mmb1xdy5bjna",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/guile",
+  "unstable": {
+   "version": [
+    20210405,
+    1917
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "93ef7101fdfcc7eac6f465b4b9788c384a323c14",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 632 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 1153 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503; retrying in 2774 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/guile/repository/archive.tar.gz?ref=93ef7101fdfcc7eac6f465b4b9788c384a323c14': HTTP error 503\n"
+   ]
+  }
+ },
+ {
   "ename": "geiser-kawa",
   "commit": "68690d6b011c95197af6b5a87cc21c4dbe97ff00",
   "sha256": "0gzzab0v93vd9n14s1bya0frf3dagh0gbwg1an4mapg7gjz9ffdg",
@@ -39954,14 +40156,40 @@
   "repo": "emacs-geiser/mit",
   "unstable": {
    "version": [
-    20210308,
-    257
+    20210405,
+    1920
+   ],
+   "deps": [
+    "geiser"
+   ],
+   "commit": "d17394f577aaa2854a74a1a0039cb8f73378b400",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 286 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 541 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 1159 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503; retrying in 2059 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/mit/repository/archive.tar.gz?ref=d17394f577aaa2854a74a1a0039cb8f73378b400': HTTP error 503\n"
+   ]
+  }
+ },
+ {
+  "ename": "geiser-racket",
+  "commit": "eddf5704aa4c2373dbe7b7b89934f6db3737a769",
+  "sha256": "13m7xkimn7qn03cxdp8h1b5g1cnkn5pviq48zlw394xlaz67vn3m",
+  "fetcher": "gitlab",
+  "repo": "emacs-geiser/racket",
+  "unstable": {
+   "version": [
+    20210405,
+    1929
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "1caea838ddbbf3d8e0c6f39656f8ff3b445e371a",
-   "sha256": "0r3ycjcrqbfnlci31bzr7l4nqrfklj839k3ba0c19vfga8wyakfq"
+   "commit": "a87fd449cc6c7b0b17a0b08268e78d3f038f3351",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 346 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 544 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 1082 ms\nwarning: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503; retrying in 2114 ms\nerror: unable to download 'https://gitlab.com/emacs-geiser/racket/repository/archive.tar.gz?ref=a87fd449cc6c7b0b17a0b08268e78d3f038f3351': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -40121,8 +40349,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20210219,
-    806
+    20210329,
+    817
    ],
    "deps": [
     "dash",
@@ -40130,8 +40358,8 @@
     "magit",
     "s"
    ],
-   "commit": "19a8d6805541cede2523b70fa6601667b420f32f",
-   "sha256": "1aqcqyi4933p4cixrmjb2g1yghbdshir61q3l90igw6h6nfwbiiq"
+   "commit": "63ca93be02f830f8d65905ebde72d60a2280687a",
+   "sha256": "08s7q7br8a68gs7w55g6i4g0d6ky2mksl1ws8iigiavkh64sihkb"
   }
  },
  {
@@ -40389,15 +40617,15 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20210227,
-    1925
+    20210327,
+    1647
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "f26c1f7e575209da047e77c18d415f9dc11015e2",
-   "sha256": "1cvsslki8nkfh7j7fy0j3f21mf0qc5cz7hv0dm3hw7k25wkrbvb9"
+   "commit": "2273c3b49a08cde0498b3b2cfae6c764629a4c93",
+   "sha256": "1pg46ycllg900cd8q5bsgv9b9mcc0bm0z5g2bw9gf5nnbw556jla"
   },
   "stable": {
    "version": [
@@ -40452,11 +40680,15 @@
   "repo": "Ambrevar/emacs-gif-screencast",
   "unstable": {
    "version": [
-    20201110,
-    1613
+    20210401,
+    656
    ],
-   "commit": "1145e676b160e7b1e5756f5b0f30dd31de252e1f",
-   "sha256": "0nn5wqsk6czx3ca917bk7c4n16rs59n5l0925fdklhp532hhgd2r"
+   "commit": "fa81e915c256271fa10b807a2935d5eaa4700dff",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 272 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 546 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 1078 ms\nwarning: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503; retrying in 2648 ms\nerror: unable to download 'https://gitlab.com/Ambrevar/emacs-gif-screencast/repository/archive.tar.gz?ref=fa81e915c256271fa10b807a2935d5eaa4700dff': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -40755,16 +40987,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210309,
-    1106
+    20210328,
+    1730
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
-   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
+   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
+   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
   },
   "stable": {
    "version": [
@@ -41415,11 +41647,11 @@
   "repo": "TxGVNN/github-explorer",
   "unstable": {
    "version": [
-    20210113,
-    1307
+    20210402,
+    1246
    ],
-   "commit": "b083d0615dd88d9ec4f116015c98b5e3326f77a5",
-   "sha256": "09slgwmv59vwz34b5mcz46360a979h6k3pnqr3pmbakn7ysbdmqs"
+   "commit": "633b7371a6a00660422e195795c4b79f16bf29ae",
+   "sha256": "1wqnar0y6migb5n4hkz98r5bpxxx9m4qn15wg9cz213jpnykfkyy"
   },
   "stable": {
    "version": [
@@ -43287,11 +43519,11 @@
   "repo": "io12/good-scroll.el",
   "unstable": {
    "version": [
-    20210123,
-    159
+    20210404,
+    321
    ],
-   "commit": "5d0479e5a0fe1589fe549f2fc1966f80a4718a4f",
-   "sha256": "046iimmkljbfcz66cj73cnizxn15hw7bzi3glls2h6vh8sxak7d7"
+   "commit": "fb01f121c4c77db3e6750303894d57b31e410b14",
+   "sha256": "0jz4p6xa8nb36g96a8pbhpc4l16jzwryddlw2c442vmkngwy9s1j"
   },
   "stable": {
    "version": [
@@ -43329,8 +43561,8 @@
     20180130,
     1736
    ],
-   "commit": "6e239d7f906ee456b926be229f3e4ee6bad53e42",
-   "sha256": "04mz13p5n6az94mq0mhd1zw7jdpf26sm4mk0p2r92vfy2xqnjqnd"
+   "commit": "845e4f9a15a794071457e74c1fa99be2c68d75fe",
+   "sha256": "130bjw6bpizf0wq48d8n1cvgpdrq31d8ryd6wmah8a5vbwnczf6y"
   }
  },
  {
@@ -43407,11 +43639,11 @@
   "repo": "atykhonov/google-translate",
   "unstable": {
    "version": [
-    20200809,
-    1430
+    20210406,
+    1138
    ],
-   "commit": "6f7b75b2aa1ff4e50b6f1579cafddafae5705dbd",
-   "sha256": "1mcmv1p879nbbhwcimya5licq1mq0wkw5dgil7kqwicz5zzb8p2g"
+   "commit": "0f7f48a09bca064999ecea03102a7c96f52cbd1b",
+   "sha256": "13iznf7gpczqvgkxbqpmzyvyrj9pib6wly1pvsqhi2k8lmmf5yxf"
   },
   "stable": {
    "version": [
@@ -43689,8 +43921,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "7ce0a83a88e6cca59d10df0e7824739854558bd2",
-   "sha256": "0jhy8flny9dlddw8fhymxm7s5c9sl3yxnqh8icdwb9vhgq754wcy"
+   "commit": "52c75aa6b3d8eeacfede11b314e20514ca7c75a4",
+   "sha256": "1a2nzbxhqwpjxfm4sr1l2pyjxhvfwd3ralxmldgsdpssqx64lvsn"
   },
   "stable": {
    "version": [
@@ -44562,16 +44794,16 @@
   "repo": "wbolster/emacs-gsettings",
   "unstable": {
    "version": [
-    20210208,
-    2042
+    20210407,
+    2045
    ],
    "deps": [
     "dash",
     "gvariant",
     "s"
    ],
-   "commit": "1bd1909a22121a8200cca678302f1533856b9008",
-   "sha256": "1g195dg359iff4cq5ywwd5jjxwhvwd4qj6j8631g7wkjz1rx7bxb"
+   "commit": "9f9fb1fe946bbba46307c26355f355225ea7262a",
+   "sha256": "1pq18kz6dqk45ib70sch38ql63smpv7s80ik478ajjysks3882rc"
   },
   "stable": {
    "version": [
@@ -44926,14 +45158,14 @@
   "repo": "hhvm/hack-mode",
   "unstable": {
    "version": [
-    20201006,
-    43
+    20210410,
+    134
    ],
    "deps": [
     "s"
    ],
-   "commit": "847fd910e9d0ac76e2cfeb87512e6923a39d7d5f",
-   "sha256": "1h2j1gbs47l5njny174146b2naf1wv3bgwv932abhjamj7vl06mq"
+   "commit": "8b59e20197ddab21d41d8828ff5ab298bde18294",
+   "sha256": "01iwdpm8nzr8fiqz8shvlwj8cl0r1d5jw77kkfx33vai0nh8m94y"
   },
   "stable": {
    "version": [
@@ -45374,11 +45606,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20210325,
-    2112
+    20210407,
+    214
    ],
-   "commit": "1baa12abfa2c81128e5b13d1351f2978a4a54b4f",
-   "sha256": "12lalrjbf018wkc40pqmpc2jrm64avk0smkili4cqkhspcidci8s"
+   "commit": "426e28bbee7853734664d75a7e5f960c6c15ee67",
+   "sha256": "01qrrbb2rgr780xna4a1ncv92y8af76kvj0hjdl3qa1mdn0ypc3j"
   },
   "stable": {
    "version": [
@@ -45708,16 +45940,16 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20210326,
-    1959
+    20210409,
+    1016
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
-   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
+   "commit": "4f16ec21f5ac4d0b9e36768c27abd453a959388d",
+   "sha256": "07v5gr61pvm5nh8xfi79i7ps6hjicm07zkg98m14z424dc8x6kl4"
   },
   "stable": {
    "version": [
@@ -46010,8 +46242,8 @@
     "cl-lib",
     "helm"
    ],
-   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
-   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
+   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
+   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
   },
   "stable": {
    "version": [
@@ -46252,15 +46484,15 @@
   "repo": "emacs-jp/helm-c-yasnippet",
   "unstable": {
    "version": [
-    20201118,
-    1009
+    20210330,
+    16
    ],
    "deps": [
     "helm",
     "yasnippet"
    ],
-   "commit": "28699d9a9caa8b4d37fd66368d93b6c65828c235",
-   "sha256": "15f4bdarr66jlr7a31r9zn37l6v3fmrqhizz41lqcllkwz0nqh6h"
+   "commit": "e214eec8b2875d8a7cd09006dfb6a8e15e9e4079",
+   "sha256": "1hhbc56vcjz6xkqzmx8zgi0zi6w5xv85rbg68d70jfzmx6n516fq"
   },
   "stable": {
    "version": [
@@ -46622,8 +46854,8 @@
    "deps": [
     "async"
    ],
-   "commit": "98af298c517148fbb31774a548c85ecdc1bcf8ab",
-   "sha256": "0gdi08krvk648fq4hk2b3aiks6plff9cpixghwsgin6rl3k33h67"
+   "commit": "4f16ec21f5ac4d0b9e36768c27abd453a959388d",
+   "sha256": "07v5gr61pvm5nh8xfi79i7ps6hjicm07zkg98m14z424dc8x6kl4"
   },
   "stable": {
    "version": [
@@ -47204,15 +47436,15 @@
   "repo": "emacs-helm/helm-firefox",
   "unstable": {
    "version": [
-    20200612,
-    800
+    20210331,
+    1900
    ],
    "deps": [
     "cl-lib",
     "helm"
    ],
-   "commit": "8ecf5bcb815d1650bf184deffeef10b1277e0e1e",
-   "sha256": "00is30ijsh2aqvrkk5cxl46mbcj3q2fzc02hb55mj3gq4h6lb1bq"
+   "commit": "58a7ff023c76857ca9cd82075c8743446a50c055",
+   "sha256": "06ihkw61ivgghasxignalr0zrfrh5nayky9adrqid9bgmiah3q9y"
   },
   "stable": {
    "version": [
@@ -47915,16 +48147,16 @@
   "repo": "yyoncho/helm-icons",
   "unstable": {
    "version": [
-    20210315,
-    1339
+    20210330,
+    1216
    ],
    "deps": [
     "dash",
     "f",
     "treemacs"
    ],
-   "commit": "7e8d1e213a164aa63b868e610ef8a4fd1ff58769",
-   "sha256": "0g5n9f8vfv3zbylxh6w2xrym4fzd4jqx5n4g6gjp8sscaw5zaxkd"
+   "commit": "8d2f5e705c8b78a390677cf242024739c932fc95",
+   "sha256": "0q220a0knzmm2xk7hjcz6wkdk39ni2qndvnnsrc2vg04r5k12lm7"
   }
  },
  {
@@ -48159,8 +48391,8 @@
     "helm",
     "lean-mode"
    ],
-   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
-   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
+   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
+   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
   }
  },
  {
@@ -49457,8 +49689,8 @@
     "helm",
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -50795,11 +51027,11 @@
   "repo": "Fanael/highlight-defined",
   "unstable": {
    "version": [
-    20181106,
-    1718
+    20210411,
+    222
    ],
-   "commit": "8e05be23e555ab05edc6fb188f5ce28ef495c946",
-   "sha256": "1xqs8shzka47ns4a60ba2i2kgjcq9vl9w1518ffhb4x2x41lr4ri"
+   "commit": "4420bdda419875dacb065468aafe273b2022580e",
+   "sha256": "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"
   },
   "stable": {
    "version": [
@@ -50963,14 +51195,11 @@
   "url": "https://git.sr.ht/~tsdh/highlight-parentheses.el",
   "unstable": {
    "version": [
-    20210104,
-    1625
-   ],
-   "deps": [
-    "cl-lib"
+    20210410,
+    1932
    ],
-   "commit": "723abf9b6092d7e19548316de1f907ed0d67c780",
-   "sha256": "1kkxxq5cw090vw3cddzdq51f208vxw326hsqb1zi8f6z3vsm2h7s"
+   "commit": "fdabfda5f6300f8dd4d2a62c49359605798cc001",
+   "sha256": "0x833ahd5m4rlqrgr7n5xj477vbs7mmp267in22hw0cxi9aan08q"
   },
   "stable": {
    "version": [
@@ -52213,11 +52442,11 @@
   "repo": "nflath/hungry-delete",
   "unstable": {
    "version": [
-    20201007,
-    2024
+    20210409,
+    1643
    ],
-   "commit": "0513152525c38519a5597db2d6495b56dd9cc3f0",
-   "sha256": "0250s6snh5z3w1g98rfgahzh8ys51gl3l5sk7b2wi39h2rdlzcqg"
+   "commit": "d919e555e5c13a2edf4570f3ceec84f0ade71657",
+   "sha256": "1hjihncj6q971zj1xfnfmyvx8wv19wdnglnmz1278fwsgrcs050d"
   },
   "stable": {
    "version": [
@@ -52755,11 +52984,11 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20210227,
-    2146
+    20210411,
+    1913
    ],
-   "commit": "e490b01f7420bc15bc8e7b4594964208c3d31107",
-   "sha256": "1b069vnjlwnwk62332ndwizjp44dhjxvajv2nndpxqrkpqg9s8jb"
+   "commit": "a258ff1033dd3d3cb894a039ac13ff3a85b96f57",
+   "sha256": "1r6cpq6nm3hhxhim4i0alcwmrvq17n7gh5dri9lfpcq6c7wqf0qi"
   },
   "stable": {
    "version": [
@@ -53362,11 +53591,11 @@
   "repo": "victorhge/iedit",
   "unstable": {
    "version": [
-    20210203,
-    23
+    20210402,
+    854
    ],
-   "commit": "0d6d2387188763a88cdf84f749e6f32d5a72bbd6",
-   "sha256": "0v34zqbfr7z3mr5c9nyksxkdgmnyvvsr9zaq202hhq25lwlhrkpq"
+   "commit": "ff68c2065316aa5fb72662428f8d5812ec8da83a",
+   "sha256": "1c5qxms26q2pd5g7p8zayqbbgypjix5ayk074kk07a4km4wx31h8"
   },
   "stable": {
    "version": [
@@ -53665,8 +53894,8 @@
     20201229,
     1035
    ],
-   "commit": "68b0aaaefc18b267e4e383df36a8dfb7448bc83c",
-   "sha256": "1mf8drn4acf0r2sjpprbjp4wv75jzy5j8b9p9snnj3991fk66yby"
+   "commit": "a8d867e7cc446afcd4dc71d4f528e58d639840e1",
+   "sha256": "1c64cbxzm287k8hhm1plwphvipf96dp9zb0kyl78ng5c072wmryf"
   },
   "stable": {
    "version": [
@@ -53686,14 +53915,11 @@
   "repo": "bmag/imenu-list",
   "unstable": {
    "version": [
-    20210325,
-    1536
-   ],
-   "deps": [
-    "cl-lib"
+    20210411,
+    1703
    ],
-   "commit": "b03b86aee6ac30067906dddc385db8188657d023",
-   "sha256": "0vi4cj6cijra3d0khiqc185iqzhkzillbwnhglxi82r4zrzwnyzg"
+   "commit": "1447cdc8c0268e332fb4adc0c643702245d31bde",
+   "sha256": "1fhfxwwf622mjl3slnzyj0zzmbx15qhq6xv8p7fpw88dx1dki113"
   },
   "stable": {
    "version": [
@@ -53977,11 +54203,11 @@
   "repo": "jcs-elpa/indent-control",
   "unstable": {
    "version": [
-    20210309,
-    1151
+    20210404,
+    727
    ],
-   "commit": "383ea506a6e6145bbb6327a7b1e509b40edf446b",
-   "sha256": "1828wh72ij2dhrvlwzx70j6q2gjqs96dk2h6wk508pphqw3yn29x"
+   "commit": "5048c685e7071631dbad52988dbf91ffc67a4af3",
+   "sha256": "0clj2rm5lsyd6c3087j0z5ndg20pji5c7yqd6r1jnpclrvvwb04w"
   },
   "stable": {
    "version": [
@@ -54192,8 +54418,8 @@
    "deps": [
     "clojure-mode"
    ],
-   "commit": "1e99b8246bb1fe7666d613a9ae566e2a939fc2bb",
-   "sha256": "0bqznd3mn0fd8km5in9k2i87pxcjv6wszdgjp4ajzw742dznkb2f"
+   "commit": "c3ff2f40fdcedf3357cde868c278474767b65adb",
+   "sha256": "0ljxpjhm3v0wb851zfqvkr5cv4hblg29rz3a5lw48jwz9ijpapq9"
   },
   "stable": {
    "version": [
@@ -55487,11 +55713,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210311,
-    1638
+    20210404,
+    1241
    ],
-   "commit": "47b496544e238041bca5e3c9ca55848648344312",
-   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
+   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
   },
   "stable": {
    "version": [
@@ -55518,8 +55744,8 @@
     "avy",
     "ivy"
    ],
-   "commit": "47b496544e238041bca5e3c9ca55848648344312",
-   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
+   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
   },
   "stable": {
    "version": [
@@ -55551,8 +55777,8 @@
     "cl-lib",
     "swiper"
    ],
-   "commit": "ca09076c3d6e51cc4ffe208c8176fccf3710fcc6",
-   "sha256": "1jf2zapmkg2fdn9ldq8cn3aw02iqpjh26h6yjj93q3h0clsk5ia2"
+   "commit": "9870333cdd4a54b309e2709af647cda6f4070a42",
+   "sha256": "02cpg60hif4rz6va2ynh3wc9dwj0nyig4fa0l6jchmzz8v2zvf86"
   },
   "stable": {
    "version": [
@@ -55886,8 +56112,8 @@
     "hydra",
     "ivy"
    ],
-   "commit": "47b496544e238041bca5e3c9ca55848648344312",
-   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
+   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
   },
   "stable": {
    "version": [
@@ -56053,15 +56279,15 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20210122,
-    45
+    20210410,
+    530
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "3132719a9a7c04431fe65f1dced8acafe789bdf6",
-   "sha256": "133l0rd3iwphj9xcgww5m54mmyfd7icr46s792awlpc1ch7748c3"
+   "commit": "7f1ab7890040c4b8dc4e9645c824cd35210e1121",
+   "sha256": "053irrmqvlzs7597grsq0fn06w3apqkgma45xv5pfb2wqin2kx2w"
   },
   "stable": {
    "version": [
@@ -56092,8 +56318,8 @@
     "ivy",
     "prescient"
    ],
-   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
-   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
+   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
+   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
   },
   "stable": {
    "version": [
@@ -56147,14 +56373,14 @@
   "repo": "Yevgnen/ivy-rich",
   "unstable": {
    "version": [
-    20210212,
-    1441
+    20210409,
+    931
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3",
-   "sha256": "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"
+   "commit": "600b8183ed0be8668dcc548cc2c8cb94b001363b",
+   "sha256": "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"
   },
   "stable": {
    "version": [
@@ -56184,8 +56410,8 @@
     "ivy",
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -56237,6 +56463,25 @@
   }
  },
  {
+  "ename": "ivy-spotify",
+  "commit": "380125490f47bd150218280c2e16c01be9054a60",
+  "sha256": "1mrwwlx3nwvvbwlbp4diz7ylsxl76dp51pfgsb2xay2yq0ia34w8",
+  "fetcher": "git",
+  "url": "https://codeberg.org/jao/espotify",
+  "unstable": {
+   "version": [
+    20210329,
+    312
+   ],
+   "deps": [
+    "espotify",
+    "ivy"
+   ],
+   "commit": "22b81067ebcaef2cea633f967a4b55454af9326a",
+   "sha256": "0b93a8km80r1c3gbinnsigkkq8yc127jwrqj8s8z130b79ch91hn"
+  }
+ },
+ {
   "ename": "ivy-todo",
   "commit": "e608f40d00a3b2a80a6997da00e7d04f76d8ef0d",
   "sha256": "06mn430zkisnqrmad81gn88pl7lz0m8rm1yvpngpakwwnhwm0q96",
@@ -57214,11 +57459,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20210305,
-    646
+    20210404,
+    1924
    ],
-   "commit": "2e5e85392532fea07848000089137d51d008f42a",
-   "sha256": "0dcgs0p01hk9aljmv8z36gxqcpcw4p77yl2nvz1gql66lb4p7h6s"
+   "commit": "9e7b841083c7bb1c76772e8a58428d59ea2fd0f4",
+   "sha256": "0l3qcnbdh7n4racd2b548h1f8plz1r78n1crcnsqnl7gpxxn1fmk"
   }
  },
  {
@@ -57393,8 +57638,8 @@
     20180807,
     1352
    ],
-   "commit": "aa3175de7da5e1243dfd1ad9a17dcfe85740415e",
-   "sha256": "01z9nq0yp47qcps7c7jzrb1fmcx7qbhr7ig056sp20jq7yn9r3dy"
+   "commit": "2cb7131e9cda6179541cfc7e3703c426ef3f8024",
+   "sha256": "1na2n607bdp5l9wg74i77rbd6wq6z4mcw2yp1b66xkzgmjhpndj6"
   },
   "stable": {
    "version": [
@@ -57949,14 +58194,14 @@
   "repo": "tminor/jsonnet-mode",
   "unstable": {
    "version": [
-    20201207,
-    1825
+    20210407,
+    2013
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e93a1f55e5f9bc2b34b025c6f7a60a6f159268d1",
-   "sha256": "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"
+   "commit": "9bb6f86dfe6418ccccb929e8a03fb4bb24a9ac0e",
+   "sha256": "1rx7kr4pdhrmpcm5rm0h9kawk7czgdy1w5z3w4a2jw0v442bhx44"
   },
   "stable": {
    "version": [
@@ -58057,14 +58302,14 @@
   "repo": "tpapp/julia-repl",
   "unstable": {
    "version": [
-    20210124,
-    923
+    20210408,
+    639
    ],
    "deps": [
     "s"
    ],
-   "commit": "7ce38a9caf2a9c105afe66f464a2f30e816d69f3",
-   "sha256": "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"
+   "commit": "79e686e3ebf164bd39fc2ea5cf09d38d0e1d763a",
+   "sha256": "1dn1n726lp5m744s4qib6rgcp2an01qblj7ynams3drgca6j6076"
   },
   "stable": {
    "version": [
@@ -58105,8 +58350,8 @@
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20201128,
-    135
+    20210330,
+    1901
    ],
    "deps": [
     "dash",
@@ -58115,8 +58360,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "83f1110a41748cf15ad88924a13f943e58da1409",
-   "sha256": "1f8nxdiq508m2y7r9wbx0gpab03n4zz546qd1x40czxh2xv932ib"
+   "commit": "03b4296ba7151963eb3c850f3314b02644101f51",
+   "sha256": "1jgs0pz8bzqg8116kyw3z7jwbf6karrl89ks028q091ylc00nm8b"
   },
   "stable": {
    "version": [
@@ -58145,14 +58390,14 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20210327,
-    657
+    20210410,
+    40
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "1d70c7f9fb91654e38fc868baf0ef72399f75ded",
-   "sha256": "1zhc71vsc7xjkabqkpv3pbf8hippqiqrd3ng1ws4b9fn1kv68av3"
+   "commit": "b8a749f19bef179c58068d3fa5cd53c3db5d1ecf",
+   "sha256": "1bp3dc915zq1qd7zycz8bdjq4pz172r3zbzjn8k4rsw0lz9j6w88"
   },
   "stable": {
    "version": [
@@ -58298,8 +58543,8 @@
   "repo": "nnicandro/emacs-jupyter",
   "unstable": {
    "version": [
-    20210116,
-    255
+    20210407,
+    212
    ],
    "deps": [
     "cl-lib",
@@ -58307,8 +58552,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "6ce8d01e3a550a3268b415bf9d9b635d4dba5940",
-   "sha256": "1l0a6abyshrr6wb9xhgwgkdcarnhxj929rg52zf63xix351dlqi9"
+   "commit": "7735d2b8fb32434992467f0d4d9d59c1a1a5dc0c",
+   "sha256": "12q70b249yygqr30l1vhgxzlbfxkcil9xaixzj8zy3xbd3vsjdns"
   },
   "stable": {
    "version": [
@@ -58539,16 +58784,16 @@
   "repo": "jmorag/kakoune.el",
   "unstable": {
    "version": [
-    20210212,
-    2031
+    20210220,
+    1858
    ],
    "deps": [
     "expand-region",
     "multiple-cursors",
     "ryo-modal"
    ],
-   "commit": "34af1bc1225b044d9a15d8c276b7e33b12cb8720",
-   "sha256": "08b1r4yz7ikzwxn4hlip75vmd77hc8nsmiphdw46a9h6w9aw0v30"
+   "commit": "c39f278811945dbf0958ca8cf81d7b03c39efbcf",
+   "sha256": "0ajh4nk8brwi41rsbd9dn5gbf7i2mkaxm3aal09r2wgmgxigsiqp"
   }
  },
  {
@@ -58679,15 +58924,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20210315,
-    1754
+    20210403,
+    749
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "80d0a5824fedb332432d5999af9842316b7dc3f2",
-   "sha256": "0309vmrbw7a4r0gnsdd5jyfql2fl3lbh3gsnagynvq7rzv9ryr1c"
+   "commit": "367429c39e330cf2b87e8af0ca7c8883baa21ea3",
+   "sha256": "0hj21jmkcsjv7rxpfq6n77jsmm894rfgsdn80qymh6nyxznq93ym"
   },
   "stable": {
    "version": [
@@ -59464,8 +59709,8 @@
     20210318,
     2106
    ],
-   "commit": "09c957050af1c37d381d855ac886fb2aa2896d39",
-   "sha256": "1lfbl1kvnw09qbcsxks14kj9ya1gsahs9wmgznn100d7nqnjwhsc"
+   "commit": "53b655b0ef4bdfe8bf81a2bef8f09179a4917076",
+   "sha256": "095z6dkqz6iw28ighqbl2c60i6bm6qyrkxl93yg9b31cd6yzlzin"
   },
   "stable": {
    "version": [
@@ -60007,16 +60252,16 @@
   "repo": "tecosaur/LaTeX-auto-activating-snippets",
   "unstable": {
    "version": [
-    20210308,
-    336
+    20210327,
+    1230
    ],
    "deps": [
     "aas",
     "auctex",
     "yasnippet"
    ],
-   "commit": "78b10f0e1629283f8ba0f5bd1e28cf9a606362fd",
-   "sha256": "077hnz3gzqzp1pnfksr88p2q33l4ghz6rlxlqajnmb42cv64rxv1"
+   "commit": "654ea30aa0263e85891ddcabc0b7a0f0144b9e27",
+   "sha256": "1z5pw9xhp4gh156n9n3yq92zm6z8gw2ik7nfrvgnip2v3yr31pfb"
   },
   "stable": {
    "version": [
@@ -60108,16 +60353,16 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20210325,
-    1344
+    20210407,
+    1529
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "5a3c307928438afec317bbb88d56fd67ae89f87c",
-   "sha256": "1y3szymdb8xf6kv6g9hlmf89bcy3r8c1qzf9gh968yml2gqzrfhb"
+   "commit": "8609ec2101777362f45df493c593e0e125fe0824",
+   "sha256": "142v2yccbh5aiwy6xzxnz9656p9zj3j2vmmyy70x7vxn2jair3bl"
   }
  },
  {
@@ -60224,14 +60469,14 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20210207,
-    1829
+    20210411,
+    1332
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2c99ce29b86fc635649f4e89723912dc1cc4f36c",
-   "sha256": "12fzzdc4jns440gb71iydsicni646gciaxv50p0wrfk9mbppidck"
+   "commit": "30a5bc267af7de167d0a835ead828016e6e7e14c",
+   "sha256": "1wkppwh72zs8b4jqdxqpf3gikh11la03nkj8nna9bg7k8n0a4vaq"
   },
   "stable": {
    "version": [
@@ -60759,8 +61004,8 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20210305,
-    1705
+    20210406,
+    1038
    ],
    "deps": [
     "dash",
@@ -60768,8 +61013,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "5c50338ac149ca5225fc737be291db1f63c45f1d",
-   "sha256": "13vrg0pp7ca0lh4j9cyg4pgfnbvf2kvbrgvvcmn1h7l9py2n8alj"
+   "commit": "5a2a36356e73c74a42e49fad19a71f4f12929a90",
+   "sha256": "18lswxxwvp85yzg1kc9vxn4dpmxmj40j6g64c8ns83nb7hw9lszg"
   }
  },
  {
@@ -60865,11 +61110,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20210322,
-    2306
+    20210329,
+    2024
    ],
-   "commit": "32fef097970e66b6cc75ee8233a7edaeee6431df",
-   "sha256": "1yv2lb3wpnck5ig8n4z7nwlksi6frnfjlh6fqslwqnxyz5n3xsr0"
+   "commit": "3b0fa5c22bd196dbe31a19f4b2ebbdf8f4081b20",
+   "sha256": "1igg1dmsn90crggm11xnlhrc36szr3dfc4463dn65cagwlck3g3k"
   },
   "stable": {
    "version": [
@@ -61105,8 +61350,8 @@
     20201207,
     2103
    ],
-   "commit": "898c1426c29abbb1c86a715b1323669e30d4699e",
-   "sha256": "0ijd0p6k9c2va19wrp1kpj2x4bzyj3vh244ka8jdmsmwmqfmvb2z"
+   "commit": "a1154d65bf33ae34ea944b9e59d95b601fea7169",
+   "sha256": "0ibh09iz1m2m752rkk9dbyvmczrzv401gi4k18vlh67hz7vd5la0"
   },
   "stable": {
    "version": [
@@ -61178,8 +61423,8 @@
     20201007,
     2214
    ],
-   "commit": "339021e29a50c71045736f322e961efbfc37bd99",
-   "sha256": "0416fcd1jnvhfj1bm3x60yi8n9cbxyyz11ri5k1g7b454pw54yb5"
+   "commit": "5677410abffa1d1bc66b867be8918f1423fd586b",
+   "sha256": "1lcyd7gh2d72vx47dh375d50qcf7xnx888xrx76yc5zfx2df4p80"
   },
   "stable": {
    "version": [
@@ -61425,8 +61670,12 @@
     20210303,
     1751
    ],
-   "commit": "cadaa46a6eafa305e9b176f6decc649708e6fec9",
-   "sha256": "04imm0j7d8f7xcfbha8vhyf66hsq1sv0y3r1i582r91psrzhlai6"
+   "commit": "d029f4d1738dad616df1a56b570cdf1e725cd967",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 286 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 612 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 1232 ms\nwarning: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503; retrying in 2325 ms\nerror: unable to download 'https://gitlab.com/ligolang/ligo/repository/archive.tar.gz?ref=d029f4d1738dad616df1a56b570cdf1e725cd967': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -61584,14 +61833,14 @@
   "repo": "noctuid/link-hint.el",
   "unstable": {
    "version": [
-    20201127,
-    2144
+    20210410,
+    1506
    ],
    "deps": [
     "avy"
    ],
-   "commit": "09ba5727d8ba4a2e5d4f5ce924aaebbc7478ff13",
-   "sha256": "1qw9msvmmb2mzjw4frpnnhp63n5jcwgwxpbbpbaxwbm0pv33zjah"
+   "commit": "ae73db6a5948c8d109fc1d570760bcafa3f07175",
+   "sha256": "1rlbxlh9a0hnlaxpgfjvjjvmhnzwc84p9xiqi740xv82cd27wcnl"
   }
  },
  {
@@ -62209,11 +62458,11 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20210101,
-    1827
+    20210411,
+    244
    ],
-   "commit": "d489fafd824d3fbd26fadb7b60dd2533d32478a9",
-   "sha256": "13m65xvh172rs7pc4yshz41289h93fz4isrpracy2zi409ji3h37"
+   "commit": "23b4308caddf02cc0312ebe4d971e3bfab22f3f8",
+   "sha256": "1zfqdbbknjdg73g1jdy758dln6hgi1rq6j0xpyasyasj169j1nxh"
   },
   "stable": {
    "version": [
@@ -62841,8 +63090,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20210313,
-    1940
+    20210406,
+    2012
    ],
    "deps": [
     "dap-mode",
@@ -62853,8 +63102,8 @@
     "lsp-treemacs",
     "pkg-info"
    ],
-   "commit": "f3b70ec0e6adf3a51e15f9a3effb182c2363493d",
-   "sha256": "0iyp844wnvxjrp860dgkr10qrfsaj2rcssj8dv93hhv8pg91fhsk"
+   "commit": "10e309acc31648ec9bf7ffeef0fc2ad16b2a8584",
+   "sha256": "1wm0lxllazfxrrv4cgalcnsf7g88g1cwz7b69dxfgirlcybcw9il"
   },
   "stable": {
    "version": [
@@ -62883,15 +63132,15 @@
   "repo": "emacs-lsp/lsp-docker",
   "unstable": {
    "version": [
-    20210217,
-    1102
+    20210404,
+    1717
    ],
    "deps": [
     "dash",
     "lsp-mode"
    ],
-   "commit": "a5b9ae58fc46b683bccd97d6722f9bd1663fd79a",
-   "sha256": "0gddfn5rxf7n4l9llziad95cmnn2zlyam7fwh1jbirrhwidg024q"
+   "commit": "5a9c7e39905756d6cd58b686f6aa203f31c2271c",
+   "sha256": "1v9nqr6xpq6hqpaw8k5gx3nvxk7yjmkwyprw2009ckgb84icl8hi"
   }
  },
  {
@@ -62934,19 +63183,18 @@
   "repo": "emacs-grammarly/lsp-grammarly",
   "unstable": {
    "version": [
-    20210317,
-    538
+    20210404,
+    645
    ],
    "deps": [
     "grammarly",
     "ht",
-    "keytar",
     "lsp-mode",
     "request",
     "s"
    ],
-   "commit": "f5675c58ba80258331dda99072c5bfac524dbf48",
-   "sha256": "0ziv51c9fq4yv8ll7087cd2bwqkl309b1a0gds67d160pj9swwhh"
+   "commit": "aa2e70eec5755651ed6c9d9f4063542634760c91",
+   "sha256": "0qisz5117ifravbwvnaq2ci62v3sxl2dd1bd9giacscvshx2hw2c"
   },
   "stable": {
    "version": [
@@ -63011,16 +63259,16 @@
   "repo": "emacs-lsp/lsp-ivy",
   "unstable": {
    "version": [
-    20210320,
-    913
+    20210407,
+    856
    ],
    "deps": [
     "dash",
     "ivy",
     "lsp-mode"
    ],
-   "commit": "515e5977b3d1f6cb521984f084868f28efd47e72",
-   "sha256": "1m05c80bf7d7kkk58c91c2f3lyln0wh6mvxbyi856fh1clb5gv13"
+   "commit": "4dcb63533558a83de4a1b830835687e69474cd88",
+   "sha256": "0y2116lqalipgc841kz4gangnx9xmihg3x28gv8n6myslphc45ma"
   },
   "stable": {
    "version": [
@@ -63137,15 +63385,15 @@
   "repo": "non-Jedi/lsp-julia",
   "unstable": {
    "version": [
-    20210310,
-    1116
+    20210329,
+    1551
    ],
    "deps": [
     "julia-mode",
     "lsp-mode"
    ],
-   "commit": "c487ed715c49d863e8a8e76d13b37b6e694520d4",
-   "sha256": "0dqf34gq8rnskqj7m3vp8pxmzysg5bdchbyfhfz6h5yc0p52rvr4"
+   "commit": "81f7de5b9fe8e8e0e1e3a3ccc677f052edad140d",
+   "sha256": "1hwkx5ssix2si7jpsbfcg1i65v3z265l39158qjm31cxf8pk52dw"
   },
   "stable": {
    "version": [
@@ -63199,8 +63447,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20210217,
-    1027
+    20210410,
+    615
    ],
    "deps": [
     "dap-mode",
@@ -63211,8 +63459,8 @@
     "lsp-treemacs",
     "treemacs"
    ],
-   "commit": "51a89c1861eb505882c20393227f303ac33276e4",
-   "sha256": "1l4ic84qpcn2z54knzhw1mj61s699gpyg6a01vbq9mbpx1sxs9lf"
+   "commit": "a603e9ec3d5f926774a8facb045f33eaa6df9037",
+   "sha256": "1pxfvmkk64v0sd7ghwj3dmhf7bbfh8wk2apxvckdq76l1wrd8izs"
   },
   "stable": {
    "version": [
@@ -63241,8 +63489,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20210326,
-    1728
+    20210410,
+    1801
    ],
    "deps": [
     "dash",
@@ -63252,8 +63500,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "7d72c9e79b17bb96477326bc97a9251bf64eb0fb",
-   "sha256": "0ngz46b1b4zilgbf90ghzcni7qz9qdwhmng4jpdqs3hv9a4n5c15"
+   "commit": "65fb3e8d071406c4596dcc13e3f0230e1f730ec6",
+   "sha256": "1cdhgmqzg9dj491jqwfnqjdjkl4ki3gkpfn386mb5hwfl5aiv5pf"
   },
   "stable": {
    "version": [
@@ -63421,14 +63669,14 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20210217,
-    1823
+    20210405,
+    1922
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "689f6cf815c8ee2ca2332f31dfda8ddefb0b7e26",
-   "sha256": "13vc2pwxl2cl2qa3gjkpa6si3760y7xyrlg1ygk3g1633w756h80"
+   "commit": "8d228b0f6dde3a4d1327650c17b21539ff4a08ee",
+   "sha256": "1kjif1vhm9fcxcyid14n9lw7mkq1yshf2ai1nk76bdnar45w9860"
   },
   "stable": {
    "version": [
@@ -63485,14 +63733,14 @@
   "repo": "emacs-lsp/lsp-sourcekit",
   "unstable": {
    "version": [
-    20181216,
-    1450
+    20210404,
+    1624
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "ff204ed820df8c3035ebdc4b5a583640d52caeeb",
-   "sha256": "1q9ml3r827am27fhs9vlrgsxnq43k3zjb3h5mi999da1nhqwcs49"
+   "commit": "aafa9878a3df2f08e5a9c846d91fd53350ce3c99",
+   "sha256": "1la4mfaykd6vi7d0nw45a2ia8zwr8xflqhc4a9rmdl8biyrp47kj"
   }
  },
  {
@@ -63503,14 +63751,14 @@
   "repo": "merrickluo/lsp-tailwindcss",
   "unstable": {
    "version": [
-    20210315,
-    624
+    20210330,
+    323
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "d11cdc25be8e20400a1f9005f716648dd2ce4a3f",
-   "sha256": "1gls3c2ai2axnsl2dh4vy8l6hr1fyzv4hxi6yss5fw0xs8rqq7c5"
+   "commit": "5df10c36d3162982f5100b8c66af957dd05712cf",
+   "sha256": "0vl5gajg1w5qrzafvkqrbkb9dlja4ina2i3gs6pfv1jrn473h8p7"
   }
  },
  {
@@ -63521,8 +63769,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20210216,
-    1250
+    20210411,
+    1507
    ],
    "deps": [
     "dash",
@@ -63531,8 +63779,8 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "3bae4a91e05d55d5ca92da272ffcd497f370e9df",
-   "sha256": "03dvf5vf74p3vjzv98csidw6hzpx2w7f20xmyy12cpiip76wanf0"
+   "commit": "4cfb46d7fe69cc537a8a86389c5d8d9fd3fbfabe",
+   "sha256": "0ca20xdmk0c5w3hpimly6pl355sjvzjaq3nwfaw3p6qr9sx1sy9w"
   },
   "stable": {
    "version": [
@@ -63559,16 +63807,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20210326,
-    507
+    20210330,
+    428
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "1dbea9ff206a626d5c2d735e3f8fcdac59827963",
-   "sha256": "175am5hycgxmd4329mnwgcjfpyycxyjip5wl96n297zxnb4m94wb"
+   "commit": "efae00eb6a733d5271cb33e9d92c3d8c2fa98dde",
+   "sha256": "01y5yl16kvhmwziza08q88l1dva76nzbm6ln0qymalfkxipjcxrn"
   },
   "stable": {
    "version": [
@@ -64031,8 +64279,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20210326,
-    329
+    20210411,
+    2036
    ],
    "deps": [
     "dash",
@@ -64040,8 +64288,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
-   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
+   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
+   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
   },
   "stable": {
    "version": [
@@ -64215,10 +64463,10 @@
  },
  {
   "ename": "magit-gerrit",
-  "commit": "f7cc000debed666ad6800e31c114eedb7384317c",
-  "sha256": "1iwvg10ly6dlf8llz9f8d4qfdbvd3s28wf48qgn1wjlxpka6zrd4",
+  "commit": "13cb198a53accc698bcf6ac105c13006989faa83",
+  "sha256": "11l68phimyh1ny4h8bwi51zh8924h043g0l6dq746f60kdi801zc",
   "fetcher": "github",
-  "repo": "terranpro/magit-gerrit",
+  "repo": "emacsorphanage/magit-gerrit",
   "unstable": {
    "version": [
     20160226,
@@ -64387,8 +64635,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
-   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
+   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
+   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
   }
  },
  {
@@ -64542,8 +64790,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "527842a3b0fd868bd0c193c430a6ad290dd62053",
-   "sha256": "0cxnvi2vkk5nrcd2iir34bv76rsakijsim1rgxxh03xjc7fqyvj3"
+   "commit": "5882df245d3388cd6f443bc11df219a838104df2",
+   "sha256": "08yisn699gg2mfapc1h1rfb90vm9p10vk1c9xzd4h30xa6c0299h"
   },
   "stable": {
    "version": [
@@ -64828,8 +65076,8 @@
   "repo": "p3r7/magrant",
   "unstable": {
    "version": [
-    20200917,
-    857
+    20210328,
+    956
    ],
    "deps": [
     "dash",
@@ -64838,8 +65086,8 @@
     "tablist",
     "transient"
    ],
-   "commit": "9e1ba1fb13af6e62a2f40ebbe049e81267292a0d",
-   "sha256": "1x354bmpdj1mhjk2rapczqv57x0vn12csc8x38yyb6w1rxqbdycz"
+   "commit": "afb563e66fc1639feda22845049492e09cf65327",
+   "sha256": "0k3fx44xdnvlqmszqs6aj6b436s1y7grpyx52k0rbgmxf5w2c05x"
   }
  },
  {
@@ -65332,11 +65580,11 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20210324,
-    906
+    20210409,
+    2305
    ],
-   "commit": "5ce5a0e6d23d92391167a49d994f093764ee0dee",
-   "sha256": "009ki4m5i0lvh9ml2jz93j4sbjab51c4qazz1858mq888hldpwr9"
+   "commit": "668265af921285c726b2239dae32459bd1064d03",
+   "sha256": "1kl516mzcpdam787x5k55s0crspacvxnz2zqz5m32b13xl2pr847"
   },
   "stable": {
    "version": [
@@ -65452,11 +65700,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20210220,
-    1301
+    20210405,
+    1349
    ],
-   "commit": "051734091aba17a54af96b81beebdbfc84c26459",
-   "sha256": "11qybgasg4im76j4kryynqvqbqpxm1xfs5dxgjhr3whn3wiqba51"
+   "commit": "ac9ea26b941eef512a3c206375a6404625c229ed",
+   "sha256": "0nszqrx6nfdzlib3w6l5pmzmgnrwzmvzlz7hv46x4iqzyxjg2jsn"
   },
   "stable": {
    "version": [
@@ -65881,11 +66129,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20210302,
-    1630
+    20210410,
+    1340
    ],
-   "commit": "a47515461ae22fcb90b6f8e45a6304bcb44b953c",
-   "sha256": "0wffq7hn5vmgvyysvhkgngcp77mq5fddia1q3n90rmb0ql2z2qg2"
+   "commit": "587ad073069e8c932388d6f4ab8e7689b52bc6ad",
+   "sha256": "1lnwax7m105h9djvbyhwcxg6av9i04myq02dxhb1gw64w6i3vas8"
   }
  },
  {
@@ -66402,31 +66650,31 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20210326,
-    1659
+    20210410,
+    1837
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "28b9f855f175b390cb00c35a0e55cc50725a0938",
-   "sha256": "12j1l48ahipw1w10kqg54ikfclib8a178cg9q6k9sn2q4v9bx0j6"
+   "commit": "6eb10d223fb7e0d87ac7ab7063fdb3951934e94c",
+   "sha256": "0b1s51yfklm52j2g0gnrwdahr1jql1fv93sn7inm5c1ygx3agc7c"
   }
  },
  {
   "ename": "merlin",
-  "commit": "9338298a79b7f2d654df90b0f553aeed1428de13",
-  "sha256": "0r4wc5ann6239bagj364yyzw4y3lcpkl5nnn0vmx4hgkwdg509fn",
+  "commit": "17598d9a0e9f88db28014019769f3181c863e99e",
+  "sha256": "05n6ack61impmnqn1gflkm0x085s98qlac4b4yg11r98cvsvcz04",
   "fetcher": "github",
   "repo": "ocaml/merlin",
   "unstable": {
    "version": [
-    20210129,
-    1443
+    20210408,
+    1014
    ],
-   "commit": "cc17ed60630fb1831ad950fe62970b1c7a7f4c8b",
-   "sha256": "0mfvxg74h9mcs8pp9p3m498vflnpncvsa514qf36kajmbdbxn0sk"
+   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
+   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
   },
   "stable": {
    "version": [
@@ -66438,6 +66686,44 @@
   }
  },
  {
+  "ename": "merlin-ac",
+  "commit": "17598d9a0e9f88db28014019769f3181c863e99e",
+  "sha256": "1karr74id6c5gcc7cga488czlgy53j4yhnb662zvv61r037li987",
+  "fetcher": "github",
+  "repo": "ocaml/merlin",
+  "unstable": {
+   "version": [
+    20210409,
+    1323
+   ],
+   "deps": [
+    "auto-complete",
+    "merlin"
+   ],
+   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
+   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+  }
+ },
+ {
+  "ename": "merlin-company",
+  "commit": "17598d9a0e9f88db28014019769f3181c863e99e",
+  "sha256": "1gsq5ykkp1wbjh825jsd60wfb96m4idnzfg3wacr3y4x258idn7m",
+  "fetcher": "github",
+  "repo": "ocaml/merlin",
+  "unstable": {
+   "version": [
+    20210409,
+    1323
+   ],
+   "deps": [
+    "company",
+    "merlin"
+   ],
+   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
+   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+  }
+ },
+ {
   "ename": "merlin-eldoc",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "0bx383nxd97as0d362n1jn62k2rypxvxhcjasgwf0cr8vxr244fp",
@@ -66467,6 +66753,25 @@
   }
  },
  {
+  "ename": "merlin-iedit",
+  "commit": "17598d9a0e9f88db28014019769f3181c863e99e",
+  "sha256": "0j6bz803ryfm5jnjrll5cschkb1qjdq9jv59g10pgiv1dxiwm0pv",
+  "fetcher": "github",
+  "repo": "ocaml/merlin",
+  "unstable": {
+   "version": [
+    20210409,
+    1323
+   ],
+   "deps": [
+    "iedit",
+    "merlin"
+   ],
+   "commit": "cb1094ee0aeb5bd2bf5530911157c61cb316e6f3",
+   "sha256": "1bvym9p120sdiwc4lr2f13bhfmxr14vr3scf3g90dj6swa9k9ww8"
+  }
+ },
+ {
   "ename": "mermaid-mode",
   "commit": "8729575400003db47638b4c45c425608e15c333d",
   "sha256": "1r9dv10p2bahygz1f151bp481289b184d80jbh575pdmlxkqd79f",
@@ -66474,14 +66779,14 @@
   "repo": "abrochard/mermaid-mode",
   "unstable": {
    "version": [
-    20210327,
-    7
+    20210329,
+    2328
    ],
    "deps": [
     "f"
    ],
-   "commit": "b8847cc15eee1a7e3c7e0eefc91f2296256f84b9",
-   "sha256": "002bv1z8hr5h30dp9m8jq0h8lzi668lj2asx89jigfsrz4z6k4kg"
+   "commit": "b650649a9f28629154a041ef187c21c5128530f2",
+   "sha256": "0pffhrxw91p82gkyhf3bwcs910pjw8f7y94lsyqz5jzs469b0lcy"
   }
  },
  {
@@ -67334,11 +67639,15 @@
   "repo": "jabranham/mixed-pitch",
   "unstable": {
    "version": [
-    20210203,
-    2211
+    20210304,
+    1900
    ],
-   "commit": "d5f64b967d831ea776f07aa2c80cc5fa88a3e869",
-   "sha256": "0gs5pmpkfm4skycmq6agy1hdxjwzw6wvfdkvczdygzvn8hjq2inn"
+   "commit": "519e05f74825abf04b7d2e0e38ec040d013a125a",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 301 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 515 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 1011 ms\nwarning: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503; retrying in 2434 ms\nerror: unable to download 'https://gitlab.com/jabranham/mixed-pitch/repository/archive.tar.gz?ref=519e05f74825abf04b7d2e0e38ec040d013a125a': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -67369,21 +67678,6 @@
   }
  },
  {
-  "ename": "mlso-theme",
-  "commit": "2e026e2511ead77022cf8ed9d45d0d5a5aa104b9",
-  "sha256": "1abv6zhz28x5yk0rjn19wjxwvdq0ps3j2sx45n0dlbqfrqgw86d1",
-  "fetcher": "github",
-  "repo": "Mulling/mlso-theme",
-  "unstable": {
-   "version": [
-    20210215,
-    1755
-   ],
-   "commit": "177a269d1f16dc5902f08d56d12a084ea028c8ab",
-   "sha256": "000h78k729irpn31xykq1r6kdnrcfvv5m9cc8g9l1lfp6pjhmd9c"
-  }
- },
- {
   "ename": "mmm-jinja2",
   "commit": "721b9a6f16fb8efd4d339ac7953cc07d7a234b53",
   "sha256": "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi",
@@ -67728,11 +68022,11 @@
   "repo": "ludwigpacifici/modern-cpp-font-lock",
   "unstable": {
    "version": [
-    20200530,
-    1010
+    20210405,
+    1155
    ],
-   "commit": "865955d0035382a17a7f03add0d00d0bd812b103",
-   "sha256": "1x04jgc94gpdci24rahb1awvkjii1vdv7bdr9gyiksbry75dsxi1"
+   "commit": "43c6b68ff58fccdf9deef11674a172e4eaa8455c",
+   "sha256": "1wp90225g1pm8sr3hlknwr2q29iq90wds4n6vf1ls4cf2b71nnq2"
   },
   "stable": {
    "version": [
@@ -67824,11 +68118,15 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20210326,
-    1916
+    20210411,
+    751
    ],
-   "commit": "e07461ca01b04a6536961eb538769f9889813852",
-   "sha256": "18gwyy5an1k9pf9n6ccygs4k7nbrv6scp7wyvaabayzxqv50lhsn"
+   "commit": "3c9b98f61e9b781f756ac7a329005156406cae5a",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 250 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 595 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 1101 ms\nwarning: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503; retrying in 2792 ms\nerror: unable to download 'https://gitlab.com/protesilaos/modus-themes/repository/archive.tar.gz?ref=3c9b98f61e9b781f756ac7a329005156406cae5a': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -67865,6 +68163,21 @@
   }
  },
  {
+  "ename": "molar-mass",
+  "commit": "54b15912234932315ac5f7d1fe2cc5cf37c925bc",
+  "sha256": "1mhwcs9v2zl8x82axgcivgw4wp6z1gpxrj0f2m33pzwi6j3biybj",
+  "fetcher": "github",
+  "repo": "sergiruiztrepat/molar-mass",
+  "unstable": {
+   "version": [
+    20210324,
+    1832
+   ],
+   "commit": "5b7d1d0004d27580e980fe8532658cd09174342e",
+   "sha256": "18s2np5wflbg0y6ffnjcbljyh3b5qsnjkma6dcl3razfr55mzmgn"
+  }
+ },
+ {
   "ename": "molecule",
   "commit": "2e8e1a5169f0841db4980aebe97235845bbe7183",
   "sha256": "04jdva5azd68nh7dr14r3z4imfqh3rwvd2m4qaq4zbjmsqwwjhdj",
@@ -67953,8 +68266,8 @@
    "deps": [
     "scrollable-quick-peek"
    ],
-   "commit": "0e949d08198c0bd003f1d5c8cdceb7e36bef22f7",
-   "sha256": "0fgnfslhg10q96lyxfnpa7s8dvw5gjlll7p6qji2jfz3kncwhf5l"
+   "commit": "f64b1580f8516ddbf5f71688fb9ace2cd1631b41",
+   "sha256": "0ia90br12szcqxvsf5i7nj3y2rmmw1pq4hchi181sx5m4qrhssv1"
   },
   "stable": {
    "version": [
@@ -68515,8 +68828,8 @@
     20210306,
     1053
    ],
-   "commit": "473a26ccd17304f6c64eaac8c61090659bcdb936",
-   "sha256": "114nimj1q9dn18in2bdzkswkxd3rm0xxzxiix4jv6hzhsm8rznw8"
+   "commit": "1ddec765e033d22079627dc14a06a204134e1b28",
+   "sha256": "0is1il0xws1k31p67s4xvpql7qm4rrv23fj2szdmfdds9f7qpp18"
   },
   "stable": {
    "version": [
@@ -70460,14 +70773,14 @@
   "repo": "nicehiro/netease-music",
   "unstable": {
    "version": [
-    20190708,
-    215
+    20210411,
+    603
    ],
    "deps": [
     "names"
    ],
-   "commit": "39a7d7a15f63435d9efaf469ea7c971069c07acb",
-   "sha256": "01wkd8ifsa5l6jh4xdmj40xfx0hyxv4c0a8s6z5ynmqvmbxvbw5n"
+   "commit": "db7f1eef2d8544983509db679be1cbe6a5678071",
+   "sha256": "13vylyywsp6h4w04g56af5fav8d11sbf90h78b6mv81vp850842p"
   },
   "stable": {
    "version": [
@@ -70819,8 +71132,8 @@
     20181024,
     1439
    ],
-   "commit": "8cd25aa78c2ff2ca8b3712f8c3630d1a095856d9",
-   "sha256": "0qq1p2pjpnvhrblbsh80k43ksrzb1nw48gw8srw32vih91pv02x5"
+   "commit": "ce700488e01af33bc478bc986e261e306180b993",
+   "sha256": "0xraqmi9cx8z2wdwk2d8z9yr0b0csx7xwv012k531zqmhk81srpq"
   },
   "stable": {
    "version": [
@@ -71524,8 +71837,8 @@
     20210205,
     1412
    ],
-   "commit": "4e209ca99ac8084a357c6fc8d7773f6207cfa16d",
-   "sha256": "07ygvb6skrz0vxvvswjf35qdgps2p8cfhmjxqprkj1x59k7dvwi6"
+   "commit": "1459217e17e94277495c5c644b5a4ca1651c9452",
+   "sha256": "1p1g816ansbq388pqclckcjs0cgl38p0gc77rrgmab3mccdvib2r"
   },
   "stable": {
    "version": [
@@ -71802,6 +72115,25 @@
   }
  },
  {
+  "ename": "nroam",
+  "commit": "55bc37011ae1754549b910be84fa25ca28a8e6fe",
+  "sha256": "0g6d4nhj08hr6b6aiy1mlszz1k90vk3bw4kgnwzxmlmv43qxbcx4",
+  "fetcher": "github",
+  "repo": "NicolasPetton/nroam",
+  "unstable": {
+   "version": [
+    20210325,
+    2015
+   ],
+   "deps": [
+    "org",
+    "org-roam"
+   ],
+   "commit": "a5508d9958c2148c04ec32d7b3a9f72423e4b0aa",
+   "sha256": "1d1snvxbdv0mh48jmi6dx0yr4hmblcq1aajxb1z56714702ycdgj"
+  }
+ },
+ {
   "ename": "ns-auto-titlebar",
   "commit": "d22ebb5ef16df0c56d6031cb1c7f312dca514482",
   "sha256": "1wk4y2jwl65z18cv57m8zkcg31wp9by74z2zvccxzl7mwlhy7kqg",
@@ -72001,8 +72333,8 @@
     "dash",
     "s"
    ],
-   "commit": "a8bc2a58220e7eb92d61a637c2c6d8cb2ccb270b",
-   "sha256": "1c2nhg00naqj2m4avjsk03bpdbkspsjkng5fdhf6nx58ny9xdj5p"
+   "commit": "ddd7d54fc66ace3a56ff839ccd1993e2f40a7412",
+   "sha256": "0zbqnraynz25gj3ca1iqvn36xkgh8x24hzk3pm1c6ga395xpq0ki"
   },
   "stable": {
    "version": [
@@ -73264,8 +73596,8 @@
     20201204,
     945
    ],
-   "commit": "448ac7c1496e2a6e83d63a7bcd9cf4e35bb2b1fb",
-   "sha256": "0rgh3c17h3k5bj897by7v64xbpf9pqpkg1kicka3w4g8gc0mb3v8"
+   "commit": "fd078c3a37cb679dfffe890995a4e6a1f63ece15",
+   "sha256": "0vq3nnjk76i947wjmfddbr1fs6m8dkddlrqcdsvsf2xw2xfpsfvs"
   },
   "stable": {
    "version": [
@@ -73458,14 +73790,18 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20210223,
-    1351
+    20210405,
+    820
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "e880c4f65ad20e22ab845fc2918ca74cc37bf39a",
-   "sha256": "197fn08xhk6cbvi4hqf51v40x0ki5n8h1896g3bpl4fasfy5zicp"
+   "commit": "1150feb761047e241af1c5e67333665e729a4a63",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 298 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 617 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 1257 ms\nwarning: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503; retrying in 2660 ms\nerror: unable to download 'https://gitlab.com/oer/oer-reveal/repository/archive.tar.gz?ref=1150feb761047e241af1c5e67333665e729a4a63': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -74150,11 +74486,11 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20210323,
-    2341
+    20210407,
+    1548
    ],
-   "commit": "44935d8962be5724d8a3a4358ce0a4222450ee26",
-   "sha256": "1f76k6cp0m6r47s91za3sad09vrka41x9vwxh40bi9achwc3538q"
+   "commit": "87ab7e47e343285f7afd42779c78551332b8fd84",
+   "sha256": "117lwgw5z980pay656pmgyfqdpvi0cxj69x3c7dcmz451n57ap9j"
   },
   "stable": {
    "version": [
@@ -74338,11 +74674,14 @@
   "repo": "awth13/org-appear",
   "unstable": {
    "version": [
-    20210307,
-    1335
+    20210401,
+    2114
    ],
-   "commit": "0b3b029d5851c77ee792727b280f062eaf2c22c7",
-   "sha256": "136z40r0i9q9wqbj4yxa8d4c2ygx7dzp9i126ra56sm6cdkvz0cj"
+   "deps": [
+    "org"
+   ],
+   "commit": "2380562fbec8a17ec193891da755a502a2ccd252",
+   "sha256": "14b1x446zwdsqy8lvmz3iw1byaq1rn92v19ib5zyk18g9lf9ma7i"
   }
  },
  {
@@ -74527,8 +74866,8 @@
   "repo": "lepisma/org-books",
   "unstable": {
    "version": [
-    20200905,
-    740
+    20210408,
+    1913
    ],
    "deps": [
     "dash",
@@ -74538,8 +74877,8 @@
     "org",
     "s"
    ],
-   "commit": "a88d39e364757594c6b3830cc36f342ee0d1b8ab",
-   "sha256": "1axzhb9k1i8l9rksk14bb04v4q4mx498f5psnalxwvn0563ngs5r"
+   "commit": "9f4ec4a981bfc5eebff993c3ad49a4bed26aebd1",
+   "sha256": "1sgckvpjdaig9r2clcvs6ckgf2kx7amikkpq26y30jbnfnbskf0v"
   },
   "stable": {
    "version": [
@@ -75167,11 +75506,11 @@
   "repo": "guanyilun/org-elp",
   "unstable": {
    "version": [
-    20210201,
-    1544
+    20210329,
+    1535
    ],
-   "commit": "983fd7af4244835601be090211344ed92c36d360",
-   "sha256": "0v2cgw360sigl0jm8fm1hld71xbcjw9j8xjlr176cn4g308zw1sa"
+   "commit": "36b5ab2ed3fa3b5917f058e3acf8dff2df69efae",
+   "sha256": "00qbabnac6i994ilrq1b7li1211ikc0frm5ilfafmh9v0y9k2spa"
   },
   "stable": {
    "version": [
@@ -75286,8 +75625,8 @@
   "repo": "kidd/org-gcal.el",
   "unstable": {
    "version": [
-    20210313,
-    420
+    20210407,
+    57
    ],
    "deps": [
     "alert",
@@ -75295,8 +75634,8 @@
     "request",
     "request-deferred"
    ],
-   "commit": "d38acdad70883dc3fe34a4cd41024e5a8099ddb2",
-   "sha256": "17lnsn045l99w787mbrq623div40w3c59rgryvx04px085bb2i5g"
+   "commit": "161465b9448a6413466f1dfe77844f5591fbdeae",
+   "sha256": "0pwi537cg1yb76bwx2sn1w8vkjgsjq38f7lbqvd159g9rbng7v21"
   },
   "stable": {
    "version": [
@@ -75579,16 +75918,16 @@
   "repo": "ahungry/org-jira",
   "unstable": {
    "version": [
-    20210325,
-    424
+    20210330,
+    246
    ],
    "deps": [
     "cl-lib",
     "dash",
     "request"
    ],
-   "commit": "7beb2023c36106aefe1a260a7618e285d52eb0a1",
-   "sha256": "0srn5z0r3g8mjb8pibwipzjm5p3w8dwzldfdmlyli1a6akcinsxv"
+   "commit": "c8b2e592150c05ab53af8ee155ac169f58b963ee",
+   "sha256": "1rid2dl3r7p4c0sag9xcd74rj15pxapvrii286ilipkak6yhg2z2"
   },
   "stable": {
    "version": [
@@ -75711,8 +76050,8 @@
   "repo": "yangsheng6810/org-latex-impatient",
   "unstable": {
    "version": [
-    20210312,
-    2250
+    20210409,
+    2251
    ],
    "deps": [
     "dash",
@@ -75720,8 +76059,8 @@
     "posframe",
     "s"
    ],
-   "commit": "a27ec1491c7d897904e84d9b9db380e1a4c7914a",
-   "sha256": "0r0yn0z4d5y5mzc8awg8wcb3lvb058c7gk7v5mghnwln50zvqqia"
+   "commit": "39f22dc98cb8268af67c6df71778ec5784d2b683",
+   "sha256": "14rjgdl941kja3hndc55q3c65fi7plviirxihffkw498h0vkbyhs"
   }
  },
  {
@@ -75910,16 +76249,16 @@
   "repo": "ndwarshuis/org-ml",
   "unstable": {
    "version": [
-    20210224,
-    2308
+    20210328,
+    1655
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "1b02583a5cdb8f6b7cd82b31ec80b53753cb7729",
-   "sha256": "1p1k5zmc0dklbvnck0zhsxqmndask822ikaa40d1ik105w1vx3bz"
+   "commit": "9d8c26d12c972a60b94bcc3b364d857db997cfa3",
+   "sha256": "102lrlf25i30xbpszr1mh6mkxd6wwgbwg32dafccxm4dmj3v9hqq"
   },
   "stable": {
    "version": [
@@ -75962,11 +76301,11 @@
   "repo": "unhammer/org-mru-clock",
   "unstable": {
    "version": [
-    20210216,
-    1141
+    20210408,
+    1259
    ],
-   "commit": "99ac0c85060f9e4710de73db4a19120a0a23c39e",
-   "sha256": "1xqb9pcj6hw1z6anvy5hm78a90m442cg868d62yyynwkzjyns64q"
+   "commit": "229461b92ff89fd96cd7730df9fd589a8b0ef949",
+   "sha256": "1gl63m7h7zisjqljlckcqr0f16zkadfw9jr9h54kypm51alpjzkm"
   },
   "stable": {
    "version": [
@@ -75986,14 +76325,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20210209,
-    2056
+    20210409,
+    1813
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "89e746c0a864031eef940758230bc7263a6f2289",
-   "sha256": "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"
+   "commit": "e57af9c057d97d14536cef08aca7a19bdf194830",
+   "sha256": "19m1y686jppl1j7ibigw1h6n518swgdcfgrk84r1nvd7x83vd8v0"
   }
  },
  {
@@ -76241,10 +76580,10 @@
  },
  {
   "ename": "org-page",
-  "commit": "97287dd40d3ebd80c9804589e93626faad88fb91",
-  "sha256": "0680fbcq0vv1w4kyk99crrcx5rhm8qpz7bgaab2gxndw1za7nxfm",
+  "commit": "80c4f9e9f3e398dd6d230068ae2a42b060bd84cd",
+  "sha256": "0pf7rjdaiz9y1kr8sc3bb2bz3bzmd4msziya5h4cfkmzx6pq8a3n",
   "fetcher": "github",
-  "repo": "sillykelvin/org-page",
+  "repo": "emacsorphanage/org-page",
   "unstable": {
    "version": [
     20170807,
@@ -76260,8 +76599,8 @@
     "org",
     "simple-httpd"
    ],
-   "commit": "d0e55416174a60d3305e97ca193b333f4cccba4f",
-   "sha256": "0l1jkap8wjprsaglys5hy5ijhaxfv8bzry9axqcfg6xr0bmbyhm7"
+   "commit": "b25c3ef41da233306c157634c1f0b019d8b6adc0",
+   "sha256": "06hh1g3rxadscjjn1ym358m2c8qn3s2x7ik0msadvm1zgx7ng4v5"
   },
   "stable": {
    "version": [
@@ -76683,15 +77022,19 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20210121,
-    1011
+    20210405,
+    1309
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "18a2456befcfda5f681b2b4041f3262f93e52cba",
-   "sha256": "1274zq6qhzl8l7hpbh2spgmf9hqrilcm31m3mbybj6gm085g17dz"
+   "commit": "4d8a63cba537705f4ecf3f45838e3cfc83fa2369",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 327 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 591 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 1200 ms\nwarning: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503; retrying in 2118 ms\nerror: unable to download 'https://gitlab.com/oer/org-re-reveal/repository/archive.tar.gz?ref=4d8a63cba537705f4ecf3f45838e3cfc83fa2369': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -76788,8 +77131,8 @@
    "deps": [
     "org"
    ],
-   "commit": "ae20a538b2b4dcec139089bb44f1e4abc5b04f72",
-   "sha256": "1x0gpq7n8crn48nfj2hmbfxd4yj5implgh5mvfnr0k1d89r6gwcn"
+   "commit": "4f25a5be2eaaedb84c78abf9457b9745a9396bcb",
+   "sha256": "1nrzm07jmbh52brsb2nmpaw5mpr6bqy3g4xhksrx1gwyyjj321f1"
   }
  },
  {
@@ -76958,8 +77301,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20210308,
-    457
+    20210411,
+    650
    ],
    "deps": [
     "dash",
@@ -76969,8 +77312,8 @@
     "org",
     "s"
    ],
-   "commit": "8ad57b121831eda8d226faa14ff2ba7ab652849c",
-   "sha256": "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"
+   "commit": "997ddcbf4b0373bb449d09f1db6cf5de6983de5e",
+   "sha256": "0dh325syjn1dkblydbdxqqy24pbyk4h3rcmr8506lycyz1xg2m2k"
   },
   "stable": {
    "version": [
@@ -76998,16 +77341,16 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20210322,
-    2231
+    20210330,
+    852
    ],
    "deps": [
     "bibtex-completion",
     "org-ref",
     "org-roam"
    ],
-   "commit": "ffe0cdbcfd7421c10268fb3437fc5bd6ceadcbd2",
-   "sha256": "1a9k9nxcqzyfip06m59la1rq8siswhg9zys3y6i3iz5wfy5vd0lk"
+   "commit": "8d80bf980776df6ead53e917eb482ec8e309a1d7",
+   "sha256": "1rricy4kxny78cvryrfxcjb656ryq3rgx4na5d5kks8xhdjsckwf"
   },
   "stable": {
    "version": [
@@ -77280,8 +77623,8 @@
   "repo": "ndwarshuis/org-sql",
   "unstable": {
    "version": [
-    20210306,
-    329
+    20210404,
+    1839
    ],
    "deps": [
     "dash",
@@ -77289,8 +77632,8 @@
     "org-ml",
     "s"
    ],
-   "commit": "c93834332a333f6a602d3bbe0b39c79abb2f78cb",
-   "sha256": "1wp3d3b1wdw8v5drwbrfxrbq8psf82bs9cwjin2psfgb4n1166dy"
+   "commit": "71b6e01ff94be4c68cfeb17a34518bf1f118cf95",
+   "sha256": "05c1hgzq69lnw59x1w5bybrdhnyli8d9pzjczixklrrahmx4ig8k"
   },
   "stable": {
    "version": [
@@ -77379,11 +77722,11 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20210321,
-    2008
+    20210329,
+    848
    ],
-   "commit": "e0265c97dd9d014760eb6280be6c8bb81793cdf5",
-   "sha256": "0g0mwgc5mrwchqj679b8jzxn2j4pfnysyp3xlpx41gk24hakpfqh"
+   "commit": "c000cdff0cf3c10ac756bd7c5b5729965cfce876",
+   "sha256": "0vff4wh9vlkzix47kxqxabcl29glnxbmmpmppkp6cfk42zb6sw1g"
   },
   "stable": {
    "version": [
@@ -77946,17 +78289,16 @@
   "unstable": {
    "version": [
     20210314,
-    1856
+    1901
    ],
    "deps": [
     "dash",
-    "dash-functional",
     "deferred",
     "request-deferred",
     "s"
    ],
-   "commit": "0435d77cd32cf475ce71b81cda4bb48066c44f31",
-   "sha256": "1nnii5d5qf0bgfpywmhzprh6f1hk39k2wnhnjl0ahqm99bl46fps"
+   "commit": "9c1c94dff1a46631669023286078b887d077c305",
+   "sha256": "0s3amkc193b3csffa6gqi6kyr7x6fmc3sviirqwnygjfl42788ck"
   },
   "stable": {
    "version": [
@@ -78075,16 +78417,16 @@
   "repo": "akhramov/org-wild-notifier.el",
   "unstable": {
    "version": [
-    20210308,
-    1348
+    20210330,
+    304
    ],
    "deps": [
     "alert",
     "async",
     "dash"
    ],
-   "commit": "b616924f9b6e2c26c21e07ad6bccfc26826b7be3",
-   "sha256": "0ps3kzi95ybr7adrspmhflw9jw3h5d6lf0kl5cn45myyyjapckjj"
+   "commit": "772806f9d46fb93cabe9409c7a559eb7b9cda3d3",
+   "sha256": "0cp7gr0b83s830q1fzd4gwwz4x1n5cyh4r4v73w2cfml3kqf8nz1"
   },
   "stable": {
    "version": [
@@ -79218,14 +79560,14 @@
   "repo": "anticomputer/ovpn-mode",
   "unstable": {
    "version": [
-    20200509,
-    236
+    20210403,
+    440
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3fb9b09506f06cfc7678a93b5401f49d2bf538bc",
-   "sha256": "099pa85v3jqrfk3frkj03xbxcli8gfimaz17dn3a8p6wjcrn3w6v"
+   "commit": "4492098c771d094dd0661a5bc6906f65fb530825",
+   "sha256": "1dqy50mvnffhsmfnrkf6n4xic7699dhx4ky2chmcsr6yly3gvwj1"
   }
  },
  {
@@ -79481,14 +79823,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20210129,
-    2241
+    20210330,
+    1758
    ],
    "deps": [
     "org"
    ],
-   "commit": "02140a294a8d0d15ca42a1956af794fd7ec18140",
-   "sha256": "1sjfiypk3707jh4r4ndym8chiahw0imlawkx7hsrv2ld65hc78lp"
+   "commit": "7a93b0f4b3e8e240d9451f1fa5704acfc494e9aa",
+   "sha256": "0dvhc559r9jhc8d91mv5an3vfklrfyfrpr32dqvphgk1i85kqvw4"
   },
   "stable": {
    "version": [
@@ -79841,14 +80183,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20210215,
-    1605
+    20210411,
+    1138
    ],
    "deps": [
     "org"
    ],
-   "commit": "499c5777174dbc7318e3f32fd50357c2823b228a",
-   "sha256": "1sf7ksda0898lgig1qhdzqm9v2jgrr033ainpb9406ij1v63gsh7"
+   "commit": "58540c7dde7dbf4e922209d7fb3e6739570f49b5",
+   "sha256": "10v9bs5jksrliisb3yf37hm2dk3iqjf12yfpf6a26zjvxsaxah4n"
   }
  },
  {
@@ -79914,14 +80256,14 @@
   "repo": "balddotcat/ox-slimhtml",
   "unstable": {
    "version": [
-    20200302,
-    728
+    20210330,
+    1941
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6f774398d189430593c93e503bf0f3cd0e8bcc25",
-   "sha256": "12axvwqadv0qlvnzrvbi85p94c10r5w6f3gixck0cbz7p8qz678r"
+   "commit": "72cffc4292c82d5f3a24717ed386a953862485d8",
+   "sha256": "0p22dmyrcny82k0r1w84kcwi513xy03h848knzhm9zj7360dlkiw"
   },
   "stable": {
    "version": [
@@ -81018,8 +81360,8 @@
     20210325,
     1714
    ],
-   "commit": "f130fa04ec75131686872f24a253d0a1d5522fa4",
-   "sha256": "1i85c00cjvj79i104xswg5xjz7wkvcgar04fgjc9zphrihnp409x"
+   "commit": "a92e39e86ec24fbc536c68765b4af6f4c6ff24c5",
+   "sha256": "1l4xvyx4r7ld7d8k18x4khagiivp5a7m647zv7fvg7ivhkq2crqd"
   },
   "stable": {
    "version": [
@@ -81302,11 +81644,11 @@
   "repo": "vandrlexay/emacs-password-genarator",
   "unstable": {
    "version": [
-    20210224,
-    1705
+    20210327,
+    1140
    ],
-   "commit": "778f98d507d337f916bb3251fae6e351ebe50aa2",
-   "sha256": "07k2jsjfl3cyk0piikvn03280hbmggvkwkfin8s1wz54495504g5"
+   "commit": "de391a83e6a11f810f0141b7b4758dd978478234",
+   "sha256": "10yh56jlvnn01swb4pfq2gqpj2shxfp716fzij8c2c0hi52rgnbz"
   }
  },
  {
@@ -82264,14 +82606,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20210310,
-    25
+    20210401,
+    1950
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "cbdc3e5dc77ccb681f8719db0a85af8850b757d2",
-   "sha256": "0q5sxwf0dkm1glnwsgm8387vzfxjj14g48ih72dpvarxysrrv2ql"
+   "commit": "dd2a380ac71edf1321a6462f14668baf99879e80",
+   "sha256": "0l9i7ky25d9ii04w2brgxc8dk2rky50naba8lbfqi7hcc34z8pp6"
   },
   "stable": {
    "version": [
@@ -83671,11 +84013,11 @@
   "repo": "thomasluquet/playerctl.el",
   "unstable": {
    "version": [
-    20210221,
-    1956
+    20210411,
+    1442
    ],
-   "commit": "f480cd30bad76e4bc337e4be0cac6300e8154fce",
-   "sha256": "0f2f9dpi1yxckicybmdp7ns8x1hqhdygcvw8b7z0mhbwwxc7ml6m"
+   "commit": "41564d453c9f936a4ce2699afacc6d1dff974f1c",
+   "sha256": "0fbnfxhfyam5zvf2ild5bxq489dnpyrzclnfwq0lhzgswjj70hw6"
   }
  },
  {
@@ -84536,8 +84878,8 @@
     20200606,
     1106
    ],
-   "commit": "b3871e946d278a256d95a3bd4615b1df234ad75a",
-   "sha256": "08xn2my8n5m9mqr7zd1956vybakys17kldb6dijax1651fdjy772"
+   "commit": "9f4fa7971634f560e83d44b30aefc4d76d261943",
+   "sha256": "1dp3688kj89r2ywv4zwrji2qv1b0y1cj3dwhzxx1ihb9vx0bjwjn"
   },
   "stable": {
    "version": [
@@ -84822,16 +85164,16 @@
   "repo": "ancane/popup-imenu",
   "unstable": {
    "version": [
-    20170326,
-    1040
+    20210404,
+    1153
    ],
    "deps": [
     "dash",
     "flx-ido",
     "popup"
    ],
-   "commit": "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09",
-   "sha256": "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8"
+   "commit": "b00c4d503cbbaf01c136b1647329e6a6257d012c",
+   "sha256": "0q081lw6zqzpbmscpk1yzyfpalr9ld5qwh962dwwy04rc5f0aq3s"
   },
   "stable": {
    "version": [
@@ -84874,15 +85216,16 @@
   "repo": "kostafey/popup-switcher",
   "unstable": {
    "version": [
-    20201216,
-    2229
+    20210402,
+    1208
    ],
    "deps": [
     "cl-lib",
+    "dash",
     "popup"
    ],
-   "commit": "166a90c13310b829bd392235bf7cc1e45188faff",
-   "sha256": "1sgsryc5g2sxsr0mz8r8gs5i4kfh2mnxqs0vpkbmlsbcl40inm0k"
+   "commit": "94e01b9ea7970e86ed0f2fbeaa8cd320b60ae821",
+   "sha256": "14a43iv6sr52dh1qqcz58qinx20dxkrfznb7lvh35bihjj819m51"
   }
  },
  {
@@ -84994,11 +85337,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20210311,
-    937
+    20210410,
+    528
    ],
-   "commit": "fff21ccb706b576f4074883f9fa87d2bcc534096",
-   "sha256": "1r9i3jsdvzvbr8kggfradvk65i1d0wq96shs4dhfsr3pw7phaxv3"
+   "commit": "ae3c4ddfce698f4e24a0fcab938267e41e74da90",
+   "sha256": "1agzfliz6vk9zwvl0gm074xwzlywqrhkva9nz3d3581cjfanxqd1"
   },
   "stable": {
    "version": [
@@ -85277,11 +85620,11 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210227,
-    600
+    20210411,
+    2007
    ],
-   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
-   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
+   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
+   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
   },
   "stable": {
    "version": [
@@ -85910,14 +86253,14 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20210309,
-    722
+    20210407,
+    707
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "1528ed4f082e7aaca19f22394eb4bed879645b7c",
-   "sha256": "04x9gjjw1c4fiy631fkvwdp677s1p0yj1s4d5bw68832i1i5fq8y"
+   "commit": "513228f473910128efcad13f46dfc22a74976675",
+   "sha256": "19yblhr88affwmlrfmf3bi7wypf2abgy56xfxgisvwx5d5xi6v25"
   },
   "stable": {
    "version": [
@@ -86321,11 +86664,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20210321,
-    2132
+    20210408,
+    1454
    ],
-   "commit": "f0f0476d07401aba2cf428a71f7ee960cd1b3154",
-   "sha256": "1h6bwk1l3fm34xx8nbwh2s3g8ab5zbnx1givgaf64hf3z7r44xic"
+   "commit": "d0acb626eba17023c55b002921870d60e48527a5",
+   "sha256": "0yn66lxx906nry53dr7msjfha2i85yiq2zw8g25d7y1f3mhjsjpz"
   },
   "stable": {
    "version": [
@@ -86428,8 +86771,8 @@
     20200619,
     1742
    ],
-   "commit": "aedb8d726c8d2a371d999354d44ca7e1bdbb1e73",
-   "sha256": "1qw9mmkxrv78062zw8bvrhp4nc4mhz8j76j534flvdy5w5cwv38q"
+   "commit": "ee04809540c098718121e092107fbc0abc231725",
+   "sha256": "053j9j2axr2x7837xcvfgmdl3ddbw2px3fzflbna52fnk9bh2wkc"
   },
   "stable": {
    "version": [
@@ -86862,8 +87205,8 @@
    "deps": [
     "pkg-info"
    ],
-   "commit": "ab25cf379236f4e1bd4bc9c1d77a93c95800e9bf",
-   "sha256": "0djrq3wl7crpjd2p1zzzz1spqfdrfzf7991g5fi8zwbf3pi79gpd"
+   "commit": "71bcd383f20a457e8ad34e0e08ec47f8e1b64263",
+   "sha256": "1zgz1gs42ak29q7p3020ah9sm7bgfsagszia80bgiw1lc7wg77ni"
   },
   "stable": {
    "version": [
@@ -87433,11 +87776,11 @@
   "repo": "PyCQA/pylint",
   "unstable": {
    "version": [
-    20200503,
-    1624
+    20210411,
+    1931
    ],
-   "commit": "5d5f65727829240ffcb84b7be8c5d1e4dcefa0ed",
-   "sha256": "1j4a7fwbsyjsz0lh7vrw2kyw8khqbaskzqnx03a91br8q3dv0xba"
+   "commit": "38d15c98316359c7b0b190f2245a3b2e2bf62109",
+   "sha256": "1iipx981kz25iznb2p90a3cag71abw6np96r0mf99g44z8ghaapd"
   }
  },
  {
@@ -87678,11 +88021,15 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20210301,
-    812
+    20210408,
+    800
    ],
-   "commit": "fe7656a7c701eb988c2ec9192f1ce298818b5a92",
-   "sha256": "1ds4avwadwv20r8ihallyhg79r8cshgxnb2dv7kj0dgn9401djqj"
+   "commit": "710ffadeb43136d400de0a4c9e4a94c8b7ff36f0",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 326 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 558 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 1272 ms\nwarning: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503; retrying in 2702 ms\nerror: unable to download 'https://gitlab.com/python-mode-devs/python-mode/repository/archive.tar.gz?ref=710ffadeb43136d400de0a4c9e4a94c8b7ff36f0': HTTP error 503\n"
+   ]
   },
   "stable": {
    "version": [
@@ -87994,11 +88341,11 @@
   "repo": "quelpa/quelpa",
   "unstable": {
    "version": [
-    20210317,
-    1221
+    20210329,
+    639
    ],
-   "commit": "ec61039dfd50967ca545cb955bf1dd349682dcf3",
-   "sha256": "0hlcckp9vc5rpxp7w30l25ncz7wxywx5jkr12836zcz2mzc8jbhp"
+   "commit": "9acc440f8c200b1e6134f53e219d84360ee1b6b7",
+   "sha256": "1qk7x9fdcvr84hhrmpvx4lq798n9xlw2fi7zpqgfp1mci9qks0z1"
   },
   "stable": {
    "version": [
@@ -88160,11 +88507,11 @@
   "repo": "emacsorphanage/quickrun",
   "unstable": {
    "version": [
-    20210327,
-    141
+    20210330,
+    654
    ],
-   "commit": "57db985c6d293747dc8c40c4e08b465e148613a8",
-   "sha256": "02fzzfq5z4qabas75ihfbvz9pkz9ya2rblrzck8wk0fswzdq32nw"
+   "commit": "35e91f4b6cfbb8dd2adea4d8cf53ae76db7d00d9",
+   "sha256": "15xlcnimaaqgchjcs5jv8g3l36fga7zp11fj901x9nziwwis4jx1"
   },
   "stable": {
    "version": [
@@ -88322,15 +88669,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20210326,
-    1308
+    20210328,
+    2038
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "5115c4786075b39525008755a5fb843c397ca743",
-   "sha256": "0am68bv4wg1lw20k9y83529zkg5d7ql8q9ibgpw1qlx2ll4zxgla"
+   "commit": "045a871d61e930c2eea8647822df39b8319018e1",
+   "sha256": "0lpy4nmn21jzmf54avkl9yr8j6w62aqmi5yhmssfhq3x0l5srsjq"
   }
  },
  {
@@ -89001,16 +89348,16 @@
   "repo": "realgud/realgud",
   "unstable": {
    "version": [
-    20201221,
-    1435
+    20210411,
+    1241
    ],
    "deps": [
     "load-relative",
     "loc-changes",
     "test-simple"
    ],
-   "commit": "f73c039a340579a98e6716c901fd4e80e7eaa2eb",
-   "sha256": "0v6dysd9rzhb8aw3ws3wayprrx9ll59g3isib7ni2fl6krmvyjlx"
+   "commit": "a854b8d4344e4606e77c7e73cc414991e53253d5",
+   "sha256": "0f5av8ldmh54cmqzniifl853mz9mdg6wn3i0wbm7v1m6d79nli88"
   },
   "stable": {
    "version": [
@@ -89460,11 +89807,15 @@
   "repo": "ideasman42/emacs-recomplete",
   "unstable": {
    "version": [
-    20201202,
-    126
+    20210404,
+    716
    ],
-   "commit": "f831f61797e03a0a1df8d99637a8738ba84d7cdd",
-   "sha256": "0lfpqzbrxs261cpb1hpmszcck13zkmqs67qf736cg2zx9ypfhx1g"
+   "commit": "802c85b02d99bce4cf540ed4b716eaa39df45c4a",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 301 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 505 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 1324 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503; retrying in 2228 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-recomplete/repository/archive.tar.gz?ref=802c85b02d99bce4cf540ed4b716eaa39df45c4a': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -90254,11 +90605,11 @@
   "repo": "tkf/emacs-request",
   "unstable": {
    "version": [
-    20210214,
-    37
+    20210410,
+    2218
    ],
-   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
-   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
+   "commit": "f3a5b4352e9f444ace2a332939abff504b573887",
+   "sha256": "0jdha6qjc1ngprmi4nqj8d8hs1dsjkpa39rk85z2132yhaca6lga"
   },
   "stable": {
    "version": [
@@ -90285,8 +90636,8 @@
     "deferred",
     "request"
    ],
-   "commit": "accd430ee706f5b10fb20003b06bd8209bcdaa82",
-   "sha256": "0ffbc6x340whbrcfi5n0k81134x6knfc9g7z299fn47b2ihgd6jc"
+   "commit": "f3a5b4352e9f444ace2a332939abff504b573887",
+   "sha256": "0jdha6qjc1ngprmi4nqj8d8hs1dsjkpa39rk85z2132yhaca6lga"
   },
   "stable": {
    "version": [
@@ -90840,6 +91191,21 @@
   }
  },
  {
+  "ename": "rii",
+  "commit": "8a2928c7a773cae7ebb5a9a55d7521bf15232feb",
+  "sha256": "19vv8m9shyhvrgz5gxh6jy7sjb1k5l74l2j9x59hanzy48zrrr94",
+  "fetcher": "github",
+  "repo": "ROCKTAKEY/rii",
+  "unstable": {
+   "version": [
+    20210317,
+    1330
+   ],
+   "commit": "d0cc3599129db735c23abe74d0876286a2fd6b6a",
+   "sha256": "1g0na5zjsy4600jzi5zr752nggndbwkr6ihxcmq1w82w0b3600rv"
+  }
+ },
+ {
   "ename": "rime",
   "commit": "0144879cf0dfe4f0447c5da7cd061f7aac91d4fe",
   "sha256": "1m9jp307czp4mx4xpfnj9bhq7w5xg656dx9l9ih603cbz24salq4",
@@ -91062,14 +91428,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20210202,
-    111
+    20210328,
+    1228
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "126650a06224f1a616b10c02bd9ad8a763a512ef",
-   "sha256": "11yhl9dpf7ni4l9qpr8akpzr2y6j99n3w5hx4yp8v9gppgb1q37w"
+   "commit": "0bc2645d140f65215a42f2b9365f1983cc949c6c",
+   "sha256": "0ff8zminjpgyi2lp2pmjh7cc7bgb15hii2r89zmy5xkq47slr2j4"
   },
   "stable": {
    "version": [
@@ -91309,11 +91675,11 @@
   "repo": "Andersbakken/rtags",
   "unstable": {
    "version": [
-    20201218,
-    1821
+    20210313,
+    1541
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -91338,8 +91704,8 @@
    "deps": [
     "rtags"
    ],
-   "commit": "aa4c827b417f5448c12401c33acdab1325917c13",
-   "sha256": "02jqcbrpxm4sv15l8kyvsw9pwkmamj065cgifj68x242fw2f0sam"
+   "commit": "63f18acb21e664fd92fbc19465f0b5df085b5e93",
+   "sha256": "0wzyn9qzyly71yfwhlk5m94ygjnbk459pgbpgkhp9fqgchx12p1r"
   },
   "stable": {
    "version": [
@@ -91872,8 +92238,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20210315,
-    1728
+    20210328,
+    1426
    ],
    "deps": [
     "dash",
@@ -91886,8 +92252,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "d97ec8623c4c7e7ad3bb32e3d3773ba29a34bb0d",
-   "sha256": "1mimrn4aaplmdrwmgp6wax489vp0njd7j95abdnjf0ggc7qbgzcv"
+   "commit": "07d4d9af2c169d6cce6e2117628dfa3192937fb0",
+   "sha256": "1hv059nac1czpv367bs42qqw8lf6phpbzbiyk90n6mq996cinwrq"
   }
  },
  {
@@ -91940,8 +92306,8 @@
     20180406,
     808
    ],
-   "commit": "43ba8b563bee3426cead0e6d4ddc09398e1a349d",
-   "sha256": "0bqdlcg5pah9a50dww8n5n0lzc8bzmpc230fdkinw8zrxph13p12"
+   "commit": "3a5166c81ac9e50eaccf5490c5c632f93452287e",
+   "sha256": "131z1g43xh6z20069s6lccm08srwhwgpbiwb7fp2h29pxp41g30z"
   },
   "stable": {
    "version": [
@@ -92330,11 +92696,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20210306,
-    1603
+    20210409,
+    1528
    ],
-   "commit": "0bdc36ba3b3955c1106a5cda69be98bd38195cb6",
-   "sha256": "03wikgh94a0qc3xyvrvzxi4rrrd713ykpgva8z4ly85mh193215s"
+   "commit": "9a6a8e47b657adeada41c445c9fcda301dbdb9b3",
+   "sha256": "1h8iqamz5crflhjpxfzgjxspwwkks8cp9m3bf4b42jqsffqkypnb"
   },
   "stable": {
    "version": [
@@ -92357,8 +92723,8 @@
     20200830,
     301
    ],
-   "commit": "3413825c2de675c087fbb39f9aeec4145495fad1",
-   "sha256": "036ffrfkdakix7z8ksfw78wk1plqnkcf26acn9sksbxcyk4lbjnk"
+   "commit": "5078c5c5e22f509338d20b7ae448b2bbe02e08f9",
+   "sha256": "03brsgbhsaynjc8xp5wpmla6cf0v4r7qc5hg0jdbp2ihnwp17i2f"
   }
  },
  {
@@ -92387,11 +92753,11 @@
   "repo": "hvesalai/emacs-scala-mode",
   "unstable": {
    "version": [
-    20210205,
-    851
+    20210409,
+    1441
    ],
-   "commit": "1ab5f645606e40db07b813a1600835d1442c060a",
-   "sha256": "1hzlgypb5pp8rpylm8qbbcqya5b0kjgq44m4n2wq6bix77iphsd8"
+   "commit": "6966328dbfcbd1dfb166ff46e5deb9a68379cdf1",
+   "sha256": "0pmix0km9b7r28jxh31ig1h5j9vvvz4871irzlavzn7kl3qiqwgw"
   },
   "stable": {
    "version": [
@@ -93161,11 +93527,11 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20210325,
-    1415
+    20210411,
+    1153
    ],
-   "commit": "f5a1f6b6c89719f80c29388c2c784d6b4e346081",
-   "sha256": "1p3da5pzmzhbqgcgzkii6hh1klrdfch6fnq4g3pa9mxrnis8v4py"
+   "commit": "35665560c217fc7c39ec7ef006edc6d556a4d3cf",
+   "sha256": "1w2iiparzs88z2zg8ylqdidgn6qb73x68hjl53yfqqgvrz8krs2f"
   },
   "stable": {
    "version": [
@@ -93184,15 +93550,15 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20210321,
-    1927
+    20210411,
+    2007
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "8573df977eaceffc6607b7242ff8c0dab02aad65",
-   "sha256": "0kfbcicflg7dj9nzvvkgrxsb6p03a7cq26jfk7h6hsnrajy5y4sc"
+   "commit": "ed2b762241bbea03e374dc9dcd4fbe207c6b2ea4",
+   "sha256": "03c0dmblixh5mx8365b6608l7z3vcgp6pzdflwqf8nfwj2c5rm0w"
   },
   "stable": {
    "version": [
@@ -93369,15 +93735,15 @@
   "repo": "twlz0ne/separedit.el",
   "unstable": {
    "version": [
-    20210323,
-    905
+    20210403,
+    1354
    ],
    "deps": [
     "dash",
     "edit-indirect"
    ],
-   "commit": "bebc27121d6d2da900810d552cd5e423ca870bee",
-   "sha256": "1b87pqvx4p8kwmc63scw9n4v1qj2rp0avx32jl5v3lbgbhvsr3zz"
+   "commit": "588a5dba2b38e57b88870efbc0cd2482202f28c8",
+   "sha256": "1m3kb6lvdr8manvlvi2avhba94lw16lvxy9p7vksk1gsmdmkgc0j"
   }
  },
  {
@@ -93835,14 +94201,14 @@
   "repo": "sebasmonia/sharper",
   "unstable": {
    "version": [
-    20201120,
-    124
+    20210328,
+    1533
    ],
    "deps": [
     "transient"
    ],
-   "commit": "d610b839dbb907cc0a49b7edfe7fe39aa3f9dd6d",
-   "sha256": "07npr8bhbfvm7kqywrm9k4rd938babdln2c4nyx4yk7xxsl1cbml"
+   "commit": "70ae6071478f3e451ed9318d67a5d024c01235e0",
+   "sha256": "1fw2qn88b84v0fkaigyyipyvvhhllkw1s1h6fgv2xl2h19i8r0gd"
   }
  },
  {
@@ -94162,11 +94528,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210218,
-    2329
+    20210329,
+    149
    ],
-   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
-   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
+   "commit": "8bab3dc89d36b55ba26ae5941f294c57805d24b2",
+   "sha256": "15kp2lsfci6p8wkrda12m4vf12p13xd9x5rh3ypc6yvz1snypgyy"
   }
  },
  {
@@ -94477,14 +94843,14 @@
   "repo": "cask/shut-up",
   "unstable": {
    "version": [
-    20180628,
-    1830
+    20210403,
+    1249
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "081d6b01e3ba0e60326558e545c4019219e046ce",
-   "sha256": "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"
+   "commit": "ff6f06f3b080ee833a25a22da8cb5b96e911dc77",
+   "sha256": "1kghm1vwy38k9l4a4jjabhqi49v4p27abk82q6yfpm304ygw816v"
   },
   "stable": {
    "version": [
@@ -94835,11 +95201,11 @@
   "repo": "rolandwalker/simpleclip",
   "unstable": {
    "version": [
-    20200210,
-    1406
+    20210406,
+    1221
    ],
-   "commit": "970159c788d38877f55f6fe93fe590642d45fb47",
-   "sha256": "0divawrww9py1r3yd7v0574lhf186f1d227gsmmal5m9zzi7pk7k"
+   "commit": "67c8c17adbbe6d9407a5ce4159d097a8b8bf6adb",
+   "sha256": "0lggdlgkcxzl1myddis7xy7x2qi1q91grgxpq2rlkkz70rz0xcv0"
   },
   "stable": {
    "version": [
@@ -95458,15 +95824,15 @@
   "repo": "mmgeorge/sly-asdf",
   "unstable": {
    "version": [
-    20210308,
-    332
+    20210407,
+    600
    ],
    "deps": [
     "popup",
     "sly"
    ],
-   "commit": "bcaeba9b73b582ae1c4fadc23c71ee7e38d9a64e",
-   "sha256": "09gs99244g45v4bkvl4a5wshjr24cvwd8dg2w7y6j6aw2aikczrh"
+   "commit": "95ca71ddeb6132c413e1e4352b136f41ed9254f1",
+   "sha256": "1dvjwdan3qd3x716zgziy5vbq2972rz8pdqi7b40haqg01f33qf4"
   },
   "stable": {
    "version": [
@@ -95942,15 +96308,15 @@
   "repo": "Fuco1/smartparens",
   "unstable": {
    "version": [
-    20210213,
-    1851
+    20210330,
+    850
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "fb1ce4b4013fe6f86dde9dd5bd5d4c032ab0d45b",
-   "sha256": "0wl3fg761ddigqfcbgprgn8d03qapbsh803qp36pq09mgi29s161"
+   "commit": "25f4d6d1b732f4deabf922059d22a0a7dc04bd0a",
+   "sha256": "0jaa81fk6376fpxx6k4c9nsv0dhsyk23v9c5jbhkqj3zkf1dcj4x"
   },
   "stable": {
    "version": [
@@ -96263,6 +96629,26 @@
   }
  },
  {
+  "ename": "smudge",
+  "commit": "5c0ad3fb20e3e85e8fdebbeaeb1e074899950ab8",
+  "sha256": "14qlz61y4azayxpg3pkzng97gsa19f5ivyp85gr1pk84p2sp01ya",
+  "fetcher": "github",
+  "repo": "danielfm/smudge",
+  "unstable": {
+   "version": [
+    20210326,
+    2222
+   ],
+   "deps": [
+    "oauth2",
+    "request",
+    "simple-httpd"
+   ],
+   "commit": "808f0ef172a80cf4a8ae6d58dfe385d28ecde28e",
+   "sha256": "0cm02r0bgmj2dr6njdm1059q0gjx12c13cs1yxx0zqr6294jiby6"
+  }
+ },
+ {
   "ename": "smyx-theme",
   "commit": "40a1aeabb75438252ebea0332fe1deaf028c956d",
   "sha256": "1r85yxr864df5akqknl3hsrmzikr4085bqr6ijrbdj27nz00vl61",
@@ -96385,6 +96771,25 @@
   }
  },
  {
+  "ename": "sniem",
+  "commit": "12fdb5bf30e09aca915581e81250778b8a76998a",
+  "sha256": "009fad3igrwgql8xw452czz5wlkmmzbvx6fr9i7hmnmhz977ch1j",
+  "fetcher": "github",
+  "repo": "SpringHan/sniem",
+  "unstable": {
+   "version": [
+    20210410,
+    1115
+   ],
+   "deps": [
+    "dash",
+    "s"
+   ],
+   "commit": "7518cf3e1d6ca67e9ee8d9d1e930e1866f460c92",
+   "sha256": "05ncmknzrqsx8l3c1r3lm4b810m6hnrixbbzkik2brnyzqpqfphj"
+  }
+ },
+ {
   "ename": "snitch",
   "commit": "8d08307e483c328075bbf933b2ea0c03bffe8b7c",
   "sha256": "1zck9r251jj3q6q1glxj20812yhkv630qnd2y7q1kkjgp68gby7g",
@@ -96557,14 +96962,14 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20210309,
-    2115
+    20210327,
+    2155
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a8fe09d8f5a9cb541c59dcd75a136f1d2a06b8bd",
-   "sha256": "1fwjy5m66nz2ipshmr7dky8v4pdwynq54282anb0rfa34dim4mrh"
+   "commit": "9d143db85428c5a7798e429f3b8abd2bf3f80747",
+   "sha256": "1g5cph02m07dxpmzd72xrzm56l62zdngis6xgz385zdfj67vi9a2"
   },
   "stable": {
    "version": [
@@ -96618,15 +97023,16 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20210122,
-    1746
+    20210411,
+    758
    ],
    "deps": [
+    "dash",
     "flycheck",
     "solidity-mode"
    ],
-   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
-   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
+   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
+   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
   },
   "stable": {
    "version": [
@@ -96650,11 +97056,11 @@
   "repo": "ethereum/emacs-solidity",
   "unstable": {
    "version": [
-    20200529,
-    1924
+    20210331,
+    1709
    ],
-   "commit": "b4fd719715be098921b6cbfb2ff9da31f3bd0d05",
-   "sha256": "0gsgj5485k7415wzq73xbj3ax9hh2l1j46ma5d0xkww3md3c3kca"
+   "commit": "b83354943626ea7c50011d5806b17be17077d1c4",
+   "sha256": "0h4fyyv2k44x67nwqflh3zpazfkcf5zbgdzwjxbwjgvvxm1hdqlx"
   },
   "stable": {
    "version": [
@@ -97431,11 +97837,15 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20210324,
-    1207
+    20210328,
+    413
    ],
-   "commit": "30c5eea9440915c2795670ecdbf836f3cb9dcc1b",
-   "sha256": "0h2gsq4ms1236nzardhd06b2090v21i0xyljri0lkpj0p3f6p986"
+   "commit": "c566ed568aae0a73202a51e97a73c5e4af0053d2",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 265 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 703 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 1251 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503; retrying in 2299 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-spell-fu/repository/archive.tar.gz?ref=c566ed568aae0a73202a51e97a73c5e4af0053d2': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -98136,11 +98546,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20210217,
-    1051
+    20210401,
+    243
    ],
-   "commit": "820f60af17e71898303f4f3c2576f0619528a492",
-   "sha256": "1haypfhpbxsv2rm1wpskjdm0ddv34qvaiiyw8qhy1nn64q4b5xx0"
+   "commit": "6d4f8d12c6a7e7ff776271f3656be5f3ba5a784e",
+   "sha256": "1pxpm24rlrrdzmy129c6naz9zxfsjrk6hgx3qcizd25kq86sfy4g"
   }
  },
  {
@@ -98151,10 +98561,10 @@
   "repo": "cjohansson/emacs-ssh-deploy",
   "unstable": {
    "version": [
-    20201006,
-    1213
+    20201016,
+    1439
    ],
-   "commit": "cc91b56a7f07ae63fcf78a040001491d040ec9ba",
+   "commit": "fce4ea35f09ed5899c1a2dfa3527bc2dd5ca3ba5",
    "sha256": "10banrq8p0v10237yy2f04i0vvpjdz0by9cp92ambw94c3l3ii8f"
   },
   "stable": {
@@ -98396,14 +98806,14 @@
   "repo": "Kungsgeten/steam.el",
   "unstable": {
    "version": [
-    20210307,
-    1756
+    20210404,
+    1658
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "b0b79d9bd8f1f15c43ab60997f5a341a769651af",
-   "sha256": "144kkh1k09hfi7c8rn750m7p70jka4m0h8cakr16avkprrrpmxxc"
+   "commit": "2b24198844e7296c68f870490fabe896ed101baa",
+   "sha256": "0vcqpsz843djc2blkbjwqhr8km8chckfl8fgr78ii5zg9wdlvbrp"
   }
  },
  {
@@ -98447,8 +98857,8 @@
     20200606,
     1308
    ],
-   "commit": "c0a2d92567d024c2136e9a25ce720fb0b565d31c",
-   "sha256": "192c1j33d6b1j2wdz6js70lql4ysl6d3vjnw3sqzcp22cgjlb2pp"
+   "commit": "6af99af232c90d1629ac71be500eef2241245c81",
+   "sha256": "03wl804pacmzr2gjdz6ssq0l03hs68hadlgjdn6hinp2k0r90pxw"
   },
   "stable": {
    "version": [
@@ -98490,6 +98900,21 @@
   }
  },
  {
+  "ename": "stimmung-themes",
+  "commit": "ded562018552f74bcf1a346858c0a93089a4359e",
+  "sha256": "1lfi24vy98d0rjhi9fxz6fj4x2qj19cnq35ndfglm0p2z504gg4k",
+  "fetcher": "github",
+  "repo": "motform/stimmung-themes",
+  "unstable": {
+   "version": [
+    20210331,
+    1140
+   ],
+   "commit": "0dc71ec178c3dab8973c90758fa730c70df01554",
+   "sha256": "0glp3h5anrsvm89zs99gdyp3rpc0g41va30nxw5pn02yv7cqz7hd"
+  }
+ },
+ {
   "ename": "stock-ticker",
   "commit": "75e654f7b3f785bdfead3c594fdc09730c5d33b9",
   "sha256": "1slcjk2avybr4v9s7gglizmaxbb3yqg6s6gdbg12m3vvj3b72lfi",
@@ -98567,14 +98992,14 @@
   "repo": "magnars/string-edit.el",
   "unstable": {
    "version": [
-    20160411,
-    656
+    20210405,
+    1836
    ],
    "deps": [
     "dash"
    ],
-   "commit": "c44b65b4c5e9f52be9c14d88ca2f402a18d9e1dd",
-   "sha256": "1xm7bb3cp99ahr5jrwi0p0258qcvlbddy98wmbq00kk5pihqbzsg"
+   "commit": "0e225df6f8740467231c787a50025e4552b3eddb",
+   "sha256": "1x5b3iq1c25c74jb77qw3zijblp6zx9kp9hzsb0wfx66lp4wn2wi"
   },
   "stable": {
    "version": [
@@ -98904,14 +99329,14 @@
   "url": "https://git.sr.ht/~amk/subsonic.el",
   "unstable": {
    "version": [
-    20210321,
-    1937
+    20210331,
+    1845
    ],
    "deps": [
     "transient"
    ],
-   "commit": "cb7c6c14f00367188a5565fed9c23a857f27a4d0",
-   "sha256": "1k69c0zhfjy90y7hvvlsppjvan5zrif4p48i4ih7wiy47giwicb4"
+   "commit": "9764405dede46791e411cdcc7963808f76201529",
+   "sha256": "1d4yda1vv1sfjc36b5aaf811jmlcifc8labglmkx1xvjmc7bggsp"
   }
  },
  {
@@ -99416,16 +99841,16 @@
   "repo": "danielmartin/swift-helpful",
   "unstable": {
    "version": [
-    20201031,
-    1654
+    20210405,
+    1727
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "swift-mode"
    ],
-   "commit": "b609fd94ae66832d41fcb70709042c19ef37879f",
-   "sha256": "09q46ip155wkdz1vp4vsal1lhfzgm4lz052b0q6vdgfz4k8ncbz7"
+   "commit": "ed36ea3d8cd80159f7f90b144c4503411b74ae3e",
+   "sha256": "0bcrnslqhgz122mv6br6w848a3x3g4jkz1pkdpb4726xssfzz8zk"
   },
   "stable": {
    "version": [
@@ -99449,14 +99874,14 @@
   "repo": "swift-emacs/swift-mode",
   "unstable": {
    "version": [
-    20201231,
-    1204
+    20210410,
+    723
    ],
    "deps": [
     "seq"
    ],
-   "commit": "95ff0041370660e839ed06aa92330694d8590d62",
-   "sha256": "14yfdcz78iygxzykwv21fy059ml2kwm9khrn0ysyjwnxnddvpc50"
+   "commit": "fd3c824c3622aef4ad29983667f34ebad91e9f69",
+   "sha256": "1s60j7778n8vl53capi1bs5mbb1g2vwaaa4y7wdv6ajrlxh95a5x"
   },
   "stable": {
    "version": [
@@ -99533,14 +99958,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20210310,
-    1230
+    20210404,
+    1302
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "47b496544e238041bca5e3c9ca55848648344312",
-   "sha256": "0n26hpffp7lljhwjbr4r470ynaff3swnkxmj7g2rjw78rw2qjmlm"
+   "commit": "471d644d6bdd7d5dc6ca4efb405e6a6389dff245",
+   "sha256": "0zw5sypr9kwb65627b8wrgl542gyq0xh7pwhghbkwfpwx7rjvk36"
   },
   "stable": {
    "version": [
@@ -99634,11 +100059,11 @@
   "repo": "dimitri/switch-window",
   "unstable": {
    "version": [
-    20201019,
-    823
+    20210331,
+    911
    ],
-   "commit": "5bba78073bc18197392f4d86eb1fe284f906219c",
-   "sha256": "1slrimhdl7frncsszpa8m17j2y11zbr3dwqvsmkayy85sfiq5345"
+   "commit": "2801d9b3a9d7bf0b64cd8b2f2e572124ed2ff9ad",
+   "sha256": "0x9sz14m433fi77slkwir9b0dwaglswckygk8vfkckcraxw14dhh"
   },
   "stable": {
    "version": [
@@ -99855,8 +100280,8 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20210327,
-    20
+    20210408,
+    1839
    ],
    "deps": [
     "evil",
@@ -99868,8 +100293,8 @@
     "seq",
     "undo-tree"
    ],
-   "commit": "a3d6d74089e0fa0031cdef5114393d2f569d68d9",
-   "sha256": "1qfn95mbq92p31g9yw68sf8854v3jk2251xy6asxqv8n9ckkhji9"
+   "commit": "feaf6d847bbff6642cd3c4926899eee3cbac261b",
+   "sha256": "1k4b8aqwglgavj3rsjj0macmppjsgb5ykpl388434crn067rlfpz"
   },
   "stable": {
    "version": [
@@ -100731,15 +101156,15 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20210326,
-    1352
+    20210409,
+    2343
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "c047b20cf3c367d06fba097e4c8a58967524d7ab",
-   "sha256": "0h29jscvmyw4s11wkpy538v71c87badz6ac8whs6nk3g04scsv8n"
+   "commit": "88e10161e1aa2a7c83ebc41ba8492d84d8e64e26",
+   "sha256": "010jlhbidl3vny9z4dp4mhix827p2aa76ja2v822sdlszcb8vh9x"
   },
   "stable": {
    "version": [
@@ -100870,11 +101295,11 @@
   "repo": "clarete/templatel",
   "unstable": {
    "version": [
-    20210319,
-    2222
+    20210327,
+    2307
    ],
-   "commit": "ef93f4190c785166b49a310bf2d8695d3227ab40",
-   "sha256": "13hwa7v5yyji98g9rz2m4ql89nx2wi0hhhikm9y552l25qayrgxz"
+   "commit": "dd7e76919f36da9f8efe7f9e3d84098f3c7c6644",
+   "sha256": "0apv1r756d984a47d9pvqzgcs652fdwy3swf4js9dki3nzljy756"
   },
   "stable": {
    "version": [
@@ -101640,11 +102065,11 @@
   "repo": "GongYiLiao/theme-anchor",
   "unstable": {
    "version": [
-    20210327,
-    340
+    20210408,
+    2149
    ],
-   "commit": "a6f5986a9569a4647fd4e3b6533b50efaf5aa1fd",
-   "sha256": "10fg2si0s5lavk8ljnycb0942fkl3dpkny5n6arir3jd17ypp3sv"
+   "commit": "ec7f522ec25c7f8342dfd067b7d9f6862c828c93",
+   "sha256": "00bar56lswvdp9rwa55y4m83av7a3g95b0qz6h0wbqi1v0gbpm5n"
   }
  },
  {
@@ -101822,8 +102247,8 @@
     20200212,
     1903
    ],
-   "commit": "3b42e95dc9167a28554991af0d172543475f2003",
-   "sha256": "1gw54kpzqdldivr4kyw08n12mpqkg303wxhc2wqjnn95dhmxql07"
+   "commit": "9c6323483c9feaa9ffba8ceb98f54281733ed50c",
+   "sha256": "0qjx9arygjh7h3wjrfcwc7jw1jxah2jf6wfinprv7b6jg1n8k6vy"
   },
   "stable": {
    "version": [
@@ -101889,8 +102314,8 @@
    "deps": [
     "haskell-mode"
    ],
-   "commit": "f26eb3062cca9369b2a05bd208633e8b4f91c28e",
-   "sha256": "0vx4nfpcan9c6qi9x0z1a03sm33ifrclnvd0rs43fjb6s05xhwwq"
+   "commit": "4f7bbb325631968d6e7b82b25ece810959d4b87f",
+   "sha256": "1p4w48zz25fym40l3wijr06qfd4drhkynbhf2nx2yh766yv8icmg"
   },
   "stable": {
    "version": [
@@ -101913,8 +102338,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20210323,
-    1647
+    20210327,
+    1928
    ],
    "deps": [
     "cl-lib",
@@ -101923,8 +102348,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "2a3ac4f38472d66e2d8a6bbe5dadb52bc008acbd",
-   "sha256": "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"
+   "commit": "ad6fa78911d5d7e85c0851c0c1afc01f3cbde7c1",
+   "sha256": "1b815gxmn31x5b59mmlv5di72mz3vdm19crrpcnvb18vl2ak2vw3"
   },
   "stable": {
    "version": [
@@ -102699,8 +103124,8 @@
    "deps": [
     "w32-ime"
    ],
-   "commit": "8fd8ae64f71d1d69d7e1bcc47a6f65aa7f8e6993",
-   "sha256": "020qvjszwkx5klgh865vs5z17ym651i4zzq7c4sz6qwv361ygfm8"
+   "commit": "809215eccfe8ff33d461c7ff980ed64c621a84bb",
+   "sha256": "1915v2x45cx9ydb53aw98da00wmqymn96af0wan9k46527ck54lg"
   },
   "stable": {
    "version": [
@@ -103119,14 +103544,14 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20210320,
-    1052
+    20210328,
+    434
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
-   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
+   "commit": "7f5d0938002092ec08830a73f64961021303e1e9",
+   "sha256": "17dwr2lmqi0ssg04a0a99igck60hmrk2a566bprwlwqga3cbkrzm"
   },
   "stable": {
    "version": [
@@ -103246,8 +103671,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210324,
-    2101
+    20210411,
+    1031
    ],
    "deps": [
     "ace-window",
@@ -103259,8 +103684,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103289,15 +103714,15 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20210324,
-    2101
+    20210408,
+    2051
    ],
    "deps": [
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   }
  },
  {
@@ -103315,8 +103740,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103345,8 +103770,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103377,8 +103802,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103410,8 +103835,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103443,8 +103868,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   }
  },
  {
@@ -103462,8 +103887,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "9eaef270de9fde50ef029c12db6d8b89cc4580d8",
-   "sha256": "0w3pr60hlw2v8c552lylpm6ab9qirdv8nrg5cr98zsm16b4likfp"
+   "commit": "b92d43aa6974c8581ea7a4f4b3586041a7f44f32",
+   "sha256": "18laa2ym4zqwl218flj73ik1s0ffiq3q7nszzp7qphhv4bkqjdik"
   },
   "stable": {
    "version": [
@@ -103720,8 +104145,8 @@
     20210320,
     1052
    ],
-   "commit": "3a600d769bd5da95bf46bec58893934370c6c04f",
-   "sha256": "15y0wjnck8rbfhl0xrl71ci7clbcp11lhqil5l8ykprsdjv0c2as"
+   "commit": "7f5d0938002092ec08830a73f64961021303e1e9",
+   "sha256": "17dwr2lmqi0ssg04a0a99igck60hmrk2a566bprwlwqga3cbkrzm"
   },
   "stable": {
    "version": [
@@ -104464,8 +104889,12 @@
     20200701,
     1435
    ],
-   "commit": "f4db4c9b9875134df6f5279281099361ae11c2e9",
-   "sha256": "0s88mz3x9iwz4hj1n4l4nmya473hcv8wsps8dyx4mmgzgpdb1lvf"
+   "commit": "7cbc3f852bcc1a22ce279cf36c89328841692493",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 296 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 553 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 1293 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503; retrying in 2555 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu/repository/archive.tar.gz?ref=7cbc3f852bcc1a22ce279cf36c89328841692493': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -104476,11 +104905,15 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20201218,
-    400
+    20210407,
+    326
    ],
-   "commit": "a0389147365c10c974ad68b797b185affb935fe3",
-   "sha256": "0qdls5h0ryh93ziwd5gibhknz8n9v66fyp55iwjk8zblgahnm6ym"
+   "commit": "b2d8874bc8ce892a6702b4136626bd65e0ad7760",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 283 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 562 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 1339 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503; retrying in 2016 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-undo-fu-session/repository/archive.tar.gz?ref=b2d8874bc8ce892a6702b4136626bd65e0ad7760': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -105360,11 +105793,14 @@
   "repo": "diml/utop",
   "unstable": {
    "version": [
-    20190715,
-    1836
+    20210404,
+    318
    ],
-   "commit": "a5ff52bbf608e1112b5c0d41a36e3267f39f4084",
-   "sha256": "125cv7kwvr1xj52yfb5qlra2li2hikbqnqvqdasn0rq3pkj7f02b"
+   "deps": [
+    "tuareg"
+   ],
+   "commit": "711c24661ce625070f8981fab9c6f31ce72b0a52",
+   "sha256": "0xwc14blqzrsyp7mzza0vavbp622a86bz9na8dks5zir2fgmmaxm"
   },
   "stable": {
    "version": [
@@ -106032,15 +106468,15 @@
   "repo": "applied-science/emacs-vega-view",
   "unstable": {
    "version": [
-    20210227,
-    1507
+    20210401,
+    1115
    ],
    "deps": [
     "cider",
     "parseedn"
    ],
-   "commit": "bb8159ad25886d81fcc2d3a9ec5af7ef669a87a6",
-   "sha256": "18g0fygi8dgwj2harnrqvilv0v3rrrdphqybmnshjmnfngkak55s"
+   "commit": "3793025a523a86acc6255b4183b12ebfc95e1116",
+   "sha256": "0w8v0ivwq3i42mxfxk5zvlx1lz4di06dpd93j2j13ns5h46vxhc0"
   }
  },
  {
@@ -106051,11 +106487,11 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20210315,
-    1753
+    20210402,
+    1621
    ],
-   "commit": "9c5e9baf43388d5a69ea2fb216d9936628b36a84",
-   "sha256": "1jl4b1ka1xaavfm4gpqgg01f76mlvy0g0rdifmwwz9w8apw306j0"
+   "commit": "f9e69bf42eb8108aeee020ed3f58f456e042967f",
+   "sha256": "1hycs3aaqw6ss3ccbjd8p3fpb4aslm9hk3b9cwqnz4lxcxvqbfvj"
   },
   "stable": {
    "version": [
@@ -106485,8 +106921,8 @@
     "dash",
     "s"
    ],
-   "commit": "107e7e0bf923f44d217712772cd58b414d0065cb",
-   "sha256": "1qqfcif4by8psc4kp9wnna7pm321a7d0xjkwznq2fwc5cqgbp0vz"
+   "commit": "c7e84505db4142fd1beebf38ffe37c3f42444ca3",
+   "sha256": "0kkhbw8c9c7nfhz7i0wwwcrbk0a91yvq7n5n89ndsk5iwisr92vp"
   },
   "stable": {
    "version": [
@@ -106548,11 +106984,11 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20210323,
-    2039
+    20210404,
+    2152
    ],
-   "commit": "a93dc5fc64340d8abda1272f67d46d4cc09a4c85",
-   "sha256": "1csybmfm5zgn2jpl9g3cb49vd26ds7x972wxiig3ri4zrmyn7y2l"
+   "commit": "6854932d7fe689caf5cbc1ab65271fcfd46590bd",
+   "sha256": "02ijylplnv8qzh6r2ci6h4sdm61vn0d2iajmbqyn91hs0695661j"
   },
   "stable": {
    "version": [
@@ -106814,11 +107250,11 @@
   "repo": "ianpan870102/vscode-dark-plus-emacs-theme",
   "unstable": {
    "version": [
-    20210325,
-    917
+    20210331,
+    1541
    ],
-   "commit": "6e7a02b624628d05fd5cfb5f26d044618a00c905",
-   "sha256": "1xdb6pwl8p6rzb7l6qf8nz2rn6ggjg9krimqsl167551bkjri4gw"
+   "commit": "3c349f64ff8f12348b865b8c6896db05386cdc49",
+   "sha256": "0f2dlgjczy45dygyw6was5m74fldrbf3l29bss370qcaj3h2bm3z"
   },
   "stable": {
    "version": [
@@ -106853,11 +107289,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20210326,
-    1458
+    20210409,
+    1558
    ],
-   "commit": "1bc4516f53955dcbf397cf999f38e67eec835d8c",
-   "sha256": "0lvdr7ifb3cb5ll8pl0lyw4qzg0v1plzl4fg5drn3z6aanznva38"
+   "commit": "2b1392cb2b14ec5bd0b7355197d5f353aa5d3983",
+   "sha256": "0cz0zfq5lannqq2ivmp6zv9r3fybkykx2vl4vn614rij23lylbwc"
   }
  },
  {
@@ -106996,16 +107432,16 @@
   "repo": "d12frosted/vulpea",
   "unstable": {
    "version": [
-    20210314,
-    1818
+    20210329,
+    605
    ],
    "deps": [
     "org",
     "org-roam",
     "s"
    ],
-   "commit": "ee35c562768a3a46b9d2c2f28dd2def105c05446",
-   "sha256": "19gx5i6jdb8dgpwaw0vmmla1v451svixahyf1pnfk6615rsb3m08"
+   "commit": "b394b82cb463f67932dae0fbe3a67daa4d647ea6",
+   "sha256": "0ssh12jrqfk7llfcfdf6dn9pq0hiqi5f7zp75v1j56qfpijzcbl0"
   },
   "stable": {
    "version": [
@@ -107088,11 +107524,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20210321,
-    2346
+    20210409,
+    626
    ],
-   "commit": "7da7afc51aec1ab02056512b921e29a8c68615c9",
-   "sha256": "1fcfmzahmamrxrklbwrrig4gv745lpznpbxx5rlmb7wpndf2cpdy"
+   "commit": "8bab3dc89d36b55ba26ae5941f294c57805d24b2",
+   "sha256": "15kp2lsfci6p8wkrda12m4vf12p13xd9x5rh3ypc6yvz1snypgyy"
   }
  },
  {
@@ -107705,14 +108141,14 @@
   "repo": "emacs-love/weblorg",
   "unstable": {
    "version": [
-    20210308,
-    109
+    20210410,
+    421
    ],
    "deps": [
     "templatel"
    ],
-   "commit": "faf78dfe01f25a3f32d6dcf199b5944cfc46b2c7",
-   "sha256": "0j9hnk5kymwq81qskn5l319qiilk5zck9134r44z0wx3bl0rc5gf"
+   "commit": "66bf957ace451ad0140e77d2fea235aefcd9ae26",
+   "sha256": "0qjrwpdi1zg8xbi9xnq5kpiw8dns1g899jh9vrsfqmkvr9vsm220"
   },
   "stable": {
    "version": [
@@ -107891,11 +108327,11 @@
   "repo": "jstaursky/weyland-yutani-theme",
   "unstable": {
    "version": [
-    20210327,
-    311
+    20210331,
+    1857
    ],
-   "commit": "782b45736c36dcd48e614167d46ff7fc0edd2a7b",
-   "sha256": "0m6mpwvhvhb02rk2lkylw5w7q9nqm3sqdyzyz5bcqm3layck4pcv"
+   "commit": "998c171becf2e589e65aae0283ebfee90c03d6df",
+   "sha256": "18zbawhrv9904frg686hlvqr4zqx62ay85igrwm8fr41wipxxhz6"
   }
  },
  {
@@ -108065,11 +108501,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20210324,
-    1821
+    20210407,
+    28
    ],
-   "commit": "c632dbf27a77c1c73ce559041b3a78ec5f78b187",
-   "sha256": "1dsr7x0mbw8jmdm26278a9lqmh3mkrkzr24fp6ssf316hh51cc3v"
+   "commit": "5fb30301cb3b4fca5a0e1ce8ec1ef59290b79199",
+   "sha256": "1wgygby4zwlbx6ry6asraaixl169qdz092zgk1brvg63w7f8vkkb"
   },
   "stable": {
    "version": [
@@ -108576,15 +109012,15 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20210315,
-    1848
+    20210411,
+    1700
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "aa4e7376ab72b7f67cf8ad46b67a2eaec2f8cd61",
-   "sha256": "1l7nrms211jslxibq18wxxdx7rv6i18by8lzhk692fp6s5af2fi3"
+   "commit": "dc4f8a00a8b0c1cf6242e1bf47f82e08c508a51e",
+   "sha256": "0h5s448dgpqi24fpmkbalw4w96jf9ny5gar8qjw0kqmcfxxny9b0"
   },
   "stable": {
    "version": [
@@ -108765,6 +109201,21 @@
   }
  },
  {
+  "ename": "wisp-mode",
+  "commit": "9ca9ed447dcced3e82dc65e655adc8286ce6301e",
+  "sha256": "1al272dwbbnj8wvvn2hb8k8k72hknjwr4kgj6r237hg1m8s21l5j",
+  "fetcher": "hg",
+  "url": "https://hg.sr.ht/~arnebab/wisp",
+  "unstable": {
+   "version": [
+    20210405,
+    1410
+   ],
+   "commit": "4b4a8f05401bd08092518ddccdf35461f1124f5a",
+   "sha256": "16aknbzmh3a4lb0bzkljl70yx8v8g74vfji4h4iqvx013vwvqyp2"
+  }
+ },
+ {
   "ename": "wispjs-mode",
   "commit": "a628330ee8deeab2bd5c2d4b61b33f119c4549d8",
   "sha256": "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p",
@@ -109179,11 +109630,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20210325,
-    939
+    20210402,
+    1450
    ],
-   "commit": "808248353b7617fd5b307defc3e1e8ccfed45045",
-   "sha256": "1akxxh3400j9rd7zagmhjfrvvg14g4mlzzgbc1y0n2l33k690fz4"
+   "commit": "b182bf853ec408de014ba35527177c7cab90d620",
+   "sha256": "11rmv6wc7brw1la73y9dvmmx2pqaxxwm4087qkgr9vjg5h02k67d"
   },
   "stable": {
    "version": [
@@ -109443,11 +109894,11 @@
   "repo": "ag91/writer-word-goals",
   "unstable": {
    "version": [
-    20210314,
-    2101
+    20210405,
+    1155
    ],
-   "commit": "d62ece22ab7c8c46d874f5ae61712aa517b25ce2",
-   "sha256": "16m77snvipr7blwsd12p7biqxqq9hchq3qmd0h79h9kci1990j2r"
+   "commit": "77435ca396e7cc2685f4962e959070dbe1f70db1",
+   "sha256": "0kblcf1qfa06bwqm6pwwdmmpcipn3yjcjw09hmryipzhgf97zfxa"
   }
  },
  {
@@ -109510,14 +109961,14 @@
   "repo": "jobbflykt/x509-mode",
   "unstable": {
    "version": [
-    20180921,
-    803
+    20210407,
+    627
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9eb24c8721dcad9888b70213d06d770bc2386db7",
-   "sha256": "1gr099bn4qn2b5jasbs4r04pf6wqsnpf2632vzvshzm9nkz4qnhg"
+   "commit": "470769edba111aed8eabce58a3f2a02da0767624",
+   "sha256": "19xvfzmsnc271a2zhjbnspb269c5mnps4l94ifrdlqn7y886qr4r"
   }
  },
  {
@@ -109528,14 +109979,14 @@
   "repo": "skeeto/x86-lookup",
   "unstable": {
    "version": [
-    20180528,
-    1635
+    20210409,
+    2313
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf",
-   "sha256": "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm"
+   "commit": "5e194fdac8a1e12d87b8ed4edeb887eb5543c34d",
+   "sha256": "0f76qsb8hiryfgwkpymw5sicbmz1p48s0dxai1fmjlvaimrw56mm"
   },
   "stable": {
    "version": [
@@ -109603,11 +110054,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20210319,
-    1553
+    20210404,
+    2149
    ],
-   "commit": "f35ef2e8cb8208c30a7ba02df52f32d915073fe6",
-   "sha256": "13xf12ci1anm6r8j90i6mj8pfmb8ffvhyzinz42046achhpymwnl"
+   "commit": "1caaf974574298700d0671e7f8f4bc5652b10fcf",
+   "sha256": "0pafihkaajan3k28394vf1g9q3ihwywmc62zbh1b0ycj23lgjcii"
   }
  },
  {
@@ -109648,11 +110099,11 @@
   "repo": "xahlee/xah-math-input",
   "unstable": {
    "version": [
-    20200217,
-    740
+    20210403,
+    2312
    ],
-   "commit": "c1e72c4578a134e9aa3ec9ef425038d8c16fba94",
-   "sha256": "0laq440vk8mnjbdjz0h4n18qh72n83hxqmwjm124ykzclzjcdknh"
+   "commit": "bc1ff04a11be7c3b728aa012324377305d48e087",
+   "sha256": "0q9civwf4mxapmq6hzrf3wimc7pfp28yipx007abchwimpdxvwws"
   }
  },
  {
@@ -110108,8 +110559,12 @@
     20210320,
     1123
    ],
-   "commit": "f5bcb89e026562abb8da4ea337457d43fed2e71b",
-   "sha256": "0hhhah6aq5wc6jqvf836h8ysmym1jk78acrdf6n486ck537zh5i3"
+   "commit": "8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 322 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 540 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 1079 ms\nwarning: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503; retrying in 2268 ms\nerror: unable to download 'https://gitlab.com/ideasman42/emacs-xref-rst/repository/archive.tar.gz?ref=8d8e00352e6f7e86d38d9ea4330f6cb2380fb2ec': HTTP error 503\n"
+   ]
   }
  },
  {
@@ -110404,11 +110859,11 @@
   "repo": "zkry/yaml.el",
   "unstable": {
    "version": [
-    20210326,
-    533
+    20210406,
+    156
    ],
-   "commit": "9ebddb55238d746dc5a5d46db04c9f360c140b99",
-   "sha256": "124lv7jjscaq7pgn72gk7zhrl54c27zqnyh8z51mn8j8mbpvf68a"
+   "commit": "d8ac09e8cad7f67339e19c53e77da1cd0ff98d36",
+   "sha256": "0wkrvhb5yhb38sf7w1njxij1x0pfxp56hn97j2bk4w58dz94fxir"
   }
  },
  {
@@ -110725,14 +111180,14 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20210105,
-    1346
+    20210408,
+    1234
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "899c027f442587e0f8ef90761f58b27907ca64b4",
-   "sha256": "1vl2y271y4vlgpnjb1fa24fsd77zmzha2miyqwnf9n9pdd96brjg"
+   "commit": "be823d7e1a1a46454d60a9f3dabb16b68b5dd853",
+   "sha256": "0ak0drxlg3m2v4ya5chpgl82rcl7ic2nmnybhpw1qk51mcmv643y"
   },
   "stable": {
    "version": [
@@ -111425,15 +111880,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20210326,
-    942
+    20210409,
+    2126
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "293d406203c5c060ceb64874812bc193ac91fb74",
-   "sha256": "08r0ipi6wbqfna4jwpvyp64vkzy3jdrjy0vac43gi2s3cbxl3wmg"
+   "commit": "c21705202180d16fa9f3a652e6e3af9ddc868a3b",
+   "sha256": "1ghrbz9azzddmgidbiqg3c0mqidgsjhryy03id0ln3bnv1z51vwn"
   },
   "stable": {
    "version": [
@@ -111557,14 +112012,14 @@
   "repo": "nnicandro/emacs-zmq",
   "unstable": {
    "version": [
-    20200912,
-    1126
+    20210402,
+    2340
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "eb4e01715cbf2f356a8ae5e678ffec3380a907dc",
-   "sha256": "0s21w3yc41hvrd881f5y8w6jczyd3bq7nbw5m13xr96yrv1d24mz"
+   "commit": "0a186a732b78aeb86599ea8123b36c4885789c7d",
+   "sha256": "0i6ghqwh35gnyz5b8ipbk030byibcmiy207pvplgszz39sjjjfp6"
   },
   "stable": {
    "version": [
@@ -111825,6 +112280,30 @@
   }
  },
  {
+  "ename": "zotero",
+  "commit": "13b0e96af19eeface7b3b91679b8406e45320ab3",
+  "sha256": "1vdq1im79jdbwps43zfnnxpqwcrp87r8k2fb4q6jr9ccdx2c6b33",
+  "fetcher": "gitlab",
+  "repo": "fvdbeek/emacs-zotero",
+  "unstable": {
+   "version": [
+    20210406,
+    2204
+   ],
+   "deps": [
+    "ht",
+    "oauth",
+    "s"
+   ],
+   "commit": "bee8196c5db26b75abc1359a5a7cb8a2b1f192ad",
+   "error": [
+    "exited abnormally with code 1\n",
+    "",
+    "warning: unknown setting 'experimental-features'\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 324 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 632 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 1159 ms\nwarning: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503; retrying in 2278 ms\nerror: unable to download 'https://gitlab.com/fvdbeek/emacs-zotero/repository/archive.tar.gz?ref=bee8196c5db26b75abc1359a5a7cb8a2b1f192ad': HTTP error 503\n"
+   ]
+  }
+ },
+ {
   "ename": "zotxt",
   "commit": "b633453e77a719f6b6b6564e66c1c1260db38aa6",
   "sha256": "18jla05g2k8zfrmp7q9kpr1mpw6smxzdyn8nfghm306wvv9ff8y5",
@@ -111938,14 +112417,14 @@
   "repo": "fourier/ztree",
   "unstable": {
    "version": [
-    20210215,
-    2111
+    20210409,
+    1841
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "dc5f76923436ea87b802b56a54185b6888177a8c",
-   "sha256": "17y1hjhygh2kq487ab1s8n2ba9npdmqg6354jv3gha6ar3mib1qi"
+   "commit": "c9ad9136d52ca5a81475693864e255d29448f43f",
+   "sha256": "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"
   }
  },
  {
diff --git a/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix
index c73238ce366..42c8e77ac68 100644
--- a/pkgs/applications/editors/featherpad/default.nix
+++ b/pkgs/applications/editors/featherpad/default.nix
@@ -1,23 +1,25 @@
-{ lib, mkDerivation, pkg-config, qmake, qttools, qtbase, qtsvg, qtx11extras, fetchFromGitHub }:
+{ lib, mkDerivation, cmake, hunspell, pkg-config, qttools, qtbase, qtsvg, qtx11extras
+, fetchFromGitHub }:
+
 mkDerivation rec {
   pname = "featherpad";
-  version = "0.10.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "FeatherPad";
     rev = "V${version}";
-    sha256 = "1wrbs6kni9s3x39cckm9kzpglryxn5vyarilvh9pafbzpc6rc57p";
+    sha256 = "0av96yx9ir1ap5adn2cvr6n5y7qjrspk73and21m65dmpwlfdiqb";
   };
 
-  nativeBuildInputs = [ qmake pkg-config qttools ];
-  buildInputs = [ qtbase qtsvg qtx11extras ];
+  nativeBuildInputs = [ cmake pkg-config qttools ];
+  buildInputs = [ hunspell qtbase qtsvg qtx11extras ];
 
   meta = with lib; {
     description = "Lightweight Qt5 Plain-Text Editor for Linux";
     homepage = "https://github.com/tsujan/FeatherPad";
     platforms = platforms.linux;
     maintainers = [ maintainers.flosse ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/editors/gophernotes/default.nix b/pkgs/applications/editors/gophernotes/default.nix
index 161acb54bba..468b3ff0383 100644
--- a/pkgs/applications/editors/gophernotes/default.nix
+++ b/pkgs/applications/editors/gophernotes/default.nix
@@ -21,6 +21,5 @@ buildGoModule rec {
     homepage = "https://github.com/gopherdata/gophernotes";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index fb653518530..16d7bf7dd16 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, callPackage, fetchurl
-, jdk, cmake, libxml2, zlib, python3, ncurses5
-, dotnet-sdk_3
+, jdk, cmake, zlib, python3
+, dotnet-sdk_5
+, autoPatchelfHook
+, libdbusmenu
 , vmopts ? null
 }:
 
@@ -25,6 +27,15 @@ let
         platforms = platforms.linux;
       };
     }).overrideAttrs (attrs: {
+      nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ optionals (stdenv.isLinux) [
+        autoPatchelfHook
+      ];
+      buildInputs = (attrs.buildInputs or []) ++ optionals (stdenv.isLinux) [
+        python3
+        stdenv.cc.cc
+        libdbusmenu
+      ];
+      dontAutoPatchelf = true;
       postFixup = (attrs.postFixup or "") + optionalString (stdenv.isLinux) ''
         (
           cd $out/clion-${version}
@@ -32,45 +43,7 @@ let
           rm -rf bin/cmake/linux
           ln -s ${cmake} bin/cmake/linux
 
-          lldbLibPath=$out/clion-${version}/bin/lldb/linux/lib
-          interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
-          ln -s ${ncurses5.out}/lib/libtinfo.so.5 $lldbLibPath/libtinfo.so.5
-
-          patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib ]}:$lldbLibPath" \
-            bin/lldb/linux/bin/lldb-server
-
-          for i in LLDBFrontend lldb lldb-argdumper; do
-            patchelf --set-interpreter $interp \
-              --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
-              "bin/lldb/linux/bin/$i"
-          done
-
-          patchelf \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
-            bin/lldb/linux/lib/python3.*/lib-dynload/zlib.cpython-*-x86_64-linux-gnu.so
-
-          patchelf \
-            --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \
-            bin/lldb/linux/lib/liblldb.so
-
-          gdbLibPath=$out/clion-${version}/bin/gdb/linux/lib
-          patchelf \
-            --set-rpath "$gdbLibPath" \
-            bin/gdb/linux/lib/python3.*/lib-dynload/zlib.cpython-*-x86_64-linux-gnu.so
-          patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$gdbLibPath" \
-            bin/gdb/linux/bin/gdb
-          patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$gdbLibPath" \
-            bin/gdb/linux/bin/gdbserver
-
-          patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
-            bin/clang/linux/clangd
-          patchelf --set-interpreter $interp \
-            --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}" \
-            bin/clang/linux/clang-tidy
+          autoPatchelf $PWD/bin
 
           wrapProgram $out/bin/clion \
             --set CL_JDK "${jdk}"
@@ -144,7 +117,7 @@ let
       inherit name version src wmClass jdk;
       product = "MPS";
       meta = with lib; {
-        homepage = https://www.jetbrains.com/mps/;
+        homepage = "https://www.jetbrains.com/mps/";
         inherit license description;
         longDescription = ''
           A metaprogramming system which uses projectional editing
@@ -223,7 +196,7 @@ let
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
         rm -rf lib/ReSharperHost/linux-x64/dotnet
         mkdir -p lib/ReSharperHost/linux-x64/dotnet/
-        ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
+        ln -s ${dotnet-sdk_5}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
       '');
     });
 
@@ -386,12 +359,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2021.1"; /* updated by script */
+    version = "2021.1.1"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "089j52sig2ac21v6zl9mvb7x4sr9c428nn930b41y3qd6bg52xxx"; /* updated by script */
+      sha256 = "00kdbsjw9hmq7x94pjscslv0b412g8l0jbvyi7jiyay8xc6wiaaj"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
diff --git a/pkgs/applications/editors/kakoune/plugins/generated.nix b/pkgs/applications/editors/kakoune/plugins/generated.nix
index 4fada31a0f5..953c95c4724 100644
--- a/pkgs/applications/editors/kakoune/plugins/generated.nix
+++ b/pkgs/applications/editors/kakoune/plugins/generated.nix
@@ -17,12 +17,12 @@ let
 
   auto-pairs-kak = buildKakounePluginFrom2Nix {
     pname = "auto-pairs-kak";
-    version = "2020-10-04";
+    version = "2021-03-28";
     src = fetchFromGitHub {
       owner = "alexherbo2";
       repo = "auto-pairs.kak";
-      rev = "fd735ec149ef0d9ca5f628a95b1e52858b5afbdc";
-      sha256 = "07795kv9njlnp6mckwv141ny2ns6wyf5r0dfjaxh9ngd105zgif1";
+      rev = "526779a26a5cf5f48e7c4f5c5fecca274968a737";
+      sha256 = "0gkhvwxyh8pdfydrj7zkfidk0drrbhvdi1fq3pkzllna3vz8q181";
     };
     meta.homepage = "https://github.com/alexherbo2/auto-pairs.kak/";
   };
@@ -41,16 +41,28 @@ let
 
   fzf-kak = buildKakounePluginFrom2Nix {
     pname = "fzf-kak";
-    version = "2021-03-15";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "andreyorst";
       repo = "fzf.kak";
-      rev = "4e6c9a857511fccdbbc835a1c9acb205b6486a4c";
-      sha256 = "0syhhdlsm7vg6hcd2n2acag9g562z49rbb5smh5p2gnplhmp93i0";
+      rev = "1b3a3beebbe7134e671fde2ef2f4242b34ae2c60";
+      sha256 = "0rsd65zcizbq3isy8576gqw7mcml5ixw84padaz6ndwfif5fv701";
     };
     meta.homepage = "https://github.com/andreyorst/fzf.kak/";
   };
 
+  kakboard = buildKakounePluginFrom2Nix {
+    pname = "kakboard";
+    version = "2020-05-09";
+    src = fetchFromGitHub {
+      owner = "lePerdu";
+      repo = "kakboard";
+      rev = "2f13f5cd99591b76ad5cba230815b80138825120";
+      sha256 = "1kvnbsv20y09rlnyar87qr0h26i16qsq801krswvxcwhid7ijlvd";
+    };
+    meta.homepage = "https://github.com/lePerdu/kakboard/";
+  };
+
   kakoune-buffer-switcher = buildKakounePluginFrom2Nix {
     pname = "kakoune-buffer-switcher";
     version = "2020-12-27";
@@ -65,12 +77,12 @@ let
 
   kakoune-buffers = buildKakounePluginFrom2Nix {
     pname = "kakoune-buffers";
-    version = "2020-06-11";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "Delapouite";
       repo = "kakoune-buffers";
-      rev = "67959fbad727ba8470fe8cd6361169560f4fb532";
-      sha256 = "09prhzz4yzf6ryw0npd1gpcfp77681vgawpp1ilfvbf25xgbbz33";
+      rev = "7832ea7a4528363482f5684f16cbcebcbec0adfd";
+      sha256 = "196d36jww6asf5zr03l1rwg49kkv16s2d4zyryb2m3zvy7prf2bb";
     };
     meta.homepage = "https://github.com/Delapouite/kakoune-buffers/";
   };
@@ -147,14 +159,26 @@ let
     meta.homepage = "https://github.com/mayjs/openscad.kak/";
   };
 
+  pandoc-kak = buildKakounePluginFrom2Nix {
+    pname = "pandoc-kak";
+    version = "2020-11-30";
+    src = fetchFromGitHub {
+      owner = "basbebe";
+      repo = "pandoc.kak";
+      rev = "63979f7e08b86d80436bbe2d9dba173a56057b97";
+      sha256 = "16pmmnpyxf8r7gpj8g1lwa960nscjmcl52n1a7s6xcqkp9856wxs";
+    };
+    meta.homepage = "https://github.com/basbebe/pandoc.kak/";
+  };
+
   powerline-kak = buildKakounePluginFrom2Nix {
     pname = "powerline-kak";
-    version = "2021-02-25";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "andreyorst";
       repo = "powerline.kak";
-      rev = "64ad98b6c85e63345563671b043960464d51c4b0";
-      sha256 = "09w2sk19qi64hgsyg4gb407vyppnlgk272mqbinz2r3apy6szkl3";
+      rev = "6fa5ad383f2884f201d6e3ef07a4687c606df525";
+      sha256 = "1s7ggjby0bymq48njzhdvkkarmzl44803xv0dlnzrj7q9c3xv27a";
     };
     meta.homepage = "https://github.com/andreyorst/powerline.kak/";
   };
@@ -197,12 +221,12 @@ let
 
   tabs-kak = buildKakounePluginFrom2Nix {
     pname = "tabs-kak";
-    version = "2021-02-16";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "enricozb";
       repo = "tabs.kak";
-      rev = "1aaa8cd89e404cbbd76d44ff8089de0951612fbf";
-      sha256 = "0dfz6j6yxl65jbh4xvpiy2abr2sdjyalynzhl28y7l1gzqv4ni3j";
+      rev = "048f83455ea7c671ab06e9b9578ac25e5de1d6fb";
+      sha256 = "0xswpsdf1bj54inl6vf2lzbjkxfc6g0fyv5kd6y9ahlh5irij8z0";
     };
     meta.homepage = "https://github.com/enricozb/tabs.kak/";
   };
diff --git a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
index b1874146089..6cf7d30f274 100644
--- a/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
+++ b/pkgs/applications/editors/kakoune/plugins/kakoune-plugin-names
@@ -3,6 +3,7 @@ alexherbo2/replace-mode.kak
 alexherbo2/sleuth.kak
 andreyorst/fzf.kak
 andreyorst/powerline.kak
+basbebe/pandoc.kak
 danr/kakoune-easymotion
 Delapouite/kakoune-buffers
 Delapouite/kakoune-registers
@@ -11,6 +12,7 @@ greenfork/active-window.kak
 kakoune-editor/kakoune-extra-filetypes
 kakounedotcom/connect.kak
 kakounedotcom/prelude.kak
+lePerdu/kakboard
 listentolist/kakoune-rainbow
 mayjs/openscad.kak
 occivink/kakoune-buffer-switcher
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index b5525285566..1a92ca3decb 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.6.1";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "02cbxqizbdlfwnz8dpq4fbzmdi4yk6fv0cragvpa0748w1cp03bn";
+    sha256 = "1ynarilx0ca0a5h6hl5bf276cymyy8s9wr5l24vyy7f15v683cfl";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 41ff62a619f..66127980bf6 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -1,5 +1,4 @@
 { stdenv, symlinkJoin, lib, makeWrapper
-, vimUtils
 , writeText
 , bundlerEnv, ruby
 , nodejs
@@ -114,6 +113,7 @@ let
       hydraPlatforms = [];
       # prefer wrapper over the package
       priority = (neovim.meta.priority or 0) - 1;
+      mainProgram = "nvim";
     };
   };
 in
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index 83c5bb6f930..8931ddc3799 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -36,7 +36,8 @@ stdenv.mkDerivation {
     makeWrapper $out/netbeans/bin/netbeans $out/bin/netbeans \
       --prefix PATH : ${lib.makeBinPath [ jdk which ]} \
       --prefix JAVA_HOME : ${jdk.home} \
-      --add-flags "--jdkhome ${jdk.home}"
+      --add-flags "--jdkhome ${jdk.home} \
+      -J-Dawt.useSystemAAFontSettings=on -J-Dswing.aatext=true"
 
     # Extract pngs from the Apple icon image and create
     # the missing ones from the 1024x1024 image.
diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix
index 47b9677e314..a8435eb1e6b 100644
--- a/pkgs/applications/editors/poke/default.nix
+++ b/pkgs/applications/editors/poke/default.nix
@@ -19,11 +19,11 @@ let
   isCross = stdenv.hostPlatform != stdenv.buildPlatform;
 in stdenv.mkDerivation rec {
   pname = "poke";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-zWjfY8dBtBYLEsvqAvJ8RxWCeUZuNEOTDSU1pFLAatY=";
+    hash = "sha256-9hz42ltkwBoTWTc3JarRyiV/NcHJJp5NUN0GZBg932I=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index dd5e5e61b29..d628eeadab6 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -16,7 +16,7 @@
 
 let
   pname = "TeXmacs";
-  version = "1.99.18";
+  version = "1.99.19";
   common = callPackage ./common.nix {
     inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
   };
@@ -26,7 +26,7 @@ mkDerivation {
 
   src = fetchurl {
     url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
-    sha256 = "0il3fwgw20421aj90wg8kyhkwk6lbgb3bb2g5qamh5lk90yj725i";
+    sha256 = "1izwqb0z4gqiglv57mjswk6sjivny73kd2sxrf3nmj7wr12pn5m8";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index 370d5b1561c..060078cd57b 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -61,37 +61,40 @@ in
     };
 
     buildInputs = [ libsecret libXScrnSaver libxshmfence ]
-      ++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages);
+      ++ lib.optionals (!stdenv.isDarwin) ([ gtk2 at-spi2-atk ] ++ atomEnv.packages);
 
     runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib libdbusmenu ];
 
-    nativeBuildInputs = [unzip] ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook;
+    nativeBuildInputs = [unzip] ++ lib.optionals (!stdenv.isDarwin) [ autoPatchelfHook wrapGAppsHook ];
 
     dontBuild = true;
     dontConfigure = true;
 
-    installPhase =
-      if system == "x86_64-darwin" then ''
-        mkdir -p "$out/Applications/${longName}.app" $out/bin
-        cp -r ./* "$out/Applications/${longName}.app"
-        ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/code" $out/bin/${executableName}
-      '' else ''
-        mkdir -p $out/lib/vscode $out/bin
-        cp -r ./* $out/lib/vscode
-
-        ln -s $out/lib/vscode/bin/${executableName} $out/bin
-
-        mkdir -p $out/share/applications
-        ln -s $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop
-        ln -s $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop
-
-        mkdir -p $out/share/pixmaps
-        cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
-
-        # Override the previously determined VSCODE_PATH with the one we know to be correct
-        sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName}
-        grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName} # check if sed succeeded
-      '';
+    installPhase = ''
+      runHook preInstall
+    '' + (if system == "x86_64-darwin" then ''
+      mkdir -p "$out/Applications/${longName}.app" $out/bin
+      cp -r ./* "$out/Applications/${longName}.app"
+      ln -s "$out/Applications/${longName}.app/Contents/Resources/app/bin/code" $out/bin/${executableName}
+    '' else ''
+      mkdir -p $out/lib/vscode $out/bin
+      cp -r ./* $out/lib/vscode
+
+      ln -s $out/lib/vscode/bin/${executableName} $out/bin
+
+      mkdir -p $out/share/applications
+      ln -s $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop
+      ln -s $urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop $out/share/applications/${executableName}-url-handler.desktop
+
+      mkdir -p $out/share/pixmaps
+      cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
+
+      # Override the previously determined VSCODE_PATH with the one we know to be correct
+      sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName}
+      grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName} # check if sed succeeded
+    '') + ''
+      runHook postInstall
+    '';
 
     inherit meta;
   }
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 09a58e7dfd1..f517f95a812 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0z1diiiykv4ilsiljffz9sl2mlvrxq0xwm8ga2ralfvjwbhzr6dn";
-    x86_64-darwin = "02gzw46w3kzw1ya9nx8fkhvzi0mbpz2fyp47n58jki2zkdsfiwzh";
-    aarch64-linux = "0bkvgdxch95dqcb41ncsjkaaswmwv6zad4hzdsr3famjm2vym1ky";
-    armv7l-linux = "0wdp97ihdnx9bcyn2dh6wzhb7qvdj6x730r7ng1q3i9jhd19wfi3";
+    x86_64-linux = "08151qdhf4chg9gfbs0dl0v0k5vla2gz5dfy439jzdg1d022d5rw";
+    x86_64-darwin = "1vlxxkv3wvds3xl3ir93l5q5yq2d7mcragsicfayj9x9r49ilqn3";
+    aarch64-linux = "0rxw1wsi555z41ak817sxqyyan0rm7hma640zsh8dz0yvhzdv1h8";
+    armv7l-linux = "1ijvd7r2fxxlw4zv3zx5h70b3d0b4gcq3aljsi02v1lr2zm8f8gb";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -25,7 +25,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.55.0";
+    version = "1.55.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -45,6 +45,7 @@ in
         Open source source code editor developed by Microsoft for Windows,
         Linux and macOS
       '';
+      mainProgram = "code";
       longDescription = ''
         Open source source code editor developed by Microsoft for Windows,
         Linux and macOS. It includes support for debugging, embedded Git
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index b11a8a8f103..4850a9cd7dd 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0zzdbknmljf1hizmxnrby17i8v3kp98rklinywnr632jwgjms81j";
-    x86_64-darwin = "0mccq1b0l6r1ipxp5gvyam43c2hh8hxdvwqikkz6g7y93p29wz9g";
-    aarch64-linux = "12gpday6gzl1adcykqhgz3xrdm9568a26gsndmplkn2n6l6agnp0";
-    armv7l-linux = "0l886vdw7az0nvvhh14pjawz0yyib59ymychy7gbk8ay5g9vfv03";
+    x86_64-linux = "12mdila9gspj6b9s6488j0ba264vm4a46546kplma7s6gkkpz4zx";
+    x86_64-darwin = "15wdznihc2ra2fjy9p4j898vazjr4h5yighaxh7jk9kcvarg1658";
+    aarch64-linux = "0plw1an1z3v333irbc53skrmq2klas21srriiqkvmkgkfvpx1rq2";
+    armv7l-linux = "1ys82pa18qshpinaqqrskxvljzap20xwj5ncffn031yacg1y2qx2";
   }.${system};
 
   sourceRoot = {
@@ -33,7 +33,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.55.0";
+    version = "1.55.2";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 6f395640f50..a8dd7787a52 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -1,25 +1,38 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
-, qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql
-, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
-, qtbase, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
-, withGrass ? true, grass
-, withWebKit ? true, qtwebkit
-}:
+{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos
+, xlibsWrapper, sqlite, gsl, qwt, fcgi, python3Packages, libspatialindex
+, libspatialite, postgresql, txt2tags, openssl, libzip, hdf5, netcdf, exiv2
+, protobuf, qtbase, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport
+, qtxmlpatterns, withGrass ? true, grass, withWebKit ? true, qtwebkit }:
 with lib;
 let
-  pythonBuildInputs = with python3Packages;
-    [ qscintilla-qt5 gdal jinja2 numpy psycopg2
-      chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
+  pythonBuildInputs = with python3Packages; [
+    qscintilla-qt5
+    gdal
+    jinja2
+    numpy
+    psycopg2
+    chardet
+    dateutil
+    pyyaml
+    pytz
+    requests
+    urllib3
+    pygments
+    pyqt5
+    sip
+    owslib
+    six
+  ];
 in mkDerivation rec {
-  version = "3.10.13";
+  version = "3.16.6";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
-    rev = "final-${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0za77znk1phrxzy2cgxpwrld3d0pi0xvhsg78rg4wkb23vaqv6zb";
+    rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
+    sha256 = "1vnz5kiyjircmhn4vq3fa5j2kvkxpwcsry7jc6nxl0w0dqx1zay1";
   };
 
   passthru = {
@@ -27,10 +40,32 @@ in mkDerivation rec {
     inherit python3Packages;
   };
 
-  buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt exiv2
-    fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf
-    qtbase qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns ]
-    ++ lib.optional withGrass grass
+  buildInputs = [
+    openssl
+    proj
+    geos
+    xlibsWrapper
+    sqlite
+    gsl
+    qwt
+    exiv2
+    protobuf
+    fcgi
+    libspatialindex
+    libspatialite
+    postgresql
+    txt2tags
+    libzip
+    hdf5
+    netcdf
+    qtbase
+    qtsensors
+    qca-qt5
+    qtkeychain
+    qscintilla
+    qtserialport
+    qtxmlpatterns
+  ] ++ lib.optional withGrass grass
     ++ lib.optional withWebKit qtwebkit
     ++ pythonBuildInputs;
 
@@ -41,15 +76,16 @@ in mkDerivation rec {
   # TODO: Correct PyQt5 to provide the expected directory and fix
   # build to use PYQT5_SIP_DIR consistently.
   postPatch = ''
-     substituteInPlace cmake/FindPyQt5.py \
-       --replace 'sip_dir = cfg.default_sip_dir' 'sip_dir = "${python3Packages.pyqt5}/share/sip/PyQt5"'
-   '';
+    substituteInPlace cmake/FindPyQt5.py \
+      --replace 'sip_dir = cfg.default_sip_dir' 'sip_dir = "${python3Packages.pyqt5}/share/sip/PyQt5"'
+  '';
 
-  cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
-                 "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
-                 "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5" ]
-                 ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
-                 ++ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
+  cmakeFlags = [
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+    "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
+    "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5"
+  ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
+    ++ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
 
   meta = {
     description = "A Free and Open Source Geographic Information System";
diff --git a/pkgs/applications/graphics/ImageMagick/6.x.nix b/pkgs/applications/graphics/ImageMagick/6.x.nix
index de96650167f..c77e60950c9 100644
--- a/pkgs/applications/graphics/ImageMagick/6.x.nix
+++ b/pkgs/applications/graphics/ImageMagick/6.x.nix
@@ -16,13 +16,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "6.9.12-3";
+  version = "6.9.12-8";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick6";
     rev = version;
-    sha256 = "sha256-h9c0N9AcFVpNYpKl+95q1RVJWuacN4N4kbAJIKJp8Jc=";
+    sha256 = "sha256-ZFCmoZOdZ3jbM5S90zBNiMGJKFylMLO0r3DB25wu3MM=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 8cf7966703f..e0b75e74064 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -16,13 +16,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.0.11-6";
+  version = "7.0.11-8";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    sha256 = "sha256-QClOS58l17KHeQXya+IKNx6nIkd6jCKp8uupRH7Fwnk=";
+    sha256 = "sha256-h9hoFXnxuLVQRVtEh83P7efz2KFLLqOXKD6nVJEhqiM=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
@@ -78,5 +78,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ erictapen ];
     license = licenses.asl20;
+    mainProgram = "magick";
   };
 }
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index fcd871bf5ab..db23a181c5a 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -55,11 +55,11 @@
 
 mkDerivation rec {
   pname   = "digikam";
-  version = "7.1.0";
+  version = "7.2.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1gmblnsm0aida3yynyddm6jdh59hx3w177hrhfar616z793ch0xi";
+    sha256 = "sha256-zYfs4UOu+gLmkqSvXDw8wQe5pNYYBNefp33S40R5ihc=";
   };
 
   nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix
index 0feb72f64aa..a2b4e949499 100644
--- a/pkgs/applications/graphics/drawing/default.nix
+++ b/pkgs/applications/graphics/drawing/default.nix
@@ -17,7 +17,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "drawing";
-  version = "0.4.13";
+  version = "0.8.0";
 
   format = "other";
 
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "maoschanz";
     repo = pname;
     rev = version;
-    sha256 = "0mj2nmfrckv89srgkn16fnbrb35f5a655ak8bb3rd9na3hd5bq53";
+    sha256 = "03cx6acb0ph7b3difshjfddi8ld79wp8d12bdp7dp1q1820j5mz0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 4155767a361..e8ef97f949c 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -4,7 +4,7 @@
 , alsaLib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
 , gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
 , libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
-, libxcb, libuuid, libxshmfence, nspr, nss, pango
+, libxcb, libuuid, libxshmfence, nspr, nss, pango, mesa
 
 , systemd
 }:
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     libXtst
     libxcb
     libuuid
+    mesa # for libgbm
     nspr
     nss
     pango
diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix
new file mode 100644
index 00000000000..71adfe0d2db
--- /dev/null
+++ b/pkgs/applications/graphics/foxotron/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, nix-update-script
+, cmake
+, pkg-config
+, makeWrapper
+, zlib
+, libX11
+, libXrandr
+, libXinerama
+, libXcursor
+, libXi
+, libXext
+, libGLU
+, alsaLib
+, fontconfig
+, AVFoundation
+, Carbon
+, Cocoa
+, CoreAudio
+, Kernel
+, OpenGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "foxotron";
+  version = "2021-03-12";
+
+  src = fetchFromGitHub {
+    owner = "Gargaj";
+    repo = "Foxotron";
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config makeWrapper ];
+
+  buildInputs = [ zlib ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsaLib fontconfig libGLU ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib/foxotron}
+    cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
+      ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
+    wrapProgram $out/lib/foxotron/Foxotron \
+      --run "cd $out/lib/foxotron"
+    ln -s $out/{lib/foxotron,bin}/Foxotron
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with lib; {
+    description = "General purpose model viewer";
+    longDescription = ''
+      ASSIMP based general purpose model viewer ("turntable") created for the
+      Revision 2021 3D Graphics Competition.
+    '';
+    homepage = "https://github.com/Gargaj/Foxotron";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index e42666beb1f..56ebbeb3722 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -1,7 +1,6 @@
 { lib
 , fetchFromGitHub
 , xz
-, qt5
 , wrapQtAppsHook
 , miniupnpc_2
 , swftools
@@ -10,14 +9,14 @@
 
 pythonPackages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "434";
+  version = "436";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "v${version}";
-    sha256 = "sha256-7Allc9zawja8DO2idv+MAYZ/cBRTCMd0mbgBLfEVii8=";
+    sha256 = "sha256-FXm8VUEY0OZ6/dc/qNwOXekhv5H2C9jjg/eNDoMvMn0==";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/kodelife/default.nix b/pkgs/applications/graphics/kodelife/default.nix
index 4eaab036eb9..2ac507dc870 100644
--- a/pkgs/applications/graphics/kodelife/default.nix
+++ b/pkgs/applications/graphics/kodelife/default.nix
@@ -9,22 +9,20 @@
 
 stdenv.mkDerivation rec {
   pname = "kodelife";
-  version = "0.9.0.129";
+  version = "0.9.8.143";
 
   suffix = {
     aarch64-linux = "linux-arm64";
     armv7l-linux  = "linux-armhf";
-    x86_64-darwin = "macos";
     x86_64-linux  = "linux-x86_64";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   src = fetchzip {
     url = "https://hexler.net/pub/${pname}/${pname}-${version}-${suffix}.zip";
     sha256 = {
-      aarch64-linux = "0z2fqlf156348ha3zhv16kvqdx68fbwbzch2gzjm9x1na9n5k1ra";
-      armv7l-linux  = "1ppwgrmgl1j2ws9mhrscvvkamd69a6xw7x35df6d30cyj97r0mzy";
-      x86_64-darwin = "0f8vn6m3xzsiyxm2ka5wkbp63wvzrix6g1xrbpvcm3v2llmychkl";
-      x86_64-linux  = "035c1nlw0nim057sz3axpkcgkafqbm6gpr8hwr097vlrqll6w3dv";
+      aarch64-linux = "0ryjmpzpfqdqrvqpq851vvrjd8ld5g91gcigpv9rxp3z1b7qdand";
+      armv7l-linux  = "08nlwn8ixndqil4m7j6c8gjxmwx8zi3in86arnwf13shk6cds5nb";
+      x86_64-linux  = "0kbz7pvh4i4a3pj1vzbzzslha825i888isvsigcqsqvipjr4798q";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
@@ -35,8 +33,10 @@ stdenv.mkDerivation rec {
   preferLocalBuild = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     mv KodeLife $out/bin
+    runHook postInstall
   '';
 
   preFixup = let
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
       libGLU libGL
       xorg.libX11
     ];
-  in lib.optionalString (!stdenv.isDarwin) ''
+  in ''
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
       --set-rpath "${libPath}" \
@@ -61,6 +61,6 @@ stdenv.mkDerivation rec {
     description = "Real-time GPU shader editor";
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-darwin" "x86_64-linux" ];
+    platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index 4700b1dfbbf..282db23f475 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "krita";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "121fjdv5phx1aqk21vx9k9vsc5k1w8s86gp6pamy2y31r2ph7r8y";
+    url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
+    sha256 = "0rwghzci2wn2jmisvnzs23yxc2z3d4dcx2qbbhcvjyi3q8ij61nl";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ];
@@ -48,6 +48,6 @@ mkDerivation rec {
     homepage = "https://krita.org/";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl3Only;
   };
 }
diff --git a/pkgs/applications/graphics/mcomix3/default.nix b/pkgs/applications/graphics/mcomix3/default.nix
index add40043c0f..db777b3bd77 100644
--- a/pkgs/applications/graphics/mcomix3/default.nix
+++ b/pkgs/applications/graphics/mcomix3/default.nix
@@ -17,13 +17,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mcomix3";
-  version = "unstable-2020-11-23";
+  version = "unstable-2021-04-23";
 
   # no official release on pypi/github and no build system
   src = fetchFromGitHub {
     repo   = "${pname}";
     owner  = "multiSnow";
-    rev = "cdcb27533dc7ee2ebf7b0a8ab5ba10e61c0b8ff8";
+    rev = "139344e23898c28484328fc29fd0c6659affb12d";
     sha256 = "0q9xgl60ryf7qmy5vgzgfry4rvw5j9rb4d1ilxmpjmvm7dd3fm2k";
   };
 
@@ -46,6 +46,8 @@ python3.pkgs.buildPythonApplication rec {
   installPhase = ''
     runHook preInstall
 
+    substituteInPlace mime/*.desktop \
+      --replace "Exec=mcomix" "Exec=mcomix3"
     ${python3.executable} installer.py --srcdir=mcomix --target=$libdir
     mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
     mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix
new file mode 100644
index 00000000000..859c2219218
--- /dev/null
+++ b/pkgs/applications/graphics/openboard/default.nix
@@ -0,0 +1,115 @@
+{ mkDerivation, lib, fetchFromGitHub, copyDesktopItems, makeDesktopItem, qmake
+, qtbase, qtxmlpatterns, qttools, qtwebkit, libGL, fontconfig, openssl, poppler
+, ffmpeg, libva, alsaLib, SDL, x264, libvpx, libvorbis, libtheora, libogg
+, libopus, lame, fdk_aac, libass, quazip, libXext, libXfixes }:
+
+let
+  importer = mkDerivation rec {
+    pname = "openboard-importer";
+    version = "unstable-2016-10-08";
+
+    src = fetchFromGitHub {
+      owner = "OpenBoard-org";
+      repo = "OpenBoard-Importer";
+      rev = "47927bda021b4f7f1540b794825fb0d601875e79";
+      sha256 = "19zhgsimy0f070caikc4vrrqyc8kv2h6rl37sy3iggks8z0g98gf";
+    };
+
+    nativeBuildInputs = [ qmake ];
+
+    installPhase = ''
+      install -Dm755 OpenBoardImporter $out/bin/OpenBoardImporter
+    '';
+  };
+in mkDerivation rec {
+  pname = "openboard";
+  version = "1.6.1";
+
+  src = fetchFromGitHub {
+    owner = "OpenBoard-org";
+    repo = "OpenBoard";
+    rev = "v${version}";
+    sha256 = "sha256-OlGXGIMghil/GG6eso20+CWo/hCjarXGs6edXX9pc/M=";
+  };
+
+  postPatch = ''
+    substituteInPlace OpenBoard.pro \
+      --replace '/usr/include/quazip' '${quazip}/include/quazip5' \
+      --replace '/usr/include/poppler' '${poppler.dev}/include/poppler'
+  '';
+
+  nativeBuildInputs = [ qmake copyDesktopItems ];
+
+  buildInputs = [
+    qtbase
+    qtxmlpatterns
+    qttools
+    qtwebkit
+    libGL
+    fontconfig
+    openssl
+    poppler
+    ffmpeg
+    libva
+    alsaLib
+    SDL
+    x264
+    libvpx
+    libvorbis
+    libtheora
+    libogg
+    libopus
+    lame
+    fdk_aac
+    libass
+    quazip
+    libXext
+    libXfixes
+  ];
+
+  propagatedBuildInputs = [ importer ];
+
+  makeFlags = [ "release-install" ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "OpenBoard";
+      exec = "OpenBoard %f";
+      icon = "OpenBoard";
+      comment = "OpenBoard, an interactive white board application";
+      desktopName = "OpenBoard";
+      mimeType = "application/ubz";
+      categories = "Education;";
+      startupNotify = true;
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    lrelease OpenBoard.pro
+
+    # Replicated release_scripts/linux/package.sh
+    mkdir -p $out/opt/openboard/i18n
+    cp -R resources/customizations build/linux/release/product/* $out/opt/openboard/
+    cp resources/i18n/*.qm $out/opt/openboard/i18n/
+    install -m644 resources/linux/openboard-ubz.xml $out/opt/openboard/etc/
+    install -Dm644 resources/images/OpenBoard.png $out/share/icons/hicolor/64x64/apps/OpenBoard.png
+
+    runHook postInstall
+  '';
+
+  dontWrapQtApps = true;
+
+  postFixup = ''
+    makeWrapper $out/opt/openboard/OpenBoard $out/bin/OpenBoard \
+      "''${qtWrapperArgs[@]}"
+  '';
+
+  meta = with lib; {
+    description = "Interactive whiteboard application";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fufexan ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/pixelnuke/default.nix b/pkgs/applications/graphics/pixelnuke/default.nix
new file mode 100644
index 00000000000..4cb2440cb8e
--- /dev/null
+++ b/pkgs/applications/graphics/pixelnuke/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, libevent, glew, glfw }:
+
+stdenv.mkDerivation {
+  pname = "pixelnuke";
+  version = "unstable-2019-05-19";
+
+  src = fetchFromGitHub {
+    owner = "defnull";
+    repo = "pixelflut";
+    rev = "3458157a242ba1789de7ce308480f4e1cbacc916";
+    sha256 = "03dp0p00chy00njl4w02ahxqiwqpjsrvwg8j4yi4dgckkc3gbh40";
+  };
+
+  sourceRoot = "source/pixelnuke";
+
+  buildInputs = [ libevent glew glfw ];
+
+  installPhase = ''
+    install -Dm755 ./pixelnuke $out/bin/pixelnuke
+  '';
+
+  meta = with lib; {
+    description = "Multiplayer canvas (C implementation)";
+    homepage = "https://cccgoe.de/wiki/Pixelflut";
+    license = licenses.unlicense;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mrVanDalo ];
+  };
+}
diff --git a/pkgs/applications/graphics/runwayml/default.nix b/pkgs/applications/graphics/runwayml/default.nix
deleted file mode 100644
index 9366276ebf8..00000000000
--- a/pkgs/applications/graphics/runwayml/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib
-, fetchurl
-, appimageTools
-, symlinkJoin
-}:
-
-let
-  pname = "runwayml";
-  version = "0.14.3";
-  name = "${pname}-${version}";
-
-  src = fetchurl {
-    url = "https://runway-releases.s3.amazonaws.com/Runway-${version}.AppImage";
-    sha256 = "1bx8j39wd2z6f32hdvmk9z77bivnizzdhn296kin2nnqgq6v6y93";
-  };
-
-  binary = appimageTools.wrapType2 {
-    name = pname;
-    inherit src;
-  };
-  # we only use this to extract the icon and desktop file
-  appimage-contents = appimageTools.extractType2 {
-    inherit name src;
-  };
-
-in
-  symlinkJoin {
-    inherit name;
-    paths = [ binary ];
-
-    postBuild = ''
-      mkdir -p $out/share/pixmaps/ $out/share/applications
-      cp ${appimage-contents}/usr/share/icons/hicolor/1024x1024/apps/runway.png $out/share/pixmaps/runway.png
-      sed 's:Exec=AppRun:Exec=runwayml:' ${appimage-contents}/runway.desktop > $out/share/applications/runway.desktop
-    '';
-
-  meta = with lib; {
-    description = "Machine learning for creators";
-    homepage = "https://runwayml.com/";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
index 9713618d79a..6fcb5830556 100644
--- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -11,16 +11,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "brscan4";
-  version = "0.4.9-1";
+  version = "0.4.10-1";
   src = {
     "i686-linux" = fetchurl {
       url = "http://download.brother.com/welcome/dlf006646/${pname}-${version}.i386.deb";
-      sha256 = "0pkg9aqvnkpjnb9cgzf7lxw2g4jqrf2w98irkv22r0gfsfs3nwma";
+      sha256 = "sha256-ymIAg+rfSYP5uzsAM1hUYZacJ0PXmKEoljNtb0pgGMw=";
     };
     "x86_64-linux" = fetchurl {
-
       url = "https://download.brother.com/welcome/dlf006645/${pname}-${version}.amd64.deb";
-      sha256 = "0kakkl8rmsi2yr3f8vd1kk8vsl9g2ijhqil1cvvbwrhwgi0b7ai7";
+      sha256 = "sha256-Gpr5456MCNpyam3g2qPo7S3aEZFMaUGR8bu7YmRY8xk=";
     };
   }."${stdenv.hostPlatform.system}";
 
@@ -33,7 +32,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libusb-compat-0_1 ];
   dontBuild = true;
 
-  patchPhase = ''
+  postPatch = ''
     ${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"}
 
     RPATH=${libusb-compat-0_1.out}/lib
@@ -45,6 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = with lib; ''
+    runHook preInstall
     PATH_TO_BRSCAN4="opt/brother/scanner/brscan4"
     mkdir -p $out/$PATH_TO_BRSCAN4
     cp -rp $PATH_TO_BRSCAN4/* $out/$PATH_TO_BRSCAN4
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
     mkdir -p $out/etc/udev/rules.d
     cp -p ${udevRules}/etc/udev/rules.d/*.rules \
       $out/etc/udev/rules.d
+    runHook postInstall
   '';
 
   dontStrip = true;
diff --git a/pkgs/applications/graphics/vimiv-qt/default.nix b/pkgs/applications/graphics/vimiv-qt/default.nix
new file mode 100644
index 00000000000..8e0caff1d17
--- /dev/null
+++ b/pkgs/applications/graphics/vimiv-qt/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, qt5
+, installShellFiles
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "vimiv-qt";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "karlch";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1pj3gak7nxkw9r9m71zsfvcaq8dk9crbk5rz4n7pravxkl5hs2bg";
+  };
+
+  nativeBuildInputs = [ installShellFiles qt5.wrapQtAppsHook python3.pkgs.setuptools ];
+
+  propagatedBuildInputs = with python3.pkgs; [ pyqt5 py3exiv2 qt5.qtsvg ];
+
+  postInstall = ''
+    install -Dm644 misc/vimiv.desktop $out/share/applications/vimiv.desktop
+    install -Dm644 misc/org.karlch.vimiv.qt.metainfo.xml $out/metainfo/org.karlch.vimiv.qt.metainfo.xml
+    install -Dm644 LICENSE $out/licenses/vimiv/LICENSE
+    install -Dm644 icons/vimiv.svg $out/icons/hicolor/scalable/apps/vimiv.svg
+    installManPage misc/vimiv.1
+
+    for i in 16 32 64 128 256 512; do
+      install -Dm644 icons/vimiv_''${i}x''${i}.png $out/icons/hicolor/''${i}x''${i}/apps/vimiv.png
+    done
+  '';
+
+  # Vimiv has to be wrapped manually because it is a non-ELF executable.
+  dontWrapQtApps = true;
+  preFixup = ''
+      wrapQtApp $out/bin/vimiv
+  '';
+
+  meta = with lib; {
+    description = "Image viewer with Vim-like keybindings (Qt port)";
+    license = licenses.gpl3Plus;
+    homepage = "https://github.com/karlch/vimiv-qt";
+    maintainers = with maintainers; [ dschrempf ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index 861cd5f8356..5b61590003e 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.2/src -A '*.tar.xz' )
+WGET_ARGS=( http://download.kde.org/stable/release-service/20.12.3/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index c1def1bd613..fc179789df2 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1795 +4,1795 @@
 
 {
   akonadi = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-20.12.2.tar.xz";
-      sha256 = "0659vgj8y77i0axdwwajaw6kxfa48j6s56nl6xhnv8686ss8plkw";
-      name = "akonadi-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-20.12.3.tar.xz";
+      sha256 = "0bcjyh1w8aaq7bp0df8zla7zvddig5ziz9avj82c6d453hfsq6dr";
+      name = "akonadi-20.12.3.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-20.12.2.tar.xz";
-      sha256 = "0vzv4yycb2nnz5ifsydv0k080wgnhjzim6lfd6qrh38mgxpb2hzw";
-      name = "akonadi-calendar-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-calendar-20.12.3.tar.xz";
+      sha256 = "057iz29y8dvxa26kf995akgy427c20d27i59gdfnl183wikmw9wk";
+      name = "akonadi-calendar-20.12.3.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-calendar-tools-20.12.2.tar.xz";
-      sha256 = "06bzha5h14x6m4xzbbz2h3s00v4pc2a8d716dav9bqi0pvvq3cj0";
-      name = "akonadi-calendar-tools-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-calendar-tools-20.12.3.tar.xz";
+      sha256 = "1fdcf6s1ij2l44zg7rha9hhha1k3m4xh0mgkyc836jkqy02jx3j6";
+      name = "akonadi-calendar-tools-20.12.3.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadiconsole-20.12.2.tar.xz";
-      sha256 = "12fslhpxah99fzvg3a1g67n69mi4xvgz9ra787pdvzrs0lca9xa0";
-      name = "akonadiconsole-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadiconsole-20.12.3.tar.xz";
+      sha256 = "0skam7yl9m28m51yj0inzcxa5rbz5r4hz104b0ncg9hjjqi7qyfl";
+      name = "akonadiconsole-20.12.3.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-contacts-20.12.2.tar.xz";
-      sha256 = "05y1rpvq1shiqlgql56k052glsslawy742q4n2hs301xhg0izavz";
-      name = "akonadi-contacts-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-contacts-20.12.3.tar.xz";
+      sha256 = "1ql7rx3fj12iddsvjip17w3gqm4slcmy3id3b892xwlx4izz2dr4";
+      name = "akonadi-contacts-20.12.3.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-import-wizard-20.12.2.tar.xz";
-      sha256 = "1gqjr5k6kkxi77vq0f6mc5mr31qvjsiicj6sxwpbm0c34vydfzym";
-      name = "akonadi-import-wizard-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-import-wizard-20.12.3.tar.xz";
+      sha256 = "080dyygqwc4m38vqkd4yvpy1xa4302a20gcbl5vi06as750qswgn";
+      name = "akonadi-import-wizard-20.12.3.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-mime-20.12.2.tar.xz";
-      sha256 = "0zdgkny32zwa2r2yhi285f56jkj0ini6p3sv5hi7f43mi7r5m994";
-      name = "akonadi-mime-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-mime-20.12.3.tar.xz";
+      sha256 = "1dnxswwvgm3vj5l12xnv5c7jpmrx3180xpdpgj4xp4nmzvfrfpgl";
+      name = "akonadi-mime-20.12.3.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-notes-20.12.2.tar.xz";
-      sha256 = "0rbg2vwk0a1zbfw5cmz0jx3yzap7j6yi7c0igq1fgg3an7sw4j2v";
-      name = "akonadi-notes-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-notes-20.12.3.tar.xz";
+      sha256 = "1fp5mif6w14snrndw2w4y66hsi14x7qyr9p343hdma4lmd65lic7";
+      name = "akonadi-notes-20.12.3.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akonadi-search-20.12.2.tar.xz";
-      sha256 = "0m7l7f26gj018d5pipbgmmxiqky98avpypxbydrms6afdglvi5ja";
-      name = "akonadi-search-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akonadi-search-20.12.3.tar.xz";
+      sha256 = "0bac20n5mbfvl5p5qyiy1dygv1lz0spvm37ah3bp4iz9k4maqp7q";
+      name = "akonadi-search-20.12.3.tar.xz";
     };
   };
   akregator = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/akregator-20.12.2.tar.xz";
-      sha256 = "11y2mmf2svbxvqb1bjwzrivkq8w508fwg7513bzl62pbjqa8g3gk";
-      name = "akregator-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/akregator-20.12.3.tar.xz";
+      sha256 = "10friff769kq83b9nxx2wj16bgzjh9gblc9r20gvm1qw5vm4l58b";
+      name = "akregator-20.12.3.tar.xz";
     };
   };
   analitza = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/analitza-20.12.2.tar.xz";
-      sha256 = "09qpqjyps9h8wc8dvbnj8iz2xc4naxjdicqxsbfwfly5wbf8xq6x";
-      name = "analitza-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/analitza-20.12.3.tar.xz";
+      sha256 = "187mnzdclqmn6d7yxxvy7xhcaasmgjz6mgk43dxn7rpn20lbx800";
+      name = "analitza-20.12.3.tar.xz";
     };
   };
   ark = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ark-20.12.2.tar.xz";
-      sha256 = "1p8ylvk4g1x2mmfdprz911iivcvr4mciam427b6ygdrhqc7rbbqb";
-      name = "ark-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ark-20.12.3.tar.xz";
+      sha256 = "0fsv808a554cpka4pvhk829kldm2asnk8dyvr1wiidgpjpjxzwp4";
+      name = "ark-20.12.3.tar.xz";
     };
   };
   artikulate = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/artikulate-20.12.2.tar.xz";
-      sha256 = "0s6vjhipb4i6bv9ff7nzm9gza8jghih9kf7f7ynq10109fk8gy6i";
-      name = "artikulate-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/artikulate-20.12.3.tar.xz";
+      sha256 = "1gnnfa0mwafh5msfy41n8fib1mfp713hdyfcqsmfpb04p5251grm";
+      name = "artikulate-20.12.3.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/audiocd-kio-20.12.2.tar.xz";
-      sha256 = "0kd7yxl571pwrijwn78pigdclwqpmd50b5cj4lna481q78f91zsa";
-      name = "audiocd-kio-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/audiocd-kio-20.12.3.tar.xz";
+      sha256 = "06jg3q73hnr7wswqhffj5mncnpvrlmhh4c4k5302jp0c61i5pbv0";
+      name = "audiocd-kio-20.12.3.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/baloo-widgets-20.12.2.tar.xz";
-      sha256 = "0w9jrx2mz1kyn2az6jx4kympl6zd950waz4zj97cjrcq2dg5a85g";
-      name = "baloo-widgets-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/baloo-widgets-20.12.3.tar.xz";
+      sha256 = "0cznzgzn8x9kgn9pjq3fybici88y4al18n0c5vv1h31vz59fqfqi";
+      name = "baloo-widgets-20.12.3.tar.xz";
     };
   };
   blinken = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/blinken-20.12.2.tar.xz";
-      sha256 = "0a0nkmbx1bkqjs7cf5qqm877wqvzdx9cxm9395jfxcycn5pyfps9";
-      name = "blinken-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/blinken-20.12.3.tar.xz";
+      sha256 = "0vfvlrdan60dx1prd1m4vhakvz5ddi70gzagfjb5c0py9802qqgl";
+      name = "blinken-20.12.3.tar.xz";
     };
   };
   bomber = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/bomber-20.12.2.tar.xz";
-      sha256 = "08lyj6rn9jhhwzpwh2c14v8jiwishi1wk19nm5wazy2iajbd88jv";
-      name = "bomber-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/bomber-20.12.3.tar.xz";
+      sha256 = "03d08j8wh989fsxb632fpbjg3zwqyv70jd8msjy4ajxl4039q9sp";
+      name = "bomber-20.12.3.tar.xz";
     };
   };
   bovo = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/bovo-20.12.2.tar.xz";
-      sha256 = "05xx11rqqsxm084hfxnx1wzmr2wdpny3w608h8g5vby2jgdj47b7";
-      name = "bovo-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/bovo-20.12.3.tar.xz";
+      sha256 = "114rq2a7jr9f9957zfn2fgiylf4ymgx5534i8qw7h78gxnb5915v";
+      name = "bovo-20.12.3.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/calendarsupport-20.12.2.tar.xz";
-      sha256 = "0gz3p4az49430zwgmlqjcfzjlgnaf7cl1x0qaaxyl8il14ambrbd";
-      name = "calendarsupport-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/calendarsupport-20.12.3.tar.xz";
+      sha256 = "044d9aarq5agh42h88l5bjc6nfsrb5797zlq0wfyx6laxnw8yhdb";
+      name = "calendarsupport-20.12.3.tar.xz";
     };
   };
   cantor = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/cantor-20.12.2.tar.xz";
-      sha256 = "1w513a06xshdw4fcn6wmliygpjsyvqcbmfjg2bdibpsnznmk4y4p";
-      name = "cantor-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/cantor-20.12.3.tar.xz";
+      sha256 = "0f6ad4mzn54bjc1q9yxana6j5hfdgr2d7gra27x5jfcn079qjijb";
+      name = "cantor-20.12.3.tar.xz";
     };
   };
   cervisia = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/cervisia-20.12.2.tar.xz";
-      sha256 = "08m962r6wkvih1yfj22z3nyfx6r3ac9pcc7i7dxxdkfcxhqpprhb";
-      name = "cervisia-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/cervisia-20.12.3.tar.xz";
+      sha256 = "0802rws42a1ipw2m5r9k7plr7yhyicws8ryx75vivn41v4qanq15";
+      name = "cervisia-20.12.3.tar.xz";
     };
   };
   dolphin = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-20.12.2.tar.xz";
-      sha256 = "19mss2vs074xv5qc644y87f8v99mdndhhd7hclqgq6gckxcjzy2r";
-      name = "dolphin-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/dolphin-20.12.3.tar.xz";
+      sha256 = "1wx1z2bfcd8irhfbh2j4bhdl72afjwfbrh1ps8xzah14vqjvi54p";
+      name = "dolphin-20.12.3.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/dolphin-plugins-20.12.2.tar.xz";
-      sha256 = "0zjy429cqb6nspmiharvszjhpn662y23s9wbdqs04h2p6pi8raxn";
-      name = "dolphin-plugins-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/dolphin-plugins-20.12.3.tar.xz";
+      sha256 = "102ykanh4a0pdm0j6wns5jaq76f71y96dgymm2mbgwrfrydcmcpw";
+      name = "dolphin-plugins-20.12.3.tar.xz";
     };
   };
   dragon = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/dragon-20.12.2.tar.xz";
-      sha256 = "0yssqbfgm92bls5cfy0xcqnqfqx00ns2i6rlwdlx38kfh0r47cag";
-      name = "dragon-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/dragon-20.12.3.tar.xz";
+      sha256 = "0aipkxyks1b7jdbxcb6i7l2kb6gahla07h4mls8fsmal4ha808ga";
+      name = "dragon-20.12.3.tar.xz";
     };
   };
   elisa = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/elisa-20.12.2.tar.xz";
-      sha256 = "1sl55kynkwxaypdm6zjdk85yxxq9754xm6ybxm7qdafq691g9zjr";
-      name = "elisa-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/elisa-20.12.3.tar.xz";
+      sha256 = "0rcqwx68hb8cipbd9nd3sl922i63qaaphf6fnryhg7rinh2x75vs";
+      name = "elisa-20.12.3.tar.xz";
     };
   };
   eventviews = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/eventviews-20.12.2.tar.xz";
-      sha256 = "1g4aqhh2b5s45m0qqp46wazcc7rzcp3mmds4q9x3isckqpijzp39";
-      name = "eventviews-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/eventviews-20.12.3.tar.xz";
+      sha256 = "0pkfhvrf423irvijqjk7a2px23zi053c57lqkp3cjag9z994wqkv";
+      name = "eventviews-20.12.3.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ffmpegthumbs-20.12.2.tar.xz";
-      sha256 = "0iw1g7x31jkbmniawvjwy8wk573rv05idk08q1vavxa5vixxqsbg";
-      name = "ffmpegthumbs-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ffmpegthumbs-20.12.3.tar.xz";
+      sha256 = "1cwn3rjqghbd2ivb268g68zibqyvvn1a07hcwa8bfjxw8y5cx890";
+      name = "ffmpegthumbs-20.12.3.tar.xz";
     };
   };
   filelight = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/filelight-20.12.2.tar.xz";
-      sha256 = "0m38il0rz7zip9rxing4j5fppwyrjgv1d7n3vrp3x4wnmd08j46q";
-      name = "filelight-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/filelight-20.12.3.tar.xz";
+      sha256 = "0njapqiv2201bk57wl96ky8n78a31234vf2srcjs0nrdmbcp0si0";
+      name = "filelight-20.12.3.tar.xz";
     };
   };
   granatier = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/granatier-20.12.2.tar.xz";
-      sha256 = "0gssfcqq1czh5l1dwi5lpj0f9bgv2jf0wma9i5j0aqrf9b086g7f";
-      name = "granatier-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/granatier-20.12.3.tar.xz";
+      sha256 = "1x2l9f9xwrqf06r2qcrlf8941k6kfqb69442cy1ss9jfl9axy3vl";
+      name = "granatier-20.12.3.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/grantlee-editor-20.12.2.tar.xz";
-      sha256 = "0fbb9zia4kjc7rw4s27vsy6isvkx56k50gn6y1cyfl0gqy70v4cw";
-      name = "grantlee-editor-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/grantlee-editor-20.12.3.tar.xz";
+      sha256 = "1n6qi2pvhrhnzpq45757s75rslpzjgl60x7g5fv9cpfjk5knqzkc";
+      name = "grantlee-editor-20.12.3.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/grantleetheme-20.12.2.tar.xz";
-      sha256 = "1cv23ias36mp4zm84fk21f3f7nx3jz7xpiyz0nvz6xcsiww77762";
-      name = "grantleetheme-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/grantleetheme-20.12.3.tar.xz";
+      sha256 = "0z9s5bmy89k3gzczim2prvb5mnylzin93d4h4nz6j7p5sk8aqgg3";
+      name = "grantleetheme-20.12.3.tar.xz";
     };
   };
   gwenview = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/gwenview-20.12.2.tar.xz";
-      sha256 = "0cr6jjnvin8jv6hnajxg6zlph5syg2zjrcwd784dlzv23hna9v5n";
-      name = "gwenview-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/gwenview-20.12.3.tar.xz";
+      sha256 = "18j13db432hhgz3kdrfcs555wy1fyjap8jha0aaw4w08bx8ll8v8";
+      name = "gwenview-20.12.3.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/incidenceeditor-20.12.2.tar.xz";
-      sha256 = "1q48ydma2rcpn3dnf9p08mqfs481n5fhc9m5wl2cvm6as54sfmp8";
-      name = "incidenceeditor-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/incidenceeditor-20.12.3.tar.xz";
+      sha256 = "04yf0z6wsmb7zibfvv0pgyjzfacqa3drqqbc35d0hnvjzh39q1a4";
+      name = "incidenceeditor-20.12.3.tar.xz";
     };
   };
   itinerary = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/itinerary-20.12.2.tar.xz";
-      sha256 = "1dkgsiqww9z6k0xbvn15w630jdhmxr1kkz5dcv1n9yl7bgj32s35";
-      name = "itinerary-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/itinerary-20.12.3.tar.xz";
+      sha256 = "0jpk9f11r563inbm7yrx0lwpb937b1ilgshc9i50fhaqqgii39rp";
+      name = "itinerary-20.12.3.tar.xz";
     };
   };
   juk = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/juk-20.12.2.tar.xz";
-      sha256 = "1dc6n07hkd8as2q1i2l3jzqcijw3qd4ihx1205nzn7z256bby58n";
-      name = "juk-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/juk-20.12.3.tar.xz";
+      sha256 = "01sz8qnp71z34yyvgwhami5rybnlqy3r81ki21r45lvmlbd2i9l7";
+      name = "juk-20.12.3.tar.xz";
     };
   };
   k3b = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/k3b-20.12.2.tar.xz";
-      sha256 = "0gqg8r2p6nksbdg4c8wqz57dj8d1cw7cmrgzc1l2pin4v3qdx94g";
-      name = "k3b-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/k3b-20.12.3.tar.xz";
+      sha256 = "132v5jcn7dmrbb69sllyv72d2d7vg9bpnpjzfmvirqa80x0x7s48";
+      name = "k3b-20.12.3.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-integration-20.12.2.tar.xz";
-      sha256 = "15py7fp6sajvx0c7zi7zhfx16sqn8kkkvglkvcq0b9kglswpvkfj";
-      name = "kaccounts-integration-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kaccounts-integration-20.12.3.tar.xz";
+      sha256 = "0md6jwi0295n2s8mkvc793a4sxfzf6fidwpnjal2dsxkzdr0nfcq";
+      name = "kaccounts-integration-20.12.3.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kaccounts-providers-20.12.2.tar.xz";
-      sha256 = "0205l3k3nzx6cnar90zrbgmabapyry4a991lqflkpxgdrkh0ajc0";
-      name = "kaccounts-providers-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kaccounts-providers-20.12.3.tar.xz";
+      sha256 = "05q6wzdbr1vm8g8qjssk0hnzrqkpq5qrrjwgqj8nkqgipzgclwdf";
+      name = "kaccounts-providers-20.12.3.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kaddressbook-20.12.2.tar.xz";
-      sha256 = "0xqsl7fav1vqq4iqy2m02s92rnr28pi1ak3sv0ra7q1gb89rhi0y";
-      name = "kaddressbook-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kaddressbook-20.12.3.tar.xz";
+      sha256 = "15fpcxlnf42wc2z942rrgydb21v30ml3633cvsscrbjc3vys9vc3";
+      name = "kaddressbook-20.12.3.tar.xz";
     };
   };
   kajongg = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kajongg-20.12.2.tar.xz";
-      sha256 = "0vh6qb3d54nnxrxacq9fn7jq1hshhhnvw9ff0wgh214jlr0gnbqk";
-      name = "kajongg-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kajongg-20.12.3.tar.xz";
+      sha256 = "0h3kdvrp6y6ydhbmvwc8h1l0zh16jy519k5ragwkd9039cvyryxi";
+      name = "kajongg-20.12.3.tar.xz";
     };
   };
   kalarm = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kalarm-20.12.2.tar.xz";
-      sha256 = "1lpg1viwn868hw0dd8zs11iafkhzlr3cydfplnh4ss6visga50kb";
-      name = "kalarm-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kalarm-20.12.3.tar.xz";
+      sha256 = "0pkr9vm5hvdwyqb2mpi1qq5cxv0fd8czlq2hq8kb4ghskwd2nm6z";
+      name = "kalarm-20.12.3.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kalarmcal-20.12.2.tar.xz";
-      sha256 = "17lll9671318dxhxpnjaih31xz5b971gw6kmrgz2ljq5nz1l027b";
-      name = "kalarmcal-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kalarmcal-20.12.3.tar.xz";
+      sha256 = "184qdpwwqnwlny0iil2vrw6x1al575mm6fx9iqbpg6hwz131nzhg";
+      name = "kalarmcal-20.12.3.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kalgebra-20.12.2.tar.xz";
-      sha256 = "0dwvm4b0wpkd3i79q3xs2v3majwa56hgq8r4vv071a8ci8fn27bz";
-      name = "kalgebra-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kalgebra-20.12.3.tar.xz";
+      sha256 = "0bx7v28qgpyjxka3kxjas6n1r5rq88vq064qscgjrn25536bg6p9";
+      name = "kalgebra-20.12.3.tar.xz";
     };
   };
   kalzium = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kalzium-20.12.2.tar.xz";
-      sha256 = "0jdg0akxmylbvh80cz31cycrdqvyafsv9j7hfpdhrizdy7vvqywg";
-      name = "kalzium-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kalzium-20.12.3.tar.xz";
+      sha256 = "1r7zvknc8kkx5kcs111ij6k6byj93xbg47bpi8wfh17i2fdrccw2";
+      name = "kalzium-20.12.3.tar.xz";
     };
   };
   kamera = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kamera-20.12.2.tar.xz";
-      sha256 = "1licmi05g1qpfh88annqd89av77jsmhxnsidgkvf4ffczwd097l6";
-      name = "kamera-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kamera-20.12.3.tar.xz";
+      sha256 = "0g6i4a975n9sxcjvpihz3wmldivk65i6p175vq2nik46jq6kxnj6";
+      name = "kamera-20.12.3.tar.xz";
     };
   };
   kamoso = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kamoso-20.12.2.tar.xz";
-      sha256 = "0ar19nlw2bxrbn4wky8ky3x5m70rf7fb0fviniblqcrggyymgmb9";
-      name = "kamoso-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kamoso-20.12.3.tar.xz";
+      sha256 = "0zmhfcdihb5gd0gvnx3gmsn85dl4h1a42672592qrv7mv9yfl8x4";
+      name = "kamoso-20.12.3.tar.xz";
     };
   };
   kanagram = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kanagram-20.12.2.tar.xz";
-      sha256 = "00p2mpprbq9zi1zzscb4d0fdj2knnfkjxclf3q982jz4laxyqalf";
-      name = "kanagram-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kanagram-20.12.3.tar.xz";
+      sha256 = "0yzz8apm76vhfgbx72jjfrc8z090xp9l6lr318wla809bvk92kn5";
+      name = "kanagram-20.12.3.tar.xz";
     };
   };
   kapman = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kapman-20.12.2.tar.xz";
-      sha256 = "1fs33p9g52k5nywpih7nns3mh0apfhnn174k9711vwnamr73ph6k";
-      name = "kapman-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kapman-20.12.3.tar.xz";
+      sha256 = "1734r0i37w8cbsmhmv6553l2prcg6l960j2j387x3lm6ynm8szl5";
+      name = "kapman-20.12.3.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kapptemplate-20.12.2.tar.xz";
-      sha256 = "19rnxw0q8w890ns237vpaapipm3zjz7n0rn9yzxa5cqaf30l7jv5";
-      name = "kapptemplate-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kapptemplate-20.12.3.tar.xz";
+      sha256 = "0587cwsjh9776zwb9dlqsn75bin5cv80yyixd9hqx86kqkxabw4c";
+      name = "kapptemplate-20.12.3.tar.xz";
     };
   };
   kate = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kate-20.12.2.tar.xz";
-      sha256 = "1kdznizqh28parijpsi67jmb8mlx4gn7z4szlh5kjd1mv9rikvm7";
-      name = "kate-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kate-20.12.3.tar.xz";
+      sha256 = "1zfl53b3166ijr41bymlv0mvavjxv9sv5cf8xrpihn0rzs52vg41";
+      name = "kate-20.12.3.tar.xz";
     };
   };
   katomic = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/katomic-20.12.2.tar.xz";
-      sha256 = "1sxh6x09is33b3zdgj3d6zn9z19qc25v4hskffmw5xivnwz9vzfl";
-      name = "katomic-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/katomic-20.12.3.tar.xz";
+      sha256 = "1qmby2cp1sz31hraxybcb60a6smaf8ksy3m8nzkk7kpr11mzss0q";
+      name = "katomic-20.12.3.tar.xz";
     };
   };
   kbackup = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kbackup-20.12.2.tar.xz";
-      sha256 = "138x20p27a0yx4n6xamc660nk0zzrap7zhkkwpy9ayh07rgh1222";
-      name = "kbackup-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kbackup-20.12.3.tar.xz";
+      sha256 = "04qj9645r427ki2jbj5ij243y6svw24ilwz5pz2qp0dp95wndfql";
+      name = "kbackup-20.12.3.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kblackbox-20.12.2.tar.xz";
-      sha256 = "1c6by0hi9bzs6j1y0qxrvz6ahdxhzivnw9hg4jndmhgbsqqix4q5";
-      name = "kblackbox-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kblackbox-20.12.3.tar.xz";
+      sha256 = "0z4w3f22d8dmvmv4jmbgk91ga0qbw54xmawkikks5b0xgqkwkls7";
+      name = "kblackbox-20.12.3.tar.xz";
     };
   };
   kblocks = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kblocks-20.12.2.tar.xz";
-      sha256 = "06slcac3hvdmb5lymyqb1z8mn3r756xz2ghwdqz1d2mn3n2jd0bw";
-      name = "kblocks-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kblocks-20.12.3.tar.xz";
+      sha256 = "0rsxyyaz6gs4a8qz5gsl865ky8a25hl282m293zsyd66wsc0f3hv";
+      name = "kblocks-20.12.3.tar.xz";
     };
   };
   kbounce = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kbounce-20.12.2.tar.xz";
-      sha256 = "19xvvxmbwpwkwsm0mxjnh92m352lkshsjgi8yrax1hdblymr60v1";
-      name = "kbounce-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kbounce-20.12.3.tar.xz";
+      sha256 = "0yyzr0zmsvfafrvy23vd4grdzpgc1w5ava0fb90x174mv0k2v55s";
+      name = "kbounce-20.12.3.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kbreakout-20.12.2.tar.xz";
-      sha256 = "1n1vrj08j1drc1apikhgwdbmb5daypgnkw6yxhqc3xi2a3wglkqz";
-      name = "kbreakout-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kbreakout-20.12.3.tar.xz";
+      sha256 = "1djiixrwda25p2d8bvhkwn07v2gib35kwm94i1j5yxn0v68m86q1";
+      name = "kbreakout-20.12.3.tar.xz";
     };
   };
   kbruch = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kbruch-20.12.2.tar.xz";
-      sha256 = "0hjwmzsdlpg8przlmpp0xsa19v7376bpjk5kwyajywhayzzw99xp";
-      name = "kbruch-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kbruch-20.12.3.tar.xz";
+      sha256 = "1g2ihgxx6fj98cibfla9rig1mpgivs0l0ipkg5v8ax9wy7cmrx82";
+      name = "kbruch-20.12.3.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcachegrind-20.12.2.tar.xz";
-      sha256 = "0ich4hxfmq909zkn06p8pgxpf7sg9ndq51b533h2clbq3m9qwy2w";
-      name = "kcachegrind-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcachegrind-20.12.3.tar.xz";
+      sha256 = "1sk9bxz6lx3kadfv862d52pm69fcvg160y84y3qj59b9ms2qpqcm";
+      name = "kcachegrind-20.12.3.tar.xz";
     };
   };
   kcalc = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcalc-20.12.2.tar.xz";
-      sha256 = "0dv8519wnlfdp2d2ml2r5qx3gjh8g6im742vqqk7m1660ijgc8zx";
-      name = "kcalc-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcalc-20.12.3.tar.xz";
+      sha256 = "1plq0xfaq2wwhsqddiq5wssn3k3i9dxrr5p80zanzngqcwbql1jl";
+      name = "kcalc-20.12.3.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcalutils-20.12.2.tar.xz";
-      sha256 = "1k4cr1iq945zs6c35f3s1w8kfm3kh7aybmk5py3lsz0zmlab36hc";
-      name = "kcalutils-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcalutils-20.12.3.tar.xz";
+      sha256 = "0as3900mcsdngrszd19928dfacm3qa7y1y2v65vf9mn0alz367qx";
+      name = "kcalutils-20.12.3.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcharselect-20.12.2.tar.xz";
-      sha256 = "0fqf6bw98l499a144xk7hslxm6zdlpa0lcq0bgwnfsd0fs03wlp3";
-      name = "kcharselect-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcharselect-20.12.3.tar.xz";
+      sha256 = "1qz96clyh7wl7sb3hkpkij96a0s9zx9saxhvbwrkqjqdhnqai8c3";
+      name = "kcharselect-20.12.3.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcolorchooser-20.12.2.tar.xz";
-      sha256 = "08y4qzr43nikgzli14yzj7w8vqzl905f0rwx0ri5247259jna3rk";
-      name = "kcolorchooser-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcolorchooser-20.12.3.tar.xz";
+      sha256 = "0aamaml734mcbja9j4m9grp0zsxvy8ivzia49l2pmq27ci23ygad";
+      name = "kcolorchooser-20.12.3.tar.xz";
     };
   };
   kcron = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kcron-20.12.2.tar.xz";
-      sha256 = "025a647zl125568l8vqnljir110jbnkxd4921a892ip7pnhp0v95";
-      name = "kcron-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kcron-20.12.3.tar.xz";
+      sha256 = "0jn5mymzbifblg1sl4h9micql8baxmbpjclmlxp9r59m3vlpd0pf";
+      name = "kcron-20.12.3.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdebugsettings-20.12.2.tar.xz";
-      sha256 = "1dzdvscklgbcfjalcc1mfh3vgiai2dvbsz00b4c96r8jxpm7bvcn";
-      name = "kdebugsettings-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdebugsettings-20.12.3.tar.xz";
+      sha256 = "1nsinb3psnvab0gc88hl374fr8f3iwxzi5ly9fg41f0z5a4hp9qv";
+      name = "kdebugsettings-20.12.3.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdeconnect-kde-20.12.2.tar.xz";
-      sha256 = "0wcx1bn121b62pwdkf7k24sa03kgixvrbp5y5iy11im7kj5i3ji1";
-      name = "kdeconnect-kde-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdeconnect-kde-20.12.3.tar.xz";
+      sha256 = "1a08js0nrjzkfs46wydyz2ipivvgyc0hyyz4cxglhs5i97gab601";
+      name = "kdeconnect-kde-20.12.3.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-scripts-20.12.2.tar.xz";
-      sha256 = "03kqd01yhii2b6g4gsjg09vwmzv53vr5d7y3d4db13kgg0f1z352";
-      name = "kde-dev-scripts-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kde-dev-scripts-20.12.3.tar.xz";
+      sha256 = "1qng0232gzfzqlx5ri7lkkhri6wj9gci14xc62qqhklkmfdfx3nh";
+      name = "kde-dev-scripts-20.12.3.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kde-dev-utils-20.12.2.tar.xz";
-      sha256 = "105pp4yhgynn3gq0bi7q1vyy1qn8pcd0hgx17v674hf8afy4627r";
-      name = "kde-dev-utils-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kde-dev-utils-20.12.3.tar.xz";
+      sha256 = "09k9c0dk6gq3372zarmq7kfid7kn2s1vfdcrzal6wg57axfqs8d7";
+      name = "kde-dev-utils-20.12.3.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdeedu-data-20.12.2.tar.xz";
-      sha256 = "04x8papz62m5kanrqpjddzijda761i4j8y4cmqpnxkg2jrwfqqls";
-      name = "kdeedu-data-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdeedu-data-20.12.3.tar.xz";
+      sha256 = "0cg62yvv39zgshqmfwl5p007b4za6x1nimfmn0hk8j9paas4ykkr";
+      name = "kdeedu-data-20.12.3.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-mobipocket-20.12.2.tar.xz";
-      sha256 = "02a4ivpvfziaa464l8c9ivydagcb912ld95isgvc5jl4g85lm166";
-      name = "kdegraphics-mobipocket-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdegraphics-mobipocket-20.12.3.tar.xz";
+      sha256 = "1zbizlk84idqxk0mr6zi86f3z4wrcc0k75s2s0xwfavjp5wvjj4l";
+      name = "kdegraphics-mobipocket-20.12.3.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdegraphics-thumbnailers-20.12.2.tar.xz";
-      sha256 = "1p47fvb6mdk23rx9jhm9x60sny9z6plgdjih5lzy9k3hvl0sl8zk";
-      name = "kdegraphics-thumbnailers-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdegraphics-thumbnailers-20.12.3.tar.xz";
+      sha256 = "0g3z6jai2v7pin23vk8xh66r9y8bw2768aykqhh5s507q0k8cnfx";
+      name = "kdegraphics-thumbnailers-20.12.3.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdenetwork-filesharing-20.12.2.tar.xz";
-      sha256 = "0y60az09hkhd1hvwa7h7c834dc0mfnd89f78v8m31il8g2xniziz";
-      name = "kdenetwork-filesharing-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdenetwork-filesharing-20.12.3.tar.xz";
+      sha256 = "1lg3431wgrswam1mgck1p2kfgrwk0pk02nzh7xxgvh78104npbb2";
+      name = "kdenetwork-filesharing-20.12.3.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdenlive-20.12.2.tar.xz";
-      sha256 = "0gh1cjhakdl7hx236rsxiv62mafd2vvvpg5ndwlp0zfpsx7kzjrz";
-      name = "kdenlive-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdenlive-20.12.3.tar.xz";
+      sha256 = "11l5m19vbkjgvxcxh64ccwk33ws5sjpxr68d8459piggkdlr97wd";
+      name = "kdenlive-20.12.3.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-addons-20.12.2.tar.xz";
-      sha256 = "0zj22ggn98sqz3nnvzffhbv2cq672j885f2p8qla6swhyw91cq8n";
-      name = "kdepim-addons-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdepim-addons-20.12.3.tar.xz";
+      sha256 = "0wd64aby2yrg937m9sfyzby3gxhwp2n1h6ijxxz7h2wi5mw3aqdp";
+      name = "kdepim-addons-20.12.3.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdepim-runtime-20.12.2.tar.xz";
-      sha256 = "0p5c4l4xixcvpzx7mri2jxa3nwk4824lp5sy93sspf2nlgdv3zsn";
-      name = "kdepim-runtime-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdepim-runtime-20.12.3.tar.xz";
+      sha256 = "0lp3cvkbfqd0zn7gh0as1ksknzqwxpz70zbks70wzdf4i59k2sxv";
+      name = "kdepim-runtime-20.12.3.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-kioslaves-20.12.2.tar.xz";
-      sha256 = "1xgp3fi6nnygjw2p832ylmhsj70dm33c4rf3h79sc2dp7aihnapy";
-      name = "kdesdk-kioslaves-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdesdk-kioslaves-20.12.3.tar.xz";
+      sha256 = "0x48xzqg85rc639rrd7y43y1bvzyw189vydra13wbg063acx79n8";
+      name = "kdesdk-kioslaves-20.12.3.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdesdk-thumbnailers-20.12.2.tar.xz";
-      sha256 = "0jk2x2b8qwhfbf9hy8j0yslggn3zwp18q21ip299b4cpx1w72bgq";
-      name = "kdesdk-thumbnailers-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdesdk-thumbnailers-20.12.3.tar.xz";
+      sha256 = "1n49psav0528dzg7b8h79pwngzjh1if7n47y7y8f5dj3smnyi6mv";
+      name = "kdesdk-thumbnailers-20.12.3.tar.xz";
     };
   };
   kdf = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdf-20.12.2.tar.xz";
-      sha256 = "0fx9b5njsmvzznrgz2r9xz8yh977v865zvsih60hdrz6gaflg1rx";
-      name = "kdf-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdf-20.12.3.tar.xz";
+      sha256 = "1qvjkfnagcyplkpx5v7vwfhs0xjll7g5jc0fvmkxqf38v2m5wb77";
+      name = "kdf-20.12.3.tar.xz";
     };
   };
   kdialog = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdialog-20.12.2.tar.xz";
-      sha256 = "1v2yflxpqg2h2jgxql1mnk8c1v1n4ljard5bgh1dw898r7b8g2xd";
-      name = "kdialog-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdialog-20.12.3.tar.xz";
+      sha256 = "1ph26rks7yfjr28gvgyq77d8mnxxj0dxldd83lw94plhwlsnf7r3";
+      name = "kdialog-20.12.3.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kdiamond-20.12.2.tar.xz";
-      sha256 = "17z1g2jxz26pqx5xjc5h7w5s2xy72p00ydnfhsv1bi1kfd79ry8k";
-      name = "kdiamond-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kdiamond-20.12.3.tar.xz";
+      sha256 = "1wljkv0hacahc6n1x40diycvd32qlw363yzf3qm2l3h55g1ynca7";
+      name = "kdiamond-20.12.3.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/keditbookmarks-20.12.2.tar.xz";
-      sha256 = "0slma1vrm0cmr2v970ingbckqa3viw6jgfss0z7fpx4bilw65bd7";
-      name = "keditbookmarks-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/keditbookmarks-20.12.3.tar.xz";
+      sha256 = "0nfpdm672vs5h5ivxj6aaicj1b8nqcp7gw81jvjnq3nqk1k488v8";
+      name = "keditbookmarks-20.12.3.tar.xz";
     };
   };
   kfind = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kfind-20.12.2.tar.xz";
-      sha256 = "0vfi5ipwncq7d4z1gbilw6kyyrn5d986wr3f2zhsyhpwmsh9ycnb";
-      name = "kfind-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kfind-20.12.3.tar.xz";
+      sha256 = "0rzilsw9y8cd4vmksl3jpddc0qc3y60yz7f6yk11n0hpszy0ixp6";
+      name = "kfind-20.12.3.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kfloppy-20.12.2.tar.xz";
-      sha256 = "1sz6bgw54w8s4bdyyajy0zgxw5kcm45p0gizf7ghw33x5vxryg4g";
-      name = "kfloppy-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kfloppy-20.12.3.tar.xz";
+      sha256 = "00ff15fcgp1bgl4qin6md18p93wbpg3p230kgjk76qp8rmnwamg8";
+      name = "kfloppy-20.12.3.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kfourinline-20.12.2.tar.xz";
-      sha256 = "1ld2srgmriab70j08nvqbaswjp2miljwd8rbpy2dyvzfprmci3xk";
-      name = "kfourinline-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kfourinline-20.12.3.tar.xz";
+      sha256 = "0rj1b60g7dng8yqw92lv9kk8fbnc7wwc9gbikkkjsrmw20hsl4jj";
+      name = "kfourinline-20.12.3.tar.xz";
     };
   };
   kgeography = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kgeography-20.12.2.tar.xz";
-      sha256 = "0v1355y3fwzq63hq0wz9rskzncnlfdybmqcx23pk57jazsmv6ndi";
-      name = "kgeography-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kgeography-20.12.3.tar.xz";
+      sha256 = "0i9sg203rbkcjl5si8fprmz31m90i5gq7ckv6vrsnmf3y0f6324m";
+      name = "kgeography-20.12.3.tar.xz";
     };
   };
   kget = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kget-20.12.2.tar.xz";
-      sha256 = "1xya4raai9jqqzb3kga3mrm7jznkaa0fr4sq8j28qd45bgx2385p";
-      name = "kget-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kget-20.12.3.tar.xz";
+      sha256 = "0kh2yv3fq6mdfqfiqiqd01l8rmr36pmcmjdqqaagsb16jprxivnl";
+      name = "kget-20.12.3.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kgoldrunner-20.12.2.tar.xz";
-      sha256 = "1ai5hfhwlsiw6ywpmwg9q85hsn3ih44v7n3wj70fsrldh87cn9ps";
-      name = "kgoldrunner-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kgoldrunner-20.12.3.tar.xz";
+      sha256 = "01c2ia8hs8i92ayah3jlsrqb62mcfa0phmm8rjbpnv8ybkjba720";
+      name = "kgoldrunner-20.12.3.tar.xz";
     };
   };
   kgpg = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kgpg-20.12.2.tar.xz";
-      sha256 = "1szg6fmmnxi94s5r2gxn4mlsiqahharyh05bisy5w7cl9w9c70xg";
-      name = "kgpg-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kgpg-20.12.3.tar.xz";
+      sha256 = "0z4xlgdhdagniabbzsvrpgzm2k3vwmk6li2wp9y719yj1jm23iyz";
+      name = "kgpg-20.12.3.tar.xz";
     };
   };
   khangman = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/khangman-20.12.2.tar.xz";
-      sha256 = "1bhcdr2v6zgawn819vbqnvgrm52xymgjyr396qbx5mc0srz88bzk";
-      name = "khangman-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/khangman-20.12.3.tar.xz";
+      sha256 = "0alk18a95m5cl3zxf4y69i6vs1v027s5zwkbgrczznnxx2isv82r";
+      name = "khangman-20.12.3.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/khelpcenter-20.12.2.tar.xz";
-      sha256 = "1mxs0imw64av8dybh91xxy4mmdcikjkqv6apsw29pp3s29irxpdx";
-      name = "khelpcenter-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/khelpcenter-20.12.3.tar.xz";
+      sha256 = "0mixgxi4a56x1xgan4rz3f6bifm21rwnm193klsd15bkd29yfa8f";
+      name = "khelpcenter-20.12.3.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kidentitymanagement-20.12.2.tar.xz";
-      sha256 = "1vcpfcriinx0ywz3jz26810h2cqmlfvyyxd0mzh3jp7rl0kkasgj";
-      name = "kidentitymanagement-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kidentitymanagement-20.12.3.tar.xz";
+      sha256 = "161dj154r43gmw7768llanvmismf5fa141xblji6q40ss5aknsh3";
+      name = "kidentitymanagement-20.12.3.tar.xz";
     };
   };
   kig = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kig-20.12.2.tar.xz";
-      sha256 = "08wvgykrhzf2j4qb0fz4irbyaxjp5ka7jmmjn8y27srz0x4zgkrz";
-      name = "kig-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kig-20.12.3.tar.xz";
+      sha256 = "1ncy071wlyinkzhalnhg23x6n01031m2sx5kzh8gllp023mn2cnf";
+      name = "kig-20.12.3.tar.xz";
     };
   };
   kigo = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kigo-20.12.2.tar.xz";
-      sha256 = "1a4hv5g2wdpvf56zrr0rna6hdvm2cy6sz1jlhj7hf1lcx3lgfj9g";
-      name = "kigo-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kigo-20.12.3.tar.xz";
+      sha256 = "1s4ykxlr47gk6n44fnv390m619i0jnxbxs4vd3vv7f9hfl65k598";
+      name = "kigo-20.12.3.tar.xz";
     };
   };
   killbots = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/killbots-20.12.2.tar.xz";
-      sha256 = "01lmkflndqmrzyrabmh5jqrk2zywcn5s82aag3m0wdqbyrqc5pas";
-      name = "killbots-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/killbots-20.12.3.tar.xz";
+      sha256 = "056slp4d9gk40i75gk42cvaq300zr228srqly2gap4879vqs04pa";
+      name = "killbots-20.12.3.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kimagemapeditor-20.12.2.tar.xz";
-      sha256 = "06awvhcjg8nd0wjcqqzccnlpci6cd35flvfs3k05czk70sgqzysq";
-      name = "kimagemapeditor-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kimagemapeditor-20.12.3.tar.xz";
+      sha256 = "15z2mygfhk4bq212f76x60zzia1339hw1jg5vf24q2xs26gppprr";
+      name = "kimagemapeditor-20.12.3.tar.xz";
     };
   };
   kimap = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kimap-20.12.2.tar.xz";
-      sha256 = "14kjgn6b1qnfr3zsr3r73wf15n47qqx9vw5z11yv161andrr105d";
-      name = "kimap-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kimap-20.12.3.tar.xz";
+      sha256 = "080k4zyl7rlgzyfz6hsygv4wpw1hf08qnv4sbakpy3j8h6cbn79j";
+      name = "kimap-20.12.3.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kio-extras-20.12.2.tar.xz";
-      sha256 = "1r2sw8i7lf0zyb5bvz4002vdi2bf9jv01735caiw9smxr1lgcz93";
-      name = "kio-extras-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kio-extras-20.12.3.tar.xz";
+      sha256 = "1qj1cxzlpwh47vx7n3lm86556a53i6x3nvj5xc51mkh8pkdr0nxs";
+      name = "kio-extras-20.12.3.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kio-gdrive-20.12.2.tar.xz";
-      sha256 = "0rwwakhsn9bnmxxnr0620jyp00x7iqqsaz5nd2lmhyjkc4mqv2km";
-      name = "kio-gdrive-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kio-gdrive-20.12.3.tar.xz";
+      sha256 = "0w3vizdrjrikpgq137l5g0anvk0nb5wkr4m7pn0qma0sd03wqsa5";
+      name = "kio-gdrive-20.12.3.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kipi-plugins-20.12.2.tar.xz";
-      sha256 = "120yi7kfqv74368c78s4gfg7fp2h32v1c3jic2lnsy5y3iad22l8";
-      name = "kipi-plugins-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kipi-plugins-20.12.3.tar.xz";
+      sha256 = "0wf0f6n1kpbcrlrfnmhkvcva4n86nav3lwfka29xwmk0brq35ghn";
+      name = "kipi-plugins-20.12.3.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kirigami-gallery-20.12.2.tar.xz";
-      sha256 = "039ddgrvw1l4jvc3yjs0c6fi8kss5ma8hs6cbs8xvw0cyi9604qw";
-      name = "kirigami-gallery-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kirigami-gallery-20.12.3.tar.xz";
+      sha256 = "0925n23wa69v69f0i3fafkaqsvn3sv41ili7c62110zx5n92qd3v";
+      name = "kirigami-gallery-20.12.3.tar.xz";
     };
   };
   kiriki = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kiriki-20.12.2.tar.xz";
-      sha256 = "0bslysqnnxkjfyxv8vkfmvwjhlw2zdlghbngg21k1ljvgr2jfx6j";
-      name = "kiriki-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kiriki-20.12.3.tar.xz";
+      sha256 = "0xnwdvnblz8qpgngjmmn218nrjxhy6f6z6ispszirr39mxvqgdhd";
+      name = "kiriki-20.12.3.tar.xz";
     };
   };
   kiten = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kiten-20.12.2.tar.xz";
-      sha256 = "18p4g9cqn25s2zjygwvi9s81ma0b8rhfj9z0i2kd415b2sxalk3y";
-      name = "kiten-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kiten-20.12.3.tar.xz";
+      sha256 = "0yjfdbrm5kijf5rh45ih8x3hxcj9y9d5bivpi2xqdnl8w6dq0hnq";
+      name = "kiten-20.12.3.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kitinerary-20.12.2.tar.xz";
-      sha256 = "0z9jyj9wlda44qdncjnp6cyp7dwk89dl9nj68j5birmn83ykaawp";
-      name = "kitinerary-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kitinerary-20.12.3.tar.xz";
+      sha256 = "1p8s27clnvn87kmlvv00j9s50n82awb19cvh4kwm7h77f3aai7jm";
+      name = "kitinerary-20.12.3.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kjumpingcube-20.12.2.tar.xz";
-      sha256 = "04qry2b82yk2k4v1pj8pvqi27my42k5ssmc5rpzkh0vq8pzwgkjh";
-      name = "kjumpingcube-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kjumpingcube-20.12.3.tar.xz";
+      sha256 = "0rr0972scdr0x5ba3gqdprhg0ipm75577bx79m1jhkbqrcsr9kvg";
+      name = "kjumpingcube-20.12.3.tar.xz";
     };
   };
   kldap = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kldap-20.12.2.tar.xz";
-      sha256 = "1njgsxbqgz0grqagf695qv285x8slgnp4rg377jz1cnz597nzl6b";
-      name = "kldap-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kldap-20.12.3.tar.xz";
+      sha256 = "0lynv6101wqyi88rm34kwl4a4rdb59q69x918y4ggc4jzvgvq32c";
+      name = "kldap-20.12.3.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kleopatra-20.12.2.tar.xz";
-      sha256 = "12ayl3gar9bi06v418sflr6fr5k86m8x2ls4laig1ymansbvnwlz";
-      name = "kleopatra-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kleopatra-20.12.3.tar.xz";
+      sha256 = "187agxw1s441qpskv8s74nvmsqmgh5z3mid85i8lvm5bqsdzjc5z";
+      name = "kleopatra-20.12.3.tar.xz";
     };
   };
   klettres = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/klettres-20.12.2.tar.xz";
-      sha256 = "0ixykb36a7hgz89zxc8x7fp0di67vmalvpa9rivdff3lp7il87n3";
-      name = "klettres-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/klettres-20.12.3.tar.xz";
+      sha256 = "1zfbcciki2gz14b0mq7nv7pq90n2kf6dn33nkrwy086rmfm245dw";
+      name = "klettres-20.12.3.tar.xz";
     };
   };
   klickety = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/klickety-20.12.2.tar.xz";
-      sha256 = "0dgv6bnz7aw95nxjqkhcanl06hpdx4g8qwkrvnfsiphjbldhfig7";
-      name = "klickety-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/klickety-20.12.3.tar.xz";
+      sha256 = "155qhsgslx9nw4fzm5x5c09i3vwkqbl5xxa1arcxjpwsashfri2q";
+      name = "klickety-20.12.3.tar.xz";
     };
   };
   klines = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/klines-20.12.2.tar.xz";
-      sha256 = "14mrqfw7y5xcq237a6prfqy8pj34iz5mnfqs373p0jbvdqkc5843";
-      name = "klines-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/klines-20.12.3.tar.xz";
+      sha256 = "06syv5wxf2d9wqh5l7lwwjd0i3q8jqhimgb2ndyv2sp3p6zyx28n";
+      name = "klines-20.12.3.tar.xz";
     };
   };
   kmag = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmag-20.12.2.tar.xz";
-      sha256 = "1vwn5n3c8kq3d3d7sssqpq8iz9g0af4xnvcvjqh4s7fcxmsr3ryv";
-      name = "kmag-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmag-20.12.3.tar.xz";
+      sha256 = "1p31i6hnhmmmx97bi1zb6c71zi1428gzf11sx66yhvfpj6vjx4rj";
+      name = "kmag-20.12.3.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmahjongg-20.12.2.tar.xz";
-      sha256 = "055nihkvfij6a71qn6lw3sbb74zz5r7cp2dghlkai9405ri4gdyc";
-      name = "kmahjongg-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmahjongg-20.12.3.tar.xz";
+      sha256 = "1kx6l03x68cvr78iqjc7byraw714pbynavzm4vr8spadqr1scmj2";
+      name = "kmahjongg-20.12.3.tar.xz";
     };
   };
   kmail = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmail-20.12.2.tar.xz";
-      sha256 = "09idfdh04687jzh125jw2244ymaqhx6j3563m2cbf2spph0r1vqj";
-      name = "kmail-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmail-20.12.3.tar.xz";
+      sha256 = "192wqkvq062xaq42bwl9f1rn7bc60slb3c0ika3mn446mr04s7j1";
+      name = "kmail-20.12.3.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmail-account-wizard-20.12.2.tar.xz";
-      sha256 = "0a9pz1m3jabi21nrlcj0fqrj1hsgmarw91sxx5qvs74fp2b59368";
-      name = "kmail-account-wizard-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmail-account-wizard-20.12.3.tar.xz";
+      sha256 = "1djc4fl5nyvnz26kbpqav5qy6azcrl0vmfaphmh4msx01823w50n";
+      name = "kmail-account-wizard-20.12.3.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmailtransport-20.12.2.tar.xz";
-      sha256 = "11knn52fc5r637s1w3fzbkapjx6xs1n9v9933ji17zhry7c5rlzv";
-      name = "kmailtransport-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmailtransport-20.12.3.tar.xz";
+      sha256 = "1m2r30rlmfb41m6hqmbrrw6lf7im4xlsxpfqf2h8qiss9avxf66p";
+      name = "kmailtransport-20.12.3.tar.xz";
     };
   };
   kmbox = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmbox-20.12.2.tar.xz";
-      sha256 = "0r76s03g4da2sds6y632gvg228gwsl7gs8ml9rf0fdjb8ymql1hl";
-      name = "kmbox-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmbox-20.12.3.tar.xz";
+      sha256 = "0cwhzppckk3lv5p8nwba1vw57hkpbpgk69wnax6ad5x6nkynri8f";
+      name = "kmbox-20.12.3.tar.xz";
     };
   };
   kmime = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmime-20.12.2.tar.xz";
-      sha256 = "1jpfhsac2pji80cad0yab59lq7q7c1han0gajvwys1j15jyj11gi";
-      name = "kmime-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmime-20.12.3.tar.xz";
+      sha256 = "0va7xxr9bk27nalpr1959g7kbsbn4q974qhsnfvyac7qv0wnh7iq";
+      name = "kmime-20.12.3.tar.xz";
     };
   };
   kmines = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmines-20.12.2.tar.xz";
-      sha256 = "0378cd1zh6w8slap4wry8m69l27nvi7j2dwz2vwkl76zh31q4pwi";
-      name = "kmines-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmines-20.12.3.tar.xz";
+      sha256 = "11g98f8q77a1zivpv46bahqzkxna15mxm9abc5nmbhhrfl3n2ljr";
+      name = "kmines-20.12.3.tar.xz";
     };
   };
   kmix = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmix-20.12.2.tar.xz";
-      sha256 = "12kij1y2lbyx71bg32pwb9s9p928pyw44flz9bv2jrzkkf4zwfxk";
-      name = "kmix-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmix-20.12.3.tar.xz";
+      sha256 = "05za6km6lgkc79rk6iksbvfbc62110j6dlvsas2ld67cisar5y38";
+      name = "kmix-20.12.3.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmousetool-20.12.2.tar.xz";
-      sha256 = "0ybrczxsmfrj43nr931ylbdgpqmcfx47ifbv2qjn72i8iggrv0cl";
-      name = "kmousetool-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmousetool-20.12.3.tar.xz";
+      sha256 = "0xsjwjm517j2pqc04fvam181yrhb6qsi4nyxzc9c7xwwqm1pw03a";
+      name = "kmousetool-20.12.3.tar.xz";
     };
   };
   kmouth = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmouth-20.12.2.tar.xz";
-      sha256 = "1vq41r1vhr5iaxlb5dzpq3vwqk1rn1zxw3k4j7g2xq5xxmibj944";
-      name = "kmouth-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmouth-20.12.3.tar.xz";
+      sha256 = "152xgpq8mlwpaq82cff0llwpkw2jylwbpwfbish7glqghryzrgwh";
+      name = "kmouth-20.12.3.tar.xz";
     };
   };
   kmplot = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kmplot-20.12.2.tar.xz";
-      sha256 = "0l6j68zg9xdrgglw7gnji0spjf7pcggym90cccw67jdn2wxc8g6q";
-      name = "kmplot-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kmplot-20.12.3.tar.xz";
+      sha256 = "1b70kfjp83dnslpb9732dsci3yq0iglr6ikbm6lsbf2qbxxshjl3";
+      name = "kmplot-20.12.3.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/knavalbattle-20.12.2.tar.xz";
-      sha256 = "0x47rzs7afqygcy45crc10ix4dsivnpmxis9r0w4lpzbq3qzd585";
-      name = "knavalbattle-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/knavalbattle-20.12.3.tar.xz";
+      sha256 = "1a7rja1zb06aa9brjlsd0jx3vxn3gmdq1fg0gzmmfg77mdmb3l6g";
+      name = "knavalbattle-20.12.3.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/knetwalk-20.12.2.tar.xz";
-      sha256 = "11h7b5amm4bcng0h8hfcn1r1nkd82h0rl47wvnqczsgjqp2r9h6a";
-      name = "knetwalk-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/knetwalk-20.12.3.tar.xz";
+      sha256 = "1bnm1lfp0igav57ys5yqim2wky8xpkk52zy50k5l5p32sd7g2x59";
+      name = "knetwalk-20.12.3.tar.xz";
     };
   };
   knights = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/knights-20.12.2.tar.xz";
-      sha256 = "1p5w61x4ldb5sp77l1c0v7aczi62xpvf1084316byhb5cqmxsqm9";
-      name = "knights-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/knights-20.12.3.tar.xz";
+      sha256 = "0z85xw91fqgrhz8kl1gshqy6n4ah14b5z1ajr0m0x817xy2ifys9";
+      name = "knights-20.12.3.tar.xz";
     };
   };
   knotes = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/knotes-20.12.2.tar.xz";
-      sha256 = "11dvczl04lmzlhbmqp508bqrsrqqmmprp3nsvakmmidpgnvcm26l";
-      name = "knotes-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/knotes-20.12.3.tar.xz";
+      sha256 = "1n642jqwlg8nrmlm9xllbcdffwq3gy32pr6fp3k076x28kjg7mh6";
+      name = "knotes-20.12.3.tar.xz";
     };
   };
   kolf = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kolf-20.12.2.tar.xz";
-      sha256 = "1jw22m7a2jdw9zmssiihwm35zpq7bg8zk0a68fh5nxbyv43q8fj5";
-      name = "kolf-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kolf-20.12.3.tar.xz";
+      sha256 = "1xxmw85gxs96djanx5q0vzz0h5ilckyz644vvxqillng6f54skbp";
+      name = "kolf-20.12.3.tar.xz";
     };
   };
   kollision = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kollision-20.12.2.tar.xz";
-      sha256 = "0g0mf9p1pz9wahc92k9iw1vb8v64y1kj7zgiyzmil6qr1pjyzlgm";
-      name = "kollision-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kollision-20.12.3.tar.xz";
+      sha256 = "16bfbhb7dlfkwbald1vsbfffphpvzc3pglcjdc3wval8kqh9f7i0";
+      name = "kollision-20.12.3.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kolourpaint-20.12.2.tar.xz";
-      sha256 = "13pb09r9qrgwaii9x3a6qk3qgk288a821p4xgiwaiv9lcbjz56fn";
-      name = "kolourpaint-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kolourpaint-20.12.3.tar.xz";
+      sha256 = "0gp9pnagajhzy2f4cmvimvwr3sfk87w6zjwi264nk0cgd41pi51g";
+      name = "kolourpaint-20.12.3.tar.xz";
     };
   };
   kompare = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kompare-20.12.2.tar.xz";
-      sha256 = "18n5sw52kwwmbgyb2q5lizpa57by8gmx665bj68wi2hvzdihmxmv";
-      name = "kompare-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kompare-20.12.3.tar.xz";
+      sha256 = "0zzvcxwr2vb48i8dj1r7m9841177zdci762f5ljk5wn8lbgysmvv";
+      name = "kompare-20.12.3.tar.xz";
     };
   };
   konqueror = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/konqueror-20.12.2.tar.xz";
-      sha256 = "0zvr71yz2053y341b12zw92v0yk5whgivcr0iyz488lfw9wq0n4d";
-      name = "konqueror-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/konqueror-20.12.3.tar.xz";
+      sha256 = "1y6jpq1v5yxdhanyll3kgg9m5p0ri66cvsbg3vhiay377s992927";
+      name = "konqueror-20.12.3.tar.xz";
     };
   };
   konquest = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/konquest-20.12.2.tar.xz";
-      sha256 = "0p4y7s37a3vchplpidlv4bc94gwnsm4k7sl4s2ra0prqga83yxbj";
-      name = "konquest-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/konquest-20.12.3.tar.xz";
+      sha256 = "11ygcif5z7nn8x599m4dk0a8kdriiqg177f7v05pf0fhd7x72968";
+      name = "konquest-20.12.3.tar.xz";
     };
   };
   konsole = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/konsole-20.12.2.tar.xz";
-      sha256 = "0wq8xbppg4fla8x669rvkz4mrpbpaplr0ysdvnc4djbwnzabs6zw";
-      name = "konsole-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/konsole-20.12.3.tar.xz";
+      sha256 = "138kvndy7xjjmac2wy2lsqi5pckba6nwbfgsdd91fbmfqkyl5k94";
+      name = "konsole-20.12.3.tar.xz";
     };
   };
   kontact = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kontact-20.12.2.tar.xz";
-      sha256 = "05pvrbsbrz39znim2jrcslnji8n4imig8f717jv89nlmllp5sk2i";
-      name = "kontact-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kontact-20.12.3.tar.xz";
+      sha256 = "0vysa621chslz8l0xhnxs8bymkgjwqg24bhp2kw5lllz4f46iidl";
+      name = "kontact-20.12.3.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kontactinterface-20.12.2.tar.xz";
-      sha256 = "0i3kxim4rc4mvqlq06g0a8h106gb93v4s0kymysd4a4yw3pq4fas";
-      name = "kontactinterface-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kontactinterface-20.12.3.tar.xz";
+      sha256 = "1nqxk2x0bzndfv35g1l8yhafknyb0s68vrmcwf4kd15g5rf3k7rw";
+      name = "kontactinterface-20.12.3.tar.xz";
     };
   };
   kontrast = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kontrast-20.12.2.tar.xz";
-      sha256 = "0cqqclyqm0z59n296jh6pnb2zdzligmvsd2icb1qzxn2r69inipa";
-      name = "kontrast-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kontrast-20.12.3.tar.xz";
+      sha256 = "12q21d6fj29akvy6yk769pfwwhw24y13bhhbwrpnyv2ih96j9s8d";
+      name = "kontrast-20.12.3.tar.xz";
     };
   };
   konversation = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/konversation-20.12.2.tar.xz";
-      sha256 = "0m13qpvzxm5arawsqh2hygs266jv9915lhc3xhs0b1wbhjb3ii8l";
-      name = "konversation-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/konversation-20.12.3.tar.xz";
+      sha256 = "0cwnlihdidr5pxcbz4l68w1q6a9g3y1997gk7xqqnh4kz2fkc37q";
+      name = "konversation-20.12.3.tar.xz";
     };
   };
   kopete = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kopete-20.12.2.tar.xz";
-      sha256 = "0ahcxkvi5ibdl3krm3aw5gamcyfi4s4af2wl6r3sk73l7q4kpxvi";
-      name = "kopete-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kopete-20.12.3.tar.xz";
+      sha256 = "0jl498q59dfwkazf7iqzlvia9jr6hhmkhy0hprbvww4av2si7x6w";
+      name = "kopete-20.12.3.tar.xz";
     };
   };
   korganizer = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/korganizer-20.12.2.tar.xz";
-      sha256 = "1f2j60gdx3hxz64lhx9cyi7sa75s2qr8zghhk8h1wgdwaz9hvjz8";
-      name = "korganizer-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/korganizer-20.12.3.tar.xz";
+      sha256 = "16mz7rmh65xljlf1jq719nkihr23wh840lf5cxzcx3vpk4gcc87w";
+      name = "korganizer-20.12.3.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kosmindoormap-20.12.2.tar.xz";
-      sha256 = "0rr6lgfbjdvnxipx0dnzp4hlrvq61ha015mz7qkly88ckwp6m05q";
-      name = "kosmindoormap-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kosmindoormap-20.12.3.tar.xz";
+      sha256 = "02dgnwand9sbas4v4c12xn8szgc3a7crmh8dd4q7rpcrzm2x1m9k";
+      name = "kosmindoormap-20.12.3.tar.xz";
     };
   };
   kpat = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kpat-20.12.2.tar.xz";
-      sha256 = "1gcv343aabwcgx3kb9khkvilnxipq200pz14d8qdj41lsa71cynx";
-      name = "kpat-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kpat-20.12.3.tar.xz";
+      sha256 = "1v1lzvl0xb5h4vma78ln400a81wilx16m987aijxg4c8gq4h5n11";
+      name = "kpat-20.12.3.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kpimtextedit-20.12.2.tar.xz";
-      sha256 = "1ccvzwbxbsbb4b5hfjvf30fv44b1byjzb08x4vagbrqb47ck763y";
-      name = "kpimtextedit-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kpimtextedit-20.12.3.tar.xz";
+      sha256 = "07lkc5zgsgvjz9544ckp17sii5bm06fynb0s046rks6z8fcncxrk";
+      name = "kpimtextedit-20.12.3.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kpkpass-20.12.2.tar.xz";
-      sha256 = "1m0cqlrpjmfam0lyjjzpd8wgsv9v0x6fr76qr5ndyrfbfcv0qin3";
-      name = "kpkpass-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kpkpass-20.12.3.tar.xz";
+      sha256 = "0lcgalcyfd5ggznwifwvvybj6z080gx12y4gx4mdh7jjjx0j4ng9";
+      name = "kpkpass-20.12.3.tar.xz";
     };
   };
   kpmcore = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kpmcore-20.12.2.tar.xz";
-      sha256 = "1z8fln51jsgar69m2x8rb95zxbq6r28cycpa7y52gaiywahbsin4";
-      name = "kpmcore-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kpmcore-20.12.3.tar.xz";
+      sha256 = "02jaz24wvw4jqi0k41067wwwy5yi6z80a1ah36ypxawzah9y94ik";
+      name = "kpmcore-20.12.3.tar.xz";
     };
   };
   kpublictransport = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kpublictransport-20.12.2.tar.xz";
-      sha256 = "1n7gy9pnykxd39ralfxrrvbsgxn68f1jzvbmkyvj759xrl2na1kq";
-      name = "kpublictransport-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kpublictransport-20.12.3.tar.xz";
+      sha256 = "15y6h44wdl78rfs40b71ijmvs2qb2ylnq72r8v6rn3fdnfhx2l4r";
+      name = "kpublictransport-20.12.3.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kqtquickcharts-20.12.2.tar.xz";
-      sha256 = "06lrvckmddyxl11kyic99dhfn8il88hs1vsnr89y3m8543ij885n";
-      name = "kqtquickcharts-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kqtquickcharts-20.12.3.tar.xz";
+      sha256 = "1icc28acp7n8f5hiiq9rvmyv21f1ayghcr8d97lwm29aagsblx5j";
+      name = "kqtquickcharts-20.12.3.tar.xz";
     };
   };
   krdc = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/krdc-20.12.2.tar.xz";
-      sha256 = "0wzv25pdalwgcb74dav4jkxpvak0nix46njn04w2vhy3rdlgplzr";
-      name = "krdc-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/krdc-20.12.3.tar.xz";
+      sha256 = "0s7wp11zcgp5z1drywm636wx5lkbalym4xxpmrb28xbdcgy9wgi2";
+      name = "krdc-20.12.3.tar.xz";
     };
   };
   kreversi = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kreversi-20.12.2.tar.xz";
-      sha256 = "1c0xisbbq6p6ghl5rvhiddpgsa91m4bq8hmrpdw8s02j4g8aix39";
-      name = "kreversi-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kreversi-20.12.3.tar.xz";
+      sha256 = "0v6nhrzxd7pwc7wyj1wv7spbc437vb14pwdd731w8s02223kkkzf";
+      name = "kreversi-20.12.3.tar.xz";
     };
   };
   krfb = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/krfb-20.12.2.tar.xz";
-      sha256 = "0js84sc9s8h7b1zkdg2k83qhh2q3dz5yfk17am480b3889pyjyd8";
-      name = "krfb-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/krfb-20.12.3.tar.xz";
+      sha256 = "0675smz307zwb4sdnhdlcgi7v38pxj0frr4c3cbhcpcmkjnbayc4";
+      name = "krfb-20.12.3.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kross-interpreters-20.12.2.tar.xz";
-      sha256 = "04g8fqcr88k7b8sivkqasj8d5fywhmm69g4spv1rpm4m89gr70jn";
-      name = "kross-interpreters-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kross-interpreters-20.12.3.tar.xz";
+      sha256 = "1rq3gl0mndx3qhd0zk532z4m95zb4gwgahx208n6l5xh4rwgn7ck";
+      name = "kross-interpreters-20.12.3.tar.xz";
     };
   };
   kruler = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kruler-20.12.2.tar.xz";
-      sha256 = "0xayhfav4723m5z5bgv4zxa95zvsfgvfh0wf80y8c7wwfgsyn9ja";
-      name = "kruler-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kruler-20.12.3.tar.xz";
+      sha256 = "1nvghf3gdn06nkk070zfbjmmh4z1anxxj15mwmdk3xriiwwm4w9z";
+      name = "kruler-20.12.3.tar.xz";
     };
   };
   kshisen = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kshisen-20.12.2.tar.xz";
-      sha256 = "079sr9k8zg01imy2c54wx371fcxlzsm122ng0zl4cn69dndczjkf";
-      name = "kshisen-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kshisen-20.12.3.tar.xz";
+      sha256 = "19grx2zs26il2jplff4nb5sakvbkgsf9a91269gfjzsxzijf166q";
+      name = "kshisen-20.12.3.tar.xz";
     };
   };
   ksirk = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksirk-20.12.2.tar.xz";
-      sha256 = "10ksb77ljwfm25m8jrxh4cbss0lrjdmiigjbmyppxcls1rz8a6cn";
-      name = "ksirk-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksirk-20.12.3.tar.xz";
+      sha256 = "1rq4r5d1mhdkpfxv71s6pyaac8yaf03z4ayfhjh1azf3zvv9i8a5";
+      name = "ksirk-20.12.3.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksmtp-20.12.2.tar.xz";
-      sha256 = "0rcs5zcrj8sscr0h0vx4ndbj3ziyxns5glk5bzpj1092b11pwllw";
-      name = "ksmtp-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksmtp-20.12.3.tar.xz";
+      sha256 = "0qmriih43q1lp4bq68hzlnwzab0vcjyjddyhs44gv9r83icw6rw6";
+      name = "ksmtp-20.12.3.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksnakeduel-20.12.2.tar.xz";
-      sha256 = "1cd1nldrmhimc1f059hqjkb8g8yjri7gf9cyxz7j0p48dxg93ns4";
-      name = "ksnakeduel-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksnakeduel-20.12.3.tar.xz";
+      sha256 = "132pdhfi9jy55y0ys785pz5xjw9f6fxx061ppvfy11giz9cbphsc";
+      name = "ksnakeduel-20.12.3.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kspaceduel-20.12.2.tar.xz";
-      sha256 = "0mz3s5q8fyl76ck8b9s65w2q90a5cz2p4clnbxam8f72fk2g0g1v";
-      name = "kspaceduel-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kspaceduel-20.12.3.tar.xz";
+      sha256 = "0ff1dpj01szzgg6yb774lzpimlf7japkv4ns0xb3a6vp5ghfayxw";
+      name = "kspaceduel-20.12.3.tar.xz";
     };
   };
   ksquares = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksquares-20.12.2.tar.xz";
-      sha256 = "11mfyyjrdlh8dzpzwvyr48rfg758hr14sb0cw1zvd7d7cz86dr31";
-      name = "ksquares-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksquares-20.12.3.tar.xz";
+      sha256 = "0qp2j4abjjvazcqv9zyclvb425587dcwrsnlfrv7ami64ndr7xkb";
+      name = "ksquares-20.12.3.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksudoku-20.12.2.tar.xz";
-      sha256 = "01i4niy1nlikbw1j7qlwldcaniwb1pl4hr4p6icgsvfzr8pjl09z";
-      name = "ksudoku-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksudoku-20.12.3.tar.xz";
+      sha256 = "0ykippr4d9s7mkmnqpbb3wa2l9cbhrmhvqaargm0553iqnwh6w4r";
+      name = "ksudoku-20.12.3.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ksystemlog-20.12.2.tar.xz";
-      sha256 = "1fyrpkk5ipp5q8sairmyx9bayndbbr9srrwdhp7grhbiw8kbjlc7";
-      name = "ksystemlog-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ksystemlog-20.12.3.tar.xz";
+      sha256 = "1szh1iqriynpsbcrilia46vpsj52ifk8q0paib79byf9wals4gqy";
+      name = "ksystemlog-20.12.3.tar.xz";
     };
   };
   kteatime = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kteatime-20.12.2.tar.xz";
-      sha256 = "18rpnvagrcmd62qss31rkv81kkjcz9kcisj9q0j41p770jvan8id";
-      name = "kteatime-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kteatime-20.12.3.tar.xz";
+      sha256 = "1y9cc8xjfn3pqmqh34lrnq2slj8y09k3njwkxkxzk20ni676j5ph";
+      name = "kteatime-20.12.3.tar.xz";
     };
   };
   ktimer = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktimer-20.12.2.tar.xz";
-      sha256 = "17sw7wl9844sg180h0x2skaj4bnkv6qin6cwklsp058wyf06w5wy";
-      name = "ktimer-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktimer-20.12.3.tar.xz";
+      sha256 = "1yypwzrqkl09hbc8d24m51pjz8lzj80xi6f86xb0jazdl7d83flw";
+      name = "ktimer-20.12.3.tar.xz";
     };
   };
   ktnef = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktnef-20.12.2.tar.xz";
-      sha256 = "147dxalzgqfmacr0f44pbxg0ks5p7ck607gkbzf5asxgn4dlvgxq";
-      name = "ktnef-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktnef-20.12.3.tar.xz";
+      sha256 = "0wvqi09kz49m9lbxnk8070ikp4syhrxb90dgyiz1vax12baz7mvq";
+      name = "ktnef-20.12.3.tar.xz";
     };
   };
   ktorrent = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktorrent-20.12.2.tar.xz";
-      sha256 = "1fvbg3700my5algzif4dyy7zsc74qrby7ldfbj7snlxa4scws042";
-      name = "ktorrent-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktorrent-20.12.3.tar.xz";
+      sha256 = "12gj8bmbgvplc6r8ic104q18hq4dwiajhj0dwm1yjwmnslzdplr8";
+      name = "ktorrent-20.12.3.tar.xz";
     };
   };
   ktouch = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktouch-20.12.2.tar.xz";
-      sha256 = "0j3xzm5ghnfvqb98xwrjzkrdm991af8rgnay38s081ykvj2hxj3n";
-      name = "ktouch-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktouch-20.12.3.tar.xz";
+      sha256 = "1yv81mfavbvvlzc41ydfs1yjynza12n1cj8w36dgbgm6dwcldwfw";
+      name = "ktouch-20.12.3.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-accounts-kcm-20.12.2.tar.xz";
-      sha256 = "0dyr3600yrd2hjs2s54210h1kj95w5mz9pl2fpwzcqgkmmd9vss5";
-      name = "ktp-accounts-kcm-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-accounts-kcm-20.12.3.tar.xz";
+      sha256 = "0jj6cspzmbn1fnkq5dfc7vzylbsq8vglcgwx4a2x8j5g7s8vm9y2";
+      name = "ktp-accounts-kcm-20.12.3.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-approver-20.12.2.tar.xz";
-      sha256 = "1h3fi19qqmik6f7h12manb8yval0qqj7jdhrpp07ck67m7mibwzr";
-      name = "ktp-approver-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-approver-20.12.3.tar.xz";
+      sha256 = "1brzpm50d4nqkva34h9va15xm4l7g0hvq1b610qnn9mvhikrzy43";
+      name = "ktp-approver-20.12.3.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-auth-handler-20.12.2.tar.xz";
-      sha256 = "158n88pcxj7hdmsmhcqbfpqc4lhrpzighxgb4wdrzizi9dwpxb3h";
-      name = "ktp-auth-handler-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-auth-handler-20.12.3.tar.xz";
+      sha256 = "1i8jcxl828kany2668aid5vmhrla5rv6frb36xy7wdxv6y2q2gcc";
+      name = "ktp-auth-handler-20.12.3.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-call-ui-20.12.2.tar.xz";
-      sha256 = "0xhf79gqr6b8hiscv6jnmjnl8nb7c6vsvxn7hzvri9nm7hfmldya";
-      name = "ktp-call-ui-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-call-ui-20.12.3.tar.xz";
+      sha256 = "079jlq7zs3zb37bnb48q68rcfjg3b263qplgcpgs1f77k9g449ql";
+      name = "ktp-call-ui-20.12.3.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-common-internals-20.12.2.tar.xz";
-      sha256 = "06m8g80lj2cnx5cnfi6m1fy6pg6rm78kxg7v1493xcsfzizlc276";
-      name = "ktp-common-internals-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-common-internals-20.12.3.tar.xz";
+      sha256 = "0c9hcyfsjhd2ydm5ldgxh9j5wbckavn4nj2n8l4zkyxk7knxf5w4";
+      name = "ktp-common-internals-20.12.3.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-list-20.12.2.tar.xz";
-      sha256 = "037si47l8nc18d7yzh6d7i3gy710y5npxv4wcal6yg8mlr2qzjli";
-      name = "ktp-contact-list-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-contact-list-20.12.3.tar.xz";
+      sha256 = "03gqm2pjf2i6f0gvifd7bqclkfjbpabnlavadxf71qlnf7fki3rf";
+      name = "ktp-contact-list-20.12.3.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-contact-runner-20.12.2.tar.xz";
-      sha256 = "1pv7smf5mld5rgld2nsqjwgl7vwsf99f3z4hamlbq6bpdg02w936";
-      name = "ktp-contact-runner-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-contact-runner-20.12.3.tar.xz";
+      sha256 = "047bzbb02y17yq973bzxf1h1c41f25njrsxc5qa7igvwwcid7hbc";
+      name = "ktp-contact-runner-20.12.3.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-desktop-applets-20.12.2.tar.xz";
-      sha256 = "1mx1q1gk756pkbpwghsvkspj3npgfzp2lf4jqldkyygvyqn3gxx4";
-      name = "ktp-desktop-applets-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-desktop-applets-20.12.3.tar.xz";
+      sha256 = "1m4nizagb7i45ys8k60kw1m5jfflxy1iy3qp1i17d0fy4xk81i6h";
+      name = "ktp-desktop-applets-20.12.3.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-filetransfer-handler-20.12.2.tar.xz";
-      sha256 = "16ys5cyx1pzcv0affy8agp0sbci9rkvpknfffldrvlgqppxza5rd";
-      name = "ktp-filetransfer-handler-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-filetransfer-handler-20.12.3.tar.xz";
+      sha256 = "0wq9n5q8xgv70ikxavmmq7jnj24w9m3k7xaxl8qs7aas14jlcg29";
+      name = "ktp-filetransfer-handler-20.12.3.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-kded-module-20.12.2.tar.xz";
-      sha256 = "1wkvi5l9fvq24c3vdflg0azjxykid61i6mi59cnrnr866a1rbgrg";
-      name = "ktp-kded-module-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-kded-module-20.12.3.tar.xz";
+      sha256 = "0j28hdikn5713ngl3hf1gjr7syzba92irffhfrj6ia582gm7j2nz";
+      name = "ktp-kded-module-20.12.3.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-send-file-20.12.2.tar.xz";
-      sha256 = "0j32c81rabbxh3m0jnnahny01qz2h7yc7l90w39r2jkv9r5f3yvf";
-      name = "ktp-send-file-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-send-file-20.12.3.tar.xz";
+      sha256 = "0lmyxvq49ibbvgg69cy1iayfgd4g777xbqdgzx0jgvvmd6ryrrqq";
+      name = "ktp-send-file-20.12.3.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktp-text-ui-20.12.2.tar.xz";
-      sha256 = "09wkpyadf3dvnrbxrasr66yw4hqnb3kbk6va9bs836fvcaiwagwd";
-      name = "ktp-text-ui-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktp-text-ui-20.12.3.tar.xz";
+      sha256 = "0gqgqjv0wamzcfzicvgc8n3jl4xizpzdjsq92bsbg1yk51ihn6iq";
+      name = "ktp-text-ui-20.12.3.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/ktuberling-20.12.2.tar.xz";
-      sha256 = "0yndqhgw9s2hydfsz2x3lr1m22ii2whc4kcp2jbkj9ssiymp8s68";
-      name = "ktuberling-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/ktuberling-20.12.3.tar.xz";
+      sha256 = "0d4z9kk0vdljaf6damyjxnplmg6s1g6caw1ffd1dnyxhkszlka86";
+      name = "ktuberling-20.12.3.tar.xz";
     };
   };
   kturtle = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kturtle-20.12.2.tar.xz";
-      sha256 = "1a46c6j7jng9l789wdpp7qj639872dfj268hj8nq63n27f82whr0";
-      name = "kturtle-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kturtle-20.12.3.tar.xz";
+      sha256 = "17mqi9kb57bva2rzqnmkiilr114zqqlh5f6sn9c13x7s8npdpgp6";
+      name = "kturtle-20.12.3.tar.xz";
     };
   };
   kubrick = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kubrick-20.12.2.tar.xz";
-      sha256 = "0g3zxdbj5l28msvs8gpn15g739pwwids7wxmky6w3b4qyn427j8m";
-      name = "kubrick-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kubrick-20.12.3.tar.xz";
+      sha256 = "0a581gajl9k3864q3y99kcxqfh8adbwpyrc1rakgzwbwd342wgrj";
+      name = "kubrick-20.12.3.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kwalletmanager-20.12.2.tar.xz";
-      sha256 = "02lx3p7860pigslx6s3bjg54sjjv1q93f9aknv5d32iblv2gaxiw";
-      name = "kwalletmanager-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kwalletmanager-20.12.3.tar.xz";
+      sha256 = "16lx0nblxlzmlydblysrbf92dxf0biqxrzwvy7nhsnkk2yh18m4r";
+      name = "kwalletmanager-20.12.3.tar.xz";
     };
   };
   kwave = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kwave-20.12.2.tar.xz";
-      sha256 = "0nankggamy1jxllnsv642kav57kwkbxpkd2mz6rarjinfnnqi7kd";
-      name = "kwave-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kwave-20.12.3.tar.xz";
+      sha256 = "1bd193wszlzra1xg6ahijmswmpkm8ra05pzbk6zvc67j71kzdmzs";
+      name = "kwave-20.12.3.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/kwordquiz-20.12.2.tar.xz";
-      sha256 = "1iik5khnsarxjipmd8znbiqs20bd65hanhmdmp7awqs7p0k4a0sq";
-      name = "kwordquiz-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/kwordquiz-20.12.3.tar.xz";
+      sha256 = "0vqkj7zmp8v0iydll8gn7ybwha19sxpqd608wj6c7clwcr0y39yp";
+      name = "kwordquiz-20.12.3.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libgravatar-20.12.2.tar.xz";
-      sha256 = "07pnj708wrvfmmy7j2vsx9j1sl9wx3hd7vfnpqa4zd24ci7x7y3d";
-      name = "libgravatar-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libgravatar-20.12.3.tar.xz";
+      sha256 = "130wk6v40rz0rsc1z8yyl5zf4s6rbhlwgqdjijp1k6xnsp7xm8n4";
+      name = "libgravatar-20.12.3.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkcddb-20.12.2.tar.xz";
-      sha256 = "1px7cgc75ypxaqknamqgxps4796388j99ycrbgrlyrhzws1mva8k";
-      name = "libkcddb-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkcddb-20.12.3.tar.xz";
+      sha256 = "0m7fj11lp6i7fal0ckbpshyp5rw1pn3vxirnrg8ydp8ggs22jqi0";
+      name = "libkcddb-20.12.3.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkcompactdisc-20.12.2.tar.xz";
-      sha256 = "0yj2gkl1d76mf2lp02apxh4lmb9rnzvp0c8y0992ssnfsrivalp4";
-      name = "libkcompactdisc-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkcompactdisc-20.12.3.tar.xz";
+      sha256 = "192la7rlknjwlqw69yyqxcg2yar7p8fklykah5i3l5r6rcvx2h1w";
+      name = "libkcompactdisc-20.12.3.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkdcraw-20.12.2.tar.xz";
-      sha256 = "1hgw087frq9yzzwp2mkl3xqz2gd4v82kyiym2316i1xpmbkgcqfm";
-      name = "libkdcraw-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkdcraw-20.12.3.tar.xz";
+      sha256 = "1vwdr04z31aq37mx83vbgimkrpxq67dmlb68sl1wyivmllp084jg";
+      name = "libkdcraw-20.12.3.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkdegames-20.12.2.tar.xz";
-      sha256 = "0fcl06z5zl1hycj8f8q9dz6fc9lb0dqd5ciha4yig98ybzi3zn8r";
-      name = "libkdegames-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkdegames-20.12.3.tar.xz";
+      sha256 = "1l8nwbjkgsnqxqjc94wqq6phyxdj9n8y075bzv45xagf82b926s0";
+      name = "libkdegames-20.12.3.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkdepim-20.12.2.tar.xz";
-      sha256 = "0f9c96w7ijlvfg9dr0w9wwaf05fn0z32zx8nn8jp42pzcbn6yr56";
-      name = "libkdepim-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkdepim-20.12.3.tar.xz";
+      sha256 = "1armxkai841ki9hgfwb4q53c8rlp55zgz1416dhrr97jrn03ckfa";
+      name = "libkdepim-20.12.3.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkeduvocdocument-20.12.2.tar.xz";
-      sha256 = "0lki60mv82ygss2bxgwg178xabvfn85zlg0pwk2gj30zg0jiaw66";
-      name = "libkeduvocdocument-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkeduvocdocument-20.12.3.tar.xz";
+      sha256 = "1x5w40avw73kjryiss71x10635l012jv5criaqlwyn3jfaf2idg0";
+      name = "libkeduvocdocument-20.12.3.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkexiv2-20.12.2.tar.xz";
-      sha256 = "10j82xk7y7vf9y9ss83hc9fd9c1dbd55nwjf28bj7myqaji4wdpb";
-      name = "libkexiv2-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkexiv2-20.12.3.tar.xz";
+      sha256 = "1r11j2j0ymxg4dbhrznyr34cwdqcgh124lk9fmhdpjgq2q276qmp";
+      name = "libkexiv2-20.12.3.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkgapi-20.12.2.tar.xz";
-      sha256 = "1yaas07ixxjnb5a37dq93skqs0vk08rdr9ll30jr7kdll311s5ni";
-      name = "libkgapi-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkgapi-20.12.3.tar.xz";
+      sha256 = "0h9rcn03jgw3rxxm3ylh1ap7ryswzm78hpfi6x9gdsfiqc8q8rpx";
+      name = "libkgapi-20.12.3.tar.xz";
     };
   };
   libkipi = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkipi-20.12.2.tar.xz";
-      sha256 = "1axjvkrmjszxyh0fdm9k25g4gpzmn4hsw222k2qj3smvnhdj37zk";
-      name = "libkipi-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkipi-20.12.3.tar.xz";
+      sha256 = "1a0lpp3qkirsv8r6hpmndkn2f895jad5x7xlnxyf2x1s9qhzyvxv";
+      name = "libkipi-20.12.3.tar.xz";
     };
   };
   libkleo = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkleo-20.12.2.tar.xz";
-      sha256 = "0xsljfiqqggdp31c7irjn6lgacdds5kb7sr3khg24bsgip9488k1";
-      name = "libkleo-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkleo-20.12.3.tar.xz";
+      sha256 = "034m92af08g5769kr9xs91mgkl3ribcafsmm96isjbngj9acqjcr";
+      name = "libkleo-20.12.3.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkmahjongg-20.12.2.tar.xz";
-      sha256 = "1yl2smx0ybr164pl8nv5a7jibq3pmpf0v4ijvardp53j51bs2c2q";
-      name = "libkmahjongg-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkmahjongg-20.12.3.tar.xz";
+      sha256 = "16wb744gbi4rgz9k9zr4dm7ilhjhjyaszawjmm626p4k145rcg4v";
+      name = "libkmahjongg-20.12.3.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libkomparediff2-20.12.2.tar.xz";
-      sha256 = "03fn3l1qhzivck7jzfp7fwpgix701paj03rzvc46rs4f1bfmb1d9";
-      name = "libkomparediff2-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libkomparediff2-20.12.3.tar.xz";
+      sha256 = "0py3k5mn9kf82qcy89r1lkrhn702dgrjbgcd9ddslqfpiw8cb1l3";
+      name = "libkomparediff2-20.12.3.tar.xz";
     };
   };
   libksane = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libksane-20.12.2.tar.xz";
-      sha256 = "1bhwfsyfd2z4hagfggz3ckxbyqrifcbwyn79h59qpng7nkzsgw4b";
-      name = "libksane-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libksane-20.12.3.tar.xz";
+      sha256 = "02sbizfw2a819l5f7di3k7x7cc4n19pipv68dfhsrh1hk6c5iia6";
+      name = "libksane-20.12.3.tar.xz";
     };
   };
   libksieve = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libksieve-20.12.2.tar.xz";
-      sha256 = "0rjchcpc4sx53siv3b9hq6s12qh96rrb4xmnk3gjhsvqq9gmyq3j";
-      name = "libksieve-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libksieve-20.12.3.tar.xz";
+      sha256 = "0j149jszdslnyia09fn6xsbkxa2p0xmxz05pf3byxl9albxq17q0";
+      name = "libksieve-20.12.3.tar.xz";
     };
   };
   libktorrent = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/libktorrent-20.12.2.tar.xz";
-      sha256 = "15ywv00vklvqw7x6id4vycf4rmi4j3s6z70c68h1b6v8n9j3rz3b";
-      name = "libktorrent-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/libktorrent-20.12.3.tar.xz";
+      sha256 = "1ykyfvr7w3h058gls7pnh9qwc6b4v9lp85s10qdbbsaiyly0h7n3";
+      name = "libktorrent-20.12.3.tar.xz";
     };
   };
   lokalize = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/lokalize-20.12.2.tar.xz";
-      sha256 = "1ms7x5aw5z63q2xy6f3x8dl1k39yjqbabzh8qznaqs172bwmwzz7";
-      name = "lokalize-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/lokalize-20.12.3.tar.xz";
+      sha256 = "1a1dzg6qwd3dxcvln7nkpc5r6v6agqnzja6s09w9jb0gflrql372";
+      name = "lokalize-20.12.3.tar.xz";
     };
   };
   lskat = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/lskat-20.12.2.tar.xz";
-      sha256 = "087zrwy5pabyy7zpkplxn9is2msr9kpa8r7bpc6kxylx85sd4nsr";
-      name = "lskat-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/lskat-20.12.3.tar.xz";
+      sha256 = "1fmyskr5i08gfjaghih2gihj6sgm8v5mn0m4wjmr9plg1vi6flcv";
+      name = "lskat-20.12.3.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/mailcommon-20.12.2.tar.xz";
-      sha256 = "0qbbr5m5glcp7rh3aljkrfs27ypdcb5b72q602irivhbgv56c6v5";
-      name = "mailcommon-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/mailcommon-20.12.3.tar.xz";
+      sha256 = "0z0ppv6yi5n54hi6x5s5nagciqpdbxyl0z5sa3whl7d6ikga0s4m";
+      name = "mailcommon-20.12.3.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/mailimporter-20.12.2.tar.xz";
-      sha256 = "16alrfyvgwih9i7fzvmfhbmlsp0l942qml43w2rwkg974g8188yv";
-      name = "mailimporter-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/mailimporter-20.12.3.tar.xz";
+      sha256 = "1lkkvriq69v0lpmk38my8k0vnw2yq182g6139i5r7krcyvrz4ynn";
+      name = "mailimporter-20.12.3.tar.xz";
     };
   };
   marble = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/marble-20.12.2.tar.xz";
-      sha256 = "0kgiwsx58yhng92v5c90bz02vsn70p6y7gf6qr5fvljbldrxq3a2";
-      name = "marble-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/marble-20.12.3.tar.xz";
+      sha256 = "1hkvp97mjg6gqs0b39j2rpgwwi70vzwhm4szmcjc2083vllv3cap";
+      name = "marble-20.12.3.tar.xz";
     };
   };
   markdownpart = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/markdownpart-20.12.2.tar.xz";
-      sha256 = "08fifhw40q2xhi3lp76a3b7jgipq3v1gvp1f5id83jvv9bg5m85k";
-      name = "markdownpart-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/markdownpart-20.12.3.tar.xz";
+      sha256 = "1g3r07fj4azpjbp6p6brcnd5dv7hi34w6z6a8bsg8cckmvhrirbl";
+      name = "markdownpart-20.12.3.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/mbox-importer-20.12.2.tar.xz";
-      sha256 = "1jiapp7pblanra83p720nj1rzqd566ij28za9jrkn3nj3xv2zm62";
-      name = "mbox-importer-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/mbox-importer-20.12.3.tar.xz";
+      sha256 = "0rjk9blsbgjpd6l6ghrlzj04llaibjs8ngcfddxgixg8dxvsp0k9";
+      name = "mbox-importer-20.12.3.tar.xz";
     };
   };
   messagelib = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/messagelib-20.12.2.tar.xz";
-      sha256 = "07mzwsn0bmfsrsn6wlmz7kwrix4d33b007jvx37nckmarr6xcx54";
-      name = "messagelib-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/messagelib-20.12.3.tar.xz";
+      sha256 = "08rcw7y69xkrv0pwfz44hrbzkx9li2nabfjpgc9sc6i8klikgbis";
+      name = "messagelib-20.12.3.tar.xz";
     };
   };
   minuet = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/minuet-20.12.2.tar.xz";
-      sha256 = "00d08qwfa4pvlcysp1af3n91bwb8idkl6gjwxrin3kliwns0ivfj";
-      name = "minuet-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/minuet-20.12.3.tar.xz";
+      sha256 = "0jidbfqsnk3dyd5f459p2jsyxs2jjpx3j356sg6c3hbs4imz5nm6";
+      name = "minuet-20.12.3.tar.xz";
     };
   };
   okular = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/okular-20.12.2.tar.xz";
-      sha256 = "1959flll9rrwsgb3gpifvsciyvl70j46xb0acfx9zrvsddvbpabq";
-      name = "okular-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/okular-20.12.3.tar.xz";
+      sha256 = "1p3kdc0awgpihf10m3fxypq5hqr5vvwbcm8w3h39rk1m5g6hymxf";
+      name = "okular-20.12.3.tar.xz";
     };
   };
   palapeli = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/palapeli-20.12.2.tar.xz";
-      sha256 = "1z80892gp6hg75vl6aicfvf5013412b5xglrpsp86lbx2r7d6ikw";
-      name = "palapeli-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/palapeli-20.12.3.tar.xz";
+      sha256 = "14hqifg18ngqsafp1k78wi2k7jpxglvcjdw55f0fi0iqjnsrk6xa";
+      name = "palapeli-20.12.3.tar.xz";
     };
   };
   parley = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/parley-20.12.2.tar.xz";
-      sha256 = "16lymvvwglzvrfl74p7w9l2vahhrkm58fn6iicn5w1751bavjiq7";
-      name = "parley-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/parley-20.12.3.tar.xz";
+      sha256 = "0j4bbqlh0rix0wkfwp0jsf07akbysxnasbr1f2zwj75487mcwajn";
+      name = "parley-20.12.3.tar.xz";
     };
   };
   partitionmanager = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/partitionmanager-20.12.2.tar.xz";
-      sha256 = "1f0nmz99fhp6c48sg92fwssxdvmwx2bj4l7phb0gqfnfqk4sw1xd";
-      name = "partitionmanager-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/partitionmanager-20.12.3.tar.xz";
+      sha256 = "06kk64gynlxf7njdgaklrx8b4jlbqpk6bbx0nk4lzbyw191dfr0m";
+      name = "partitionmanager-20.12.3.tar.xz";
     };
   };
   picmi = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/picmi-20.12.2.tar.xz";
-      sha256 = "024afpylfb6n6dd0g1iif257a0mgzmmmjl24h2riz4cyfvd26mkc";
-      name = "picmi-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/picmi-20.12.3.tar.xz";
+      sha256 = "1xwkdrs6wmhhz6vrs17d7vj6sdlwl60mh8cb7yxx03pw5g6gkdd2";
+      name = "picmi-20.12.3.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/pimcommon-20.12.2.tar.xz";
-      sha256 = "0fbmahp9m1jzi626rggmp09j3338z8f86hszvwfnk7ydn16hy5rs";
-      name = "pimcommon-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/pimcommon-20.12.3.tar.xz";
+      sha256 = "18gy521g0i806bjjdkszgajac733inrakhkdw1fslhcg2b90m6hb";
+      name = "pimcommon-20.12.3.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/pim-data-exporter-20.12.2.tar.xz";
-      sha256 = "13z8r2rq1453zprvpjnf5y5v3x1828l8gyvbivf0dmfhb3hi1bih";
-      name = "pim-data-exporter-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/pim-data-exporter-20.12.3.tar.xz";
+      sha256 = "17zc56420ndqfk8aw1mn1vwf34icgf03bbvvvg4s3m6cibnj0x4q";
+      name = "pim-data-exporter-20.12.3.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/pim-sieve-editor-20.12.2.tar.xz";
-      sha256 = "11ji1033yq4lwpi2b331i4f5kpak66h6zyviv344wyab05ljkyhd";
-      name = "pim-sieve-editor-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/pim-sieve-editor-20.12.3.tar.xz";
+      sha256 = "1d1z4i3g5n6rfs48phb700a68na75yg7cr4f3q2wzlnyyvpd1m51";
+      name = "pim-sieve-editor-20.12.3.tar.xz";
     };
   };
   poxml = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/poxml-20.12.2.tar.xz";
-      sha256 = "1hnm13x102fq7g4pginhdpq473dw9y52kw497773b72my94yj2zz";
-      name = "poxml-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/poxml-20.12.3.tar.xz";
+      sha256 = "1z7py6qjrx0j0mya5cmxc0gm1fmjwbkrm0g8916vdlyc4m5vpg9l";
+      name = "poxml-20.12.3.tar.xz";
     };
   };
   print-manager = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/print-manager-20.12.2.tar.xz";
-      sha256 = "1r19fsgnqdlmrpgbby13nj4v97nqlxlx8c0f7yv3izgncpavr0id";
-      name = "print-manager-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/print-manager-20.12.3.tar.xz";
+      sha256 = "19kwrl95p56zm5g11sws8h4vdc59w694ghhnmrwpyj2qra350dwa";
+      name = "print-manager-20.12.3.tar.xz";
     };
   };
   rocs = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/rocs-20.12.2.tar.xz";
-      sha256 = "06sy6g32cigls1znvh5wvs7gw9h492d8zjqm6b50wsw0hbx61kvz";
-      name = "rocs-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/rocs-20.12.3.tar.xz";
+      sha256 = "0709qyixnhsrdhkqqkwigmbfnr21rz2yapvmfylmaipdfm0i72wv";
+      name = "rocs-20.12.3.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/signon-kwallet-extension-20.12.2.tar.xz";
-      sha256 = "0ycr0dn8bp51dc510gqxik0rm0wk5728px7cps9csy33izfjpx9p";
-      name = "signon-kwallet-extension-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/signon-kwallet-extension-20.12.3.tar.xz";
+      sha256 = "1a7hvkga6sj3sr4qv75n7p9gq44agncs0c7c9k6wni84h3y0icyp";
+      name = "signon-kwallet-extension-20.12.3.tar.xz";
     };
   };
   spectacle = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/spectacle-20.12.2.tar.xz";
-      sha256 = "0v0vzspr0vwqi7m7yhnhavxzkfqdnz1g06ispfl1lmpjg1xh90by";
-      name = "spectacle-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/spectacle-20.12.3.tar.xz";
+      sha256 = "1h29w4ajmgfksdmxanfmb1gdjk4h7hpc2zwiqf0yrq8vm2hhxqjc";
+      name = "spectacle-20.12.3.tar.xz";
     };
   };
   step = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/step-20.12.2.tar.xz";
-      sha256 = "1drdv95rimdsgarcc00jlfm3jmcan2ln32yq0q2nbbxsj0c502k7";
-      name = "step-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/step-20.12.3.tar.xz";
+      sha256 = "08z2zh8qq46288pddz9p5w10plpd26wgwil92maj6z765dqcxwqn";
+      name = "step-20.12.3.tar.xz";
     };
   };
   svgpart = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/svgpart-20.12.2.tar.xz";
-      sha256 = "1v1qd5sgb89gkvb62jad8ava2y599a4acb6hkqyh758y798ylgwj";
-      name = "svgpart-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/svgpart-20.12.3.tar.xz";
+      sha256 = "1ldkyd7kb8m6zw7siw2rryxzk6v26xc00arwlq1zsy4inbs8idgl";
+      name = "svgpart-20.12.3.tar.xz";
     };
   };
   sweeper = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/sweeper-20.12.2.tar.xz";
-      sha256 = "0yh6dqw37v8l54635k7g27dnsrl319kfxrkiiy09cx6pjzf87k1h";
-      name = "sweeper-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/sweeper-20.12.3.tar.xz";
+      sha256 = "12lp9m4sxblwp16dbb6gi1pf0yvav8gh5as1fpfx9kazava3xkhp";
+      name = "sweeper-20.12.3.tar.xz";
     };
   };
   umbrello = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/umbrello-20.12.2.tar.xz";
-      sha256 = "0zzic469brh0w41w4ni66mfrj0p44xm1h32iwbb7imgnpw6dqksf";
-      name = "umbrello-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/umbrello-20.12.3.tar.xz";
+      sha256 = "0y6kyir86k9cjpmhm4giqfn7g651hfsbl1zq2j2y2nqiisc7vysp";
+      name = "umbrello-20.12.3.tar.xz";
     };
   };
   yakuake = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/yakuake-20.12.2.tar.xz";
-      sha256 = "16irzxl6xfyanr7lrvap0ng911lml10bbjr0axk2a7m0gc1llrn4";
-      name = "yakuake-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/yakuake-20.12.3.tar.xz";
+      sha256 = "1y151cp5ygkxfd9ar4c38h2c1xwpx8mihh5f2sz6gbykzm3impbx";
+      name = "yakuake-20.12.3.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.12.2";
+    version = "20.12.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.12.2/src/zeroconf-ioslave-20.12.2.tar.xz";
-      sha256 = "0yqni8vwwwya3cv006cf5svs1jhn6369clvrl6m79iacy0iirynk";
-      name = "zeroconf-ioslave-20.12.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.12.3/src/zeroconf-ioslave-20.12.3.tar.xz";
+      sha256 = "1zx7xmj7vj9d39cnnsgb15lbkr8yc81mcqilhq3jfhd3zgp8lrlv";
+      name = "zeroconf-ioslave-20.12.3.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/logging/humioctl/default.nix b/pkgs/applications/logging/humioctl/default.nix
index f3aef213ad2..c1aae04b2e5 100644
--- a/pkgs/applications/logging/humioctl/default.nix
+++ b/pkgs/applications/logging/humioctl/default.nix
@@ -1,8 +1,8 @@
 { buildGoModule, fetchFromGitHub, installShellFiles, lib }:
 
 let
-  humioCtlVersion = "0.28.2";
-  sha256 = "sha256-mCYxgBiuKylL2Qx4RCnD4ZoMFUm2J6VIL/Erc0u3BMA=";
+  humioCtlVersion = "0.28.3";
+  sha256 = "sha256-GUn5hg4gPGjQ6U2dboGE22u8XuZ578+EnkmHLASXd3Q=";
   vendorSha256 = "sha256-867x33Aq27D2m14NqqsdByC39pjjyJZbfX3jmwVU2yo=";
 in buildGoModule {
     name = "humioctl-${humioCtlVersion}";
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index 70b3c71c0b3..6af4f67d8c6 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -1,15 +1,31 @@
-{ lib, buildPythonApplication, fetchPypi, appdirs, attrs
-, beautifulsoup4, click-plugins, elasticsearch, flask-compress
-, flask_login, flask_wtf, html2text, python-dotenv, python-frontmatter
-, requests, tinydb, validators, werkzeug, wtforms }:
+{ lib
+, buildPythonApplication
+, fetchPypi
+, appdirs
+, attrs
+, beautifulsoup4
+, click-plugins
+, elasticsearch
+, flask-compress
+, flask_login
+, flask_wtf
+, html2text
+, python-dotenv
+, python-frontmatter
+, requests
+, tinydb
+, validators
+, werkzeug
+, wtforms
+}:
 
 buildPythonApplication rec {
   pname = "archivy";
-  version = "1.1.1";
+  version = "1.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-yUXsTPb5oJYZA9MlHz7eLowRjD/ltq5VLTHeOMqcL/M=";
+    sha256 = "sha256-oSmwQcKvp9RABmc7aq6fdLOZapMauIi6+7azVTXVb30=";
   };
 
   # Relax some dependencies
@@ -22,6 +38,7 @@ buildPythonApplication rec {
       --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \
       --replace 'requests ==' 'requests >=' \
       --replace 'validators ==' 'validators >=' \
+      --replace 'tinydb ==' 'tinydb >='
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/bleachbit/default.nix b/pkgs/applications/misc/bleachbit/default.nix
index 952d1fe16db..4b78cda3564 100644
--- a/pkgs/applications/misc/bleachbit/default.nix
+++ b/pkgs/applications/misc/bleachbit/default.nix
@@ -7,6 +7,7 @@
 , glib
 , gtk3
 , libnotify
+, scandir ? null
 }:
 
 python3Packages.buildPythonApplication rec {
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index 5c6e9a0f9fe..04003f6a9b5 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub
 , meson, ninja, pkg-config, wrapGAppsHook
-, desktop-file-utils, gsettings-desktop-schemas, libnotify
+, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy
 , python3Packages, gettext
 , appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
 , steam-run-native
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "bottles";
-  version = "2.1.1";
+  version = "3.1.6";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
     repo = pname;
     rev = version;
-    sha256 = "1hbjnd06h0h47gcwb1s1b9py5nwmia1m35da6zydbl70vs75imhn";
+    sha256 = "1izks01010akjf83xvi70dr4yzgk6yr84kd0slzz22yq204pdh5m";
   };
 
   postPatch = ''
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
     gsettings-desktop-schemas
     gspell
     gtk3
+    libhandy
     libnotify
   ];
 
@@ -69,9 +70,9 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An easy-to-use wineprefix manager";
-    homepage = "https://github.com/bottlesdevs/Bottles";
+    homepage = "https://usebottles.com/";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ bloomvdomino ];
+    maintainers = with maintainers; [ bloomvdomino shamilton ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/calcurse/default.nix b/pkgs/applications/misc/calcurse/default.nix
index 8a83c593986..837fcc5c27d 100644
--- a/pkgs/applications/misc/calcurse/default.nix
+++ b/pkgs/applications/misc/calcurse/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calcurse";
-  version = "4.7.0";
+  version = "4.7.1";
 
   src = fetchurl {
     url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
-    sha256 = "0dc4bka2l9z03bnlygsnl06l1zi2wbn29rkc02b13x2kdab7arpg";
+    sha256 = "sha256-CnxV0HZ0Vp0WbAsOdYeyly09qBYM231gsdvSiVgDr7A=";
   };
 
   buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index f7e98462041..de90e9d670c 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , mkDerivation
 , fetchurl
 , poppler_utils
@@ -26,11 +25,11 @@
 
 mkDerivation rec {
   pname = "calibre";
-  version = "5.13.0";
+  version = "5.16.1";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-GDFAZxZmkio7e7kVjhYqhNdhXIlUPJF0iMWVl0uWVCM=";
+    hash = "sha256-lTXCW0MGNOezecaGO9c2JGU4ylwpPmBaMXTY3nLNcrE=";
   };
 
   patches = [
@@ -42,18 +41,11 @@ mkDerivation rec {
   ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
   escaped_pyqt5_dir = builtins.replaceStrings ["/"] ["\\/"] (toString python3Packages.pyqt5);
-  platform_tag =
-    if stdenv.hostPlatform.isDarwin then
-      "WS_MACX"
-    else if stdenv.hostPlatform.isWindows then
-      "WS_WIN"
-    else
-      "WS_X11";
 
   prePatch = ''
     sed -i "s/\[tool.sip.project\]/[tool.sip.project]\nsip-include-dirs = [\"${escaped_pyqt5_dir}\/share\/sip\/PyQt5\"]/g" \
       setup/build.py
-    sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${platform_tag}\"]/g" \
+    sed -i "s/\[tool.sip.bindings.pictureflow\]/[tool.sip.bindings.pictureflow]\ntags = [\"${python3Packages.sip_5.platform_tag}\"]/g" \
       setup/build.py
 
     # Remove unneeded files and libs
@@ -62,8 +54,6 @@ mkDerivation rec {
 
   dontUseQmakeConfigure = true;
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ pkg-config qmake removeReferencesTo ];
 
   buildInputs = [
diff --git a/pkgs/applications/misc/cheat/default.nix b/pkgs/applications/misc/cheat/default.nix
index 90eb38329a3..9c8f060f169 100644
--- a/pkgs/applications/misc/cheat/default.nix
+++ b/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "cheat";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "sha256-Q/frWu82gB15LEzwYCbJr7k0yZ+AXBvcPWxoevSpeqU=";
+    sha256 = "sha256-wH0MTTwUmi/QZXo3vWgRYmlPxMxgfhghrTIZAwdVjQ0=";
   };
 
   subPackages = [ "cmd/cheat" ];
diff --git a/pkgs/applications/misc/coolreader/default.nix b/pkgs/applications/misc/coolreader/default.nix
index dc32cbf2c2a..e1cbaf320ea 100644
--- a/pkgs/applications/misc/coolreader/default.nix
+++ b/pkgs/applications/misc/coolreader/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "coolreader";
-  version = "3.2.55";
+  version = "3.2.57";
 
   src = fetchFromGitHub {
     owner = "buggins";
     repo = pname;
     rev = "cr${version}";
-    sha256 = "sha256-gYAaYGEjw7p6y4h5j6j/4Ld+b37Nv+kt04Wp+qb8gzY=";
+    sha256 = "sha256-ZfgaLCLvBU6xP7nx7YJTsJSpvpdQgLpSMWH+BsG8E1g=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 46143747f6d..a33cb7b2ce6 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "cura";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "060fqzspipm93ks0inrj7yrj5wmvkdfv8xaxrv22590yb9f95s9m";
+    sha256 = "1q515qwrzla3ikbsjmk91y0nrbwih11jycgmd50lkrmnkh7qj0r2";
   };
 
   materials = fetchFromGitHub {
@@ -22,7 +22,7 @@ mkDerivation rec {
   buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
   propagatedBuildInputs = with python3.pkgs; [
     libsavitar numpy-stl pyserial requests uranium zeroconf pynest2d
-    sentry-sdk trimesh
+    sentry-sdk trimesh keyring
   ] ++ plugins;
   nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
 
diff --git a/pkgs/applications/misc/cura/plugins.nix b/pkgs/applications/misc/cura/plugins.nix
index 4bf7ba8d852..76a5808963f 100644
--- a/pkgs/applications/misc/cura/plugins.nix
+++ b/pkgs/applications/misc/cura/plugins.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav, jq }:
 
 let
 
@@ -34,18 +34,28 @@ let
 
     rawmouse = stdenv.mkDerivation rec {
       pname = "RawMouse";
-      version = "1.0.13";
+      version = "1.1.0";
 
       src = fetchFromGitHub {
         owner = "smartavionics";
         repo = pname;
         rev = version;
-        sha256 = "1cj40pgsfcwliz47mkiqjbslkwcm34qb1pajc2mcljgflcnickly";
+        sha256 = "0hvi7qwd4xfnqnhbj9dgfjmvv9df7s42asf3fdfxv43n6nx74scw";
       };
 
+      nativeBuildInputs = [ jq ];
+
+      propagatedBuildInputs = with python3Packages; [
+        hidapi
+      ];
+
       buildPhase = ''
-        substituteInPlace RawMouse/config.json --replace \
-          /usr/local/lib/libspnav.so ${libspnav}/lib/libspnav.so
+        jq 'del(.devices) | .libspnav="${libspnav}/lib/libspnav.so"' \
+          <RawMouse/config.json >RawMouse/config.json.new
+        mv RawMouse/config.json.new RawMouse/config.json
+
+        # remove prebuilt binaries
+        rm -r RawMouse/hidapi
       '';
 
       installPhase = ''
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index 4a4558ba289..76947c1ed94 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "083l327ry6hv3yaa1p8dx1hx7fm12b0lh5nlbshxjyym0vi15rw2";
+    sha256 = "0b82hwn7pb73h1azaandq93bkzlzskhgk71pwf4yws0j9bm6z084";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
     homepage = "https://github.com/Ultimaker/CuraEngine";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar gebner ];
   };
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index d482e40328c..3f4e77bdd04 100644
--- a/pkgs/applications/misc/dasel/default.nix
+++ b/pkgs/applications/misc/dasel/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "1.14.0";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g4a001k86myfln0xlzy8w9krwamvfchnvywpr1p3x6iw95z46w8";
+    sha256 = "0nxdyd0zg4w1zr8p9z2x88h36vbn7ryk7160zszdiwh5qmdlv47v";
   };
 
   vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index ad53599855a..fa5240b5333 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , copyDesktopItems
 , fetchFromGitHub
+, fetchpatch
 , makeDesktopItem
 , makeWrapper
 , fontconfig
@@ -18,18 +19,18 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "21.0.2"; # When updating also update fetchedMavenDeps.sha256
+  version = "21.0.3"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "sha256-3EMSiEq1wdg4dxBU90RVVv0Hrf5dXPc1MPI0+WMk48k=";
+    sha256 = "sha256-ItM8t+gqE0ccuuimfEMUddykl+xt2eZIBd3MbpreRwA=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
     name = "dbeaver-${version}-maven-deps";
-    inherit src;
+    inherit src patches;
 
     buildInputs = [
       maven
@@ -50,9 +51,18 @@ stdenv.mkDerivation rec {
     dontFixup = true;
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-xKlFFQXd2U513KZKQa7ttSFNX2gxVr9hNsvyaoN/rEE=";
+    outputHash = "sha256-rsK/B39ogNu5nC41OfyAsLiwBz4gWyH+8Fj7E6+rOng=";
   };
 
+  patches = [
+    # Fix eclipse-color-theme URL (https://github.com/dbeaver/dbeaver/pull/12133)
+    # After April 15, 2021 eclipse-color-theme.github.com no longer redirects to eclipse-color-theme.github.io
+    (fetchpatch {
+      url = "https://github.com/dbeaver/dbeaver/commit/65d65e2c2c711cc87fddcec425a6915aa80f4ced.patch";
+      sha256 = "sha256-pxOcRYkV/5o+tHcRhHDZ1TmZSHMnKBmkNTVAlIf9nUE=";
+    })
+  ];
+
   nativeBuildInputs = [
     copyDesktopItems
     makeWrapper
diff --git a/pkgs/applications/misc/dwmblocks/default.nix b/pkgs/applications/misc/dwmblocks/default.nix
new file mode 100644
index 00000000000..45757787c7c
--- /dev/null
+++ b/pkgs/applications/misc/dwmblocks/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, libX11, patches ? [ ], writeText, conf ? null }:
+
+stdenv.mkDerivation {
+  pname = "dwmblocks";
+  version = "unstable-2020-12-27";
+
+  src = fetchFromGitHub {
+    owner = "torrinfail";
+    repo = "dwmblocks";
+    rev = "96cbb453e5373c05372fd4bf3faacfa53e409067";
+    sha256 = "00lxfxsrvhm60zzqlcwdv7xkqzya69mgpi2mr3ivzbc8s9h8nwqx";
+  };
+
+  buildInputs = [ libX11 ];
+
+  inherit patches;
+
+  postPatch =
+    let
+      configFile =
+        if lib.isDerivation conf || builtins.isPath conf
+        then conf else writeText "blocks.def.h" conf;
+    in
+      lib.optionalString (conf != null) "cp ${configFile} blocks.def.h";
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Modular status bar for dwm written in c";
+    homepage = "https://github.com/torrinfail/dwmblocks";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sophrosyne ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 44f35e503ca..676efb2aa04 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -20,7 +20,7 @@
 }:
 
 let
-  version = "4.1.1";
+  version = "4.1.2";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "0yg6ld92a4xgn7y8i51hmr3kmgmrbrjwniikkmyq9q141h2drb80";
+    sha256 = "05m6vbd4sfjk536kwa5wa3kv21jxxqnglx0ddvnmxfhf98371bhk";
   };
 
   postUnpack = ''
@@ -59,6 +59,11 @@ python3.pkgs.buildPythonApplication {
     cp -ar ${tests} $sourceRoot/electrum/tests
   '';
 
+  prePatch = ''
+    substituteInPlace contrib/requirements/requirements.txt \
+      --replace "dnspython>=2.0,<2.1" "dnspython>=2.0"
+  '';
+
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/misc/fme/default.nix b/pkgs/applications/misc/fme/default.nix
index 52ba2927fd4..6f6a143ae8e 100644
--- a/pkgs/applications/misc/fme/default.nix
+++ b/pkgs/applications/misc/fme/default.nix
@@ -1,33 +1,56 @@
-{ lib, stdenv, fetchurl, pkg-config, autoconf, automake, gettext
-, fluxbox, bc, gtkmm2, glibmm, libglademm, libsigcxx }:
+{ lib
+, stdenv
+, fetchurl
+, autoconf
+, automake
+, bc
+, fluxbox
+, gettext
+, glibmm
+, gtkmm2
+, libglademm
+, libsigcxx
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "fme";
   version = "1.1.3";
 
   src = fetchurl {
     url = "https://github.com/rdehouss/fme/archive/v${version}.tar.gz";
-    sha256 = "d1c81a6a38c0faad02943ad65d6d0314bd205c6de841669a2efe43e4c503e63d";
+    hash = "sha256-0cgaajjA+q0ClDrWXW0DFL0gXG3oQWaaLv5D5MUD5j0=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf automake gettext fluxbox bc gtkmm2 glibmm libglademm libsigcxx ];
+  nativeBuildInputs = [
+    autoconf
+    automake
+    gettext
+    pkg-config
+  ];
+  buildInputs = [
+    bc
+    fluxbox
+    glibmm
+    gtkmm2
+    libglademm
+    libsigcxx
+  ];
 
   preConfigure = ''
     ./autogen.sh
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/rdehouss/fme/";
     description = "Editor for Fluxbox menus";
     longDescription = ''
-      Fluxbox Menu Editor is a menu editor for the Window Manager Fluxbox written in C++
-      with the libraries Gtkmm, Glibmm, libglademm and gettext for internationalization.
-      Its user-friendly interface will help you to edit, delete, move (Drag and Drop)
-      a row, a submenu, etc very easily.
+      Fluxbox Menu Editor is a menu editor for the Window Manager Fluxbox
+      written in C++ with the libraries Gtkmm, Glibmm, libglademm and gettext
+      for internationalization.  Its user-friendly interface will help you to
+      edit, delete, move (Drag and Drop) a row, a submenu, etc very easily.
     '';
-    homepage = "https://github.com/rdehouss/fme/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/misc/fuzzel/default.nix b/pkgs/applications/misc/fuzzel/default.nix
index 3dafe8fa671..f03e8569712 100644
--- a/pkgs/applications/misc/fuzzel/default.nix
+++ b/pkgs/applications/misc/fuzzel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fuzzel";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchzip {
     url = "https://codeberg.org/dnkl/fuzzel/archive/${version}.tar.gz";
-    sha256 = "0zy0icd3647jyq4xflp35vwn52yxgj3zz4n30br657xjq1l5afzl";
+    sha256 = "sha256-n2eXS4NdOBgn48KOJ+0sQeNMKL7OxB8tUB99narQG0o=";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
diff --git a/pkgs/applications/misc/gcalcli/default.nix b/pkgs/applications/misc/gcalcli/default.nix
index e19e89ec6c0..392e2c312f7 100644
--- a/pkgs/applications/misc/gcalcli/default.nix
+++ b/pkgs/applications/misc/gcalcli/default.nix
@@ -23,7 +23,7 @@ buildPythonApplication rec {
     dateutil gflags httplib2 parsedatetime six vobject
     google-api-python-client oauth2client uritemplate
     libnotify
-  ] ++ lib.optional (!isPy3k) futures;
+  ];
 
   # There are no tests as of 4.0.0a4
   doCheck = false;
diff --git a/pkgs/applications/misc/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix
index d4f50451719..f2692243db6 100644
--- a/pkgs/applications/misc/get_iplayer/default.nix
+++ b/pkgs/applications/misc/get_iplayer/default.nix
@@ -1,16 +1,16 @@
-{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg_3, makeWrapper, perl, perlPackages, rtmpdump}:
+{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}:
 
 with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "get_iplayer";
-  version = "3.24";
+  version = "3.27";
 
   src = fetchFromGitHub {
     owner = "get-iplayer";
     repo = "get_iplayer";
     rev = "v${version}";
-    sha256 = "0yd84ncb6cjrk4v4kz3zrddkl7iwkm3zlfbjyswd9hanp8fvd4q3";
+    sha256 = "077y31gg020wjpx5pcivqgkqawcjxh5kjnvq97x2gd7i3wwc30qi";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -26,7 +26,7 @@ perlPackages.buildPerlPackage rec {
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     cp get_iplayer $out/bin
-    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg_3 flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
+    wrapProgram $out/bin/get_iplayer --suffix PATH : ${makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB
     cp get_iplayer.1 $out/share/man/man1
   '';
 
diff --git a/pkgs/applications/misc/go-org/default.nix b/pkgs/applications/misc/go-org/default.nix
index cc2225af07c..3e3bc67e897 100644
--- a/pkgs/applications/misc/go-org/default.nix
+++ b/pkgs/applications/misc/go-org/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-org";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "niklasfasching";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nMZzRbu3lxunIlnnmb49Ljt8oSiYpj+8gZ0u/OFRRDM=";
+    sha256 = "sha256-Wp8WEfRcrtn+VdcbehYcOJI5FkPQiyo6nLsTDvR7riE=";
   };
 
   vendorSha256 = "sha256-njx89Ims7GZql8sbVmH/E9gM/ONRWiPRLVs+FzsCSzI=";
diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix
new file mode 100644
index 00000000000..e5192c9a73e
--- /dev/null
+++ b/pkgs/applications/misc/googleearth-pro/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
+, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite
+, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper }:
+
+let
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+    else throw "Unsupported system ${stdenv.hostPlatform.system} ";
+  fullPath = lib.makeLibraryPath [
+    glibc
+    glib
+    stdenv.cc.cc
+    libSM
+    libICE
+    libXi
+    libXv
+    libGLU libGL
+    libXrender
+    libXrandr
+    libXfixes
+    libXcursor
+    libXinerama
+    libXcomposite
+    freetype
+    libXext
+    libX11
+    libxcb
+    sqlite
+    zlib
+    fontconfig
+    libproxy
+    libxml2
+    dbus
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+  ];
+in
+stdenv.mkDerivation rec {
+  pname = "googleearth-pro";
+  version = "7.3.3.7786";
+
+  src = fetchurl {
+    url = "https://dl.google.com/linux/earth/deb/pool/main/g/google-earth-pro-stable/google-earth-pro-stable_${version}-r0_${arch}.deb";
+    sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3";
+  };
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  doInstallCheck = true;
+
+  dontBuild = true;
+
+  dontPatchELF = true;
+
+  unpackPhase = ''
+    # deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+    dpkg --fsys-tarfile ${src} | tar --extract
+  '';
+
+  installPhase =''
+    mkdir $out
+    mv usr/* $out/
+    rmdir usr
+    mv * $out/
+    rm $out/bin/google-earth-pro $out/opt/google/earth/pro/googleearth
+
+    # patch and link googleearth binary
+    ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro
+    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${fullPath}:\$ORIGIN" \
+      $out/opt/google/earth/pro/googleearth-bin
+
+    # patch and link gpsbabel binary
+    ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel
+    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${fullPath}:\$ORIGIN" \
+      $out/opt/google/earth/pro/gpsbabel
+
+    # patch libraries
+    for a in $out/opt/google/earth/pro/*.so* ; do
+      patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
+    done
+
+    # Add desktop config file and icons
+    mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
+    ln -s $out/opt/google/earth/pro/google-earth-pro.desktop $out/share/applications/google-earth-pro.desktop
+    sed -i -e "s|Exec=.*|Exec=$out/bin/googleearth-pro|g" $out/opt/google/earth/pro/google-earth-pro.desktop
+    for size in 16 22 24 32 48 64 128 256; do
+      ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png
+    done
+    ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png
+  '';
+
+  installCheckPhase = ''
+    $out/bin/gpsbabel -V > /dev/null
+  '';
+
+  # wayland is not supported by Qt included in binary package, so make sure it uses xcb
+  fixupPhase = ''
+    wrapProgram $out/bin/googleearth-pro --set QT_QPA_PLATFORM xcb
+  '';
+
+
+  meta = with lib; {
+    description = "A world sphere viewer";
+    homepage = "https://earth.google.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ friedelino ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 5df2940dff3..70645202a46 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "20.2";
+  version = "20.3";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-40GrihCeDAqJCFcg4FMFxCg7bzd6CrDR5JU70e5VHDE=";
+    sha256 = "sha256-hmAksLPQxzB4O+ET+O/pmL/J4FG4+Dt0ulSsgjBWKxw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index c9c815771a8..b99b6460f4f 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "8.9";
+  version = "9.0";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-nl9iu8ezgMZ1wy2swDXYRDLlkSz1II+C65UUWNvGBxg=";
+    sha256 = "sha256-4MzRXpxvJcj5KptTBH6rSr2ZyQ13nV7Yq96ti+CMytw=";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/gxkb/default.nix b/pkgs/applications/misc/gxkb/default.nix
index 8f6284c7d60..ea1f6b9715f 100644
--- a/pkgs/applications/misc/gxkb/default.nix
+++ b/pkgs/applications/misc/gxkb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gxkb";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "zen-tools";
     repo = "gxkb";
     rev = "v${version}";
-    sha256 = "1fmppvpfz8rip71agsc464fdz423qw0xy8i3pcic14cy5gcwh069";
+    sha256 = "sha256-pRVzhNoTMtiwqaxCGVImbvdRmLbZ2bst1IdMA2IKpYc=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/misc/haunt/default.nix b/pkgs/applications/misc/haunt/default.nix
new file mode 100644
index 00000000000..124e441a5af
--- /dev/null
+++ b/pkgs/applications/misc/haunt/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchurl
+, guile
+, guile-commonmark
+, guile-reader
+, makeWrapper
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "haunt";
+  version = "0.2.4";
+
+  src = fetchurl {
+    url = "https://files.dthompson.us/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-zOkICg7KmJJhPWPtJRT3C9sYB1Oig1xLtgPNGe0n3xQ=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    guile-commonmark
+    guile-reader
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/haunt \
+      --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" \
+      --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site"
+  '';
+
+  meta = with lib; {
+    homepage = "https://dthompson.us/projects/haunt.html";
+    description = "Guile-based static site generator";
+    longDescription = ''
+      Haunt is a simple, functional, hackable static site generator that gives
+      authors the ability to treat websites as Scheme programs.
+
+      By giving authors the full expressive power of Scheme, they are able to
+      control every aspect of the site generation process. Haunt provides a
+      simple, functional build system that can be easily extended for this
+      purpose.
+
+      Haunt has no opinion about what markup language authors should use to
+      write posts, though it comes with support for the popular Markdown
+      format. Likewise, Haunt has no opinion about how authors structure their
+      sites. Though it comes with support for building simple blogs or Atom
+      feeds, authors should feel empowered to tweak, replace, or create builders
+      to do things that aren't provided out-of-the-box.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix
index 9d8dc1eaa03..5d9fb0f30d7 100644
--- a/pkgs/applications/misc/heimer/default.nix
+++ b/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-upsOmf46bCO8sVp5dBHPLUBZYZP3JyXa7H5KXbd76qo=";
+    sha256 = "sha256-5cepT9Tfr/3nYbxRAMqKSUDB+suEyojnexWxZ0i7GBw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index bb748a1074c..0f9ca5c4b84 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.82.0";
+  version = "0.82.1";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-D0bwy8LJihlfM+E3oys85yjadjZNfPv5xnq4ekaZPCU=";
+    sha256 = "sha256-6poWFcApwCos3XvS/Wq1VJyf5xTUWtqWNFXIhjNsXVs=";
   };
 
   vendorSha256 = "sha256-pJBm+yyy1DbH28oVBQA+PHSDtSg3RcgbRlurrwnnEls=";
diff --git a/pkgs/applications/misc/hunter/default.nix b/pkgs/applications/misc/hunter/default.nix
new file mode 100644
index 00000000000..6c0c9b2955a
--- /dev/null
+++ b/pkgs/applications/misc/hunter/default.nix
@@ -0,0 +1,77 @@
+{ lib, stdenv, pkg-config, rustPlatform, fetchFromGitHub, fetchpatch
+, makeWrapper, glib, gst_all_1, CoreServices, IOKit, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hunter";
+  version = "2020-05-25-unstable";
+
+  src = fetchFromGitHub {
+    owner = "rabite0";
+    repo = "hunter";
+    rev = "355d9a3101f6d8dc375807de79e368602f1cb87d";
+    sha256 = "sha256-R2wNkG8bFP7X2pdlebHK6GD15qmD/zD3L0MwVthvzzQ=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "remove-dependencies-on-rust-nightly";
+      url = "https://github.com/06kellyjac/hunter/commit/a5943578e1ee679c8bc51b0e686c6dddcf74da2a.diff";
+      sha256 = "sha256-eOwBFfW5m8tPnu+whWY/53X9CaqiVj2WRr25G+Yy7qE=";
+    })
+    (fetchpatch {
+      name = "fix-accessing-core-when-moved-with-another-clone";
+      url = "https://github.com/06kellyjac/hunter/commit/2e95cc567c751263f8c318399f3c5bb01d36962a.diff";
+      sha256 = "sha256-yTzIXUw5qEaR2QZHwydg0abyZVXfK6fhJLVHBI7EAro=";
+    })
+    (fetchpatch {
+      name = "fix-resolve-breaking-changes-from-package-updates";
+      url = "https://github.com/06kellyjac/hunter/commit/2484f0db580bed1972fd5000e1e949a4082d2f01.diff";
+      sha256 = "sha256-K+WUxEr1eE68XejStj/JwQpMHlhkiOw6PmiSr1GO0kc=";
+    })
+  ];
+
+  cargoPatches = [
+    (fetchpatch {
+      name = "chore-cargo-update";
+      url = "https://github.com/06kellyjac/hunter/commit/b0be49a82191a4420b6900737901a71140433efd.diff";
+      sha256 = "sha256-ctxoDwyIJgEhMbMUfrjCTy2SeMUQqMi971szrqEOJeg=";
+    })
+    (fetchpatch {
+      name = "chore-cargo-upgrade-+-cargo-update";
+      url = "https://github.com/06kellyjac/hunter/commit/1b8de9248312878358afaf1dac569ebbccc4321a.diff";
+      sha256 = "sha256-+4DZ8SaKwKNmr2SEgJJ7KZBIctnYFMQFKgG+yCkbUv0=";
+    })
+  ];
+
+  RUSTC_BOOTSTRAP = 1;
+
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+  buildInputs = [
+    glib
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gst-plugins-bad
+  ]) ++ lib.optionals stdenv.isDarwin [ CoreServices IOKit Security ];
+
+  cargoBuildFlags = [ "--no-default-features" "--features=img,video" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/hunter --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+  '';
+
+  cargoSha256 = "sha256-Bd/gilebxC4H+/1A41OSSfWBlHcSczsFcU2b+USnI74=";
+
+  meta = with lib; {
+    description = "The fastest file manager in the galaxy!";
+    homepage = "https://github.com/rabite0/hunter";
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ fufexan ];
+    # error[E0308]: mismatched types
+    # --> src/files.rs:502:62
+    # expected raw pointer `*const u8`, found raw pointer `*const i8`
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/pkgs/applications/misc/jiten/default.nix b/pkgs/applications/misc/jiten/default.nix
new file mode 100644
index 00000000000..5447a2b3050
--- /dev/null
+++ b/pkgs/applications/misc/jiten/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, makeWrapper
+, pcre
+, sqlite
+, nodejs
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "jiten";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "obfusk";
+    repo = "jiten";
+    rev = "v${version}";
+    sha256 = "1lg1n7f4383jdlkbma0q65yl6l159wgh886admcq7l7ap26zpqd2";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pcre sqlite ];
+  propagatedBuildInputs = with python3Packages; [ click flask ];
+  checkInputs = [ nodejs ];
+
+  preBuild = ''
+    export JITEN_VERSION=${version}   # override `git describe`
+    export JITEN_FINAL=yes            # build & package *.sqlite3
+  '';
+
+  postPatch = ''
+    substituteInPlace Makefile                  --replace /bin/bash "$(command -v bash)"
+    substituteInPlace jiten/res/jmdict/Makefile --replace /bin/bash "$(command -v bash)"
+  '';
+
+  checkPhase = "make test";
+
+  postInstall = ''
+    # requires pywebview
+    rm $out/bin/jiten-gui
+  '';
+
+  meta = with lib; {
+    description = "Japanese android/cli/web dictionary based on jmdict/kanjidic";
+    longDescription = ''
+      Jiten is a Japanese dictionary based on JMDict/Kanjidic
+
+      Fine-grained search using regexes (regular expressions)
+      • simple searches don't require knowledge of regexes
+      • quick reference available in the web interface and android app
+
+      JMDict multilingual japanese dictionary
+      • kanji, readings (romaji optional), meanings & more
+      • meanings in english, dutch, german, french and/or spanish
+      • pitch accent (from Wadoku)
+      • browse by frequency/jlpt
+
+      Kanji dictionary
+      • readings (romaji optional), meanings (english), jmdict entries, radicals & more
+      • search using SKIP codes
+      • search by radical
+      • browse by frequency/level/jlpt
+
+      Example sentences (from Tatoeba)
+      • with english, dutch, german, french and/or spanish translation
+      • some with audio
+
+      Stroke order
+      • input a word or sentence and see how it's written
+
+      Web interface
+      • available online at https://jiten.obfusk.dev
+      • light/dark mode
+      • search history (stored locally)
+      • tooltips to quickly see meanings and readings for kanji and words
+      • use long press for tooltips on mobile
+      • converts romaji to hiragana and between hiragana and katakana
+      • can be run on your own computer
+
+      Command-line interface
+    '';
+    homepage = "https://github.com/obfusk/jiten";
+    license = with licenses; [
+      agpl3Plus               # code
+      cc-by-sa-30             # jmdict/kanjidic
+      unfreeRedistributable   # pitch data from wadoku is non-commercial :(
+    ];
+    maintainers = [ maintainers.obfusk ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index f737470d53f..9c559a364ef 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "joplin-desktop";
-  version = "1.7.10";
+  version = "1.7.11";
   name = "${pname}-${version}";
 
   inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "1f8pfssfqigh0fl5r5wpvdpn48dx1q9qq4mfqi2s5z94h7ci2jxg";
-      x86_64-darwin = "0s29mhf88nlhaabmd32k21h1qiavgpqqksbdjxkx8bfg591s8jqb";
+      x86_64-linux = "11vjipvhfvf6wxldcg743anma005j8dbbngqk6sq9hlf677ahxii";
+      x86_64-darwin = "1l7m86jlf1m066n6rwmh5fkpx2pj3wj5h9ncxdd24v0zll6ki8vs";
     }.${system} or throwSystem;
   };
 
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index badda6b17ee..aa1ef4f8eff 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,24 +1,26 @@
-{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
+{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm
+, extraJavaOpts ? "-Djosm.restart=true -Djava.net.useSystemProxies=true"
+}:
 let
   pname = "josm";
-  version = "17702";
+  version = "17833";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "1p7p0jd87sxrs5n0r82apkilx0phgmjw7vpdg8qrr5msda4rsmpk";
+      sha256 = "sha256-i3seRVfCLXNvUkWAAPZK0XloRHuXWCNp1tqnVr7CQ7Y=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java16.zip";
-      sha256 = "0r17cphxm852ykb8mkil29rr7sb0bj5w69qd5wz8zf2f9djk9npk";
+      sha256 = "sha256-PM/wNXqtEwalhorWHqVHWsaiGv60SFrHXZrb1Mw/QqQ=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "1b7dryvakph8znh2ahgywch66l4bl5rmgsr79axnz1xi12g8ac12";
+      sha256 = "sha256-IjCFngixh2+7SifrV3Ohi1BjIOP+QSWg/QjeqbbP7aw=";
     };
   };
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   inherit pname version;
 
   dontUnpack = true;
@@ -36,8 +38,7 @@ stdenv.mkDerivation {
 
       # Add libXxf86vm to path because it is needed by at least Kendzi3D plugin
       makeWrapper ${jre}/bin/java $out/bin/josm \
-        --add-flags "-Djosm.restart=true -Djava.net.useSystemProxies=true" \
-        --add-flags "-jar $out/share/josm/josm.jar" \
+        --add-flags "${extraJavaOpts} -jar $out/share/josm/josm.jar" \
         --prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib'
     '';
 
diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix
index a48716a3dd2..96d506b556e 100644
--- a/pkgs/applications/misc/jp2a/default.nix
+++ b/pkgs/applications/misc/jp2a/default.nix
@@ -1,25 +1,43 @@
-{ lib, stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, libjpeg
+, libpng
+, ncurses
+, autoreconfHook
+, autoconf-archive
+, pkg-config
+, bash-completion
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.0.7";
+  version = "1.1.0";
   pname = "jp2a";
 
   src = fetchFromGitHub {
-    owner = "cslarsen";
+    owner = "Talinx";
     repo = "jp2a";
     rev = "v${version}";
-    sha256 = "12a1z9ba2j16y67f41y8ax5sgv1wdjd71pg7circdxkj263n78ql";
+    sha256 = "1dz2mrhl45f0vwyfx7qc3665xma78q024c10lfsgn6farrr0c2lb";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ libjpeg ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    pkg-config
+    bash-completion
+  ];
+  buildInputs = [ libjpeg libpng ncurses ];
+
+  installFlags = [ "bashcompdir=\${out}/share/bash-completion/completions" ];
 
   meta = with lib; {
     homepage = "https://csl.name/jp2a/";
     description = "A small utility that converts JPG images to ASCII";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.FlorianFranzen ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/kanboard/default.nix b/pkgs/applications/misc/kanboard/default.nix
index ffb787a9bd9..6dd407ab551 100644
--- a/pkgs/applications/misc/kanboard/default.nix
+++ b/pkgs/applications/misc/kanboard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanboard";
-  version = "1.2.18";
+  version = "1.2.19";
 
   src = fetchFromGitHub {
     owner = "kanboard";
     repo = "kanboard";
     rev = "v${version}";
-    sha256 = "sha256-raXPRoydd3CfciF7S0cZiuY7EPFKfE8IU3qj2dOztHU=";
+    sha256 = "sha256-48U3eRg6obRjgK06SKN2g1+0wocqm2aGyXO2yZw5fs8=";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index 7bd4a3bbf7f..97d01a1e1b5 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -2,11 +2,11 @@
 
 with python3.pkgs; buildPythonApplication rec {
   pname = "khal";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9";
+    sha256 = "sha256-L92PwU/ll+Wn1unGPHho2WC07QIbVjxoSnHwcJDtpDI=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/kile-wl/default.nix b/pkgs/applications/misc/kile-wl/default.nix
new file mode 100644
index 00000000000..333f008fedc
--- /dev/null
+++ b/pkgs/applications/misc/kile-wl/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitLab, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kile-wl";
+  version = "unstable-2021-04-22";
+
+  src = fetchFromGitLab {
+    owner = "snakedye";
+    repo = "kile";
+    rev = "b97b9f1e5b33862b33918efaf23fd1c0c5d7058a";
+    sha256 = "sha256-97qJd3o8nJt8IX5tyGWtAmJsIv5Gcw1xoBFwxAqk7I8=";
+  };
+
+  # Upstream has Cargo.lock gitignored
+  cargoPatches = [ ./update-Cargo-lock.diff ];
+
+  cargoSha256 = "sha256-TEgIiw/XTDUOe9K7agHWI86f88w+eDJ332V0CgNHtfo=";
+
+  meta = with lib; {
+    description = "A tiling layout generator for river";
+    homepage = "https://gitlab.com/snakedye/kile";
+    license = licenses.mit;
+    platforms = platforms.linux; # It's meant for river, a wayland compositor
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff b/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff
new file mode 100644
index 00000000000..8fc9fc555e8
--- /dev/null
+++ b/pkgs/applications/misc/kile-wl/update-Cargo-lock.diff
@@ -0,0 +1,153 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..05cf87b
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,147 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cc"
++version = "1.0.67"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "downcast-rs"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
++
++[[package]]
++name = "kile"
++version = "0.1.0"
++dependencies = [
++ "wayland-client",
++ "wayland-commons",
++ "wayland-scanner",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.93"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41"
++
++[[package]]
++name = "nix"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "smallvec"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "wayland-client"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06ca44d86554b85cf449f1557edc6cc7da935cc748c8e4bf1c507cbd43bae02c"
++dependencies = [
++ "bitflags",
++ "downcast-rs",
++ "libc",
++ "nix",
++ "wayland-commons",
++ "wayland-scanner",
++ "wayland-sys",
++]
++
++[[package]]
++name = "wayland-commons"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8bd75ae380325dbcff2707f0cd9869827ea1d2d6d534cff076858d3f0460fd5a"
++dependencies = [
++ "nix",
++ "once_cell",
++ "smallvec",
++ "wayland-sys",
++]
++
++[[package]]
++name = "wayland-scanner"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "389d680d7bd67512dc9c37f39560224327038deb0f0e8d33f870900441b68720"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "xml-rs",
++]
++
++[[package]]
++name = "wayland-sys"
++version = "0.28.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2907bd297eef464a95ba9349ea771611771aa285b932526c633dc94d5400a8e2"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "xml-rs"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
diff --git a/pkgs/applications/misc/kupfer/default.nix b/pkgs/applications/misc/kupfer/default.nix
index 243583b8762..07ff7c17f69 100644
--- a/pkgs/applications/misc/kupfer/default.nix
+++ b/pkgs/applications/misc/kupfer/default.nix
@@ -4,8 +4,11 @@
 , python3Packages
 , gobject-introspection
 , gtk3
+, itstool
 , libwnck3
 , keybinder3
+, desktop-file-utils
+, shared-mime-info
 , wrapGAppsHook
 , wafHook
 }:
@@ -14,19 +17,22 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "kupfer";
-  version = "319";
+  version = "321";
 
   format = "other";
 
   src = fetchurl {
-    url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.xz";
-    sha256 = "0c9xjx13r8ckfr4az116bhxsd3pk78v04c3lz6lqhraak0rp4d92";
+    url = "https://github.com/kupferlauncher/kupfer/releases/download/v${version}/kupfer-v${version}.tar.bz2";
+    sha256 = "0nagjp63gxkvsgzrpjk78cbqx9a7rbnjivj1avzb2fkhrlxa90c7";
   };
 
   nativeBuildInputs = [
     wrapGAppsHook intltool
     # For setup hook
     gobject-introspection wafHook
+    itstool            # for help pages
+    desktop-file-utils # for update-desktop-database
+    shared-mime-info   # for update-mime-info
   ];
   buildInputs = [ docutils libwnck3 keybinder3 ];
   propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ];
diff --git a/pkgs/applications/misc/mediaelch/default.nix b/pkgs/applications/misc/mediaelch/default.nix
index 4adfe0f6526..de145efd444 100644
--- a/pkgs/applications/misc/mediaelch/default.nix
+++ b/pkgs/applications/misc/mediaelch/default.nix
@@ -9,23 +9,25 @@
 , qtbase
 , qtdeclarative
 , qtmultimedia
+, qtsvg
+, qttools
 }:
 
 mkDerivation rec {
   pname = "mediaelch";
-  version = "2.8.6";
+  version = "2.8.8";
 
   src = fetchFromGitHub {
     owner = "Komet";
     repo = "MediaElch";
     rev = "v${version}";
-    sha256 = "1134vw7hr0mpqcsxjq4bqmg5760dngz17bzj97ypfc5cvzcxjh43";
+    sha256 = "0yif0ibmlj0bhl7fnhg9yclxg2iyjygmjhffinp5kgqy0vaabkzw";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake qttools ];
 
-  buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia ];
+  buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia qtsvg ];
 
   prePatch = ''
     substituteInPlace MediaElch.pro --replace "/usr" "$out"
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index 78cf6a07e8c..b379a04a51d 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -7,7 +7,7 @@
 , curl
 , doxygen
 , fetchFromGitHub
-, ffmpeg_3
+, ffmpeg
 , libmediainfo
 , libraw
 , libsodium
@@ -52,7 +52,7 @@ mkDerivation rec {
     c-ares
     cryptopp
     curl
-    ffmpeg_3
+    ffmpeg
     libmediainfo
     libraw
     libsodium
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index a39e8267cf7..3b482e95d9d 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, ncurses, readline
-, conf ? null, withIcons ? false, withNerdIcons ? false }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, pkg-config
+, file
+, ncurses
+, readline
+, which
+# options
+, conf ? null
+, withIcons ? false
+, withNerdIcons ? false
+}:
 
 # Mutually exclusive options
 assert withIcons -> withNerdIcons == false;
@@ -7,30 +20,33 @@ assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "3.6";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hwv7ncp8pmzdir30877ni4qlmczmb3yjdkbfd1pssr08y1srsc7";
+    sha256 = "0cbxgss9j0bvsp3czjx1kpm9id7c5xxmjfnvjyk3pfd69ygif2kl";
   };
 
   configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
   preBuild = lib.optionalString (conf != null) "cp ${configFile} src/nnn.h";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles makeWrapper pkg-config ];
   buildInputs = [ readline ncurses ];
 
-  makeFlags = [ "PREFIX=$(out)" ]
+  makeFlags = [ "PREFIX=${placeholder "out"}" ]
     ++ lib.optional withIcons [ "O_ICONS=1" ]
     ++ lib.optional withNerdIcons [ "O_NERD=1" ];
 
-  # shell completions
+  binPath = lib.makeBinPath [ file which ];
+
   postInstall = ''
-    install -Dm555 misc/auto-completion/bash/nnn-completion.bash $out/share/bash-completion/completions/nnn.bash
-    install -Dm555 misc/auto-completion/zsh/_nnn -t $out/share/zsh/site-functions
-    install -Dm555 misc/auto-completion/fish/nnn.fish -t $out/share/fish/vendor_completions.d
+    installShellCompletion --bash --name nnn.bash misc/auto-completion/bash/nnn-completion.bash
+    installShellCompletion --fish misc/auto-completion/fish/nnn.fish
+    installShellCompletion --zsh misc/auto-completion/zsh/_nnn
+
+    wrapProgram $out/bin/nnn --prefix PATH : "$binPath"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index df0409c8be4..ae2151383bc 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -13,6 +13,25 @@ self: super: let
 in {
   inherit buildPlugin;
 
+  m86motorsoff = buildPlugin rec {
+    pname = "M84MotorsOff";
+    version = "0.1.0";
+
+    src = fetchFromGitHub {
+      owner = "ntoff";
+      repo = "Octoprint-M84MotOff";
+      rev = "v${version}";
+      sha256 = "1w6h4hia286lbz2gy33rslq02iypx067yqn413xcipb07ivhvdq7";
+    };
+
+    meta = with lib; {
+      description = "Changes the \"Motors off\" button in octoprint's control tab to issue an M84 command to allow compatibility with Repetier firmware Resources";
+      homepage = "https://github.com/ntoff/OctoPrint-M84MotOff";
+      license = licenses.agpl3Only;
+      maintainers = with maintainers; [ stunkymonkey ];
+    };
+  };
+
   abl-expert = buildPlugin rec {
     pname = "ABL_Expert";
     version = "0.6";
@@ -52,6 +71,25 @@ in {
     };
   };
 
+  costestimation = buildPlugin rec {
+    pname = "CostEstimation";
+    version = "3.2.0";
+
+    src = fetchFromGitHub {
+      owner = "OllisGit";
+      repo = "OctoPrint-${pname}";
+      rev = version;
+      sha256 = "1j476jcw7gh8zqqdc5vddwv5wpjns7cd1hhpn7m9fxq3d5bi077w";
+    };
+
+    meta = with lib; {
+      description = "Plugin to display the estimated print cost for the loaded model.";
+      homepage = "https://github.com/malnvenshorn/OctoPrint-CostEstimation";
+      license = licenses.agpl3Only;
+      maintainers = with maintainers; [ stunkymonkey ];
+    };
+  };
+
   curaenginelegacy = buildPlugin rec {
     pname = "CuraEngineLegacy";
     version = "1.1.1";
@@ -71,6 +109,25 @@ in {
     };
   };
 
+  displayprogress = buildPlugin rec {
+    pname = "DisplayProgress";
+    version = "0.1.3";
+
+    src = fetchFromGitHub {
+      owner = "OctoPrint";
+      repo = "OctoPrint-${pname}";
+      rev = version;
+      sha256 = "080prvfwggl4vkzyi369vxh1n8231hrl8a44f399laqah3dn5qw4";
+    };
+
+    meta = with lib; {
+      description = "Displays the job progress on the printer's display";
+      homepage = "https://github.com/OctoPrint/OctoPrint-DisplayProgress";
+      license = licenses.agpl3Only;
+      maintainers = with maintainers; [ stunkymonkey ];
+    };
+  };
+
   displaylayerprogress = buildPlugin rec {
     pname = "OctoPrint-DisplayLayerProgress";
     version = "1.24.0";
@@ -240,6 +297,27 @@ in {
     };
   };
 
+  telegram = buildPlugin rec {
+    pname = "Telegram";
+    version = "1.6.4";
+
+    src = fetchFromGitHub {
+      owner = "fabianonline";
+      repo = "OctoPrint-${pname}";
+      rev = version;
+      sha256 = "14d9f9a5m1prcikd7y26qks6c2ls6qq4b97amn24q5a8k5hbgl94";
+    };
+
+    propagatedBuildInputs = with super; [ pillow ];
+
+    meta = with lib; {
+      description = "Plugin to send status messages and receive commands via Telegram messenger.";
+      homepage = "https://github.com/fabianonline/OctoPrint-Telegram";
+      license = licenses.agpl3Only;
+      maintainers = with maintainers; [ stunkymonkey ];
+    };
+  };
+
   themeify = buildPlugin rec {
     pname = "Themeify";
     version = "1.2.2";
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index b01b5af7ded..962bd9f592b 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -7,6 +7,7 @@
 , pcre
 , pkg-config
 , python3
+, python3Packages # sphinx-build
 , lib
 , stdenv
 , xcbproto
@@ -18,41 +19,47 @@
 , xcbutilxrm
 , makeWrapper
 , removeReferencesTo
+, alsaLib
+, curl
+, libmpdclient
+, libpulseaudio
+, wirelesstools
+, libnl
+, i3
+, i3-gaps
+, jsoncpp
 
-# optional packages-- override the variables ending in 'Support' to enable or
-# disable modules
-, alsaSupport   ? true,  alsaLib       ? null
-, githubSupport ? false, curl          ? null
-, mpdSupport    ? false, libmpdclient ? null
-, pulseSupport  ? false, libpulseaudio ? null
-, iwSupport     ? false, wirelesstools ? null
-, nlSupport     ? true,  libnl         ? null
-, i3Support ? false, i3GapsSupport ? false, i3 ? null, i3-gaps ? null, jsoncpp ? null
+# override the variables ending in 'Support' to enable or disable modules
+, alsaSupport   ? true
+, githubSupport ? false
+, mpdSupport    ? false
+, pulseSupport  ? false
+, iwSupport     ? false
+, nlSupport     ? true
+, i3Support     ? false
+, i3GapsSupport ? false
 }:
 
-assert alsaSupport   -> alsaLib       != null;
-assert githubSupport -> curl          != null;
-assert mpdSupport    -> libmpdclient != null;
-assert pulseSupport  -> libpulseaudio != null;
-
-assert iwSupport     -> ! nlSupport && wirelesstools != null;
-assert nlSupport     -> ! iwSupport && libnl         != null;
-
-assert i3Support     -> ! i3GapsSupport && jsoncpp != null && i3      != null;
-assert i3GapsSupport -> ! i3Support     && jsoncpp != null && i3-gaps != null;
-
 stdenv.mkDerivation rec {
     pname = "polybar";
-    version = "3.5.2";
+    version = "3.5.5";
 
     src = fetchFromGitHub {
       owner = pname;
       repo = pname;
       rev = version;
-      sha256 = "1ir8fdnzrba9fkkjfvax5szx5h49lavwgl9pabjzrpbvif328g3x";
+      sha256 = "sha256-oRtTm5bXdL0C2WJsaK8H2Oc40DPWgAfjP7FgIHrpKGI=";
       fetchSubmodules = true;
     };
 
+    nativeBuildInputs = [
+      cmake
+      pkg-config
+      python3Packages.sphinx
+      removeReferencesTo
+    ]
+    ++ lib.optional (i3Support || i3GapsSupport) makeWrapper;
+
     buildInputs = [
       cairo
       libXdmcp
@@ -67,21 +74,16 @@ stdenv.mkDerivation rec {
       xcbutilrenderutil
       xcbutilwm
       xcbutilxrm
-
-      (if alsaSupport   then alsaLib       else null)
-      (if githubSupport then curl          else null)
-      (if mpdSupport    then libmpdclient  else null)
-      (if pulseSupport  then libpulseaudio else null)
-
-      (if iwSupport     then wirelesstools else null)
-      (if nlSupport     then libnl         else null)
-
-      (if i3Support || i3GapsSupport then jsoncpp else null)
-      (if i3Support then i3 else null)
-      (if i3GapsSupport then i3-gaps else null)
-
-      (if i3Support || i3GapsSupport then makeWrapper else null)
-    ];
+    ]
+    ++ lib.optional alsaSupport alsaLib
+    ++ lib.optional githubSupport curl
+    ++ lib.optional mpdSupport libmpdclient
+    ++ lib.optional pulseSupport libpulseaudio
+    ++ lib.optional iwSupport wirelesstools
+    ++ lib.optional nlSupport libnl
+    ++ lib.optional (i3Support || i3GapsSupport) jsoncpp
+    ++ lib.optional i3Support i3
+    ++ lib.optional i3GapsSupport i3-gaps;
 
     postInstall = if i3Support
                   then ''wrapProgram $out/bin/polybar \
@@ -93,18 +95,13 @@ stdenv.mkDerivation rec {
                        ''
                   else '''';
 
-    nativeBuildInputs = [
-      cmake
-      pkg-config
-      removeReferencesTo
-    ];
-
     postFixup = ''
         remove-references-to -t ${stdenv.cc} $out/bin/polybar
     '';
 
     meta = with lib; {
       homepage = "https://polybar.github.io/";
+      changelog = "https://github.com/polybar/polybar/releases/tag/${version}";
       description = "A fast and easy-to-use tool for creating status bars";
       longDescription = ''
         Polybar aims to help users build beautiful and highly customizable
@@ -112,7 +109,7 @@ stdenv.mkDerivation rec {
         having a black belt in shell scripting.
       '';
       license = licenses.mit;
-      maintainers = with maintainers; [ afldcr Br1ght0ne ];
+      maintainers = with maintainers; [ afldcr Br1ght0ne fortuneteller2k ];
       platforms = platforms.linux;
     };
 }
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index 4d2ef2254e1..a6e81375de5 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -4,7 +4,7 @@
 }:
 stdenv.mkDerivation rec {
   pname = "prusa-slicer";
-  version = "2.3.0";
+  version = "2.3.1";
 
   nativeBuildInputs = [
     cmake
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "prusa3d";
     repo = "PrusaSlicer";
-    sha256 = "08zyvik8cyj1n9knbg8saan7j8s60nzkyj4a77818zbi9lpi65i5";
+    sha256 = "1lyaxc9nha1cd8p35iam1k1pikp9kfx0fj1l6vb1xb8pgqp02jnn";
     rev = "version_${version}";
   };
 
diff --git a/pkgs/applications/misc/rofi-power-menu/default.nix b/pkgs/applications/misc/rofi-power-menu/default.nix
new file mode 100644
index 00000000000..657796a5972
--- /dev/null
+++ b/pkgs/applications/misc/rofi-power-menu/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, rofi }:
+
+stdenv.mkDerivation rec {
+  pname = "rofi-power-menu";
+  version = "3.0.2";
+
+  src = fetchFromGitHub {
+    owner = "jluttine";
+    repo = "rofi-power-menu";
+    rev = version;
+    sha256 = "sha256-Bkc87BXSnAR517wCkyOAfoACYx/5xprDGJQhLWGUNns=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp rofi-power-menu $out/bin/rofi-power-menu
+    cp dmenu-power-menu $out/bin/dmenu-power-menu
+  '';
+
+  meta = with lib; {
+    description = "Shows a Power/Lock menu with Rofi";
+    homepage = "https://github.com/jluttine/rofi-power-menu";
+    maintainers = with maintainers; [ ikervagyok ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/safeeyes/default.nix b/pkgs/applications/misc/safeeyes/default.nix
index f6bb7133d99..d866b643ef2 100644
--- a/pkgs/applications/misc/safeeyes/default.nix
+++ b/pkgs/applications/misc/safeeyes/default.nix
@@ -1,16 +1,16 @@
 { lib, python3Packages, gobject-introspection, libappindicator-gtk3, libnotify, gtk3, gnome3, xprintidle-ng, wrapGAppsHook, gdk-pixbuf, shared-mime-info, librsvg
 }:
 
-let inherit (python3Packages) python buildPythonApplication fetchPypi;
+let inherit (python3Packages) python buildPythonApplication fetchPypi croniter;
 
 in buildPythonApplication rec {
   pname = "safeeyes";
-  version = "2.0.9";
+  version = "2.1.3";
   namePrefix = "";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13q06jv8hm0dynmr3g5pf1m4j3w9iabrpz1nhpl02f7x0d90whg2";
+    sha256 = "1b5w887hivmdrkm1ydbar4nmnks6grpbbpvxgf9j9s46msj03c9x";
   };
 
   buildInputs = [
@@ -30,6 +30,7 @@ in buildPythonApplication rec {
     xlib
     pygobject3
     dbus-python
+    croniter
 
     libappindicator-gtk3
     libnotify
diff --git a/pkgs/applications/misc/sc-im/default.nix b/pkgs/applications/misc/sc-im/default.nix
index 9a05ac22afb..cc7d4c3771b 100644
--- a/pkgs/applications/misc/sc-im/default.nix
+++ b/pkgs/applications/misc/sc-im/default.nix
@@ -1,12 +1,14 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , makeWrapper
 , pkg-config
 , which
 , bison
 , gnuplot
 , libxls
+, libxlsxwriter
 , libxml2
 , libzip
 , ncurses
@@ -25,6 +27,18 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "${src.name}/src";
 
+  patches = [
+    # libxls and libxlsxwriter are not found without the patch
+    # https://github.com/andmarti1424/sc-im/pull/542
+    (fetchpatch {
+      name = "use-pkg-config-for-libxls-and-libxlsxwriter.patch";
+      url = "https://github.com/andmarti1424/sc-im/commit/b62dc25eb808e18a8ab7ee7d8eb290e34efeb075.patch";
+      sha256 = "1yn32ps74ngzg3rbkqf8dn0g19jv4xhxrfgx9agnywf0x8gbwjh3";
+    })
+  ];
+
+  patchFlags = [ "-p2" ];
+
   nativeBuildInputs = [
     makeWrapper
     pkg-config
@@ -35,6 +49,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gnuplot
     libxls
+    libxlsxwriter
     libxml2
     libzip
     ncurses
diff --git a/pkgs/applications/misc/shfm/default.nix b/pkgs/applications/misc/shfm/default.nix
new file mode 100644
index 00000000000..602151075fc
--- /dev/null
+++ b/pkgs/applications/misc/shfm/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "shfm";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "dylanaraps";
+    repo = pname;
+    rev = version;
+    hash = "sha256-ilVrUFfyzOZgjbBTqlHA9hLaTHw1xHFo1Y/tjXygNEs=";
+  };
+
+  postPatch = ''
+    patchShebangs ./shfm
+  '';
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D shfm --target-directory $out/bin/
+    install -D README --target-directory $out/share/doc/${pname}/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/dylanaraps/shfm";
+    description = "POSIX-shell based file manager";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/sigal/default.nix b/pkgs/applications/misc/sigal/default.nix
index f2333aa9942..860e8f8adb5 100644
--- a/pkgs/applications/misc/sigal/default.nix
+++ b/pkgs/applications/misc/sigal/default.nix
@@ -1,33 +1,40 @@
-{ lib, python3Packages, ffmpeg_3 }:
+{ lib, python3Packages, ffmpeg }:
 
 python3Packages.buildPythonApplication rec {
-  version = "2.1.1";
+  version = "2.2";
   pname   = "sigal";
 
   src = python3Packages.fetchPypi {
     inherit version pname;
-    sha256 = "0l07p457svznirz7qllgyl3qbhiisv7klhz7cbdw6417hxf9bih8";
+    sha256 = "sha256-49XsNdZuicsiYJZuF1UdqMA4q33Ly/Ug/Hc4ybJKmPo=";
   };
 
   disabled = !(python3Packages.pythonAtLeast "3.6");
 
-  checkInputs = with python3Packages; [ pytest ];
   propagatedBuildInputs = with python3Packages; [
+    # install_requires
     jinja2
     markdown
     pillow
     pilkit
-    clint
     click
     blinker
     natsort
-    setuptools_scm
+    # extras_require
+    boto
+    brotli
+    feedgenerator
+    zopfli
+    cryptography
   ];
 
-  makeWrapperArgs = [ "--prefix PATH : ${ffmpeg_3}/bin" ];
+  checkInputs = [
+    ffmpeg
+  ] ++ (with python3Packages; [
+    pytestCheckHook
+  ]);
 
-  # No tests included
-  doCheck = false;
+  makeWrapperArgs = [ "--prefix PATH : ${ffmpeg}/bin" ];
 
   meta = with lib; {
     description = "Yet another simple static gallery generator";
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index 5032836ab9f..675fe9cf1a5 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -17,10 +17,10 @@ let
 
   pname = "simplenote";
 
-  version = "2.8.0";
+  version = "2.9.0";
 
   sha256 = {
-    x86_64-linux = "sha256-W8+LzWMPDCrFZCm9p/Gcj7OXqJw/gs7lMxTKjOQChQY=";
+    x86_64-linux = "sha256-uwd9fYqZepJ/BBttprqkJhswqMepGsHDTd5Md9gjI68=";
   }.${system} or throwSystem;
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
index 16d56eeaa95..9d93c8ae435 100644
--- a/pkgs/applications/misc/stork/default.nix
+++ b/pkgs/applications/misc/stork/default.nix
@@ -1,20 +1,26 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, openssl
+, pkg-config
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "stork";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "jameslittle230";
     repo = "stork";
     rev = "v${version}";
-    sha256 = "sha256-pBJ9n1pQafXagQt9bnj4N1jriczr47QLtKiv+UjWgTg=";
+    sha256 = "sha256-gPrXeS7XT38Dil/EBwmeKIJrmPlEK+hmiyHi4p28tl0=";
   };
 
-  cargoSha256 = "sha256-u8L4ZeST4ExYB2y8E+I49HCy41dOfhR1fgPpcVMVDuk=";
+  cargoSha256 = "sha256-9YKCtryb9mTPz9iWE7Iuk2SKgV0knWRbaouF+1DCjv8=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
 
   meta = with lib; {
     description = "Impossibly fast web search, made for static sites";
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 6480fd6b267..52c5f542b27 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -5,18 +5,17 @@
 , electron
 , common-updater-scripts
 , writeShellScript
-, jq
 , makeDesktopItem
 }:
 
 stdenv.mkDerivation rec {
 
   pname = "stretchly";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
-    sha256 = "19czwmwqsn82zdzln9zqqyl9sb3dm95gp58dqn1459gyinkzpvda";
+    sha256 = "1q0ihp6cd65lnscbr7xj3yyb06qds77r4s6m1xbk5l9vs2rw923d";
   };
 
   icon = fetchurl {
diff --git a/pkgs/applications/misc/tdrop/default.nix b/pkgs/applications/misc/tdrop/default.nix
index e8c42ab48d7..66708aa8135 100644
--- a/pkgs/applications/misc/tdrop/default.nix
+++ b/pkgs/applications/misc/tdrop/default.nix
@@ -2,15 +2,15 @@
 , xwininfo, xdotool, xprop, gawk, coreutils
 , gnugrep, procps }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "tdrop";
-  version = "unstable-2020-05-14";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "noctuid";
     repo = "tdrop";
-    rev = "a9f2862515e5c190ac61d394e7fe7e1039871b89";
-    sha256 = "1zxhihgba33k8byjsracsyhby9qpdngbly6c8hpz3pbsyag5liwc";
+    rev = version;
+    sha256 = "sha256-1umHwzpv4J8rZ0c0q+2dPsEk4vhFB4UerwI8ctIJUZg=";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index c78fe9afeda..847b95c7874 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -8,7 +8,7 @@
 , pcre
 , glib
 , imlib2
-, gtk2
+, gtk3
 , libXinerama
 , libXrender
 , libXcomposite
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tint2";
-  version = "16.7";
+  version = "17.0";
 
   src = fetchFromGitLab {
     owner = "o9000";
     repo = "tint2";
     rev = version;
-    sha256 = "1937z0kixb6r82izj12jy4x8z4n96dfq1hx05vcsvsg1sx3wxgb0";
+    sha256 = "1gy5kki7vqrj43yl47cw5jqwmj45f7a8ppabd5q5p1gh91j7klgm";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     pcre
     glib
     imlib2
-    gtk2
+    gtk3
     libXinerama
     libXrender
     libXcomposite
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/o9000/tint2";
     description = "Simple panel/taskbar unintrusive and light (memory, cpu, aestetic)";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix
index 15bda9d5f97..5e5fda23d44 100644
--- a/pkgs/applications/misc/veracrypt/default.nix
+++ b/pkgs/applications/misc/veracrypt/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Free Open-Source filesystem on-the-fly encryption";
     homepage = "https://www.veracrypt.fr/";
-    license = [ licenses.asl20 /* or */ "TrueCrypt License version 3.0" ];
+    license = with licenses; [ asl20 /* and */ unfree /* TrueCrypt License version 3.0 */ ];
     maintainers = with maintainers; [ dsferruzza ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index d730f966347..6a3f33db27e 100644
--- a/pkgs/applications/misc/waybar/default.nix
+++ b/pkgs/applications/misc/waybar/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , meson
 , pkg-config
 , ninja
@@ -28,26 +27,15 @@
 
 stdenv.mkDerivation rec {
   pname = "waybar";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchFromGitHub {
     owner = "Alexays";
     repo = "Waybar";
     rev = version;
-    sha256 = "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q";
+    sha256 = "17cn4d3dx92v40jd9vl41smp8hh3gf5chd1j2f7l1lrpfpnllg5x";
   };
 
-  patches = [
-    # XXX: REMOVE ON NEXT VERSION BUMP
-    # Fixes compatibility of the bluetooth and network modules with linux kernel
-    # >=5.11
-    # c.f. https://github.com/Alexays/Waybar/issues/994
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/Alexays/Waybar/pull/1015.patch";
-      sha256 = "sha256-jQZEM3Yru2yxcXAzapU47DoAv4ZoabrV80dH42I2OFk=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson ninja pkg-config scdoc wrapGAppsHook cmake
   ] ++ lib.optional withMediaPlayer gobject-introspection;
diff --git a/pkgs/applications/misc/with-shell/default.nix b/pkgs/applications/misc/with-shell/default.nix
index daf697c1661..cf52d194f61 100644
--- a/pkgs/applications/misc/with-shell/default.nix
+++ b/pkgs/applications/misc/with-shell/default.nix
@@ -1,20 +1,76 @@
-{ lib, stdenv, fetchFromGitHub }:
-stdenv.mkDerivation {
-  name = "with-2016-08-20";
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+}:
+
+stdenv.mkDerivation rec {
+  pname = "with";
+  version = "unstable-2018-03-20";
+
   src = fetchFromGitHub {
     owner = "mchav";
     repo = "With";
-    rev = "cc2828bddd92297147d4365765f4ef36385f050a";
-    sha256 = "10m2xv6icrdp6lfprw3a9hsrzb3bip19ipkbmscap0niddqgcl9b";
+    rev = "28eb40bbc08d171daabf0210f420477ad75e16d6";
+    hash = "sha256-mKHsLHs9/I+NUdb1t9wZWkPxXcsBlVWSj8fgZckXFXk=";
   };
+
+  nativeBuildInputs = [ installShellFiles ];
+
   installPhase = ''
-    mkdir -p $out/bin
-    cp with $out/bin/with
+    runHook preInstall
+    install -D with $out/bin/with
+    installShellCompletion --bash --name with.bash with.bash-completion
+    runHook postInstall
   '';
-  meta = {
+
+  meta = with lib; {
     homepage = "https://github.com/mchav/With";
     description = "Command prefixing for continuous workflow using a single tool";
-    license = lib.licenses.asl20;
-    platforms = lib.platforms.unix;
+    longDescription = ''
+      with is a Bash script that starts an interactive shell with where every
+      command is prefixed using <program>.
+
+      For example:
+
+      $ with git
+      git> add .
+      git> commit -a -m "Commited"
+      git> push
+
+      Can also be used for compound commands.
+
+      $ with java Primes
+      java Primes> 1
+      2
+      java Primes> 4
+      7
+
+      And to repeat commands:
+
+      $ with gcc -o output input.c
+      gcc -o -output input.c>
+      <enter>
+      Compiling...
+      gcc -o -output input.c>
+
+      To execute a shell command proper prefix line with :.
+
+      git> :ls
+
+      You can also drop, add, and replace different commands.
+
+      git> +add
+      git add> <some file>
+      git add> !commit
+      git commit> <arguments and message>
+      git commit> -
+      git>
+
+      To exit use either :q or :exit.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix
new file mode 100644
index 00000000000..14a50dbeb9e
--- /dev/null
+++ b/pkgs/applications/misc/xplr/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  name = "xplr";
+  version = "0.5.10";
+
+  src = fetchFromGitHub {
+    owner = "sayanarijit";
+    repo = name;
+    rev = "v${version}";
+    sha256 = "1gy0iv39arq2ri57iqsycp1sfnn1yafnhblr7p1my2wnmqwmd4qw";
+  };
+
+  cargoSha256 = "01b4dlbakkdn3pfyyphabzrmqyp7fjy6n1nfk38z3zap5zvx8ipl";
+
+  meta = with lib; {
+    description = "A hackable, minimal, fast TUI file explorer";
+    homepage = "https://github.com/sayanarijit/xplr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sayanarijit suryasr007 ];
+  };
+}
diff --git a/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch b/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch
deleted file mode 100644
index d56a6cfab07..00000000000
--- a/pkgs/applications/misc/yubioath-desktop/0001-replace-git-with-normal-python-package.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 5eb4d6a384753896d495b09d8651c48672ef234d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Wed, 25 Nov 2020 11:26:49 +0100
-Subject: [PATCH] replace git with normal python package
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- requirements.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/requirements.txt b/requirements.txt
-index ef25aad..b4246a4 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -1,2 +1,2 @@
--git+https://github.com/Yubico/yubikey-manager.git
-+yubikey-manager
- ./py/qr
--- 
-2.29.2
-
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index dbd33db16f9..9cfd7650c49 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "yubioath-desktop";
-  version = "5.0.4";
+  version = "5.0.5";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
-    sha256 = "1aw88xvg6gjsfwmmlcrdcgyycn2cp7b8vxjzj14h7igcj02xh84h";
+    sha256 = "05xs6xh9pi50h0668arirj0gnz11adpixgsdkds072077gasdm0g";
   };
 
   doCheck = false;
@@ -19,10 +19,6 @@ mkDerivation rec {
 
   nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
 
-  patches = [
-    ./0001-replace-git-with-normal-python-package.patch
-  ];
-
   postPatch = ''
     substituteInPlace deployment.pri \
       --replace '/usr/bin' "$out/bin"
@@ -48,7 +44,7 @@ mkDerivation rec {
       cp resources/icons/*.{icns,ico,png,svg} $out/share/yubioath/icons
       substituteInPlace $out/share/applications/com.yubico.yubioath.desktop \
         --replace 'Exec=yubioath-desktop' "Exec=$out/bin/yubioath-desktop" \
-        --replace 'Icon=yubioath' "Icon=$out/share/yubioath/icons/com.yubico.yubioath.png"
+        --replace 'Icon=com.yubico.yubioath' "Icon=$out/share/yubioath/icons/com.yubico.yubioath.png"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index eb8c81dae7e..3d7f5629123 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -33,7 +33,8 @@ appimageTools.wrapType2 rec {
     mv $out/bin/{${name},${pname}}
     install -m 444 -D ${appimageContents}/Zettlr.desktop $out/share/applications/zettlr.desktop
     install -m 444 -D ${appimageContents}/Zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
-    substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+    substituteInPlace $out/share/applications/zettlr.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index f544660913f..1138c1e292e 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -90,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.21.77";
+  version = "1.23.71";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "Q7paeGAvdmc4+FP28ASLlJhN1ui7M5fDpxnrh+gbEm4=";
+    sha256 = "17ajn1vx5xwlp2yvjf1hr8vw3b7hiribv5gaipyb37zrhkff241h";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 1c3da1c8607..73ce022915c 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -7,7 +7,7 @@
 , xdg-utils, yasm, nasm, minizip, libwebp
 , libusb1, pciutils, nss, re2
 
-, python2Packages, perl, pkg-config
+, python2Packages, python3Packages, perl, pkg-config
 , nspr, systemd, libkrb5
 , util-linux, alsaLib
 , bison, gperf
@@ -42,6 +42,16 @@ with lib;
 
 let
   jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  # TODO: Python 3 support is incomplete and "python3 ../../build/util/python2_action.py"
+  # currently doesn't work due to mixed Python 2/3 dependencies:
+  pythonPackages = if chromiumVersionAtLeast "93"
+    then python3Packages
+    else python2Packages;
+  forcePython3Patch = (githubPatch
+    # Reland #8 of "Force Python 3 to be used in build."":
+    "a2d3c362802d9e6b62f895fcda75a3695b77b1b8"
+    "1r9spr2wmjk9x9l3m1gzn6692mlvbxdz0r5hlr5rfwiwr900rxi2"
+  );
 
   # The additional attributes for creating derivations based on the chromium
   # source tree.
@@ -100,16 +110,17 @@ let
   buildPath = "out/${buildType}";
   libExecPath = "$out/libexec/${packageName}";
 
+  warnObsoleteVersionConditional = min-version: result:
+    let ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version;
+    in warnIf (versionAtLeast ungoogled-version min-version) "chromium: ungoogled version ${ungoogled-version} is newer than a conditional bounded at ${min-version}. You can safely delete it."
+      result;
   chromiumVersionAtLeast = min-version:
-    versionAtLeast upstream-info.version min-version;
+    let result = versionAtLeast upstream-info.version min-version;
+    in  warnObsoleteVersionConditional min-version result;
   versionRange = min-version: upto-version:
     let inherit (upstream-info) version;
         result = versionAtLeast version min-version && versionOlder version upto-version;
-        ungoogled-version = (importJSON ./upstream-info.json).ungoogled-chromium.version;
-    in if versionAtLeast ungoogled-version upto-version
-       then warn "chromium: ungoogled version ${ungoogled-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
-            result
-       else result;
+    in warnObsoleteVersionConditional upto-version result;
 
   ungoogler = ungoogled-chromium {
     inherit (upstream-info.deps.ungoogled-patches) rev sha256;
@@ -127,9 +138,9 @@ let
 
     nativeBuildInputs = [
       llvmPackages.lldClang.bintools
-      ninja which python2Packages.python perl pkg-config
-      python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar python2Packages.setuptools
+      ninja which pythonPackages.python perl pkg-config
+      pythonPackages.ply pythonPackages.jinja2 nodejs
+      gnutar pythonPackages.setuptools
     ];
 
     buildInputs = defaultDependencies ++ [
@@ -138,6 +149,7 @@ let
       bison gperf libkrb5
       glib gtk3 dbus-glib
       libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
+      mesa # required for libgbm
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
       pipewire
@@ -151,26 +163,18 @@ let
     patches = [
       ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed)
       ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
-      # ++ optional (versionRange "68" "72") (githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000")
-    ] ++ optional (versionRange "89" "90.0.4402.0") (githubPatch
-      # To fix the build of chromiumBeta and chromiumDev:
-      "b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9" # add dependency on opus in webcodecs
-      "1r4wmwaxz5xbffmj5wspv2xj8s32j9p6jnwimjmalqg3al2ba64x"
-    ) ++ optional (versionRange "89" "90.0.4422.0") (fetchpatch {
-      url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/61b0ab526d2aa3c62fa20bb756461ca9a482f6c6/trunk/chromium-fix-libva-redef.patch";
-      sha256 = "1qj4sn1ngz0p1l1w3346kanr1sqlr3xdzk1f1i86lqa45mhv77ny";
-    }) ++ optional (chromiumVersionAtLeast "90")
+      # Fix the build by adding a missing dependency (s. https://crbug.com/1197837):
       ./patches/fix-missing-atspi2-dependency.patch
-    ++ optionals (chromiumVersionAtLeast "91") [
+    ] ++ optionals (chromiumVersionAtLeast "91") [
       ./patches/closure_compiler-Use-the-Java-binary-from-the-system.patch
-      (githubPatch
-        # Revert "Reland #7 of "Force Python 3 to be used in build.""
-        "38b6a9a8e5901766613879b6976f207aa163588a"
-        "1lvxbd7rl6hz5j6kh6q83yb6vd9g7anlqbai8g1w1bp6wdpgwvp9"
-      )
     ];
 
-    postPatch = ''
+    postPatch = lib.optionalString (chromiumVersionAtLeast "91") ''
+      # Required for patchShebangs (unsupported):
+      chmod -x third_party/webgpu-cts/src/tools/deno
+    '' + optionalString (chromiumVersionAtLeast "92") ''
+      patch -p1 --reverse < ${forcePython3Patch}
+    '' + ''
       # remove unused third-party
       for lib in ${toString gnSystemLibraries}; do
         if [ -d "third_party/$lib" ]; then
@@ -274,12 +278,9 @@ let
     } // optionalAttrs pulseSupport {
       use_pulseaudio = true;
       link_pulseaudio = true;
-    } // optionalAttrs (chromiumVersionAtLeast "89") {
-      rtc_pipewire_version = "0.3"; # TODO: Can be removed once ungoogled-chromium is at M90
       # Disable PGO (defaults to 2 since M89) because it fails without additional changes:
       # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version
       chrome_pgo_phase = 0;
-    } // optionalAttrs (chromiumVersionAtLeast "90") {
       # Disable build with TFLite library because it fails without additional changes:
       # ninja: error: '../../chrome/test/data/simple_test.tflite', needed by 'test_data/simple_test.tflite', missing and no known rule to make it
       # Note: chrome/test/data/simple_test.tflite is in the Git repository but not in chromium-90.0.4400.8.tar.xz
diff --git a/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
index 1aafc6147fd..e14e3642643 100755
--- a/pkgs/applications/networking/browsers/chromium/get-commit-message.py
+++ b/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -6,6 +6,8 @@
 import re
 import textwrap
 
+from collections import OrderedDict
+
 import feedparser
 import requests
 
@@ -30,6 +32,7 @@ for entry in feed.entries:
             fixes += " " + zero_days.group(0)
         print('\n' + '\n'.join(textwrap.wrap(fixes, width=72)))
     if cve_list := re.findall(r'CVE-[^: ]+', content):
+        cve_list = list(OrderedDict.fromkeys(cve_list))  # Remove duplicates but preserve the order
         cve_string = ' '.join(cve_list)
         print("\nCVEs:\n" + '\n'.join(textwrap.wrap(cve_string, width=72)))
     break  # We only care about the most recent stable channel update
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index f79f0afaf51..61877fa0ede 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,39 +1,39 @@
 {
   "stable": {
-    "version": "89.0.4389.114",
-    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
-    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
+    "version": "90.0.4430.93",
+    "sha256": "0zimr975vp0v12zz1nqjwag3f0q147wrmdhpzgi4yf089rgwfbjk",
+    "sha256bin64": "1vifcrrfv69i0q7qnnml43xr0c20bi22hfw6lygq3k2x70zdzgl6",
     "deps": {
       "gn": {
-        "version": "2021-01-07",
+        "version": "2021-02-09",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
-        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
+        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
+        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
       }
     },
     "chromedriver": {
-      "version": "89.0.4389.23",
-      "sha256_linux": "169inx1xl7750mdd1g7yji72m33kvpk7h1dy4hyj0qignrifdm0r",
-      "sha256_darwin": "1a84nn4rnd215h4sjghmw03mdr49wyab8j4vlnv3xp516yn07gr3"
+      "version": "90.0.4430.24",
+      "sha256_linux": "0byibxrs4ggid8qn5h72mmnw8l4y8xya2q1jbc6z74pmw8r9hkj7",
+      "sha256_darwin": "0psll7vahj43jkj1wqq7mygf18l7ivp56ckc8wv4w5bnfmqv660k"
     }
   },
   "beta": {
-    "version": "90.0.4430.70",
-    "sha256": "0jnyqnqwdccv3i55grd12wr2w5ffxyzmj2l3c1i24xawf2zdzyym",
-    "sha256bin64": "1lv9gz6llphyvlvn92yw1cyhj4i6jzhy1l7hk01418prmhb4nfws",
+    "version": "91.0.4472.27",
+    "sha256": "09mhrzfza9a2zfsnxskbdbk9cwxnswgprhnyv3pj0f215cva20sq",
+    "sha256bin64": "1iwjf993pmhm9r92h4hskfxqc9fhky3aabvmdsqys44251j3hvwg",
     "deps": {
       "gn": {
-        "version": "2021-02-09",
+        "version": "2021-04-06",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
-        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
+        "rev": "dba01723a441c358d843a575cb7720d54ddcdf92",
+        "sha256": "199xkks67qrn0xa5fhp24waq2vk8qb78a96cb3kdd8v1hgacgb8x"
       }
     }
   },
   "dev": {
-    "version": "91.0.4469.4",
-    "sha256": "08lffqjfcszniwwshililab553a0dvycaa72h1dklxvxf360nz5f",
-    "sha256bin64": "14xyzjwzcyp6idscq6i87yh2fibjamkz5xfsb2y0hrf2diaqijw1",
+    "version": "92.0.4491.6",
+    "sha256": "0dwmcqzr7ysy7555l5amzppz8rxgxbgf6fy8lq4ykn2abx4m8n8a",
+    "sha256bin64": "041j6nm49w03qadwlsav50avdp6pwf1a8asybgvkjaxy4fpck376",
     "deps": {
       "gn": {
         "version": "2021-04-06",
@@ -44,19 +44,19 @@
     }
   },
   "ungoogled-chromium": {
-    "version": "89.0.4389.114",
-    "sha256": "007df9p78bbmk3iyfi8qn57mmn68qqrdhx6z8n2hl8ksd7lspw7j",
-    "sha256bin64": "06wblyvyr93032fbzwm6qpzz4jjm6adziq4i4n6kmfdix2ajif8a",
+    "version": "90.0.4430.93",
+    "sha256": "0zimr975vp0v12zz1nqjwag3f0q147wrmdhpzgi4yf089rgwfbjk",
+    "sha256bin64": "1vifcrrfv69i0q7qnnml43xr0c20bi22hfw6lygq3k2x70zdzgl6",
     "deps": {
       "gn": {
-        "version": "2021-01-07",
+        "version": "2021-02-09",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "595e3be7c8381d4eeefce62a63ec12bae9ce5140",
-        "sha256": "08y7cjlgjdbzja5ij31wxc9i191845m01v1hc7y176svk9y0hj1d"
+        "rev": "dfcbc6fed0a8352696f92d67ccad54048ad182b3",
+        "sha256": "1941bzg37c4dpsk3sh6ga3696gpq6vjzpcw9rsnf6kdr9mcgdxvn"
       },
       "ungoogled-patches": {
-        "rev": "89.0.4389.114-1",
-        "sha256": "0cr2i51gxhgl55c8f9w0ra3m5q2dk03sf7p2qn4bqq1l1l72hw6s"
+        "rev": "90.0.4430.93-1",
+        "sha256": "11adnd96iwkkri3yyzvxsq43gqsc12fvd87rvqqflj0irrdk98a0"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/ephemeral/default.nix b/pkgs/applications/networking/browsers/ephemeral/default.nix
index 338ceaa4344..64e26142575 100644
--- a/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ephemeral";
-  version = "7.0.5";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "cassidyjames";
     repo = "ephemeral";
     rev = version;
-    sha256 = "sha256-dets4YoTUgFCDOrvzNuAwJb3/MsnjOSBx9PBZuT0ruk=";
+    sha256 = "sha256-07HO8nC2Pwz2EAea4ZzmqyMfQdgX8FVqDepdA6j/NT8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 0971dd3b63f..6b8079d5245 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,975 +1,975 @@
 {
-  version = "87.0";
+  version = "88.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ach/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ach/firefox-88.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "656c92c9a588aed2059f4f68968735f884db6ee94b0619d983bd4affd2100174";
+      sha256 = "12d09c3e723cf3853792d11bfa3344a3cf63cbfea150de441c46e552248d1532";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/af/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/af/firefox-88.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "0f8fe2b470177df3525fbf533934c66a5e4abdaa3dfb7848962ac148b224592d";
+      sha256 = "60a0fee46e702ae161639eb3d06e893f157516667606fda241b997ffd356e768";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/an/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/an/firefox-88.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "a96ae593965364871d35ba0fd6dcd1029254110ee59f4a7abe27cf6d273c7be6";
+      sha256 = "6b0583486643dc144c42b369cb54cac5ec28ac997e58ca3c29c0dc12701702cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ar/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ar/firefox-88.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "58eaefaba44b4b0592442e709604b597c74fd81390f8fcc410a8e605956a0bdd";
+      sha256 = "149f7789dc5b356c336ef48788cff922bc69e9daa3bd4c32550cda0683695108";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ast/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ast/firefox-88.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "ca33473b77b8a57c305fe89cdd66b95810441aa54295ed687736a24c9160e45f";
+      sha256 = "55259f1a56bfb5867a17751d8ed8bfd673aaf26c4c97a70dcf99c88e427605d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/az/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/az/firefox-88.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "6965f0b68279228a575dfb503eabae8d75f32e0fa8de119f4d48f0e9ec36d61c";
+      sha256 = "36cc39d24f416717c1b07ab3aec2803c2811603a394c5e7cc3d6545655a883bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/be/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/be/firefox-88.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a19d6d94cc15d269dbddccae06b4c92a3436e57d45dbebe8c6a2ff23df66fd28";
+      sha256 = "06cc01d0f235d423301dd220941d8f67745a1208015f5d2ba0dfceabc5252dad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bg/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bg/firefox-88.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "885a44cf0acedc5ffbfcc73cce41f6eb2dcab13d070eeb156e64277b346a4fb1";
+      sha256 = "a8753152946e55be48d55858a4aab8052f94fc9a6fa9192fc59a7664677fb85a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bn/firefox-88.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "09773257768f061819fa92ec229c1f94b217c04e78781d8e59a8dc1225f92be7";
+      sha256 = "12daf255bb459ea1e576aef02f008dbceb752700eb91f569761e5d3b10e17891";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/br/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/br/firefox-88.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "23ec95e130593c51384a64165c33f02c4c5af753313fbaf8fa0f94bca1184506";
+      sha256 = "8811d1da23da1286a4e2aca81e898a0466665386de80ff1217cac0f399396eaa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/bs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/bs/firefox-88.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "30455df45e86894fd5a75ef6b9989b64f49da8ac8bee9656ea2724cfca59555c";
+      sha256 = "1386daaf4d583a980a57a0d8c3a631ed28b46f3988a0184ed0c5c8a03e44e7d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ca-valencia/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ca-valencia/firefox-88.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "8ca8a4ee40ac57140560c3aeb664d60be5ecd8842f328544924a97d910c02303";
+      sha256 = "15fbee8c563462b43c128c2c0d7c74d9453db32f078e6d49ff0600e73eefe4d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ca/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ca/firefox-88.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "3cc1cd1c7657a704d3c6c1a42934eac75439c05af5617d2d24991d62d412237e";
+      sha256 = "0120c9adddfe03e4ed476ca290a0f59cc8fef4064984cde4016bbf12bcbb4730";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cak/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cak/firefox-88.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "160c598f55c012fc92c0882f7062a82b8057177398edfcdeb41c60aa83570f1f";
+      sha256 = "7c0d355eb7ab709df66f5b77ede2824e3fdda646b61fd50df7762027c55dc971";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cs/firefox-88.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "1209d5401b55441126bcc64faa9d7692c92d2c009a40587923c048bec0cf2508";
+      sha256 = "4b39fd4bc0c214f3409a446abe13d749a6c25908811f788513d850ebef648b41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/cy/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/cy/firefox-88.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "d177530e3e31900a38e9127b5d60bcc3b937c76e8b12b13c289a29e2afd06c40";
+      sha256 = "40ca21bb7c715c4adfaee536a42929b10af1faefb73f8103e927b7e8cc1367fd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/da/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/da/firefox-88.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "2e623b11e18d38dee391863115af75fae4119894a89606aa6f4194d04a1773c2";
+      sha256 = "b311e549c38b5a49cef0c9a597e208d8d929cc828617e662b289f0d455f4bf46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/de/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/de/firefox-88.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "a29837d6c062ded4aed732cee06fe23773a57d62aecbca1e1a56c9d7a37423df";
+      sha256 = "8916772413c5a615ae4b8ddc2721d5af5ff64cc4c5799fe00873f0a29854f64a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/dsb/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/dsb/firefox-88.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "cf584f97b136444861845bf1db0fe9d65d809f4a167a0f8bed780f94048fbb12";
+      sha256 = "c0b1c757f55dfb6657fd4090b5e3084af3cca1c2526f9a90efcab844fa5ea974";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/el/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/el/firefox-88.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "73d03707575ef3270f7419d031fc85babdc498b1576d316abac273cd88dde30b";
+      sha256 = "04251f33971a40988df8cbdb2875bf2f24e8c878a11661568a45ed7d4b040de2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-CA/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-CA/firefox-88.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "1d11c8a1f23df4e88668beecee244f2d0743b006e46d96e4a6a35bffc341569d";
+      sha256 = "5505a96cfe87f15df89b908f6a769766767d86f98ec878324e5eb26963666ffe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-GB/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-GB/firefox-88.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "d885931198cf3958fca683ee4c301f25610f6b4d5777068fd812bd53048aecb6";
+      sha256 = "e3a8649ef6107c61c6638317f367db5157acc8ce8989730d2fab7a3bd8c38d95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/en-US/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/en-US/firefox-88.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "3c9207bee0a998634c4fd12293acfae207d16508749ad405bf1e8717d06acf02";
+      sha256 = "043e9ded27d8f86ff881c1f95a2626b5bbd7361990d7977320f8e9beaea63c93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/eo/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/eo/firefox-88.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "3d57787fc840f80271f4d26810f347929a96479ca58bd416bf1f94e3499a07b9";
+      sha256 = "0deeafcdd14dddc9c31e8f68c819bdebd54e8fe6a480c6dfd723ee90da409fb4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-AR/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-AR/firefox-88.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "294c83cce5bbead7c263e950ed8bb2787d4735f4086521726400ef97c5d26b35";
+      sha256 = "b7dd60ba63a4408d94b015ee1529cc5f0c0ee4dfcfe515ed1f8eb7e183973022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-CL/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-CL/firefox-88.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "4e57c8a517084eee27edb6ad706a250ebb323419407f1ef9c9f9ae4f0dc8d8b9";
+      sha256 = "35fd7dc8d273c73c7fd334ec726da2415140497e81004a453fe144aabb8c9317";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-ES/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-ES/firefox-88.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "9cdea632b1c1365d3c6ec08e9acd154819d081f025473b027da8d5e873da66bb";
+      sha256 = "c7f801a3d4cfe52b3a9c29c9f2d633d078e13b85fde25fe837e887865040f52d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/es-MX/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/es-MX/firefox-88.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "3698541ca4e9eb7f5c422082cbacd407870ffb170c9f9d0fe5f0c55dfe2b5449";
+      sha256 = "9e295a332dc7e043dce50f3a7092c89b1fd2ffbcfe99d25f9df34eed33b7b34e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/et/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/et/firefox-88.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "86a1986a7c63f63c559d36d3d42e95def0eb8a89075879c3253156e80ed161c1";
+      sha256 = "c023f6c1a279c3e3d0043b535d3e1666f44a7b079905f0c0ebc4dec3edeee8fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/eu/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/eu/firefox-88.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "5db12874991a1583ec09c934e18c93225b9831acc857d8c1b633f48c65e7a415";
+      sha256 = "ee39a51081690cc9d13dc68d9cec458ad1c7055ae765ebb26299ae5267c8c8aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fa/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fa/firefox-88.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "5066d7b66933924442d683aaa19aec9385b66eaf49a55b155653ffba57c287d0";
+      sha256 = "c61aff504e777a48272d61fe0648584f57b509a21f0f2f1269918ed5450e1131";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ff/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ff/firefox-88.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "35c8271fa506fcb43c20ccafb928b109125f3a17f80870a82365bc36f787b5ba";
+      sha256 = "39e47a89cb93b9cfa11030cb227cd9bfaf20434c7a70b91e5aa1ef4afbdf89cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fi/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fi/firefox-88.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "a3a0dc8cee1db20eb795aea5e94efafc96fc624e50159d8be7f449a093ffd291";
+      sha256 = "e71195871fe81b3b6125b8fa2415fd3fc9dd51a01f82ed7ba7f76840b58607b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fr/firefox-88.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "d9c1cdbbe2bacb06608f60745ab213cf80b27051c6b58f0ed7ef834b839da7fe";
+      sha256 = "2341c8cdd77a355e83d795e007ee1b5f3da783c090f2424914681666e72939d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/fy-NL/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/fy-NL/firefox-88.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "6f15a66cee03b494edf6a68641e0d5f886fe8528e23b9e129b11702cb9a4442e";
+      sha256 = "23f3ef8f9ca2552c2aa4c3159ff266b49e113888c855553fcec3920e8c317e23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ga-IE/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ga-IE/firefox-88.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "31fcb9d815afc52db6328b076d89eab85a89d4553748ee7741912d23c420fea2";
+      sha256 = "52b5cba15c62fa709f56d9f767e6f6eb8741480eb8e325e9a9a2c4c4d72a63ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gd/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gd/firefox-88.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "c9d0b868022bf5c0335ed488df0d6006541cdb7609f8854aedf22b931017ed31";
+      sha256 = "0a9ee7c11ff6d16d2b98fb6933102a310261e2a1f715935e162f535328662d3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gl/firefox-88.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b546355345950e17202c4f2676731b0fe126d4d551131648f10e8c61cb8a2f26";
+      sha256 = "795d38d83d728f550b6fe3efd238a7eb2760e9724bb86ba146190b141dbce8db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gn/firefox-88.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "51c403ad0460db69e2ed6213410d9fe2cb6ae9a5f100bd4f5ac7d36cc68b65c3";
+      sha256 = "ffff3d3bd7b0ff27629c3a9776b5e4eb16eb1ddd14aa01dc4073e573ac2674b8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/gu-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/gu-IN/firefox-88.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "dad776c9a4809c574967bb18d1ef96ab8eb5e95df713fe88fce044b755951550";
+      sha256 = "7a745004a27a87c965c3b3c7a3c9179bcffb8114fae7d90a51d0bc092884da43";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/he/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/he/firefox-88.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "972135a17b091e8338762c4f3e9c60d826dd8b4f4e65c22d6cb07daabac95558";
+      sha256 = "76ff3a975d0092bcfc98094e5ebfc638a192b0053b2d3c85be96d3dfe63e910c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hi-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hi-IN/firefox-88.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "5eec4571d25c0c62a0d773af25b2be93d158e06302a6e5d47a0fa60f0819941a";
+      sha256 = "6136353eff44b6234a111e622fda3882221107fd54ea0910fc659a9ad9afecfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hr/firefox-88.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "3183694fccb7a9560911d3d0813bf22ef79e1fdc8e72a5547258ff28b5ddbb6a";
+      sha256 = "a71b3730bb4916214122daf8ad3847a58d7d4fc0b4ff583080f64c6721962c83";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hsb/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hsb/firefox-88.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "82c02b623b0833468950a174a6c46bbf6c657252f0f876abb48e5b839a51f0c8";
+      sha256 = "9128347b9d06a6025b4dd4d7f864b0c8a8a3f49b786e79106e39514bffa14a87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hu/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hu/firefox-88.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "0db68343a32b3a69b323b8cf7eade47a453499e092eae5d57414739e2ea92619";
+      sha256 = "489550b063134a992e284d895e738c994109f700338b9158ef8c91c171ce66ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/hy-AM/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/hy-AM/firefox-88.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "65b9c3902feac56c5563fe24a8c1d0f3510fca9b90062f88e4072a0ef6258c06";
+      sha256 = "16b015356550f9a73ba2fcbb9e0a36936204da476da359f2e3bae57c08353e29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ia/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ia/firefox-88.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "50023eb339a5886cabdf7b71a65ab130fd0a5609cf18ceec9266100ce96e7c92";
+      sha256 = "9a543e14b7974e94e8ac6dab92a860b7cec778910f91060207c576cfd5ea1bd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/id/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/id/firefox-88.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "9a7279bcaeed8c6f6c44c4af728eddada5a96fd3c0204d10cd647d09721ec4e5";
+      sha256 = "970652219ba2228cbdd187d45a49f64cb8020220ac94e798896c5668bea90a44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/is/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/is/firefox-88.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "697d1ac2cbc467d8526b8cf6a525b21a22fecb78f421936901ed3ecf91911146";
+      sha256 = "d7011bb2ddb09d6f446ae9d8f790f0bb5382605385c8dbf04e200fe6e63c495a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/it/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/it/firefox-88.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "4f51f5c632f21a0b589e2c358972f69107ccde6a32c5619e5b9273cd54198e98";
+      sha256 = "a58681975cf3a79e32413d9b21655b6ace0ee2ab0df9ac45485344bf2f2f3fc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ja/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ja/firefox-88.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "2ce4af36d057c26f8b9f95b3c578dc738ea9ee80fbbb20f0c7257312499fb3bc";
+      sha256 = "b86e095903bc54db0bf0c6bbdc25184768c1537d57ccacf71a0da1d946bcf398";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ka/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ka/firefox-88.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "9d4d54895d3237c7431c367a5c9fc07b99b11c91a1645e89fa7668111bb70ffd";
+      sha256 = "e7e5277b9e239a8738f96378c87de3e204df9f530936a535aad991b6690f541d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kab/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kab/firefox-88.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "4e67ce270e0a56f5acbe61a22368bc011ccf420201716bd36f5aec42a5d477bc";
+      sha256 = "27b5edd4248feeb06f7c342a6f48b63ed98bfcd1d44f8ff467a204019b80263b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kk/firefox-88.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c1f1feaad98c108f73d575c2b59c3ff2fa26f9fb97a8d30182aeb4bd587063b1";
+      sha256 = "3187839a8941b3ceb64c42e084837ed5c9d01f0c518378fe21e5956bf5d4859d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/km/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/km/firefox-88.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "f99973849aa9e9ca4f7534cc6eb3bb7ccd75cf95f600a4a124dd2750da16d2a0";
+      sha256 = "6c0df74570cae46c379ee7271608449a31f46c3bce030613cb04edf1ff6d16f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/kn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/kn/firefox-88.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "4625c75234dfdd35aaa383ebcef3ba9e093c73aec2ca524a0f7b5b28a2438de1";
+      sha256 = "30116c65417489496836aa71771a3e4d01ef420d12d080ab8f5d02e6c713a513";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ko/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ko/firefox-88.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "d65454c1b36d26d7df7a1eb510f73e7fea47431c6e51dc2119ae6932e11f351e";
+      sha256 = "e73f7ee38b5061ab6b89b6c9817d1f70c85e4b6eacc22f6780a72c308bd8dfe9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lij/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lij/firefox-88.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "ef7668799697e1d9c35661f1f6c403307a6deb6b2f265a2906d8baa699c224a4";
+      sha256 = "c98b27de29c3f98e13b4b3803233f3d99eebe04f33d6761c64464872941a978e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lt/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lt/firefox-88.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "bd34fdcad69d3e0c79e226899d0df49e5244a4072446fd1cb7a290261f8473c1";
+      sha256 = "bb12e24f967b51b0ad2c7cfd0111f6c128f854a61d99e8262d64a5a4b2b972f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/lv/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/lv/firefox-88.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "34c379fa36cb7d1de95c99bfae8476f57a40d6d041941ad1884a8314f8511499";
+      sha256 = "65e19afa82c25c3793297db156bc72fae45754bf709cf15f4a6cd6aebf8af314";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/mk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/mk/firefox-88.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "4a9020fd5864d35efda8ee36454d72392ef3d2e5c50f0bcd6e6f3326dc8fb984";
+      sha256 = "f7717adeb13e7592f3940867b47ad6a53172c7b99dbe5904dc78838d7230d22a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/mr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/mr/firefox-88.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "6195db5fcfb95148c243d7fa4675fac0467f1093191bbb02dba714723a4f833a";
+      sha256 = "db9cc5d8f42595824792ff2cf80e67eab5f54a9cda7f87a0a81582d53c72ab61";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ms/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ms/firefox-88.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "95410958dbe73ead9ef89fcd81bdc3bd0bc6079cb8997962fd43fa07c6b546c7";
+      sha256 = "3daa35a19a5fad78ad81381f48c1e27ebe70f5be03634594f30097645f061593";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/my/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/my/firefox-88.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "c43a08c4410d7d5d48c29ebbb96765d45dcd20335125bc664f5593d56440e8f6";
+      sha256 = "de0f442f18cd82669b222bfd30aab14d1130e55765aee6992f7632f9b681284d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nb-NO/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nb-NO/firefox-88.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7f39e801ca6ce05bf6398b914acff4a3cd9016503a4401f9b51f92bd4b2c6737";
+      sha256 = "207136b91b4c830ed9c2bf4ba11b6a9f42696a3cd5b6815de1b9b4d8f265817f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ne-NP/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ne-NP/firefox-88.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "b3ccaa031229d8e369f1acedb49bd159d282cd771205beb2876a8c7d4fc90413";
+      sha256 = "47d3322091d3663d4544d7551ff1127e01b64a773770651fb320f56379b24e9f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nl/firefox-88.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "3647e87528883cd7bc3310000f77237dac6dc57b62b664c434b16b9bf736930c";
+      sha256 = "d4e06fd6bc83235dbd1ec49cd8e4bb0a0a62d735221196770f1268c79228b5be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/nn-NO/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/nn-NO/firefox-88.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "3a94b93c5bd68f82ff9d310295f6397b902390061d21c0560a0906415e7150f0";
+      sha256 = "57e49d9d199bb48ba594e21e5b57931785b9404d32259a45164a24123d9d1bb8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/oc/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/oc/firefox-88.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "a6fcecb568052565e051879487b34fce54b0e3ca3cc761dd27749d949153523b";
+      sha256 = "1108761ce4c7cb13077c4ebc6d9704923aa91f5affbae618768b9c855cadd784";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pa-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pa-IN/firefox-88.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "14b10789c0d94e60c85be5594a0a11654a31e60518c78c04e4bea2b5e64843bb";
+      sha256 = "bef979c51a367f733a365b3e7153dc7fa7b150d797ec15ed818983d81eaa4044";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pl/firefox-88.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "44aadea74c71dc86d7a5e0cbc04acbe2e26e46add5daaf0f8b31c4a17b439346";
+      sha256 = "69bc8bbca55a74d243fecc95d60d2c6075b911375b0bdebf6a4e238ee4f5b2ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pt-BR/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pt-BR/firefox-88.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "057eb47c7f45a1c0005a508bb36ee04b3edfce0e23e175fa311c9f1cc49b7e03";
+      sha256 = "c75ff2eca174e9ca9787c6e56e6e956c65027d111e8e05fa80a67df36b438dd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/pt-PT/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/pt-PT/firefox-88.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "dd33f93ef7acd1e183902bd85b292b7073beb9fca3b46279f0405bcd06016771";
+      sha256 = "fae035e106d4fd6fc19bcb0c081bb62bc328820b09f2ca40b30eb9542a7de046";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/rm/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/rm/firefox-88.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "dd7649d8de678648f54a6dab7a66246abb6b514ccb5044eebff5f6689bae99d7";
+      sha256 = "cd0ddd73f2281d88b5ecb6a6a92aac7ecb3a0d73074a3f8fc03d16cdcf30cc17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ro/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ro/firefox-88.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "bcbc82632f8a6802285f23bf0238738a5abe5e77d70596261cf7fbe6649c9560";
+      sha256 = "6d028e81212cfc2e450ce7824771292706b458b6fd6c63764fae2b0804a8ed7e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ru/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ru/firefox-88.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "bedcd965e2a460bbe2aef0fad6bfe524044ad29225d26009d5311b8796bcb64f";
+      sha256 = "bff057c7306cc5d2c553fc744552bdb249e32a381d34007fd469247a4f22960f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/si/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/si/firefox-88.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "bb93e1dc7621094f32e385632844169a8dc51369be8c5ca459dc17708e1d1ed8";
+      sha256 = "c73e53ce7498ac770a236f1f606dad29ce3ea6fc03713a223997b6e272cdb5c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sk/firefox-88.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d7dfbfcded930a7d8aa03e482c66004202824256255cf08aee5a84a41d825285";
+      sha256 = "ceafe41adedf9b9a354ddc9117a879b72f4331e4f7ff3ca3cbcce153b6cc7e42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sl/firefox-88.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "3ab06c56331850805e8e925deefb3cd0d21913fe88e04d6cd16ad9c59041d444";
+      sha256 = "3b39bdecfc71fff21040e28301b0c8193119f38e1a0877b168504f31dcc33d19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/son/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/son/firefox-88.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "6b93d5b1eeaf64ed591a285b1384d63dec16f388609c845e12f4565ed2bb32af";
+      sha256 = "437a98ebc049dd93537a52cfb56e19b1dd1142a61e9eaf0272e5bf490cb82022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sq/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sq/firefox-88.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "834a04d54a73886c58d0360c675b137b44a69b34003e5d77ba8516397e976874";
+      sha256 = "51b5da749c31fa8ca7af7b11d67f4b4d15c6924abed95d54c74c3107ba4b8fa2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sr/firefox-88.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "d629d7004fd5c3298e61ec154c7983b8b7bcc4ee8552ebbd53df81eec85e5cb0";
+      sha256 = "c8a99c7a3a2a7bb2a2e6958f0e7d0d5e13441e758a024a7a2129e6adaaa41cc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/sv-SE/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/sv-SE/firefox-88.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "c3d19f42894dac47f78684ea1a9bc9d7a6fbfd51b4186bcb06679a6666a280e6";
+      sha256 = "a2ec634c6f269de30f6020946e76a42ddb592da4636bfa64d87dd4711a1adbe6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/szl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/szl/firefox-88.0.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "3572e4ef3dc20960e60f342e0dcbb4ca374c9184cf84c40d644c3677b8dbf4b8";
+      sha256 = "4bf6b15dd8fd99ed8d144091ae1e6ed4a1d9922d50c9bab6f5569b73ef695213";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ta/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ta/firefox-88.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "b2f40c2f906fa1cdc67ba12faaab62468e71b9c9ec1c28790db56a4728e5f897";
+      sha256 = "959cd948b386e2416c905eb13de3b22b94cf3d6592458dbe52106e6eaef9837f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/te/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/te/firefox-88.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "81f135e5b9e1c90cb22baee13c5ebd5d2a954f3d3a31be74489eb9bbf4dda7ce";
+      sha256 = "8e1b26c7c4340665ede28290ae8298a877a735f078bf9440fefc65d13c0675d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/th/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/th/firefox-88.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "dac4e7326e9a2b0c6eec8361ebcf23afc95087f5fabb964c7802856bd8de02cb";
+      sha256 = "d724ccdebe9a34909bd379d06c4af9beba245525374ccc090c492c3a95d65115";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/tl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/tl/firefox-88.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "9be7f3be1ebdfc19c8da8a70b1eef8108c6508dc6c37b39824ef11756f62768c";
+      sha256 = "76ec33e8f4a2b75e8f2b3c115c9b366d3c508ad9f1a33c942a7a6062525e51c8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/tr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/tr/firefox-88.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "d7be3f1cab9759042cc30002063764dc66a9f622df71291daf93faa204090b02";
+      sha256 = "6aad672d2b197a23418fcc98347829fa00b9099b8e48812b05c6da5a57ecc175";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/trs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/trs/firefox-88.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "31b5dc1f40614975a8e3fa05caa0dd8dcab6b15dd0ff1ac4626d9c19b3e763ba";
+      sha256 = "061c0feb9d7cdc622d5eef97b8b4fe5153f0900358349c1ec1ca95d7c4a8f744";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/uk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/uk/firefox-88.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "a53842d484e2a632931a72b16b3c8e30c902dc1e46c3cf2a7711bea1fd0911b2";
+      sha256 = "77b603973f98b6ccd577a1daad05351b41a04d00b91a144ae9385d76a7c87c42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/ur/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/ur/firefox-88.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "1353882717c9ae8e35523ab403870fb08f06ddec2df0730637195b1ee112e746";
+      sha256 = "e1f814600f1fecf237ba80870c8b70f548e994827618d2cc9c220b4ef15c6404";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/uz/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/uz/firefox-88.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "43feb49aefcd292f61faadda2771251017c6104038ab1474d43f5cae1e8ee3ab";
+      sha256 = "032c603683f2e26956809835d38abe4676d9383917d56f5e64735754784161a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/vi/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/vi/firefox-88.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "d74a8de627e877e9c28cd19832605e039398dcea312a4784099151972d380516";
+      sha256 = "3504f2c00d2b2225167200a7f1b809a71d2168d6c2cb048c94d221f40417a1a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/xh/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/xh/firefox-88.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "3251086b6f58c311906c49a6b499db17eaa3122a8ffcafb6f303db0489530560";
+      sha256 = "68611d455147c4aaefaf1ad026d42a9600af923bd261b3326eb4395c7791ba60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/zh-CN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/zh-CN/firefox-88.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "4d3471f60685d251b10dd1dc06610bb3ebf9d7a4e03616a6f6d988278868dc05";
+      sha256 = "cbe315c6e9e4c05ee308a04d352c2573d9197b3aa200cfd82195fce852c017f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-x86_64/zh-TW/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-x86_64/zh-TW/firefox-88.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "8fcfa5987a0cfa37d5408c88701378e970960d21d181342ea2a3d6c43f4e4cc3";
+      sha256 = "e130ed291b9833c687ba1c11c6abb192c8ea258ee5f7300a5cd5f0154d634d5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ach/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ach/firefox-88.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "42ba93ba360aac202bd0b653a982dea3c1ea0d5cd6c530deef47c29c189c197f";
+      sha256 = "099c38d992da934be008e40b4ea0cce6e46f45f838cfb64b5e0b129a10f9f9af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/af/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/af/firefox-88.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "9aef316b230194ec02ebb1e7780e61d85b1a4cd398d56ec0c5238bfb9af8278d";
+      sha256 = "56a0573fe7cb11133264363307ce3810177c6f03415ed3bee895765a4e737652";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/an/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/an/firefox-88.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "a645abc8fafb548a495efdf9e88ce96af06d0fa4703ed5ea6b63ae79d309f3f6";
+      sha256 = "f0e12115504b079863d30ffc7e19f497c4563723023a3ad40b293c2d305921c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ar/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ar/firefox-88.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "c85e9eaf8480ec226eab70a8b434f56fbd5f4f8a7e57f13b341d478142e4ef99";
+      sha256 = "2793fbba47c73a9c86bdb6665c7d28e7af5a0c6145b6751eb0bd38a3ec890818";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ast/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ast/firefox-88.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "96a1fe1ab748ba2f99a23fd149f1d0b60a27f4d96ad12bb2473ec0393597e968";
+      sha256 = "e55e686603b6b827c49e87d52b547952b09ef0ceb105224b6ede539a5b269c8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/az/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/az/firefox-88.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "52d3bc8e60196814f7ed1d1732faf32b4129a25379e9f526db7e6b755bbd5746";
+      sha256 = "a491479be97c794fc89184e32dec3fb6bd1775139ec0e02fcf0b8679ce8d9697";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/be/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/be/firefox-88.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "8cadf14d2ce8341e8a6a11a298203e121125d12ca63833642186b79ae79b5643";
+      sha256 = "5561e4e9730ac83d94e0e19cb7509cbc8986559e49d4386059021ec776b7ce60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bg/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bg/firefox-88.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "b60d8361c16f9b200255e6a904fdbf8da00a6f33a95280e456b471d54cac75d4";
+      sha256 = "8ffbce4041bba8a69fc3cde897e816c2f71a675a0935415d219835535a4644b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bn/firefox-88.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "1818bdfc297e2928255c006f8772478ce574c34748102ef64c5645ff59e3e2c3";
+      sha256 = "826eed8716f6b02858f17d75da1dd39b7914c9b487c074c9065fb49917825b12";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/br/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/br/firefox-88.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "7989cb7ba1a6984891c6eaa48a35b09281d0b8c7532c46cb1c87008bff5b68fc";
+      sha256 = "3c2dc18b43a925d8bd0c46e3c108a74e07fb122ae72e723c108b9fdf8e0b70a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/bs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/bs/firefox-88.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "d618086558e44219582ff263d9555855bd562e0a8b9d588c2a03734d003e1138";
+      sha256 = "459bd06be3caa151b38fd3260405a8ef9d13fc445be4c6a218fe0074ad7140bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ca-valencia/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ca-valencia/firefox-88.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "8f74cf450192bc9dfd2877269f98663ebeb06fdd0cd6d25db3261e5d1f6b36c2";
+      sha256 = "506d8950cdfc9ecea83789d9116c2fbdc7541d756f7e07db710b7dbf7eb51118";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ca/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ca/firefox-88.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "dee6a1ded1c10b4771294435c23e433ed209dfe55db9cbcc0454b0da23d26cec";
+      sha256 = "c0ae65141073ebccd18c0e053198db998225150c4c1724bf0d07cf8954198e41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cak/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cak/firefox-88.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "9e55f71f4040c21d79fabe4487cf5b660baca37c23875a31015e70a520fe0737";
+      sha256 = "5cc2ed5014cedec417a1cdfe193364031163b0c03c26af49293e54401c071ae1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cs/firefox-88.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "3121a7d49718ebf6c9a8babe0f57962547b54b99864f917d045f78ea4a4aede7";
+      sha256 = "49ab8e8599bc78d1c7613d6b58f1a3da63af6ad6a4029fcb1977c3181eb190ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/cy/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/cy/firefox-88.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "02c5a049462f3d4c0a538a62756af8b4e59b1acdfc4d92d43639ee3a27e568a1";
+      sha256 = "1ded8c796d12aac6d0767b1694f1a3ba7a852c8d9feaa1b1f3158c561539e553";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/da/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/da/firefox-88.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "8bc3ad5f69850d0fd4c91ef2296462fc2c641e8eb9835ac5ffe88a9dd518821a";
+      sha256 = "f17e25561c7cc08b70dc66eb7904f9f4d27eda7ab1e79beca813b6ec86b8774b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/de/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/de/firefox-88.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "2e9e562e10477f4a54d677bf2cd6becf87e4f40336fea8f4337f5e7d928f28f8";
+      sha256 = "6fdbff1eed3657ef9979d1e63941ed4e9340de8741c03c46075841f1acb10e95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/dsb/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/dsb/firefox-88.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "fc1881741d5aeaa5cc34e9b86515c8ad637984d88814c48f8f014dfab55bf02c";
+      sha256 = "2a8ad12cf7487892097a6673fa9dade3fb30163c5d5fe5ad61c7ec417aba8363";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/el/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/el/firefox-88.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "cc44c88c82adbdcde8690825851711b48212a49aa74b7485cc51d234a5027cfa";
+      sha256 = "e7b74c223382724059e70608bc62946a792203b5c688d4802de70d25955485e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-CA/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-CA/firefox-88.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "c6a32c84bd3ed42ee801a5780cf45a6061fc8b37de4220907a98d674831c0a00";
+      sha256 = "eac978e84c34544bcea96a6c57b59644d7d282c4250942b7acf8365aadbf8e5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-GB/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-GB/firefox-88.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "cbf4e049602873ae13eabc2176657bdfb95fd4277360991ab4ef2a4e7be697f6";
+      sha256 = "c1c69617ea1e048a2f141592b602745d2e9e556172f896379d5fdfb2b2c5c3c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/en-US/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/en-US/firefox-88.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "9127aee106dd9f09fac0c3cb89c5d75553384da4ec9be5943b60a5f55f31fccc";
+      sha256 = "a6f45b2aac37f917c0e3b8450cce94646f8734215d8f04a896f21cdbca7ba77b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/eo/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/eo/firefox-88.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "7f75cb2fa8c73bc98a4d5b0f60ddbc66eff63a9caa271b98bb8eb4897fecdd49";
+      sha256 = "73f658ca036879f9a70a1f9205c7da2899b1c1c59e58d957e165ea7bbcd5e34b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-AR/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-AR/firefox-88.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "090b13b1698e70c0d13409ffac5b45a044356556e3ecab970fd34907e16cfc11";
+      sha256 = "6a5aa32bfb51de74b2d5c3567550ae0ed2820fbc302a48449a3ddc1f65eb279f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-CL/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-CL/firefox-88.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "1453a40f9c2ae6794dc886d1c5462e4341141fe84792e32a08b0e6c4ac5183c9";
+      sha256 = "4c2d5cead45a8535a6c2e1a64bde129cf104ef1d4cf4d85a673c7b3500c1609f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-ES/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-ES/firefox-88.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "3dc986b05c389dab03cacd1672c8621f1ec93e5781dd79ec18358e3a1f2e8f84";
+      sha256 = "8f8c2bb4af01cb144f751ecc9dd010ea24f557b75d7c08a09eeb023945c4cb62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/es-MX/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/es-MX/firefox-88.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "e6b18f0adf5ff99d1c7f84dbabc00b44ad7c3c2a4b95586f58d18421f28dfa1c";
+      sha256 = "4dedabb4b1e51e22e2eeedbb448f96c4f7e6dd44b3e5fc414a81a22b1e03c73f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/et/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/et/firefox-88.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "573cabc8b8eed9e80d43ce960660737fad1f3bf43266d3e72ea475bec931eb9d";
+      sha256 = "23b5abc7775a964ba1ee5752f8b61c7edf4c1e1eaf8962b66f13ac638da9ed25";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/eu/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/eu/firefox-88.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "5b3d1ecd842b30029fa1749ad7a1aa6486bf96f977d5f274ecababe7909c71b0";
+      sha256 = "3c87dc6406ca147713e5530b773581333d0c0835cab15d3e3254a4dab5e74e0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fa/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fa/firefox-88.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "41edf84920463d8c1f6ac8a8c0c5068143652129ec42377e3a3973d54e8477c0";
+      sha256 = "b20949a6b54614935ca46ab5c7f2d3116ac3323a775ad812096d964cbd05dbc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ff/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ff/firefox-88.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "492d2b1307558b1b19b5d1d88bcc0eb151d00ebc1331356520068597614919f4";
+      sha256 = "6f26c249f264b714e22402dc079d54fef92e1092a3ce12fbd61be283835c32a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fi/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fi/firefox-88.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "f495c5d6965c2fdfd06d23616f4b017c600e07efc22984be743c3eadcb5eceb5";
+      sha256 = "f6bdd115eb26dad32b019c8e854e2bc1f67b7a3d56cd044199ef0cb4c79a3d29";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fr/firefox-88.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "ba0cbea290a3911a6bc24fd52e726234f90213b05756a57aeeb01a8ebcc7af73";
+      sha256 = "bdf941c1a60dd2018d341e439acb7746401298b7492ec1e93b2fc744f3ace4b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/fy-NL/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/fy-NL/firefox-88.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "9e9dfcea10f89836b3d63420f90f992b123dcec3beceb3eb739d47b15ced4a1a";
+      sha256 = "cfb472e1e98f0ec8a9a6b24e8f31113ab25fcb7d1a01ddde09004414a0ac7954";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ga-IE/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ga-IE/firefox-88.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "316b6877a46f452d628509bf94c4e729080d93cb8590d8c17f9ce030823a3b86";
+      sha256 = "20aaafb2d88eb09863ffb17c88df2d31aa20089672eef91e19c26795fb083de7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gd/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gd/firefox-88.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "34f2b2660f76ca13697ca029fe06cbdada7e8a0ee3f703c55b5290af4f59d687";
+      sha256 = "af7d5ff85091ffb76cf15c0ed10e1148356fa5c3985e81a38c08c04f5c281064";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gl/firefox-88.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "b61531887132193a3b68fc1394682305bf242bb8244f19c6e6dc158b0e6dda61";
+      sha256 = "28b4c52dd5191a5990a540029df8bc5ac40d5e38c23e2bbb0a2f9bd73623e74f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gn/firefox-88.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "286d7c949488a93370055dc650a70825df689b496de47382c7c326d0be16cf11";
+      sha256 = "5834d96a0daaf084c0ddf33490287ec2a3c376420db87904e550cf341953567b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/gu-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/gu-IN/firefox-88.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "c04e2f3cd9514b8494122af0baa474b2e3ac91d62939ec1117f3b07efbffecc0";
+      sha256 = "025f19f373cbb3bb26029e119653a8fb1b8451166959493a75cbe89e16ae6d0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/he/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/he/firefox-88.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "9f4436ba36fe3d73f22c0837fa124e712c58169d9db1cccaad91187d895f4b95";
+      sha256 = "3f6433e730b5a5ba0d1da4cc1d69e497b115394f5be5a8f91888bcfccfd35d92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hi-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hi-IN/firefox-88.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "e1c3674ef1a401c6f8f5f9f3f4cfdc9a858fc670f71d0b09d79677820ed6ddb1";
+      sha256 = "7ad200b8615fd8a703fd142314d72e4769f07ba420b62009d0985ff850305a4d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hr/firefox-88.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "7dc0f6c2cf38f90741a8c0a2f5df22b32abb6399d9b24cc827f1ae972a481b23";
+      sha256 = "b1dbefc5e048a496ea95abf5f25ace36e1d901a0ce4d1525606eb1337ef73212";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hsb/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hsb/firefox-88.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "d59ee63de2bcb95575a782294cad35a0ea99eb4c8e4bde8539cd20326d85b41b";
+      sha256 = "54d82c14cd3dcba66b1efd8d9e44f69827c51f7ffa6bbfcfaa82be3c0881d2f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hu/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hu/firefox-88.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "c9d13a693183290db6a62eda37da63f0d1535db5604a6f62d88b990ac3ea39ef";
+      sha256 = "e70da56c35e3f133a8942a08a97fc0905887e722d684138329d45195d4281254";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/hy-AM/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/hy-AM/firefox-88.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "7edb84df00e57987f4cbef235a1fecc22b6dd7aaafe101f62e002e4e59caf56e";
+      sha256 = "ec8a7e6a0efe5715be61344116489215177dbaf103412a5f726006afcd2c9907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ia/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ia/firefox-88.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "501cafeb34aef4d8dae63f47446abf8b04dcfee93b9931ec06f809823a6c675a";
+      sha256 = "fe534973e0c2a86425c6d3abfd15d29fda8281924ec5d1c6cf32d067cfc439d5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/id/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/id/firefox-88.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "9913aec5634c32300c2f556017be415ef6516a4380af3e597b2abd8e449e82a6";
+      sha256 = "6e82306244398be24cd82790ddca2885b14cb1d909e416ef7b2f569a09bdbd34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/is/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/is/firefox-88.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "71b1bf3205043c5c23988de6955a51091ec812e82701d0f37c12e937ed774b69";
+      sha256 = "83c237806e5ae3f6ae926e215caa74ad22e13e375c9b462de663fd836a819a3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/it/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/it/firefox-88.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "7a842251175a2db53e0bec3b65c2db0007a1fe5d84ec126fa9029c6d9dbc732c";
+      sha256 = "ff72131ccce409524b044d32fdd18150524033db8841876bfcf39d43c376ce8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ja/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ja/firefox-88.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "6a8aa33e333fcfa9bb2a011d08af0d10b445be1a22dacc4458c121e8943b1f62";
+      sha256 = "6392b53788f0908da45ef6e321445430c8a9db385a134a95c63826fdc0ad289f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ka/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ka/firefox-88.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "f2d2cc7b079e0ca69de3568b10bdf6d7f74ef7f8b0bd05a89442be41df3d2239";
+      sha256 = "a24cd3fd2c46dbe764a4af86f5f79a97d1ef0c3a37bfb61883556c48d987a067";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kab/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kab/firefox-88.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "7211457301c54fed01aa3b0735fc7f0814d4fbfeb7862ebe438f5cebf7fed6e6";
+      sha256 = "68ea95f04d07ed0c0f0fb92f4ab3ace4abd0c43a878548ffcbed61024efb8a8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kk/firefox-88.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "8b18ac077d961279b2bb179ea37819de964e488ab528d4591ce2479ecae167ee";
+      sha256 = "6e190c44a82faa476214369e0b32c2d70d6ec4394a7c289c8c73e8d1b70b1de6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/km/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/km/firefox-88.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "6b06454f9e061ae6d099ffbb2079d92538b32eb619d12858c3d759f004c427c6";
+      sha256 = "532ee78e0cb774ff3a131e6bb48e27701fa136297eb3c119ac9644e05b66bf4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/kn/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/kn/firefox-88.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "4b8d711f0f33c850d2bf39f16ef0da7e004374445ad8bb3e69e0b74ff0765cd1";
+      sha256 = "547b191ab90c4b81209e519f675ced74cc2579f7776005c9f2e8fb677a79ed54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ko/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ko/firefox-88.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "f6da2239dc4e457623a64f2ac5e56868e70115941ddd3c19093ba180a3aeea7a";
+      sha256 = "d8567c735f37308db5e541cbc44bd69aac0b5e86a5e55bb1915f10ab8cac32f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lij/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lij/firefox-88.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "fc45263e353af69c7dc2e5d74edefa793b0f1d2bb86f496dd75ad66bdfc7ffe1";
+      sha256 = "e70a068ff713889d452cefde7bf19be4bf65349099026c57074d4cd035ba3c1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lt/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lt/firefox-88.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "f030574f0bfb8574ce07159fdd213f1e21c4293bf7e1961080e6ef10f7f14b42";
+      sha256 = "9c2a6ebc75cc6becd5d8b73a8c47674ea71a4b97fdde973c2832d9bb76f91f4e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/lv/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/lv/firefox-88.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "7648c4616260b09161a3431120fd99c97c5630347ad4ac196956eae4cb4b18f6";
+      sha256 = "ad628812c1db1ee9b7ff0f9d2f308db2480427bbdf5b6430474400cf70a82696";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/mk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/mk/firefox-88.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "c7bfcf5ee846d340d454d6cce2e66c0245bca10d1b74887170ba3820c392155a";
+      sha256 = "17b3c4004f149f66c0f6feb5a2a644b7b815d2b440fac9df597bed0cafdb06e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/mr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/mr/firefox-88.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "808207c6efa62312abf14091992022a3d37ba906c8003316d6af943228ba534a";
+      sha256 = "406e1c0435c4ff1233c9da0931ba4ba5a23a3cd1f05ed7202123ca04497f3a83";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ms/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ms/firefox-88.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "f836343cd1116657b8f8f28f49df99b36a13a4255d0499945953b64934f80e64";
+      sha256 = "a312c23b1069438c8b0534007bf17c0b9e5b63d768b3cf24acefda1a257f0f5d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/my/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/my/firefox-88.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "1c01f7dcea9ecbf1af3cc29cb38aa8cd928dc6c10f67fdb20f98a588951336de";
+      sha256 = "93c9db14e9e462d89f04e928ac8ef3e3abdc682dc82a1781e76dcd62a2122c2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nb-NO/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nb-NO/firefox-88.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "f196268af59a118a4c5ca50b5c7f9ace27d642fd1952085dd693f09462eb27a9";
+      sha256 = "321068345667a18ae07435d78371931c55c306df14bccf74e1dbaa582d3e46fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ne-NP/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ne-NP/firefox-88.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "6a80edda7e3b0f97282840eaacd9d4d003e6562c4931a14736bd1aba6ea8eb7c";
+      sha256 = "fe92879652c7eccde08e9017f37daaca5f387be0fd7784051d2c0b7e9c83f298";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nl/firefox-88.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "495a43b18aa2078bd86468cbd1545ea04b0fc63c847a459156489c18432fe5ff";
+      sha256 = "a8dbdf538cf310d2918026e907e8422a4b5cccb943323f1ec3b391c61341818c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/nn-NO/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/nn-NO/firefox-88.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "a3d58b74e2ee2c97a2b4aa5855040f34f79024df55d8de6623991df61cfc3b46";
+      sha256 = "5a7ef37d7a2d13a2188781b69c01fc1b648c198aafc6ace0e7c818f58bea6e2d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/oc/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/oc/firefox-88.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "c71e444eb03df8c4b28dc34d4cfc32db2471ba12389f448c28a9dc03fc0dbfb1";
+      sha256 = "083eef36f466362ea6726170be55e6410b3394b316d3c0ee866c5a1200db6949";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pa-IN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pa-IN/firefox-88.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "69eedac3a7f2912f179e2c5838f4dbe109c1b1c570ea1f375d5563a622553f13";
+      sha256 = "ed57e8e612d677f69776e3bafcdb174ac73e35d493151e282eb2f7f8a062c62f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pl/firefox-88.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "106012905a00d898ad3fa43c733c1f568c0df2e74165276feb5b3f5eb79a3b20";
+      sha256 = "83523f00d01f1e41b6777789026e820de1a94f9fd413f5c2e9279d4da21697cf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pt-BR/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pt-BR/firefox-88.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "18434861a77abb7810008af068589250ae5621c1719ed4d37643c7aa3607070a";
+      sha256 = "8d5e40ef90329e0fdc39d09b4f2a1492120182020c77a78b588e8eb66515876f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/pt-PT/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/pt-PT/firefox-88.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b27fc0941804f4bedf10c15e26fd14fc381416a2c29fbe9b4d01f328e2164022";
+      sha256 = "571539f8fee1519abd04900ac6ede845f0a500f612cb1b0e0a9b0415174eb45a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/rm/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/rm/firefox-88.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "2283c43282caeee2798a93af96979e46a103b3ab7c645e72384fe19973c49534";
+      sha256 = "7e1ec5a0f813e8c1415f6a85e3f38bc03a8699a88573f1735345eb4099a0bd66";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ro/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ro/firefox-88.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "6d7ba9b40f17f373c4eb151a4bbf6399d27a8e5071342d25a374afc67914bace";
+      sha256 = "5618fabc43c88e541160e8d6c515a04dc5a6c0a9aae4302b7be2f906c2559fa3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ru/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ru/firefox-88.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "77341829394b41ed8cf63090c30b993e3a540b838bb476239398795eb026442b";
+      sha256 = "aca739451ce91482029101c0010d2fa8f92bb155abd96c601df495dcc1894706";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/si/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/si/firefox-88.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "b7aaa753f54ca1aa5172c39e9899c662f62cb81628f29d29ed8774c68697d1fc";
+      sha256 = "6ce0ccfc444784d1a91bb860fe3bf4910cc6a1ac12074d6b113f23028ded5d23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sk/firefox-88.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "fc70db60786a652dfa0d8614c24bb4b5cb46849a468903723c9e9cdfebd9eb52";
+      sha256 = "eac64804e893db4ef8a241ae1fc33b9cddd6f91e37418977c7879a0b620b56ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sl/firefox-88.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "392eccb8277c76b4178b6fb74c8974ad31e0b36fe8778b5933b37f6249d3c9b9";
+      sha256 = "0d2531fdaa0259b02264a3b45b5bef081aa196526259dbb1560c53e0683991af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/son/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/son/firefox-88.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "c95c7ff206a42cf5c4caba9a3377834c1b8b4d258de566efed15ab0815b64726";
+      sha256 = "dd384928a67803465f0a040cf9ce6b8680e44aec0bf8bb940b56026d550b5ba7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sq/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sq/firefox-88.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "7eb9cbe937262ed47711df80143b49d369bfb185119a3fb51f8a723bb99b1f9d";
+      sha256 = "01523311694f7de9d035b838d94b28083c5800b55ff3ff5ea853c4e668a28495";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sr/firefox-88.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "4d4b88503ccc6d5f5c16988c626027516681d265b32ee205324919a170caa1b7";
+      sha256 = "5e6253d7c7f9f335fa2fd96562ebac2d78091264034f6673c3398fc725496e38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/sv-SE/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/sv-SE/firefox-88.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "fe2fdf76541c95166fae7b9d1c0b3390552968ac0a8f47f2e23da750c8b8753a";
+      sha256 = "6f8864ffa2195578543b2c36c782cf7fb7ba4bcd7096245695cd8ba89ed0bcc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/szl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/szl/firefox-88.0.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "af91e1a4d0afefd890ce9ab04ac800427670a314089b67dc41e12bfa43ecf112";
+      sha256 = "b4ccf73a518f9f4ff64adaecaedb4a7dfe116ac9f579cc1713086bc00a62c2bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ta/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ta/firefox-88.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "043162612ff54115953c25333fcc03d801176db1d379cb7c94f22c0da5a1ae00";
+      sha256 = "5e0e58a52836e13f2cd49acd026feaff2d27059c9525501df3892bb29364ca4a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/te/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/te/firefox-88.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "2fca2c54dd357d8d5e3bb8804dbc3cfcc7fd1c17f538eaf1e1fd60c95baf7252";
+      sha256 = "55c0dff310e6a8e239540aa04777a2eab384b4876a78354a87b0b5b51b7994e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/th/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/th/firefox-88.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "b049f6cc876fce2d57387d2c90afff4f261baf38e582821656efd455fdbadc03";
+      sha256 = "2a62c240946d8330166371d42fe9c04f246953a61958a9a66d28382bbad902fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/tl/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/tl/firefox-88.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "be18fe1caae3a85e3a48b0a5a45cb175bd11c31d1cfbe726dbe4952c50338299";
+      sha256 = "ed76eb7e7c221bfa0ab06446a3b5ba40728bb61c92a303cdf2ca4099a0f4f8fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/tr/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/tr/firefox-88.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "5c43338e0fc0138c280f9231e05c14a553d2b0504053b5c090adb7ecb96cf8d7";
+      sha256 = "36d3142aee1011b41b8a91fb8b5f1e7cbf6011b55acb93b0a24b9fcdb41077ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/trs/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/trs/firefox-88.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "510ee9988f4d1c6e0e50fc07d00d2aa80380f89f8db4b0655c7a9c0aaf07fc51";
+      sha256 = "2f8f414f0c0ca102e359df2b24090e23d9a440b971506058be4ab14d2c72e88c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/uk/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/uk/firefox-88.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "a01aa11750b6027f01b45763d691c425b65aa577fe9fcae6f492b40bb8ff6056";
+      sha256 = "671523abb993c10c355f23029dee6f718b1c3934b9dc84c9c9c67a1fea97c08a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/ur/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/ur/firefox-88.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "f2e83dfd361dc8abfc3fab5554d1c545b216a05f57718aa1f8976f7c2dda3b17";
+      sha256 = "e88871cd7d3bb4eed5a466d46f19b7564bacc2274fd9dca198abf690c09f1173";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/uz/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/uz/firefox-88.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "4c570ba3aa3480efd63ba230b550d750a49289b3bafe9ede881b28184ac26ca1";
+      sha256 = "d8c6d54bf364fdfce2c47554f2e476dc1578334b5fc7f2c35fe5e75729d0a759";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/vi/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/vi/firefox-88.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "846862d789b275ba1184b1f65a95570043ee1f8e2f7da5678252c192a8d31966";
+      sha256 = "ef62bf56b514342e96c846a8d60da76b13955cab1a65c9d5e06e5add80676d4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/xh/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/xh/firefox-88.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "5c5a88654bcec7a8c5bb7245567270542823a377c7843a6b14d8f12cf57b7b59";
+      sha256 = "30c97916ef8964ec1b15ab08bed806867262fecf07d0e486e8b4821f2839a214";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/zh-CN/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/zh-CN/firefox-88.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "b7774306c5941feb5b7abf4fbc3e3d3af854145fff741f561708b5ee94d1816b";
+      sha256 = "6aca619cf86cec55e4712c2365e0ffa06c3a13b9df0cf64df80ea6ac07036400";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/87.0/linux-i686/zh-TW/firefox-87.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/88.0/linux-i686/zh-TW/firefox-88.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "d115d7086947003940bc270b6a83aa612324f7913e044a194c1e05648e241b17";
+      sha256 = "4c60f41d35bc74fdda6b3cbdd0b7bb19883bb2e977bcd04bb50ae014d0f8c3d4";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 3a8fec2c6ef..24195e578bd 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -6,7 +6,7 @@
 , libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
 , freetype, fontconfig, file, nspr, nss, nss_3_53
 , yasm, libGLU, libGL, sqlite, unzip, makeWrapper
-, hunspell, libXdamage, libevent, libstartup_notification
+, hunspell, libevent, libstartup_notification
 , libvpx_1_8
 , icu67, libpng, jemalloc, glib, pciutils
 , autoconf213, which, gnused, rustPackages, rustPackages_1_45
@@ -22,7 +22,7 @@
 , pulseaudioSupport ? stdenv.isLinux, libpulseaudio
 , ffmpegSupport ? true
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
-, waylandSupport ? true, libxkbcommon
+, waylandSupport ? true, libxkbcommon, libdrm
 , ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
 , gssSupport ? true, libkrb5
 , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
@@ -161,6 +161,7 @@ buildStdenv.mkDerivation ({
     xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
     xorg.pixman yasm libGLU libGL
     xorg.xorgproto
+    xorg.libXdamage
     xorg.libXext makeWrapper
     libevent libstartup_notification /* cairo */
     libpng jemalloc glib
@@ -175,7 +176,7 @@ buildStdenv.mkDerivation ({
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
   ++ lib.optional  gssSupport libkrb5
-  ++ lib.optional  waylandSupport libxkbcommon
+  ++ lib.optionals waylandSupport [ libxkbcommon libdrm ]
   ++ lib.optional  pipewireSupport pipewire
   ++ lib.optional  (lib.versionAtLeast ffversion "82") gnum4
   ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 7a3fc9b9a07..9629c590122 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "87.0";
+    ffversion = "88.0";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "c1c08be2283e7a162c8be2f2647ec2bb85cab592738dc45e4b4ffb72969229cc0019a30782a4cb27f09a13b088c63841071dd202b3543dfba295140a7d6246a4";
+      sha512 = "f58f44f2f0d0f54eae5ab4fa439205feb8b9209b1bf2ea2ae0c9691e9e583bae2cbd4033edb5bdf4e37eda5b95fca688499bed000fe26ced8ff4bbc49347ce31";
     };
 
     meta = {
@@ -32,10 +32,10 @@ rec {
 
   firefox-esr-78 = common rec {
     pname = "firefox-esr";
-    ffversion = "78.9.0esr";
+    ffversion = "78.10.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "28582fc0a03fb50c0a817deb1083817bb7f2f5d38e98439bf655ed4ee18c83568b3002a59ef76edf357bfb11f55832a221d14130f116aac19d850768fba3ac8b";
+      sha512 = "5e2cf137dc781855542c29df6152fa74ba749801640ade3cf01487ce993786b87a4f603d25c0af9323e67c7e15c75655523428c1c1426527b8623c7ded9f5946";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 390b26a1b9e..62bb722652a 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -257,13 +257,12 @@ let
 
         makeWrapper "$oldExe" \
           "$out${browser.execdir or "/bin"}/${browserName}${nameSuffix}" \
-            --suffix LD_LIBRARY_PATH ':' "$libs" \
+            --prefix LD_LIBRARY_PATH ':' "$libs" \
             --suffix-each GTK_PATH ':' "$gtk_modules" \
             --prefix PATH ':' "${xdg-utils}/bin" \
             --suffix PATH ':' "$out${browser.execdir or "/bin"}" \
             --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}" \
             --set MOZ_SYSTEM_DIR "$out/lib/mozilla" \
-            --set SNAP_NAME "firefox" \
             --set MOZ_LEGACY_PROFILES 1 \
             --set MOZ_ALLOW_DOWNGRADE 1 \
             ${lib.optionalString forceWayland ''
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index d903cb3c083..36d97b5a87c 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -146,7 +146,7 @@ in stdenv.mkDerivation {
       --prefix XDG_DATA_DIRS   : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
       --add-flags ${escapeShellArg commandLineArgs}
 
-    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
+    for elf in $out/share/google/$appname/{chrome,chrome-sandbox,crashpad_handler,nacl_helper}; do
       patchelf --set-rpath $rpath $elf
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
     done
@@ -161,5 +161,8 @@ in stdenv.mkDerivation {
     # will try to merge PRs and respond to issues but I'm not actually using
     # Google Chrome.
     platforms = [ "x86_64-linux" ];
+    mainProgram =
+      if (channel == "dev") then "google-chrome-unstable"
+      else "google-chrome-${channel}";
   };
 }
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index abb0bd15515..93e5da02e57 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.3.2";
+  version = "1.3.4";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-90MN7JH84h10dSXt5Kwc2V3FKVutQ7AmNcR4TK2bpBY=";
+    sha256 = "sha256-hPNqyTH2oMPytvYAF9sjEQ9ibaJYDODA33ZrDuWnloU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index eefe7af26a1..3598f7b617a 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -26,9 +26,11 @@
 , libXrandr
 , libXrender
 , libXtst
+, libdrm
 , libnotify
 , libpulseaudio
 , libuuid
+, mesa
 , nspr
 , nss
 , pango
@@ -88,9 +90,11 @@ in stdenv.mkDerivation rec {
     libXrandr
     libXrender
     libXtst
+    libdrm
     libnotify
     libuuid
     libxcb
+    mesa
     nspr
     nss
     pango
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 554167c3574..9bc9727dd18 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,29 +1,59 @@
-{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
-, pkg-config, autoconf213, alsaLib, bzip2, cairo
-, dbus, dbus-glib, ffmpeg, file, fontconfig, freetype
-, gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
-, libnotify, libstartup_notification, wrapGAppsHook
-, libGLU, libGL, perl, python2, libpulseaudio
-, unzip, xorg, wget, which, yasm, zip, zlib
-
-, withGTK3 ? true, gtk3
+# Compiler in stdenv MUST be a supported one for official branding
+# See https://developer.palemoon.org/build/linux/
+# TODO assert if stdenv.cc is supported?
+{ stdenv
+, lib
+, fetchFromGitHub
+, writeScript
+, alsaLib
+, autoconf213
+, cairo
+, desktop-file-utils
+, dbus
+, dbus-glib
+, ffmpeg
+, fontconfig
+, freetype
+, gnome2
+, gnum4
+, gtk2
+, libevent
+, libGL
+, libGLU
+, libnotify
+, libpulseaudio
+, libstartup_notification
+, perl
+, pkg-config
+, python2
+, unzip
+, which
+, wrapGAppsHook
+, xorg
+, yasm
+, zip
+, zlib
+, withGTK3 ? true
+, gtk3
 }:
 
 let
-
-  libPath = lib.makeLibraryPath [ ffmpeg libpulseaudio ];
+  libPath = lib.makeLibraryPath [
+    ffmpeg
+    libpulseaudio
+  ];
   gtkVersion = if withGTK3 then "3" else "2";
-
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.1.1";
+  version = "29.2.0";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "1ppdmj816zwccb0l0mgpq14ckdwg785wmqz41wran0nl63fg6i1x";
+    sha256 = "0pa9j41bbfarwi60a6hxi5vpn52mwgr4p05l98acv4fcs1ccb427";
     fetchSubmodules = true;
   };
 
@@ -43,24 +73,55 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook unzip
+    autoconf213
+    desktop-file-utils
+    gnum4
+    perl
+    pkg-config
+    python2
+    unzip
+    which
+    wrapGAppsHook
+    yasm
+    zip
   ];
 
   buildInputs = [
-    alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
-    gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
-    libstartup_notification libGLU libGL
-    libpulseaudio yasm zip zlib
+    alsaLib
+    cairo
+    dbus
+    dbus-glib
+    ffmpeg
+    fontconfig
+    freetype
+    gnome2.GConf
+    gtk2
+    libevent
+    libGL
+    libGLU
+    libnotify
+    libpulseaudio
+    libstartup_notification
+    zlib
   ]
   ++ (with xorg; [
-    libX11 libXext libXft libXi libXrender libXScrnSaver
-    libXt pixman xorgproto
+    libX11
+    libXext
+    libXft
+    libXi
+    libXrender
+    libXScrnSaver
+    libXt
+    pixman
+    xorgproto
   ])
   ++ lib.optional withGTK3 gtk3;
 
   enableParallelBuilding = true;
 
   configurePhase = ''
+    runHook preConfigure
+
     export MOZCONFIG=$PWD/mozconfig
     export MOZ_NOSPAM=1
 
@@ -96,9 +157,6 @@ in stdenv.mkDerivation rec {
     ac_add_options --enable-official-branding
     export MOZILLA_OFFICIAL=1
 
-    # For versions after 28.12.0
-    ac_add_options --enable-phoenix-extensions
-
     ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
 
     export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION
@@ -112,24 +170,42 @@ in stdenv.mkDerivation rec {
     mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
     mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
     '
+
+    runHook postConfigure
   '';
 
-  buildPhase = "./mach build";
+  buildPhase = ''
+    runHook preBuild
+
+    ./mach build
+
+    runHook postBuild
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     ./mach install
 
     # Fix missing icon due to wrong WMClass
+    # TODO report upstream
     substituteInPlace ./palemoon/branding/official/palemoon.desktop \
       --replace 'StartupWMClass="pale moon"' 'StartupWMClass=Pale moon'
     desktop-file-install --dir=$out/share/applications \
       ./palemoon/branding/official/palemoon.desktop
 
+    # Install official branding icons
     for iconname in default{16,22,24,32,48,256} mozicon128; do
       n=''${iconname//[^0-9]/}
       size=$n"x"$n
       install -Dm644 ./palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
     done
+
+    # Remove unneeded SDK data from installation
+    # TODO: move to a separate output?
+    rm -rf $out/{include,share/idl,lib/palemoon-devel-${version}}
+
+    runHook postInstall
   '';
 
   dontWrapGApps = true;
@@ -154,9 +230,9 @@ in stdenv.mkDerivation rec {
       experience, while offering full customization and a growing collection of
       extensions and themes to make the browser truly your own.
     '';
-    homepage    = "https://www.palemoon.org/";
-    license     = licenses.mpl20;
+    homepage = "https://www.palemoon.org/";
+    license = licenses.mpl20;
     maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
-    platforms   = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index a94b7eb7605..e5503e9d4cd 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,5 +1,5 @@
-{ lib, fetchpatch, fetchurl, fetchzip, python3
-, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
+{ lib, fetchurl, fetchzip, python3
+, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
 , withPdfReader      ? true
@@ -12,12 +12,12 @@ assert withMediaPlayback -> gst_all_1 != null;
 let
   python3Packages = python3.pkgs;
   pdfjs = let
-    version = "2.6.347";
+    version = "2.8.335";
   in
   fetchzip rec {
     name = "pdfjs-${version}";
     url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-    sha256 = "0d016fyg81cq464li01xlkf9rxrb3rpsvmk5gh9m4d5yzmcakkfm";
+    sha256 = "1zschfpxnhdinn9nasl5in4s62ad0h1g369cglamjgxx36x27zly";
     stripRoot = false;
   };
 
@@ -31,12 +31,12 @@ let
 
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "2.1.1";
+  version = "2.2.1";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-txsArX1JiRGXjlu9FTpt0EUKxq3j5b85j8luFTKDQs4=";
+    sha256 = "sha256-JHymxnNPdMsVma3TUKCS+iRCe9J7I0A6iISP5OXtJm8=";
   };
 
   # Needs tox
@@ -69,12 +69,6 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
 
   patches = [
     ./fix-restart.patch
-    (fetchpatch {
-      name = "fix-version-parsing.patch";
-      url = "https://github.com/qutebrowser/qutebrowser/commit/c3d1b71c6f08607f47353f406aca0168bb3062a1.patch";
-      excludes = [ "doc/changelog.asciidoc" ];
-      sha256 = "1vm2yjvmrw4cyn8mpwfwvvcihn74f60ql3qh1rjj8n0wak8z1ir6";
-    })
   ];
 
   dontWrapGApps = true;
@@ -123,6 +117,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
       "''${gappsWrapperArgs[@]}"
       "''${qtWrapperArgs[@]}"
       --add-flags '--backend ${backend}'
+      --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}"
     )
   '';
 
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index b4ca094be13..acd10e0ea38 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -29,7 +29,7 @@
 
 # Media support (implies audio support)
 , mediaSupport ? true
-, ffmpeg_3
+, ffmpeg
 
 , gmp
 
@@ -81,26 +81,26 @@ let
   ]
   ++ optionals pulseaudioSupport [ libpulseaudio ]
   ++ optionals mediaSupport [
-    ffmpeg_3
+    ffmpeg
   ];
 
   # Library search path for the fte transport
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.0.15";
+  version = "10.0.16";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "1ah69jmfgik063f9gkvyv9d4k706pqihmzc4k7cc95zyd17v8wrs";
+      sha256 = "07h2gd6cwwq17lrwjpfah1xvr8ny8700qvi971qacrr7ssicw2pw";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "0gyhxfs4qpg6ys038d52cxnmb4khbng1w4hcsavi2rlgv18bz75p";
+      sha256 = "145kniiby5nnd0ll3v2gggzxz52bqbrdp72hvh96i8qnzi0fq25a";
     };
   };
 in
@@ -402,6 +402,7 @@ stdenv.mkDerivation rec {
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames srcs;
     maintainers = with maintainers; [ offline matejc thoughtpolice joachifm hax404 cap KarlJoad ];
+    mainProgram = "tor-browser";
     hydraPlatforms = [];
     # MPL2.0+, GPL+, &c.  While it's not entirely clear whether
     # the compound is "libre" in a strict sense (some components place certain
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 3b9d7784b7e..959b0a9877f 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.0.0";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-TbNqwTVND09WzUH8ZH7YFRwcHV8eX1G0FXtZJi67Sk4=";
+    sha256 = "sha256-+LuBz58hTzi/hGwqX/0VMNYn/+SRYgnNefn3B3i7eEs=";
   };
 
   vendorSha256 = "sha256-YjVAoMyGKMHLGEPeOOkCKCzeWFiUsXfJIKcw5GYoljg=";
@@ -46,10 +46,11 @@ buildGoModule rec {
   buildFlagsArray = ''
     -ldflags=
       -s -w
-      -X github.com/argoproj/argo.version=${version}
-      -X github.com/argoproj/argo.gitCommit=${src.rev}
-      -X github.com/argoproj/argo.gitTreeState=clean
-      -X github.com/argoproj/argo.gitTag=${version}
+      -X github.com/argoproj/argo-workflows/v3.buildDate=unknown
+      -X github.com/argoproj/argo-workflows/v3.gitCommit=${src.rev}
+      -X github.com/argoproj/argo-workflows/v3.gitTag=${src.rev}
+      -X github.com/argoproj/argo-workflows/v3.gitTreeState=clean
+      -X github.com/argoproj/argo-workflows/v3.version=${version}
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index f1c98e0ed84..05ba4187ce1 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -1,40 +1,74 @@
-{ lib, buildGoModule, fetchFromGitHub, packr }:
+{ lib, buildGoModule, fetchFromGitHub, packr, makeWrapper, installShellFiles, helm, kustomize }:
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.6";
-  commit = "28aea3dfdede00443b52cc584814d80e8f896200";
+  version = "2.0.1";
+  commit = "33eaf11e3abd8c761c726e815cbb4b6af7dcb030";
+  tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
-    rev = "v${version}";
-    sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
+    rev = tag;
+    sha256 = "sha256-j/RdiMeaYxlmEvo5CKrGvkp25MrFsSYh+XNYWNcs0PE=";
   };
 
-  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
+  vendorSha256 = "sha256-8j5v99wOHM/SndJwpmGWiCFEyw4K513HEEbkPrD8C90=";
 
+  nativeBuildInputs = [ packr makeWrapper installShellFiles ];
+
+  # run packr to embed assets
+  preBuild = ''
+    packr
+  '';
+
+  buildFlagsArray =
+    let package_url = "github.com/argoproj/argo-cd/v2/common"; in
+    [
+      "-ldflags="
+      "-s -w"
+      "-X ${package_url}.version=${version}"
+      "-X ${package_url}.buildDate=unknown"
+      "-X ${package_url}.gitCommit=${commit}"
+      "-X ${package_url}.gitTag=${tag}"
+      "-X ${package_url}.gitTreeState=clean"
+    ];
+
+  # Test is disabled because ksonnet is missing from nixpkgs.
+  # Log: https://gist.github.com/superherointj/79cbdc869dfd44d28a10dc6746ecb3f9
   doCheck = false;
+  checkInputs = [
+    helm
+    kustomize
+    #ksonnet
+  ];
 
-  nativeBuildInputs = [ packr ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/argocd version --client | grep ${tag} > /dev/null
+    $out/bin/argocd-util version | grep ${tag} > /dev/null
+  '';
 
-  buildFlagsArray = ''
-     -ldflags=
-      -X github.com/argoproj/argo-cd/common.version=${version}
-      -X github.com/argoproj/argo-cd/common.buildDate=unknown
-      -X github.com/argoproj/argo-cd/common.gitCommit=${commit}
-      -X github.com/argoproj/argo-cd/common.gitTreeState=clean
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    install -Dm755 "$GOPATH/bin/cmd" -T $out/bin/argocd
+    runHook postInstall
   '';
 
-  # run packr to embed assets
-  preBuild = ''
-    packr
+  postInstall = ''
+    for appname in argocd-util argocd-server argocd-repo-server argocd-application-controller argocd-dex ; do
+      makeWrapper $out/bin/argocd $out/bin/$appname --set ARGOCD_BINARY_NAME $appname
+    done
+    installShellCompletion --cmd argocd \
+      --bash <($out/bin/argocd completion bash) \
+      --zsh <($out/bin/argocd completion zsh)
   '';
 
   meta = with lib; {
     description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
     license = licenses.asl20;
-    maintainers = with maintainers; [ shahrukh330 ];
+    maintainers = with maintainers; [ shahrukh330 superherointj ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index 1d02e675f9c..fadaa94995c 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM=";
+    sha256 = "sha256-qYdVplNHyD31m4IbIeL3x3nauZLl1XquslS3WrtUXBk=";
   };
 
   vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks=";
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 501956ec938..0508830918f 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.5.3";
+  version = "3.5.4";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-7xO07JDy6ujWlDF+5Xd3myRQ8ajTppCXz9fNe4yizVw=";
+    sha256 = "sha256-u8GJVOubPlIG88TFG5+OvbovMz4Q595wWo2YCwuTgG8=";
   };
-  vendorSha256 = "sha256-lpEoUgABtJczwShNdvD+zYAPDFTJqILSei2YY6mQ2mw=";
+  vendorSha256 = "sha256-zdZxGiwgx8c0zt9tQebJi7k/LNNYjhNInsVeBbxPsgE=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index ce6491bfba4..3f340b0e522 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -30,6 +30,5 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.apsl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
index 661048a0c72..81e0d07d0bb 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -33,6 +33,5 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     license = licenses.apsl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index fdf9e97e7c9..d0ffb22217f 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-co/0ogI48FxrwVGwIuMqeFPFYtQF4/rv9V6b225TZc4=";
+    sha256 = "sha256-gCI4LRUjsE6V7fomWaQsseX1Xi2f+2ZgtvWBDarpXvw=";
   };
   vendorSha256 = "sha256-yJHYyRPl1V1WNV0nJoR3bRTTGRTQaT/tG4TSQeL5U88=";
 
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index fd5b2fff8b9..4053a042bfa 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -44,7 +44,7 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.20.5+k3s1";     # k3s git tag
+  k3sVersion = "1.20.6+k3s1";     # k3s git tag
   traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
   k3sRootVersion = "0.8.1";       # taken from ./scripts/download at the above k3s tag
   k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
@@ -96,7 +96,7 @@ let
     url = "https://github.com/k3s-io/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "sha256-7RAZkSTh15BEZ3p6u2xE9vd5fpy4KBYrl2TjtpIiStM=";
+    sha256 = "sha256-IIZotJKQ/+WNmfcEJU5wFtZBufWjUp4MeVCRk4tSjyQ=";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
diff --git a/pkgs/applications/networking/cluster/kube-capacity/default.nix b/pkgs/applications/networking/cluster/kube-capacity/default.nix
index 78cbaca80ab..de4cdcce44f 100644
--- a/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kube-capacity";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "robscott";
     repo = pname;
-    sha256 = "127583hmpj04y522wir76a39frm6zg9z7mb4ny5lxxjqhn0q0cd5";
+    sha256 = "sha256-IwlcxlzNNYWNANszTM+s6/SA1C2LXrydSTtAvniNKXE=";
   };
 
   vendorSha256 = "sha256-EgLWZs282IV1euCUCc5ucf267E2Z7GF9SgoImiGvuVM=";
diff --git a/pkgs/applications/networking/cluster/kube-score/default.nix b/pkgs/applications/networking/cluster/kube-score/default.nix
index 76bd115a9b1..a466598f00d 100644
--- a/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-score";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "zegl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TYsuSPWTiIlPscul/QO59+lt6sbjJdt7pJuJYO5R9Tc=";
+    sha256 = "sha256-O0RtlFkyo01kcxWSzrkhh7vvV76B7I5V19dSzaxvv4Y=";
   };
 
-  vendorSha256 = "sha256-ob7mNheyeTcDWml4gi1SD3Pq+oWtJeySIUg2ZrCj0y0=";
+  vendorSha256 = "sha256-qFS+N0tOf3zxqs1tN6Z1EnR3qLR1FfZNfJ21NoRXek0=";
 
   meta = with lib; {
     description = "Kubernetes object analysis with recommendations for improved reliability and security";
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index d0aa1029d63..decb586045d 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,22 +1,22 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.5-k3s1" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.6-k3s1" }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.4.1";
-
-  excludedPackages = "tools";
+  version = "4.4.2";
 
   src = fetchFromGitHub {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-u9P+7qNomamd4BkqWBxA6rDom0hF6t10QfDTjqOMGeE=";
+    sha256 = "sha256-6BDetNPWyAVZOsnCWs90HljVpfUlAytFDPQ/SqPxwgg=";
   };
 
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles ];
 
+  excludedPackages = "\\(tools\\|docgen\\)";
+
   preBuild = let t = "github.com/rancher/k3d/v4/version"; in
     ''
       buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.K3sVersion=v${k3sVersion}")
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index ca5e30154da..c62cbb2a67a 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeconform";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "yannh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lduHYYskEPUimEX54ymOyo5jY7GGBB42YTefDMNS4qo=";
+    sha256 = "sha256-ahVdKMx3u2KnJ30wi9rV8JCVg9wPmbgdrtG8IpWWlCs=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index ef025dfc6a7..357424cdddf 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4NIyit2HnDXWnHALGzz5KWxe4PU8CwMRwCoIlN/WX78=";
+    sha256 = "sha256-It/p2Hk4/fkYgHTPynf7p7zs4ajjo0Fv3yTzhrWUusE=";
   };
 
-  vendorSha256 = "sha256-qwUAC8LURsn6C3zKzcsuFsOTurjPV9V8Z/1Y9G0eohk=";
+  vendorSha256 = "sha256-Vg6SHyQkeUvd2hT0JV32y+F0t/qb81MrgOFcr785a8M=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index 988b2d02df9..ff9ce970227 100644
--- a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wis2ECCVXQeD7GiCMJQai+wDM8QJ1j5dPnE5O/I3wpM=";
+    sha256 = "sha256-3BifigdAFuOCrhJRv/w4k7pT4BTHfINuEkeG6zaI0v8=";
   };
 
-  vendorSha256 = "sha256-T0wDbAl5GXphZIBrM36OwRCojnJ/cbXNqsjtCzUDZ6s=";
+  vendorSha256 = "sha256-1NTneOGU4R1xzR9hAI9MJWYuYTPgYtLa5vH1H5wyHcM=";
 
   buildFlagsArray = [ "-ldflags=" "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/cluster/starboard/default.nix b/pkgs/applications/networking/cluster/starboard/default.nix
index 4fdcdf1ea2b..1418f40e216 100644
--- a/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.9.2";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-w+xaZPEMmJYDPQG4MuAlWMhwhEyeVcpaeDwqsnIbIHA=";
+    sha256 = "sha256-cDqZo0GTpvvkEiccP42u9X2ydHkSBuoD8Zfp+i+/qjo=";
   };
 
-  vendorSha256 = "sha256-aVKQcRZgxhIph+y28HhR15DUjwiz/4+t1bMrYXjPW7Q=";
+  vendorSha256 = "sha256-noK4fF9wCP1dYfDgmJVZehcF+eunzP+d9n1SiPO9UEU=";
 
   subPackages = [ "cmd/starboard" ];
 
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 8e7731590aa..715f75ddc8a 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ckXvDB3TU9HAXowAAr/fRmX3mylVvPKW8I74R/vUaRY=";
+    sha256 = "sha256-aCgr56nXZCkG8k/ZGH2/cDOaqkznnyb6JLEcImqLH64=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index a08a3d336bf..d88602d75ba 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -3,7 +3,6 @@
 , buildGoPackage
 , fetchFromGitHub
 , callPackage
-, runtimeShell
 }:
 let
   list = lib.importJSON ./providers.json;
@@ -58,7 +57,6 @@ let
     cloudfoundry = callPackage ./cloudfoundry {};
     gandi = callPackage ./gandi {};
     hcloud = callPackage ./hcloud {};
-    keycloak = callPackage ./keycloak {};
     libvirt = callPackage ./libvirt {};
     linuxbox = callPackage ./linuxbox {};
     lxd = callPackage ./lxd {};
diff --git a/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix b/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
deleted file mode 100644
index 043e081d94e..00000000000
--- a/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-}:
-
-buildGoModule rec {
-  pname = "terraform-provider-keycloak";
-  version = "1.20.0";
-
-  src = fetchFromGitHub {
-    owner = "mrparkers";
-    repo = "terraform-provider-keycloak";
-    rev = version;
-    sha256 = "1h8780k8345pf0s14k1pmwdjbv2j08h4rq3jwds81mmv6qgj1r2n";
-  };
-
-  vendorSha256 = "12iary7p5qsbl4xdhfd1wh92mvf2fiylnb3m1d3m7cdcn32rfimq";
-
-  doCheck = false;
-
-  postInstall = "mv $out/bin/terraform-provider-keycloak{,_v${version}}";
-
-  meta = with lib; {
-    description = "Terraform provider for keycloak";
-    homepage = "https://github.com/mrparkers/terraform-provider-keycloak";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ eonpatapon ];
-  };
-
-}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 329b1be682c..33fba6e5a0f 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -493,6 +493,14 @@
     "vendorSha256": "08wg16g4mvn6kl8xwn89195a826cb132ijvrgf32c6p7zp4lgmjd",
     "version": "0.2.12"
   },
+  "keycloak": {
+    "owner": "mrparkers",
+    "repo": "terraform-provider-keycloak",
+    "rev": "v3.0.0",
+    "sha256": "1q9vzmj9c7mznv6al58d3rs5kk1fh28k1qccx46hcbk82z52da3a",
+    "vendorSha256": "0kh6lljvqd577s19gx0fmfsmx9wm3ikla3jz16lbwwb8ahbqcw1f",
+    "version": "3.0.0"
+  },
   "ksyun": {
     "owner": "terraform-providers",
     "repo": "terraform-provider-ksyun",
@@ -815,11 +823,13 @@
     "version": "1.5.0"
   },
   "rancher2": {
-    "owner": "terraform-providers",
+    "owner": "rancher",
+    "provider-source-address": "registry.terraform.io/hashicorp/rancher2",
     "repo": "terraform-provider-rancher2",
-    "rev": "v1.8.3",
-    "sha256": "1k2d9j17b7sssliraww6as196ihdcra1ylhg1qbynklpr0asiwna",
-    "version": "1.8.3"
+    "rev": "v1.13.0",
+    "sha256": "0xczv9qsviryiw95yd6cl1nnb0daxs971fm733gfvwm36jvmyr89",
+    "vendorSha256": "0apy6qbmshfj4pzz9nqdhyk6h7l9qwrccz30q8ljl928pj49q04c",
+    "version": "1.13.0"
   },
   "random": {
     "owner": "hashicorp",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 6cd2cf52efc..754dac6a936 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -49,7 +49,6 @@ let
           babariviere
           kalbasit
           marsam
-          peterhoeg
           timstott
           zimbatm
         ];
@@ -137,8 +136,8 @@ let
   ];
 in rec {
   terraform_0_12 = pluggable (generic {
-    version = "0.12.30";
-    sha256 = "0mv2nsy2ygb1kgkw98xckihcdqxpzhdmks5p2gi2l7wb7lx51yz2";
+    version = "0.12.31";
+    sha256 = "03p698xdbk5gj0f9v8v1fpd74zng3948dyy4f2hv7zgks9hid7fg";
     patches = [
         ./provider-path.patch
         (fetchpatch {
@@ -150,20 +149,28 @@ in rec {
   });
 
   terraform_0_13 = pluggable (generic {
-    version = "0.13.6";
-    sha256 = "04vas8i894ssfhncdvljdvmvj2qzfrcs20zcv71l1wmnnv9ibs6l";
+    version = "0.13.7";
+    sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.10";
-    sha256 = "05vfb8hzma3qxq4w1h25mmgv96g90if214zlar0sm9fq8zsvb1yw";
+    version = "0.14.11";
+    sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
     vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
 
+  terraform_0_15 = pluggable (generic {
+    version = "0.15.1";
+    sha256 = "02bqg05wsqld9xybvg7swvmympq5bggkw8vcq91z6vkpawm8z3kg";
+    vendorSha256 = "1lnz6b2kjilidvs4flx9vj5j6dxliqdxni96fn2537nqaz4hc7l2";
+    patches = [ ./provider-path-0_15.patch ];
+    passthru = { inherit plugins; };
+  });
+
   # Tests that the plugins are being used. Terraform looks at the specific
   # file pattern and if the plugin is not found it will try to download it
   # from the Internet. With sandboxing enable this test will fail if that is
diff --git a/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch b/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch
new file mode 100644
index 00000000000..1896d6018f0
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform/provider-path-0_15.patch
@@ -0,0 +1,23 @@
+diff -Naur terraform.old/command/init.go terraform.new/command/init.go
+--- terraform.old/command/init.go
++++ terraform.new/command/init.go
+@@ -3,6 +3,7 @@
+ import (
+ 	"context"
+ 	"fmt"
++	"os"
+ 	"log"
+ 	"strings"
+ 
+@@ -55,6 +56,11 @@
+ 
+ 	var diags tfdiags.Diagnostics
+ 
++	val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR")
++	if ok {
++		flagPluginPath = append(flagPluginPath, val)
++	}
++
+ 	if len(flagPluginPath) > 0 {
+ 		c.pluginPath = flagPluginPath
+ 	}
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 718b0680ebc..4cab638ba67 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.28.20";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Hg4eeLFNm2cXUjp3T2VK6q+mgawqkHju9P3Vq9wnB9c=";
+    sha256 = "sha256-fr33DRFZrUZQELYMf8z5ShOZobwylgoiW+yi6qdtFP4=";
   };
 
-  vendorSha256 = "sha256-kcRM76xfajtQist1aJTmaRludxRlfvHQ9ucB3LOgnBk=";
+  vendorSha256 = "sha256-qlSCQtiGHmlk3DyETMoQbbSYhuUSZTsvAnBKuDJI8x8=";
 
   doCheck = false;
 
@@ -32,6 +32,6 @@ buildGoModule rec {
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
     description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg jk ];
+    maintainers = with maintainers; [ jk ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index 65826683d5f..b38787e2968 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,24 +2,27 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.5.4";
+  # When updating, change the commit underneath
+  version = "1.6.0";
+  commit = "5bd70fd8eef316d220317245e46dc6016c348dce";
+
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "vmware-tanzu";
     repo = "velero";
-    sha256 = "sha256-YHBqIM3NV2L13w9WCzldUWmdBMec7ZndzYgGHblS8Dg=";
+    sha256 = "sha256-2d4xsffh5DpxGahmzXpgUBRFAt5CsDnHCm8xU1ksqyQ=";
   };
 
   buildFlagsArray = ''
     -ldflags=
       -s -w
       -X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}
-      -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=456eb19668f8da603756353d9179b59b5a7bfa04
+      -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=${commit}
       -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean
   '';
 
-  vendorSha256 = "sha256-m/zShJeclZ1k8Fr9faK2x1Mpwbwun674iMPJhMw/9Mc=";
+  vendorSha256 = "sha256-aQjtebIyV69nRwc/zvK/9v0mX3pAPKfOunSL/FpFZJU=";
 
   excludedPackages = [ "issue-template-gen" ];
 
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 1f3bf4467d6..d21219f4386 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lB9ELa/okNvtKFDP/vImEdYFJCKRgtAcpBG1kIoAysE=";
+    sha256 = "sha256-WzKUVfc7oGMh0TamL5b6gsm/BAfSCZ6EB3Hg4Tg/3Hw=";
   };
 
   deleteVendor = true;
@@ -36,7 +36,7 @@ buildGoModule rec {
     export HOME="$TMPDIR"
 
     $out/bin/waypoint --help
-    $out/bin/waypoint version | grep "Waypoint v${version}"
+    $out/bin/waypoint version | grep "CLI: v${version}"
     runHook postInstallCheck
   '';
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index 39073985fa1..cac662c9b6b 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.8.0";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VSNvyigaGfGDbcng6ltdq+X35zT2tb2p4j/4KAjd1Yk=";
+    sha256 = "sha256-x002p7wPKbcmr4uE04mgKBagHQV/maEo99Y2Jr7xgK4=";
   };
 
-  vendorSha256 = "sha256-VU0uJDp5koVU+wDwr3ctrDY0R3vd/JmpA7gtWWpwpfw=";
+  vendorSha256 = "sha256-lR5+xVi/ROOFoRWyK0h/8uiSP/joQ9Zr9kMaQ+sWNhM=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index fd68dfc49f4..3f2e3490955 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.106";
+  version = "3.1.110";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "f0ff300a1762d701b77eb16142dcc13d9d099bbed695f1e950392c1d1bb988eb";
+    sha256 = "e8642dcbbfe941e2d2def7bf2e28889082a78c1d041edb33dae180036832a96b";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
index f8e9fcc87b0..df993625e6d 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.53.0";
+  version = "3.53.1";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "sha256-MJXnYN9PVADttNqj3hshLElHk2Dy9FzE67clMMh85CA=";
+    sha256 = "sha256-ZWh08ursVGcscvQepeoUnFAZfFDeXWdIu0HXIr/D93k=";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index a12e914097c..405304f74af 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "0m7zy5k2595vf5xr2r4m75rfsdddigrv2hilm1c3zaif4srxmvpj";
+    sha256 = "0ficl4i012gfv4mdbdclgvi6gyq338gw9gb6k58k1drw8c7qk6k5";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
index 95bf8c02662..e5a45a1e9f5 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
@@ -1,27 +1,16 @@
-{ lib, fetchFromGitHub, fetchpatch, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }:
+{ lib, fetchFromGitHub, stdenv, bitlbee, autoconf, automake, libtool, pkg-config, json-glib }:
 
 stdenv.mkDerivation rec {
   pname = "bitlbee-facebook";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "bitlbee";
     repo = "bitlbee-facebook";
-    sha256 = "1yjhjhk3jzjip13lq009vlg84lm2lzwhac5jy0aq3vkcz6rp94rc";
+    sha256 = "1qiiiq17ybylbhwgbwsvmshb517589r8yy5rsh1rfaylmlcxyy7z";
   };
 
-  # TODO: This patch should be included with the next release after v1.2.1
-  #       these lines should be removed when this happens.
-  patches = [
-    (fetchpatch {
-        name = "FB_ORCA_AGENT_version_bump.patch";
-        url = "https://github.com/bitlbee/bitlbee-facebook/commit/49ea312d98b0578b9b2c1ff759e2cfa820a41f4d.patch";
-        sha256 = "0nzyyg8pw4f2jcickcpxq7r2la5wgl7q6iz94lhzybrkhss5753d";
-      }
-    )
-  ];
-
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
 
   buildInputs = [ bitlbee json-glib ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index d80ccf0a8fa..b3cd9d8c140 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -35,16 +35,17 @@
 , alsaLib
 , pulseaudio
 , makeWrapper
+, xdg-utils
 }:
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.19.0";
-  buildNumber = "61";
+  version = "2.21.3";
+  buildNumber = "2";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans_${version}.${buildNumber}.rpm";
-    sha256 = "163p67dqry256d454qzk4k4b692kz8s9fcvaxd6gi7zvnsd48ikr";
+    sha256 = "sha256-a/REuxkqZmLLa7N3CUgUAdq74VMD9D10a/Sx2jOj1QA=";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
@@ -100,6 +101,7 @@ stdenv.mkDerivation rec {
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       --replace-needed libudev.so.0 libudev.so.1 \
       opt/BlueJeans/bluejeans-v2
+
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       opt/BlueJeans/resources/BluejeansHelper
@@ -108,7 +110,8 @@ stdenv.mkDerivation rec {
 
     makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \
       --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \
-      --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so
+      --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so \
+      --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
 
     substituteInPlace "$out"/share/applications/bluejeans-v2.desktop \
       --replace "/opt/BlueJeans/bluejeans-v2" "$out/bin/bluejeans"
diff --git a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index f9789cfda41..075fd5b3a20 100644
--- a/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -2,12 +2,12 @@
 
 mkDerivation rec {
   pname = "chatterino2";
-  version = "2.2.2";
+  version = "2.3.0";
   src = fetchFromGitHub {
     owner = "Chatterino";
     repo = pname;
     rev = "v${version}";
-    sha256 = "026cs48hmqkv7k4akbm205avj2pn3x1g7q46chwa707k9km325dz";
+    sha256 = "0x12zcrbkxn2nn0hqkj1amrxv4q032id282cajzsx7by970r1shd";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/instant-messengers/discord/base.nix b/pkgs/applications/networking/instant-messengers/discord/base.nix
index e4c588e6c18..841c979e97f 100644
--- a/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -1,5 +1,5 @@
 { pname, version, src, binaryName, desktopName
-, autoPatchelfHook, fetchurl, makeDesktopItem, lib, stdenv, wrapGAppsHook
+, autoPatchelfHook, makeDesktopItem, lib, stdenv, wrapGAppsHook
 , alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig
 , freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
@@ -18,6 +18,7 @@ in stdenv.mkDerivation rec {
     cups
     libdrm
     libuuid
+    libXdamage
     libX11
     libXScrnSaver
     libXtst
@@ -74,7 +75,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://discordapp.com/";
     downloadPage = "https://discordapp.com/download";
     license = licenses.unfree;
-    maintainers = with maintainers; [ ldesgoui MP2E tadeokondrak ];
+    maintainers = with maintainers; [ ldesgoui MP2E ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index aa240b48e88..e1f070eaa9a 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.7.25",
+  "version": "1.7.26",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 75252bb74b4..2a7e01e5291 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.25";
+  version = "1.7.26";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${version}";
-    sha256 = "sha256-q8hVmTLt/GdLc6NSldLggogObQcPFp+lAeS3wmO0qPo=";
+    sha256 = "1iflsvzn36mywpzags55kjmyq71c3i7f1hgcdcp2ijmnrjk8fy3n";
   };
 in mkYarnPackage rec {
   name = "element-desktop-${version}";
@@ -73,6 +73,7 @@ in mkYarnPackage rec {
   meta = with lib; {
     description = "A feature-rich client for Matrix.org";
     homepage = "https://element.io/";
+    changelog = "https://github.com/vector-im/element-desktop/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = teams.matrix.members;
     inherit (electron.meta) platforms;
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 624ba46b8e8..9f077c83377 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.25";
+  version = "1.7.26";
 
   src = fetchurl {
     url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = "sha256-T4lsGVSUHkw4R7tSeTKPifbhwaTf/YF2vVAakFSrt9k=";
+    sha256 = "17y6wq6w1yk7r1rfply549kpilfraizahf67p00ra7cws66iqkwg";
   };
 
   installPhase = ''
@@ -32,6 +32,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "A glossy Matrix collaboration client for the web";
     homepage = "https://element.io/";
+    changelog = "https://github.com/vector-im/element-web/blob/v${version}/CHANGELOG.md";
     maintainers = lib.teams.matrix.members;
     license = lib.licenses.asl20;
     platforms = lib.platforms.all;
diff --git a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index d10c5359e35..363d123dbe1 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.7.0";
+  version = "2.8.5";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "1g8was4anrsdpv4h11z544mi0v79him2xjyknixyrqfy87cbh97n";
+    sha256 = "0r3jj3qjx38l1g733vhrwcm2yg7ppp23ciz84x2kqq51mlzr84c6";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
new file mode 100644
index 00000000000..71f98bc08a6
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchFromGitHub, cacert, python3 }:
+
+stdenv.mkDerivation {
+  pname = "matrix-commander";
+  version = "unstable-2021-04-18";
+
+  src = fetchFromGitHub {
+    owner = "8go";
+    repo = "matrix-commander";
+    rev = "3e89a5f4c98dd191880ae371cc63eb9282d7d91f";
+    sha256 = "08nwwszp1kv5b7bgf6mmfn42slxkyhy98x18xbn4pglc4bj32iql";
+  };
+
+  buildInputs = [
+    cacert
+    (python3.withPackages(ps: with ps; [
+      matrix-nio
+      magic
+      markdown
+      pillow
+      urllib3
+      aiofiles
+    ]))];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp $src/matrix-commander.py $out/bin/matrix-commander
+    chmod +x $out/bin/matrix-commander
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
+    homepage = "https://github.com/8go/matrix-commander";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.seb314 ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/pkgs/applications/networking/instant-messengers/mikutter/default.nix
index be84342787d..111a3ed091e 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mikutter/default.nix
@@ -1,82 +1,160 @@
-{ lib, stdenv, fetchurl
-, bundlerEnv, ruby
-, alsaUtils, libnotify, which, wrapGAppsHook, gtk2, atk, gobject-introspection
+{ lib
+, stdenv
+, fetchurl
+, bundlerEnv
+, alsaUtils
+, atk
+, copyDesktopItems
+, gobject-introspection
+, gtk2
+, ruby
+, libicns
+, libnotify
+, makeDesktopItem
+, which
+, wrapGAppsHook
+, writeText
 }:
 
-# how to update:
-# find latest version at: http://mikutter.hachune.net/download#download
-# run these commands:
-#
-# wget http://mikutter.hachune.net/bin/mikutter.4.0.0.tar.gz
-# mkdir mikutter
-# cd mikutter
-# tar xvf ../mikutter.4.0.0.tar.gz
-# find . -not -name Gemfile -exec rm {} \;
-# find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \;
-# cd ..
-# mv mikutter/* .
-# rm mikutter.4.0.0.tar.gz
-# rm gemset.nix Gemfile.lock; nix-shell -p bundler bundix --run 'bundle lock && bundix'
-
-stdenv.mkDerivation rec {
+let
+  # NOTE: $out may have different values depending on context
+  mikutterPaths = rec {
+    optPrefixDir = "$out/opt/mikutter";
+    appPrefixDir = "$out/Applications/mikutter.app/Contents";
+    appBinDir = "${appPrefixDir}/MacOS";
+    appResourceDir = "${appPrefixDir}/Resources";
+    iconPath = "${optPrefixDir}/core/skin/data/icon.png";
+  };
+
+  gems = bundlerEnv {
+    name = "mikutter-gems"; # leave the version out to enable package reuse
+    gemdir = ./deps;
+    groups = [ "default" "plugin" ];
+    inherit ruby;
+
+    # Avoid the following error:
+    # > `<module:Moneta>': uninitialized constant Moneta::Builder (NameError)
+    #
+    # Related:
+    # https://github.com/NixOS/nixpkgs/pull/76510
+    # https://github.com/NixOS/nixpkgs/pull/76765
+    # https://github.com/NixOS/nixpkgs/issues/83442
+    # https://github.com/NixOS/nixpkgs/issues/106545
+    copyGemFiles = true;
+  };
+
+  mkDesktopItem = { description }:
+    makeDesktopItem {
+      name = "mikutter";
+      desktopName = "mikutter";
+      exec = "mikutter";
+      icon = "mikutter";
+      categories = "Network;";
+      comment = description;
+      extraDesktopEntries.Keywords = "Mastodon;";
+    };
+
+  mkInfoPlist = { version }:
+    writeText "Info.plist" (lib.generators.toPlist { } {
+      CFBundleName = "mikutter";
+      CFBundleDisplayName = "mikutter";
+      CFBundleExecutable = "mikutter";
+      CFBundleIconFile = "mikutter";
+      CFBundleIdentifier = "net.hachune.mikutter";
+      CFBundleInfoDictionaryVersion = "6.0";
+      CFBundlePackageType = "APPL";
+      CFBundleVersion = version;
+      CFBundleShortVersionString = version;
+    });
+
+  inherit (gems) wrappedRuby;
+in
+with mikutterPaths; stdenv.mkDerivation rec {
   pname = "mikutter";
-  version = "4.0.0";
+  version = "4.1.4";
 
   src = fetchurl {
-    url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
-    sha256 = "0nx14vlp7p69m2vw0s6kbiyymsfq0r2jd4nm0v5c4xb9avkpgc8g";
+    url = "https://mikutter.hachune.net/bin/mikutter-${version}.tar.gz";
+    sha256 = "05253nz4i1lmnq6czj48qdab2ny4vx2mznj6nsn2l1m2z6zqkwk3";
   };
 
-  buildInputs = [ alsaUtils libnotify which gtk2 ruby atk gobject-introspection ];
-  nativeBuildInputs = [ wrapGAppsHook ];
+  nativeBuildInputs = [ copyDesktopItems wrapGAppsHook ]
+    ++ lib.optionals stdenv.isDarwin [ libicns ];
+  buildInputs = [
+    atk
+    gtk2
+    gobject-introspection
+    libnotify
+    which # some plugins use it at runtime
+    wrappedRuby
+  ] ++ lib.optionals stdenv.isLinux [ alsaUtils ];
+
+  scriptPath = lib.makeBinPath (
+    [ wrappedRuby libnotify which ]
+    ++ lib.optionals stdenv.isLinux [ alsaUtils ]
+  );
 
-  unpackPhase = ''
-    mkdir source
-    cd source
-    unpackFile $src
+  postUnpack = ''
     rm -rf vendor
   '';
 
-  installPhase = let
-    env = bundlerEnv {
-      name = "mikutter-${version}-gems";
-      gemdir = ./.;
+  installPhase = ''
+    runHook preInstall
 
-      inherit ruby;
-    };
-  in ''
-    install -v -D -m644 README $out/share/doc/mikutter/README
-    install -v -D -m644 LICENSE $out/share/doc/mikutter/LICENSE
-    rm -v README LICENSE
-
-    cp -rv . $out
-    mkdir $out/bin/
-    # hack wrapGAppsHook wants a file not a symlink
-    mv $out/mikutter.rb $out/bin/mikutter
-
-    gappsWrapperArgs+=(
-      --prefix PATH : "${ruby}/bin:${alsaUtils}/bin:${libnotify}/bin"
-      --prefix GEM_HOME : "${env}/${env.ruby.gemPath}"
+    mkdir -p $out/bin ${optPrefixDir}
+
+    install -Dm644 README $out/share/doc/mikutter/README
+    install -Dm644 LICENSE $out/share/doc/mikutter/LICENSE
+    rm -r README LICENSE deployment
+
+    cp -r . ${optPrefixDir}
+
+    gappsWrapperArgsHook # FIXME: currently runs at preFixup
+    wrapGApp ${optPrefixDir}/mikutter.rb \
+      --prefix PATH : "${scriptPath}" \
       --set DISABLE_BUNDLER_SETUP 1
-    )
-      # --prefix GIO_EXTRA_MODULES : "$prefix/lib/gio/modules"
+    mv ${optPrefixDir}/mikutter.rb $out/bin/mikutter
+
+    install -Dm644 ${iconPath} $out/share/icons/hicolor/256x256/apps/mikutter.png
 
-    mkdir -p $out/share/mikutter $out/share/applications
-    ln -sv $out/core/skin $out/share/mikutter/skin
-    substituteAll ${./mikutter.desktop} $out/share/applications/mikutter.desktop
+    runHook postInstall
   '';
 
-  postFixup = ''
-    mv $out/bin/.mikutter-wrapped $out/mikutter.rb
-    substituteInPlace $out/bin/mikutter \
-      --replace "$out/bin/.mikutter-wrapped" "$out/mikutter.rb"
+  postInstall =
+    let
+      infoPlist = mkInfoPlist { inherit version; };
+    in
+    lib.optionalString stdenv.isDarwin ''
+      mkdir -p ${appBinDir} ${appResourceDir}
+      install -Dm644 ${infoPlist} ${appPrefixDir}/Info.plist
+      ln -s $out/bin/mikutter ${appBinDir}/mikutter
+      png2icns ${appResourceDir}/mikutter.icns ${iconPath}
+    '';
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    testDir="$(mktemp -d)"
+    install -Dm644 ${./test_plugin.rb} "$testDir/plugin/test_plugin/test_plugin.rb"
+
+    $out/bin/mikutter --confroot="$testDir" --plugin=test_plugin --debug
+
+    runHook postInstallCheck
   '';
 
+  desktopItems = [
+    (mkDesktopItem { inherit (meta) description; })
+  ];
+
+  doInstallCheck = true;
+  dontWrapGApps = true; # the target is placed outside of bin/
+
+  passthru.updateScript = [ ./update.sh version (toString ./.) ];
+
   meta = with lib; {
-    description = "An extensible Twitter client";
+    description = "An extensible Mastodon client";
     homepage = "https://mikutter.hachune.net";
     platforms = ruby.meta.platforms;
     license = licenses.mit;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile
index 216af305b4a..fbe6a2f29c5 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile
@@ -11,12 +11,12 @@ ruby '>= 2.5.0'
 
 group :default do
   gem 'addressable','>= 2.7.0', '< 2.8'
-  gem 'delayer','>= 1.0.1', '< 1.1'
-  gem 'delayer-deferred','>= 2.1.1', '< 2.2'
-  gem 'diva','>= 1.0.1', '< 1.1'
+  gem 'delayer','>= 1.1.2', '< 2.0'
+  gem 'delayer-deferred','>= 2.2.0', '< 3.0'
+  gem 'diva','>= 1.0.2', '< 2.0'
   gem 'memoist','>= 0.16.2', '< 0.17'
   gem 'oauth','>= 0.5.4'
-  gem 'pluggaloid','>= 1.2.0', '< 1.3'
+  gem 'pluggaloid','>= 1.5.0', '< 2.0'
   gem 'typed-array','>= 0.1.2', '< 0.2'
 end
 
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock b/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock
index 63f9a63849b..92568056d52 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/Gemfile.lock
@@ -5,22 +5,23 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     atk (3.4.1)
       glib2 (= 3.4.1)
-    cairo (1.16.4)
+    cairo (1.17.5)
       native-package-installer (>= 1.0.3)
       pkg-config (>= 1.2.2)
+      red-colors
     cairo-gobject (3.4.1)
       cairo (>= 1.16.2)
       glib2 (= 3.4.1)
-    crack (0.4.3)
-      safe_yaml (~> 1.0.0)
-    delayer (1.0.1)
-    delayer-deferred (2.1.1)
-      delayer (>= 1.0, < 2.0)
-    diva (1.0.1)
+    crack (0.4.5)
+      rexml
+    delayer (1.2.0)
+    delayer-deferred (2.2.0)
+      delayer (>= 1.1.2, < 2.0)
+    diva (1.0.2)
       addressable (>= 2.5.2, < 2.8)
     gdk_pixbuf2 (3.4.1)
       gio2 (= 3.4.1)
-    gettext (3.2.9)
+    gettext (3.3.7)
       locale (>= 2.0.5)
       text (>= 1.3.0)
     gio2 (3.4.1)
@@ -34,40 +35,38 @@ GEM
       atk (= 3.4.1)
       gdk_pixbuf2 (= 3.4.1)
       pango (= 3.4.1)
-    hashdiff (1.0.0)
+    hashdiff (1.0.1)
     httpclient (2.8.3)
     instance_storage (1.0.0)
-    io-console (0.5.3)
-    irb (1.2.1)
-      reline (>= 0.0.1)
-    locale (2.1.2)
+    locale (2.1.3)
     memoist (0.16.2)
-    mini_portile2 (2.4.0)
-    mocha (1.11.1)
-    moneta (1.2.1)
-    native-package-installer (1.0.9)
-    nokogiri (1.10.7)
-      mini_portile2 (~> 2.4.0)
-    oauth (0.5.4)
+    mini_portile2 (2.5.0)
+    mocha (1.12.0)
+    moneta (1.4.1)
+    native-package-installer (1.1.1)
+    nokogiri (1.11.3)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    oauth (0.5.6)
     pango (3.4.1)
       cairo-gobject (= 3.4.1)
       gobject-introspection (= 3.4.1)
-    pkg-config (1.4.0)
-    pluggaloid (1.2.0)
-      delayer (>= 1.0.0, < 2.0)
+    pkg-config (1.4.6)
+    pluggaloid (1.5.0)
+      delayer (>= 1.1.0, < 2.0)
       instance_storage (>= 1.0.0, < 2.0.0)
-    power_assert (1.1.5)
-    public_suffix (4.0.1)
-    rake (13.0.1)
-    reline (0.1.2)
-      io-console (~> 0.5)
-    ruby-prof (1.1.0)
-    safe_yaml (1.0.5)
-    test-unit (3.3.4)
+    power_assert (2.0.0)
+    public_suffix (4.0.6)
+    racc (1.5.2)
+    rake (13.0.3)
+    red-colors (0.1.1)
+    rexml (3.2.5)
+    ruby-prof (1.4.3)
+    test-unit (3.4.0)
       power_assert
     text (1.3.1)
     typed-array (0.1.2)
-    webmock (3.7.6)
+    webmock (3.12.2)
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -77,19 +76,18 @@ PLATFORMS
 
 DEPENDENCIES
   addressable (>= 2.7.0, < 2.8)
-  delayer (>= 1.0.1, < 1.1)
-  delayer-deferred (>= 2.1.1, < 2.2)
-  diva (>= 1.0.1, < 1.1)
-  gettext (>= 3.2.9, < 3.3)
+  delayer (>= 1.1.2, < 2.0)
+  delayer-deferred (>= 2.2.0, < 3.0)
+  diva (>= 1.0.2, < 2.0)
+  gettext (>= 3.3.5, < 3.4)
   gtk2 (= 3.4.1)
   httpclient
-  irb (>= 1.2.0, < 1.3)
   memoist (>= 0.16.2, < 0.17)
   mocha (>= 1.11.1)
   moneta
   nokogiri
   oauth (>= 0.5.4)
-  pluggaloid (>= 1.2.0, < 1.3)
+  pluggaloid (>= 1.5.0, < 2.0)
   rake (>= 13.0.1)
   ruby-prof (>= 1.1.0)
   test-unit (>= 3.3.4, < 4.0)
@@ -97,7 +95,7 @@ DEPENDENCIES
   webmock (>= 3.7.6)
 
 RUBY VERSION
-   ruby 2.7.0p0
+   ruby 2.6.6p146
 
 BUNDLED WITH
-   2.1.2
+   2.1.4
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix b/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix
index 2bc4db978dd..b45a36c6fec 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/gemset.nix
@@ -22,15 +22,15 @@
     version = "3.4.1";
   };
   cairo = {
-    dependencies = ["native-package-installer" "pkg-config"];
+    dependencies = ["native-package-installer" "pkg-config" "red-colors"];
     groups = ["default" "plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yvv2lcbsybzbw1nrmfivmln23da4rndrs3av6ymjh0x3ww5h7p8";
+      sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s";
       type = "gem";
     };
-    version = "1.16.4";
+    version = "1.17.5";
   };
   cairo-gobject = {
     dependencies = ["cairo" "glib2"];
@@ -44,25 +44,25 @@
     version = "3.4.1";
   };
   crack = {
-    dependencies = ["safe_yaml"];
+    dependencies = ["rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
       type = "gem";
     };
-    version = "0.4.3";
+    version = "0.4.5";
   };
   delayer = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09p4rkh3dpdm1mhq721m4d6zvxqqp44kg7069s8l7kmaf7nv2nb3";
+      sha256 = "0iqf4i18i8rk3x7qgvkhbiqskf0xzdf733fjimrq6xkag2mq60bl";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.0";
   };
   delayer-deferred = {
     dependencies = ["delayer"];
@@ -70,10 +70,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbdxn1hskjqf3zlj4waxl71ccvbj6lk81c99769paxw4fajwrgx";
+      sha256 = "0i2das3ncssacpqdgaf4as77vrxm7jfiizaja884fqv4rzv6s2sv";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   diva = {
     dependencies = ["addressable"];
@@ -81,10 +81,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "182gws1zihhpl7r3m8jsf29maqg9xdhj46s9lidbldar8clpl23h";
+      sha256 = "05wl4wg57vvng4nrp4lzjq148v908xzq092kq93phwvyxs7jnw2g";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.0.2";
   };
   gdk_pixbuf2 = {
     dependencies = ["gio2"];
@@ -103,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+      sha256 = "1fqlwq7i8ck1fjyhn19q3skvgrbz44q7gq51mlr0qym5rkj5f6rn";
       type = "gem";
     };
-    version = "3.2.9";
+    version = "3.3.7";
   };
   gio2 = {
     dependencies = ["gobject-introspection"];
@@ -157,10 +157,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18jqpbvidrlnq3xf0hkdbs00607jgz35lry6gjw4bcxgh52am2mk";
+      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   httpclient = {
     groups = ["plugin"];
@@ -182,36 +182,15 @@
     };
     version = "1.0.0";
   };
-  io-console = {
-    groups = ["default" "plugin"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0srn91ly4cc5qvyj3r87sc7v8dnm52qj1hczzxmysib6ffparngd";
-      type = "gem";
-    };
-    version = "0.5.3";
-  };
-  irb = {
-    dependencies = ["reline"];
-    groups = ["default" "plugin"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1r1y8i46qd5izdszzzn5jxvwvq00m89rk0hm8cs8f21p7nlwmh5w";
-      type = "gem";
-    };
-    version = "1.2.1";
-  };
   locale = {
     groups = ["default" "plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      sha256 = "0997465kxvpxm92fiwc2b16l49mngk7b68g5k35ify0m3q0yxpdn";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "2.1.3";
   };
   memoist = {
     groups = ["default"];
@@ -228,61 +207,61 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   mocha = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i2q5qjr9mvjgjc8w41pdf3qalw340y33wjvzc0rp4a1cbbb7pp";
+      sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.12.0";
   };
   moneta = {
     groups = ["plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q7fskfdc0h5dhl8aamg3ypybd6cyl4x0prh4803gj7hxr17jfm1";
+      sha256 = "0z25b4yysvnf2hi9jxnsiv3fvnicnzr2m70ci231av5093jfknc6";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.4.1";
   };
   native-package-installer = {
     groups = ["default" "plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0";
+      sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8";
       type = "gem";
     };
-    version = "1.0.9";
+    version = "1.1.1";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0qpgf80h764k176yr63gqbs2z0xbsp8vlvs2a79d5r9vs83kln";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.10.7";
+    version = "1.11.3";
   };
   oauth = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0";
       type = "gem";
     };
-    version = "0.5.4";
+    version = "0.5.6";
   };
   pango = {
     dependencies = ["cairo-gobject" "gobject-introspection"];
@@ -300,10 +279,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cxdpr2wlz9b587avlq04a1da5fz1vdw8jvr6lx23mcq7mqh2xcx";
+      sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.4.6";
   };
   pluggaloid = {
     dependencies = ["delayer" "instance_storage"];
@@ -311,71 +290,80 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gv0rjjdic8c41gfr3kyyphvf0fmv5rzcf6qd57zjdfcn6fvi3hh";
+      sha256 = "0m3f940lf1bg01jin22by7hg9hs43y995isgcyqb6vbvlv51zj11";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.5.0";
   };
   power_assert = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dii0wkfa0jm8sk9b20zl1z4980dmrjh0zqnii058485pp3ws10s";
+      sha256 = "172qfmzwxdf82bmwgcb13hnz9i3p6i2s2nijxnx6r63kn3drjppr";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "2.0.0";
   };
   public_suffix = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.6";
+  };
+  racc = {
+    groups = ["default" "plugin"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
   };
   rake = {
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "13.0.1";
+    version = "13.0.3";
   };
-  reline = {
-    dependencies = ["io-console"];
+  red-colors = {
     groups = ["default" "plugin"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0908ijrngc3wkn5iny7d0kxkp74w6ixk2nwzzngplplfla1vkp8x";
+      sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.1.1";
   };
-  ruby-prof = {
-    groups = ["test"];
+  rexml = {
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ga5f4h1fnwn0xh910kpnw4cg3lq3jqljd3h16bdw9pgc5ff7dn";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "3.2.5";
   };
-  safe_yaml = {
-    groups = ["default" "test"];
+  ruby-prof = {
+    groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      sha256 = "1r3xalp91l07m0cwllcxjzg6nkviiqnxkcbgg5qnzsdji6rgy65m";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.4.3";
   };
   test-unit = {
     dependencies = ["power_assert"];
@@ -383,10 +371,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mrkpb6wz0cs1740kaca240k4ymmkbvb2v5xaxsy6vynqw8n0g6z";
+      sha256 = "1h0c323zfn4hdida4g58h8wnlh4kax438gyxlw20dd78kcp01i8m";
       type = "gem";
     };
-    version = "3.3.4";
+    version = "3.4.0";
   };
   text = {
     groups = ["default" "plugin"];
@@ -414,9 +402,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19xvs7gdf8r75bmyb17w9g367qxzqnlrmbdda1y36cn1vrlnf2l8";
+      sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0";
       type = "gem";
     };
-    version = "3.7.6";
+    version = "3.12.2";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile
index 3306c29e3cb..3306c29e3cb 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/plugin/gtk/Gemfile
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/gtk/Gemfile
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile
index f86005fef07..f86005fef07 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/plugin/image_file_cache/Gemfile
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/image_file_cache/Gemfile
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile
index 66016eee9c4..66016eee9c4 100644
--- a/pkgs/applications/networking/instant-messengers/mikutter/plugin/photo_support/Gemfile
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/photo_support/Gemfile
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile
new file mode 100644
index 00000000000..08b4831dfc6
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/mikutter/deps/plugin/uitranslator/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+group :default do
+  gem 'gettext', '>= 3.3.5', '< 3.4'
+end
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop b/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
deleted file mode 100644
index 092f5f35cbf..00000000000
--- a/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=mikutter
-Comment=Twitter Client
-Type=Application
-Exec=@out@/bin/mikutter
-Icon=@out@/core/skin/data/icon.png
-Terminal=false
-Categories=Network;
-Keywords=Twitter;
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile b/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile
deleted file mode 100644
index 14ebffd4e0a..00000000000
--- a/pkgs/applications/networking/instant-messengers/mikutter/plugin/uitranslator/Gemfile
+++ /dev/null
@@ -1,6 +0,0 @@
-source 'https://rubygems.org'
-
-group :default do
-  gem 'gettext', '>= 3.2.9', '< 3.3'
-  gem 'irb', '>= 1.2.0', '< 1.3'
-end
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb b/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb
new file mode 100644
index 00000000000..b19c15cd304
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/mikutter/test_plugin.rb
@@ -0,0 +1,10 @@
+# Tests mikutter's event system.
+
+Plugin.create(:test_plugin) do
+  require 'logger'
+  Delayer.new do
+    log = Logger.new(STDOUT)
+    log.info("loaded test_plugin")
+    exit
+  end
+end
diff --git a/pkgs/applications/networking/instant-messengers/mikutter/update.sh b/pkgs/applications/networking/instant-messengers/mikutter/update.sh
new file mode 100755
index 00000000000..142fd8ca942
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/mikutter/update.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p bundler bundix curl jq common-updater-scripts
+# shellcheck shell=bash
+
+set -euo pipefail
+
+main() {
+    local currentVer="$1"
+    local scriptDir="$2"
+    local latestVer
+    local srcDir
+
+    if [[ -z "$UPDATE_NIX_ATTR_PATH" ]]; then
+        echo "[ERROR] Please run the following instead:" >&2
+        echo >&2
+        echo "    % nix-shell maintainers/scripts/update.nix --argstr path mikutter" >&2
+        exit 1
+    fi
+
+    latestVer="$(queryLatestVersion)"
+    if [[ "$currentVer" == "$latestVer" ]]; then
+        echo "[INFO] mikutter is already up to date" >&2
+        exit
+    fi
+
+    update-source-version "$UPDATE_NIX_ATTR_PATH" "$latestVer"
+
+    cd "$scriptDir"
+
+    rm -rf deps
+    mkdir deps
+    cd deps
+
+    srcDir="$(nix-build ../../../../../.. --no-out-link -A mikutter.src)"
+    tar xvf "$srcDir" --strip-components=1
+    find . -not -name Gemfile -exec rm {} \;
+    find . -type d -exec rmdir -p --ignore-fail-on-non-empty {} \; || true
+
+    bundle lock
+    bundix
+}
+
+queryLatestVersion() {
+    curl -sS 'https://mikutter.hachune.net/download.json?count=1' \
+        | jq -r '.[].version_string' \
+        | head -n1
+}
+
+main "$@"
+
+# vim:set ft=bash:
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 927f89c9493..b097864af43 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -7,7 +7,6 @@
 , lmdb
 , lmdbxx
 , libsecret
-, tweeny
 , mkDerivation
 , qtbase
 , qtkeychain
@@ -30,13 +29,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "1v7k3ifzi05fdr06hmws1wkfl1bmhrnam3dbwahp086vkj0r8524";
+    sha256 = "sha256-w4l91/W6F1FL+Q37qWSjYRHv4vad/10fxdKwfNeEwgw=";
   };
 
   nativeBuildInputs = [
@@ -47,7 +46,6 @@ mkDerivation rec {
 
   buildInputs = [
     nlohmann_json
-    tweeny
     mtxclient
     olm
     boost17x
diff --git a/pkgs/applications/networking/instant-messengers/profanity/default.nix b/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 5aaed6eb211..e7f8a9e7726 100644
--- a/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   # Enable feature flags, so that build fail if libs are missing
   configureFlags = [ "--enable-c-plugins" "--enable-otr" ]
     ++ optionals notifySupport       [ "--enable-notifications" ]
-    ++ optionals traySupport         [ "--enable-icons" ]
+    ++ optionals traySupport         [ "--enable-icons-and-clipboard" ]
     ++ optionals pgpSupport          [ "--enable-pgp" ]
     ++ optionals pythonPluginSupport [ "--enable-python-plugins" ]
     ++ optionals omemoSupport        [ "--enable-omemo" ];
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index b91db31f89a..656ddade11f 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -1,9 +1,30 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, pkg-config, perl
-, libtoxcore, libpthreadstubs, libXdmcp, libXScrnSaver
-, qtbase, qtsvg, qttools, qttranslations
-, ffmpeg_3, filter-audio, libexif, libsodium, libopus
-, libvpx, openal, pcre, qrencode, sqlcipher
-, AVFoundation }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, perl
+, libtoxcore
+, libpthreadstubs
+, libXdmcp
+, libXScrnSaver
+, qtbase
+, qtsvg
+, qttools
+, qttranslations
+, ffmpeg
+, filter-audio
+, libexif
+, libsodium
+, libopus
+, libvpx
+, openal
+, pcre
+, qrencode
+, sqlcipher
+, AVFoundation
+}:
 
 mkDerivation rec {
   pname = "qtox";
@@ -18,11 +39,23 @@ mkDerivation rec {
 
   buildInputs = [
     libtoxcore
-    libpthreadstubs libXdmcp libXScrnSaver
-    qtbase qtsvg qttranslations
-    ffmpeg_3 filter-audio libexif libopus libsodium
-    libvpx openal pcre qrencode sqlcipher
-  ] ++ lib.optionals stdenv.isDarwin [ AVFoundation] ;
+    libpthreadstubs
+    libXdmcp
+    libXScrnSaver
+    qtbase
+    qtsvg
+    qttranslations
+    ffmpeg
+    filter-audio
+    libexif
+    libopus
+    libsodium
+    libvpx
+    openal
+    pcre
+    qrencode
+    sqlcipher
+  ] ++ lib.optionals stdenv.isDarwin [ AVFoundation ];
 
   nativeBuildInputs = [ cmake pkg-config qttools ]
     ++ lib.optionals stdenv.isDarwin [ perl ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 98ede215e02..d4a72e657cd 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -2,7 +2,7 @@
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
-, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3
+, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa
 # Runtime dependencies:
 , systemd, libnotify, libdbusmenu, libpulseaudio
 # Unfortunately this also overwrites the UI language (not just the spell
@@ -73,6 +73,7 @@ in stdenv.mkDerivation rec {
     libappindicator-gtk3
     libnotify
     libuuid
+    mesa # for libgbm
     nspr
     nss
     pango
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix
new file mode 100644
index 00000000000..593e63d32f5
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -0,0 +1,87 @@
+{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl
+, makeWrapper }:
+
+let
+  pname = "signald";
+
+  version = "0.13.1";
+
+  # This package uses the .git directory
+  src = fetchgit {
+    url = "https://gitlab.com/signald/signald";
+    rev = version;
+    sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7";
+    leaveDotGit = true;
+  };
+
+  buildConfigJar = fetchurl {
+    url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar";
+    sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
+  };
+
+  patches = [ ./git-describe-always.patch ./gradle-plugin.patch ];
+
+  postPatch = ''
+    patchShebangs gradlew
+    sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
+  '';
+
+  # fake build to pre-download deps into fixed-output derivation
+  deps = stdenv.mkDerivation {
+    name = "${pname}-deps";
+    inherit src version postPatch patches;
+    nativeBuildInputs = [ gradle_6 perl ];
+    buildPhase = ''
+      export GRADLE_USER_HOME=$(mktemp -d)
+      gradle --no-daemon build
+    '';
+    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
+    installPhase = ''
+      find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/''${\($5 =~ s/-jvm//r)}" #e' \
+        | sh
+    '';
+    # Don't move info to share/
+    forceShare = [ "dummy" ];
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7";
+  };
+
+in stdenv.mkDerivation rec {
+  inherit pname src version postPatch patches;
+
+  buildPhase = ''
+    export GRADLE_USER_HOME=$(mktemp -d)
+
+    # Use the local packages from -deps
+    sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle
+
+    gradle --offline --no-daemon distTar
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
+    wrapProgram $out/bin/signald \
+      --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
+      --set JAVA_HOME "${jre}"
+  '';
+
+  nativeBuildInputs = [ git gradle_6 makeWrapper ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Unofficial daemon for interacting with Signal";
+    longDescription = ''
+      Signald is a daemon that facilitates communication over Signal.  It is
+      unofficial, unapproved, and not nearly as secure as the real Signal
+      clients.
+    '';
+    homepage = "https://signald.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ expipiplus1 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
new file mode 100644
index 00000000000..2f4830e27dd
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch
@@ -0,0 +1,9 @@
+diff --git a/version.sh b/version.sh
+index 7aeeb3c..060cba3 100755
+--- a/version.sh
++++ b/version.sh
+@@ -1,3 +1,3 @@
+ #!/bin/sh
+-VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count)
++VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count)
+ echo $VERSION
diff --git a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
new file mode 100644
index 00000000000..6952654758d
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch
@@ -0,0 +1,26 @@
+diff --git a/build.gradle b/build.gradle
+index 11d7a99..66805bb 100644
+--- a/build.gradle
++++ b/build.gradle
+@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal
+ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
+ import org.xml.sax.SAXParseException
+ 
+-plugins {
+-   id 'de.fuerstenau.buildconfig' version '1.1.8'
++buildscript {
++  dependencies {
++    classpath files ("BuildConfig.jar")
++  }
+ }
++apply plugin: 'de.fuerstenau.buildconfig'
+ 
+ apply plugin: 'java'
+ apply plugin: 'application'
+@@ -185,4 +188,4 @@ task integrationTest(type: Test) {
+     testClassesDirs = sourceSets.integrationTest.output.classesDirs
+     classpath = sourceSets.integrationTest.runtimeClasspath
+     outputs.upToDateWhen { false }
+-}
+\ No newline at end of file
++}
diff --git a/pkgs/applications/networking/instant-messengers/slack/update.sh b/pkgs/applications/networking/instant-messengers/slack/update.sh
index adef4441109..0bb0d784167 100755
--- a/pkgs/applications/networking/instant-messengers/slack/update.sh
+++ b/pkgs/applications/networking/instant-messengers/slack/update.sh
@@ -3,8 +3,8 @@
 
 set -eou pipefail
 
-latest_linux_version=$(curl --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
-latest_mac_version=$(curl --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
+latest_linux_version=$(curl -L --silent https://slack.com/downloads/linux | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
+latest_mac_version=$(curl -L --silent https://slack.com/downloads/mac | sed -n 's/.*Version \([0-9\.]\+\).*/\1/p')
 
 # Double check that the latest mac and linux versions are in sync.
 if [[ "$latest_linux_version" != "$latest_mac_version" ]]; then
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index bfd4f28d0c0..2f6594c1765 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -1,39 +1,62 @@
-{ mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
-, qtbase, qtimageformats, libdbusmenu, hunspell, xdg-utils, ffmpeg_3, openalSoft
-, xz, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
-, range-v3
+{ mkDerivation, lib, fetchFromGitHub, callPackage
+, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook
+, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
+, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
+, tl-expected, hunspell, glibmm
+# Transitive dependencies:
+, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, at-spi2-core, libXtst, libthai, libdatrie
 }:
 
 with lib;
 
-mkDerivation rec {
+let
+  tg_owt = callPackage ../tdesktop/tg_owt.nix {};
+in mkDerivation rec {
   pname = "kotatogram-desktop";
-  version = "1.2";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "kotatogram";
     repo = "kotatogram-desktop";
     rev = "k${version}";
-    sha256 = "00pdx3cjhrihf7ihhmszcf159jrzn1bcx20vwiiizs5r1qk8l210";
+    sha256 = "0nhyjqxrbqiik4sgzplmpgx8msf8rykjiik0c2zr61rjm4fngkb3";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ pkg-config python3 cmake ninja ];
+  postPatch = ''
+    substituteInPlace Telegram/CMakeLists.txt \
+      --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
+  '';
+
+  # We want to run wrapProgram manually (with additional parameters)
+  dontWrapGApps = true;
+  dontWrapQtApps = true;
+
+  nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook ];
 
   buildInputs = [
-    qtbase qtimageformats ffmpeg_3 openalSoft xz lz4 xxHash libdbusmenu
-    zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
+    qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
+    ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
+    tl-expected hunspell glibmm
+    tg_owt
+    # Transitive dependencies:
+    pcre xorg.libXdmcp util-linux libselinux libsepol epoxy
+    at-spi2-core libXtst libthai libdatrie
   ];
 
-  qtWrapperArgs = [
-    "--prefix PATH : ${xdg-utils}/bin"
-  ];
+  cmakeFlags = [ "-DTDESKTOP_API_TEST=ON" ];
 
-  cmakeFlags = [
-    "-DTDESKTOP_API_TEST=ON"
-    "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF"
-    "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF"
-  ];
+  postFixup = ''
+    # We also use gappsWrapperArgs from wrapGAppsHook.
+    wrapProgram $out/bin/kotatogram-desktop \
+      "''${gappsWrapperArgs[@]}" \
+      "''${qtWrapperArgs[@]}"
+  '';
+
+  passthru = {
+    inherit tg_owt;
+  };
 
   meta = {
     description = "Kotatogram – experimental Telegram Desktop fork";
@@ -45,6 +68,7 @@ mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.linux;
     homepage = "https://kotatogram.github.io";
+    changelog = "https://github.com/kotatogram/kotatogram-desktop/releases/tag/k{ver}";
     maintainers = with maintainers; [ ilya-fedin ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 4d6e22bd89c..372c00196a2 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -2,7 +2,7 @@
 , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
-, tl-expected, hunspell, glibmm
+, tl-expected, hunspell, glibmm, webkitgtk
 # Transitive dependencies:
 , pcre, xorg, util-linux, libselinux, libsepol, epoxy
 , at-spi2-core, libXtst, libthai, libdatrie
@@ -20,19 +20,19 @@ with lib;
 
 let
   tg_owt = callPackage ./tg_owt.nix {};
-  tgcalls-gcc10-fix = fetchpatch { # "Fix build on GCC 10, second attempt."
-    url = "https://github.com/TelegramMessenger/tgcalls/commit/eded7cc540123eaf26361958b9a61c65cb2f7cfc.patch";
-    sha256 = "19n1hvn44pp01zc90g93vq2bcr2gdnscaj5il9f82klgh4llvjli";
+  webviewPatch = fetchpatch {
+    url = "https://raw.githubusercontent.com/archlinux/svntogit-community/013eff77a13b6c2629a04e07a4d09dbe60c8ca48/trunk/fix-webview-includes.patch";
+    sha256 = "0112zaysf3f02dd4bgqc5hwg66h1bfj8r4yjzb06sfi0pl9vl96l";
   };
 
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.7.1";
+  version = "2.7.4";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "01fxzcfz3xankmdar55ja55pb9hkvlf1plgpgjpsda9xwqgbxgs1";
+    sha256 = "1cigqvxa8lp79y7sp2w2izmmikxaxzrq9bh5ns3cy16z985nyllp";
   };
 
   postPatch = ''
@@ -40,7 +40,7 @@ in mkDerivation rec {
       --replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
     substituteInPlace Telegram/CMakeLists.txt \
       --replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
-    patch -d Telegram/ThirdParty/tgcalls/ -p1 < "${tgcalls-gcc10-fix}"
+    patch -d Telegram/lib_webview -p1 < "${webviewPatch}"
   '';
 
   # We want to run wrapProgram manually (with additional parameters)
@@ -52,7 +52,7 @@ in mkDerivation rec {
   buildInputs = [
     qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
     dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
-    tl-expected hunspell glibmm
+    tl-expected hunspell glibmm webkitgtk
     tg_owt
     # Transitive dependencies:
     pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index cdac4a2829b..fd15e77c8be 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -29,11 +29,11 @@
 assert pulseaudioSupport -> libpulseaudio != null;
 
 let
-  version = "5.6.13632.0328";
+  version = "5.6.16775.0418";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71";
+      sha256 = "twtxzniojgyLTx6Kda8Ej96uyw2JQB/jIhLdTgTqpCo=";
     };
   };
 
diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix
index 871dcc84c1d..afc308039de 100644
--- a/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/pkgs/applications/networking/irc/catgirl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "catgirl";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchurl {
     url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "0shg02zidqqmvywqqsaazlgg9rd5lhhrvjx6n0lzmdfaawxywciv";
+    sha256 = "sha256-3shSdeq4l6Y5DEJZEVMHAngp6vjnkPjzpLpcp407X/0=";
   };
 
   nativeBuildInputs = [ ctags pkg-config ];
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
index 4bbc1589ed2..ba1837ee96f 100644
--- a/pkgs/applications/networking/irc/convos/default.nix
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -6,13 +6,13 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "6.06";
+  version = "6.11";
 
   src = fetchFromGitHub {
     owner = "convos-chat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b3c8hj9cjmpzy9k949vdv1y3v7b94nh0mq15rcv3ax0sj3gd0qr";
+    sha256 = "19nzm7f3glvj34nj9pvnp0h9xx6baq58c11ddkqfmq7w3sci49hi";
   };
 
   nativeBuildInputs = [ makeWrapper ]
diff --git a/pkgs/applications/networking/irc/glowing-bear/default.nix b/pkgs/applications/networking/irc/glowing-bear/default.nix
index bd7e05e8d38..9e1e14dcfbe 100644
--- a/pkgs/applications/networking/irc/glowing-bear/default.nix
+++ b/pkgs/applications/networking/irc/glowing-bear/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "glowing-bear";
-  version = "0.7.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "glowing-bear";
     repo = "glowing-bear";
-    sha256 = "14a3fqsmi28g7j3lzk4l4m47p2iml1aaf3514wazn2clw48lnqhw";
+    sha256 = "0lf0j72m6rwlgqssdxf0m9si99lah08lww7q7i08p5i5lpv6zh2s";
   };
 
   installPhase = ''
     mkdir $out
-    cp index.html min.js serviceworker.js webapp.manifest.json $out
+    cp index.html serviceworker.js webapp.manifest.json $out
     cp -R 3rdparty assets css directives js $out
   '';
 
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
index 20aebebf7da..c42fe55169e 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -53,11 +53,11 @@ in buildPythonPackage {
 
   installPhase = ''
     mkdir -p $out/share $out/bin
-    cp $src/main.py $out/share/matrix.py
+    cp main.py $out/share/matrix.py
 
-    cp $src/contrib/matrix_upload.py $out/bin/matrix_upload
-    cp $src/contrib/matrix_decrypt.py $out/bin/matrix_decrypt
-    cp $src/contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
+    cp contrib/matrix_upload.py $out/bin/matrix_upload
+    cp contrib/matrix_decrypt.py $out/bin/matrix_decrypt
+    cp contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
     substituteInPlace $out/bin/matrix_upload \
       --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
     substituteInPlace $out/bin/matrix_sso_helper \
@@ -66,7 +66,7 @@ in buildPythonPackage {
       --replace '/usr/bin/env python3' '${scriptPython}/bin/python'
 
     mkdir -p $out/${python.sitePackages}
-    cp -r $src/matrix $out/${python.sitePackages}/matrix
+    cp -r matrix $out/${python.sitePackages}/matrix
   '';
 
   dontPatchShebangs = true;
diff --git a/pkgs/applications/networking/mailreaders/himalaya/default.nix b/pkgs/applications/networking/mailreaders/himalaya/default.nix
new file mode 100644
index 00000000000..7a453bdb64b
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/himalaya/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, openssl
+, pkg-config
+, installShellFiles
+, enableCompletions ? stdenv.hostPlatform == stdenv.buildPlatform
+, Security
+, libiconv
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "himalaya";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "soywod";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-s2QZSusJLeo4WIorSj+e1yYqWXFqTt8YF6/Tyz9fHeY=";
+  };
+
+  cargoSha256 = "sha256-u9dLqr5CnrgYiDWAiW9u1zcUWmprOiq5+TfafO8M+WU=";
+
+  nativeBuildInputs = [ ]
+    ++ lib.optionals (enableCompletions) [ installShellFiles ]
+    ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkg-config ];
+
+  buildInputs =
+    if stdenv.hostPlatform.isDarwin then [
+      Security
+      libiconv
+    ] else [
+      openssl
+    ];
+
+  postInstall = lib.optionalString enableCompletions ''
+    # Install shell function
+    installShellCompletion --cmd himalaya \
+      --bash <($out/bin/himalaya completion bash) \
+      --fish <($out/bin/himalaya completion fish) \
+      --zsh <($out/bin/himalaya completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "CLI email client written in Rust";
+    homepage = "https://github.com/soywod/himalaya";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ yanganto ];
+  };
+}
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index f0f3bdb3ff4..29667eb52c6 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mailspring";
-  version = "1.8.0";
+  version = "1.9.1";
 
   src = fetchurl {
     url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
-    sha256 = "BtzYcHN87qH7s3GiBrsDfmuy9v2xdhCeSShu8+T9T3E=";
+    sha256 = "mfpwDYRpFULD9Th8tI5yqb5RYWZJHarbWYpfKS3Q6mE=";
   };
 
   nativeBuildInputs = [
@@ -34,13 +34,12 @@ stdenv.mkDerivation rec {
     alsaLib
     db
     glib
-    # We don't know why with trackerSupport the executable fail to launch, See:
-    # https://github.com/NixOS/nixpkgs/issues/106732
-    (gtk3.override {trackerSupport = false; })
+    gtk3
     libkrb5
     libsecret
     nss
     xorg.libxkbfile
+    xorg.libXdamage
     xorg.libXScrnSaver
     xorg.libXtst
   ];
@@ -52,10 +51,16 @@ stdenv.mkDerivation rec {
   ];
 
   unpackPhase = ''
+    runHook preUnpack
+
     dpkg -x $src .
+
+    runHook postUnpack
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/{bin,lib}
     cp -ar ./usr/share $out
 
@@ -64,11 +69,13 @@ stdenv.mkDerivation rec {
 
     ln -s $out/share/mailspring/mailspring $out/bin/mailspring
     ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+
+    runHook postInstall
   '';
 
   postFixup = /* sh */ ''
-    substituteInPlace $out/share/applications/mailspring.desktop \
-      --replace /usr/bin $out/bin
+    substituteInPlace $out/share/applications/Mailspring.desktop \
+      --replace Exec=mailspring Exec=$out/bin/mailspring
   '';
 
   meta = with lib; {
@@ -77,8 +84,8 @@ stdenv.mkDerivation rec {
       Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
       Mailspring's sync engine runs locally, but its source is not open.
     '';
-    license = licenses.unfree;
-    maintainers = with maintainers; [ toschmidt ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ toschmidt doronbehar ];
     homepage = "https://getmailspring.com";
     downloadPage = "https://github.com/Foundry376/Mailspring";
     platforms = platforms.x86_64;
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 59ae1955169..7badbc2b10d 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,665 +1,665 @@
 {
-  version = "78.9.1";
+  version = "78.10.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/af/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/af/thunderbird-78.10.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "7bfec5dfdab93e1ccd8737c67cec8f257d15387045437c016b5ff2b5ef6d6d45";
+      sha256 = "25209094ced8e435c1d2b46f78e618b302b236995454bd494ed2c74357041012";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ar/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ar/thunderbird-78.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "5f1c9b32fc37c750a0fae80b0b41d3f11c774807014f930476a28885ad7854df";
+      sha256 = "8c414c7b5f45f358918360369fb768b9c9051ef870cae22faad70c0fc9dc9ddf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ast/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ast/thunderbird-78.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "b880a02f42b9c6bd3c8b2f82f829c6458091bff1d3555a7cd07d59254c3f9694";
+      sha256 = "650309b5890f67fece320e25fc9e070b560fb37474c00f4f4e08e18ab30ef33a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/be/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/be/thunderbird-78.10.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "ea2049f514881f76b0b775c5e27aace867d483c8a9e8f3c139e1c213fc97371e";
+      sha256 = "2cf57f5c44bf244c59d3cfb849b66ec53308aff381ce39ac16adbb53dcf11064";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/bg/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/bg/thunderbird-78.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "54d77d3972fffde0a110b2451fd3516aacd27cf7365171ec369993f0d57506a4";
+      sha256 = "348b23e62abe077e14235159d829b405b9fcb003dc7230883b10ee4f10b64f33";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/br/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/br/thunderbird-78.10.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "8fea37e1b1721dfcd06c2798b67260dcd3e3a9821cda5b03ee5355bd04759602";
+      sha256 = "7baa2d4d149ae3011cb7f9ddc3e5a3f6536f7c8ed712e3a60d7f0c92547f1c18";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ca/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ca/thunderbird-78.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "26ebbb11b0db144ebd7c891a50fd595a1b40ac9e3aaae212464bed73bf8d29b7";
+      sha256 = "368f1b24edae884a2c1e961f938b085478151742b161e5f9016bbb92b3e2ab13";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/cak/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cak/thunderbird-78.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "7dddaa78c0429b8dc7ed0570d8f0dc440da9df940eea2a091dbeb28323a1972c";
+      sha256 = "38bb68cbe0054f6deac79ebd72ff5c9f28c9a2b9b638967da7d20442c909df2b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/cs/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cs/thunderbird-78.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "b50810bcdc40363af165ea703ae660c68b33ceebb186cb736aa2dc7628eb7d51";
+      sha256 = "810fa4e2e3507d419d55f16d0816a326751d2211675b3ca335b08b9e46f8a65a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/cy/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/cy/thunderbird-78.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "9e26a9dabe48146c0ffb94ea8464aba206fc9afe1f110642c5a0d742627e090a";
+      sha256 = "847867a78b1e583cca457436e57cebaf0c721121f61eb955cffc144cc255270f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/da/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/da/thunderbird-78.10.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "156b5a65a987ee2a74e608f230129e65abf59952e331bb8467e48ebcda9448c3";
+      sha256 = "d84a31c096f15d79b23e09f35ed2894dabc855c696b457405e2d638c52898945";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/de/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/de/thunderbird-78.10.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "f55a61264cec96205f75bae35a58ee9110614aa3a027fc19fa7b67b50167e343";
+      sha256 = "2ad8585b955c60242747daf36855d6fb77658dd2dda75cb3ff8637c8ef07bc75";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/dsb/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/dsb/thunderbird-78.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "5e4290ddeb1bc2e301d400c5b71c719e25f109f20aa92c723cfda11342fcf171";
+      sha256 = "84ac04cd5248ef47c49927edcdf71d2e8f7cf96139888289eb4d8898b5224f71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/el/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/el/thunderbird-78.10.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "c10b09b8773cb4479c354194664f5c40bb45e748cc84aa3f895be72feca1b761";
+      sha256 = "cf2760b5488590a76df140b7c877528bd76446187b673c82087b199e9e8f416d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/en-CA/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-CA/thunderbird-78.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "e21d94ea954e080db1d4a8c5a20d39099fc21019f78ddcb4fe105ca0beb6f5a3";
+      sha256 = "7006ac951a834ff689f4ee1ab5a0a4e051368cb33ceaea459467536e2f22b74b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/en-GB/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-GB/thunderbird-78.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "9adcdb0b947f5ef79d874ca47b4361677e1dacb03c97ff4cdcffe0706d865272";
+      sha256 = "e77850b2ff0b91f92ee18990715a75b7c73e226a6cdd9dec6b3fd689c3571053";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/en-US/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/en-US/thunderbird-78.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "20eafd8ee01018952d723a51f736aedaeba2c48f4da5554a80035427e24d1486";
+      sha256 = "e7f324c2e959ca3ce15dddf949927975cb06001243f3b7bd8a0e162edebf837e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/es-AR/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/es-AR/thunderbird-78.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "18e3ca32a92fcc7d201d89abb2c053f5f081ad91402280a0de75c1307eed5955";
+      sha256 = "17be1ad2c43f72ca07ae1060566ac4730e1022d4032efbfa76b6f1beec1bc123";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/es-ES/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/es-ES/thunderbird-78.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "ddae6044f742f3530bb1eb45f9464158d3b53f26dcaae81874e8082e839b581b";
+      sha256 = "697acffd0cb7b8c5948fce660528729ae31ee0baae809e4b3d759f9d42a8d7f6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/et/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/et/thunderbird-78.10.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "d3533609865cb53fa4c1226b747ae011737112755e83b734f0b54bc61d995f6b";
+      sha256 = "84789fa2e03dc312a9e6509fd8e938aa333465df8b451d7224cc86ea9059bc5b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/eu/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/eu/thunderbird-78.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "6e245317ce453ef71dae9a222e9fdaf5f72978aeee6735300a77bf452bba9934";
+      sha256 = "29c7728bb5aef60f53dc914b5d6eed47bddd191198db92b79d0ef144e64c5890";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/fa/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fa/thunderbird-78.10.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "a779002a3778e3b5939a1b778ea1d2a570d5ee71ac3db444b64a8fd19a4ffa1a";
+      sha256 = "5ab74aa662aa970ea406a33f05059361e317079c41b755700c44cdc778d04e43";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/fi/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fi/thunderbird-78.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "8edba99433e66f4d2ea9936fdcd7a0f84cfcea73da2fede520afc45e90d1f639";
+      sha256 = "578b713326dfef5e59acb1df29dd13f35f7b935ebc5221433c180431943c9424";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/fr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fr/thunderbird-78.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "c21c71dc854aa27b6519b0220c646d32bf5015d39765ec34bef2b1a62712c9f1";
+      sha256 = "2c43647dc70aa1f3bc15a83ec4654b6ec3c6d520d03bcb503f8672e1dba0edfe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/fy-NL/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/fy-NL/thunderbird-78.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "6babc9461a014f8f1eeaa0c9ed5912bf8cb9ed24776de637014e0a5ab52b4aba";
+      sha256 = "a621165ce74cb20400bd104d43e4ddf196305cc7000cd524916b766662f20b23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ga-IE/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ga-IE/thunderbird-78.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "889788186a45a9f951ecfcd0c61710d2dd30334c81ca0c697229401f555dd4fc";
+      sha256 = "5e45fb6ea542f24715d96e04d9c30b44584481115fe0d12a30e27ad2cc057faf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/gd/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/gd/thunderbird-78.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "f9bc35aeee7d40d4fab47d74edacfa66b784aea26c3ed60709bf8554f3151d38";
+      sha256 = "2ccc8a5394119d98d9b3ca97128e62f18fdb8b86076ff24bca6f29ac3276dc4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/gl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/gl/thunderbird-78.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "71f270c780f58d7530e0f9535aa16d0df329f974cd9fa6d51da5870b2197d7af";
+      sha256 = "fc84c102cab3c1b85af2beb68fcabf752c9643407b6b6322e2972d231dec9da9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/he/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/he/thunderbird-78.10.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "5927cfa48ea585e75894a64dcb70e68fe2d8e5eea5b926b26b522b8a78cbc2be";
+      sha256 = "cdda0210f15750688490ceeac10608722184ebb05e566be2c8d0dca563d708b5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/hr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hr/thunderbird-78.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "a5ea3a25d9a28518005a62d7a1a9832e58199924f9761b7bc8c1a6b0ed5dbc3e";
+      sha256 = "3e18a65345e29126e7fc82a8da20bb7a8a3b8bd6efdcb143c8814d940a4e42b1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/hsb/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hsb/thunderbird-78.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "1e6b20a125c2fad0b78558b5299bb57208ccd3bbe9075505b94ed819d03faaac";
+      sha256 = "e9b38d2a15e152210725f2422e283a84086c95edf164f33979f907180e46a568";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/hu/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hu/thunderbird-78.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "1fb84c326aa68ce3bfd11c1381a0317b2b6f953b23611bfab6d409d208c164a2";
+      sha256 = "733efd6a1eb66353e0a6dbe74f18f42cec0c7ecc01d1bea865303cba9d4067b8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/hy-AM/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/hy-AM/thunderbird-78.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "4ae1a82ca5321cf068525ffdf775f1245efedc5a7db8104d83c177cc9606c61c";
+      sha256 = "8798f26cddc10d47992031e21b785e115c46413d36b8b4e518649adaeb3b47ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/id/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/id/thunderbird-78.10.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "e797bad2246f1e1d1fd9ead1fd99c0c03cf70edd94cec0944f7ccc14ef7d5053";
+      sha256 = "3cb73a2f9ee07cbbf13d562e988410cd644e5e5b87172c960463210bb9651be6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/is/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/is/thunderbird-78.10.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "1b9c39688d4958cec95537b972efc8179cca37901c75dce962e6ae8f18371125";
+      sha256 = "3d3bc8d8c12d213635404e559d3b477435fe632ad3e69ea7060a03f30d31b86d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/it/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/it/thunderbird-78.10.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "62a19dfd8c496cb1dd44f960914ef46314d3f1542e7957b60622592e003fcff3";
+      sha256 = "4ce44992d22f283f08e16549bc6cfdc416bb6d197bef63702ac279ab8a3366a7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ja/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ja/thunderbird-78.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "b730278fe53e3bf51fdf2147348a6f68b4773f572166c8c180685a8acf805577";
+      sha256 = "ecdb393877df52459486628f70024620e2824ad6da8363a9133e64c041fe3812";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ka/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ka/thunderbird-78.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "c22b1aa5d5d24ba355219bd31023acc74cbd73f7211594c5445ffcaff247675c";
+      sha256 = "f39a3beed17681f36f28a33fb74083143aa33ae51a7836507345b147c04d1d0a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/kab/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/kab/thunderbird-78.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8b84e2d2d411ab7486e7013479632a65d836790e24df258db633e7c08cf8afb5";
+      sha256 = "fe7b8e90b3c30de00ca5326e3a2a100aa7ba862322c7f386c871b56a22ca4e08";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/kk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/kk/thunderbird-78.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c2bd75e1945ff3f74dca7cc5bcecbdb36d94a07b0ad4c4636ddc22b0527b4e27";
+      sha256 = "b1c8ece7ec8e634b0746664401ca750c1cd3a81b587f6ee918b6166720c3b074";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ko/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ko/thunderbird-78.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "add8f17f12b5add8759a4b4964d205ffeabf49d5d3ad351f575762f11cd496e7";
+      sha256 = "31f16d08a51315502e0e1da5d11581e2637361b40fd5c0d60852c1546fd45cb7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/lt/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/lt/thunderbird-78.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "53dbfabba0feda6ba2c6d8673bad01769a99d28cd4cf05dd27cc13364e365d61";
+      sha256 = "e56f4fd2bbee8bd0379030442355412f9f73e9c67123505242f438ccebc544ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ms/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ms/thunderbird-78.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "220db127c3a32811200db8c2e8ff1c3a026e5fc766830cf4267c42142f098932";
+      sha256 = "13c2feb9ee22a40485f9648b2ad60113b0a463aa7c55cd9bef8cb2a68211bdfb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/nb-NO/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nb-NO/thunderbird-78.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "e96f5814e9d2b9ca8f3326cfe867405681ab4132e98c17a0a0980c1e9a2dd0be";
+      sha256 = "7e305950c61299fe992891cb2a18a8420c40bb9333b40dd45ca39b92d644cdf9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/nl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nl/thunderbird-78.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "deaed1d2f3ddf74391dfe94b3b11726e0a7823f45e37047b2dbfdc0133eb329c";
+      sha256 = "eeaa3e5b0e72f36cf1a66c0bf040e94258f2547a7e1665fc667bab3cd9f84410";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/nn-NO/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/nn-NO/thunderbird-78.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "8bb5e5375805285da875280316dacf39be1069cc567df6b09cebc9689922a260";
+      sha256 = "e870393eef06b6eb2564b00a039c7d19e418e2283f992970df860606099cd70b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/pa-IN/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pa-IN/thunderbird-78.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "8680087bfcc7758df27d74f7be937b50625f08c44c3c8a2a2d21f3ffeda4d38d";
+      sha256 = "24b11eb4bb5bc929e89b92cc0faf4011f5ce33dd03d4212ac5c0209ce7901c10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/pl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pl/thunderbird-78.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "9bd9a119f0f2d0bb5e489907f23811a6e5933d9304fb92d938fa7b0e638dac6e";
+      sha256 = "cace57aae947e8a2ed1b7875c4791d94d8f0d0f865ee0dc0a4a9230081db6477";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/pt-BR/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pt-BR/thunderbird-78.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "2f87bb38281d69e34d9918b40ca29f35ada3b9f8a627bd36c56f21befe2a45f8";
+      sha256 = "d36a91d97b8e53720665e3541215889a2ce848de5b87989c52c3022924ae73e7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/pt-PT/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/pt-PT/thunderbird-78.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "786a97c6b1604e59a6a4114142b5f5c309149480ddd612b22c1ca122d3a2a633";
+      sha256 = "18f71f0f278037a88af1ff4d87ab8b907cfa3097f11e3b98282c9f9de9d40fee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/rm/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/rm/thunderbird-78.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "cd54da5d6c3b105a8ed9dd09771d8e15881694b001b6daf8199014fd4043b777";
+      sha256 = "833e51aaba81212aad670b276498362103aef388cf09b5404a78cb046805be4e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ro/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ro/thunderbird-78.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "e81e40a5eec5bb4dda0d0b7df414bd475c054008249c946e8d99c9272f31ab62";
+      sha256 = "fe033d44674609c319c8bc6939056d8f77ccbabf0badcb059a06bbe028868af2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/ru/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/ru/thunderbird-78.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "283221c2b927c10a2e4017383af6b93bd717555c28b700b276ba8d600a84250d";
+      sha256 = "19c26477c691f60c76813b1fc657ff837fe4f160d6e77ffa6f73d9e88e748655";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/si/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/si/thunderbird-78.10.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "7f6fe6533e54e6a8a544da7bd844079b2d6a5e913c16210ad77ac7c93d2b1415";
+      sha256 = "ae2a50027f0df5e3533bcb5b094987976a040ef1cde810e030ce6e446338ba96";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/sk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sk/thunderbird-78.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "b0f872351a9f2aa714f69be18b78a8092049c8e005b07a19a906a8d595d90fc1";
+      sha256 = "9bed8f53737a363314cf67671b64b7bbdd93ff2ab50fe32a781f09cd991e3a96";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/sl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sl/thunderbird-78.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "699f4e4dd786fd09d9f8430fc33b5b2897541334f5b9517a7a8dab527aabed7c";
+      sha256 = "fd38aaf88301b3f58cbf0d63d0545d30f8db4994509f10f76efdcb6b0d4ea977";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/sq/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sq/thunderbird-78.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "ce3c9e8cbfef057349e82462eba72a57b14d8c76f5d7949529dc9d629cc5b01e";
+      sha256 = "6fa0d45921f4c2ca8c5c4a2755c8f724b3046a92504fa98bd20084b5be297891";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/sr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sr/thunderbird-78.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "1b2f383e517d80e6607fd4041b07071d71e26602bf812c85ecbbd0a5e7a674c1";
+      sha256 = "1c85bd065b6441c2131f32b9faff5ca425bcd718a0b10052b05ba29a68a93c78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/sv-SE/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/sv-SE/thunderbird-78.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "d0020ce77ec629cff313f8d23a1354c6ee2591d502d2f60d9800fa7baaedd0c3";
+      sha256 = "cfcafa5ef9221bd1cc91f266e2659e769753a2acbac6893528347a5b7db92c2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/th/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/th/thunderbird-78.10.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "40abb70abd9938a3141c50bf39a4e1d62c862b8b1bcfdba0a11d57fb5cf373b7";
+      sha256 = "892b23cde316c922ea6fc7b537437885fa8ca2ebfd9b17d177b5f5d5deda30cb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/tr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/tr/thunderbird-78.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "363a371af193497ec72dafd8f5789c55b62e404f1fd386d78ed6178dfd8b5ef5";
+      sha256 = "bad99148eb7f2777fc0227db9f6b03a9b31c7aaee19bfe4fbae26227547421e7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/uk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/uk/thunderbird-78.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "71697e823371ab8e9d5160c2fededd533de4e9adf4d491b018c2fb7db721b17c";
+      sha256 = "127c636969dde8cb10121f8fa3ed0c18c35d13ccfd07643a2aa5c3aa78a6f82f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/uz/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/uz/thunderbird-78.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "46350d800495493f15295d65989bb3c63cd1180ccdbe4481550847618f54420e";
+      sha256 = "2c1848c7cb62bf96cb255a39e31099516e7df8d3e34cf68430a323729b571430";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/vi/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/vi/thunderbird-78.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "a254cd59632d78971d7b3da95aad73a73cfbffbad7ebebde3c5b9f1c735db65b";
+      sha256 = "754e8974cc2284fb7b01f413c0220cb1d99b50831189dd61ab8804e44bf54f48";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/zh-CN/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/zh-CN/thunderbird-78.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "c69bd4b840d5288d334191beaf89a4407e1039325b5cdeb107ea30c1a7e2d73d";
+      sha256 = "f76ee6ce544ff1dd9df931b15e9d25b18971f489b3b9e6f03749976ead068c60";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-x86_64/zh-TW/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-x86_64/zh-TW/thunderbird-78.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "1e120294db0dee586bb1f02ee935266f4b47ae58e0d76cfade4cb306d4153c65";
+      sha256 = "fc7441b416e541c24b0148450812f350058a6d0fe2a44fa546fb4d059674bc27";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/af/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/af/thunderbird-78.10.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "31a8e3f3b38df0da0821a5bfbc7a9abaeea64b587ba3e7bfd9b601910b3e305f";
+      sha256 = "5ed18c354dcb22e9999854f5f83d880fed92fd9e4ddb43564c8e69a07c5e29e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ar/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ar/thunderbird-78.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "f2ecd646ffe074f69c0b8e9b99b40984eb8ee3edfa9e54ee7994d45192dedcff";
+      sha256 = "31caadee014741ec0c77307a155bfdf5ba4f7d9b06e1786edf1bf6162d59ef43";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ast/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ast/thunderbird-78.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "7206c4f541f559f97a3794e4fa523a5bbc0ddbbf53faedd6de0eedf9bc53b73f";
+      sha256 = "e5dfbce6d8dffadda9ad5320d8baadbe185972d0e62d79079833853151b1bd54";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/be/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/be/thunderbird-78.10.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "fb8b7b8f054bb57c81ff3d6f9be2344875614603e51d0ada3c9ae9a7b293d51a";
+      sha256 = "0f6507525b844b405c515b80238a9672012c6950185a2be6523eef3d42bcad50";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/bg/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/bg/thunderbird-78.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "9df0466da1b9d866055d1ab2c0afacfa52520cea68d399e0bfce31dca73501ea";
+      sha256 = "002bb9b971851c3ec8eed1e1ce1c28fd97fac788578d53eb0eb130a2c100426d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/br/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/br/thunderbird-78.10.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "89625f21cef0fb98fe3b3755c73859ff942ada47b255b2f8a806f280a77af711";
+      sha256 = "adbccb49d9f00198ee4fe2868d3ee4d745c79dda90a8b0b496c6be2a0ab9fada";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ca/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ca/thunderbird-78.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "6fa044e4b37fabe37ce76f09ae97edb0d82aabbc5e60442bed24fc0c6a8735fa";
+      sha256 = "efb8a08377c34b49e57c424c86473429b475c9f0bb23e17f6beec2c3d288b9bd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/cak/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cak/thunderbird-78.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "2668ef838b08b75ac1f0d8f87ec01bc08fdd02631f8cbacd4c25bf0e13470dae";
+      sha256 = "e3775d9aad469ac62c5b86e8441ee8597172cbb9f4f365309c402c42608bf3a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/cs/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cs/thunderbird-78.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "23bc6f0a178b9869cbdb59db4068cda6e88b7c19415c736ba651f886b5f680d0";
+      sha256 = "a74c7a2c2bb7c0ce6456e808a6d503554c74d9588c59555086ef188e3ec9ad9b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/cy/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/cy/thunderbird-78.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "afaea8a7289f56ea07a2960a4ab645c8c748d43bf8ae5458b70fbd2c93d070b5";
+      sha256 = "83fd84d86dff669f65b95014a222ffa4889f1db16209c133ea02c0d4f893169c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/da/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/da/thunderbird-78.10.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "7efbb2b12744af4da28580d6fcd648c41ca1a7bf09df1eb2fe149e9cb1db29c4";
+      sha256 = "531984ff00cfcdf957186221d461d61dfb8637474448dd7c3f9c8f21c3d78eb9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/de/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/de/thunderbird-78.10.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "0c7059e9a8bbeceac0a834ec6db2d1a54b25d1016149cdd766259a9982b5a55d";
+      sha256 = "bffa31e9ad9fcd17b3d29414d41e7fad2f95e3becfa79e45176a20ce4d7fdbb6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/dsb/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/dsb/thunderbird-78.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "266f62501dae1728eed1756bde56378f2a81c85e600f83e59ab47b0cda6eed7f";
+      sha256 = "05101ba58d6929e128f753015220a7d018e6e0fc5b880843c2bd821a53d26064";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/el/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/el/thunderbird-78.10.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "a22d57db810633e9b6041207b018b6a4d97b4f6d25b9dac636b7c9dc7ac2bb3c";
+      sha256 = "121178325199b8e4aaed151f197787e8bf82ffa6c93638322fc75755e9f09608";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/en-CA/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-CA/thunderbird-78.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "8bbca7d8bef81968c31317e298a471399ae183170dfeeea37c5791b60afcab7c";
+      sha256 = "9a11bbbe5a320f4507813bde58407ef441b260d17811f7eaa692182fdd1866b4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/en-GB/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-GB/thunderbird-78.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "431a4f01e3220ed58bfc4f4d6633bb77f9f69929ebc68da9aa0945ec9686d569";
+      sha256 = "f5bb637a3b17c7eea22ae7804c13734c60890755273badc4d832035a34fad272";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/en-US/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/en-US/thunderbird-78.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "0d0970844747d9ddeb55e81db916a7c46333e0d64c67b25106eded69d0345e57";
+      sha256 = "7437fcbaa4c75858b3ceba7abce6237f80017e6c68cf963ed109b81bb73f3553";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/es-AR/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/es-AR/thunderbird-78.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "be435aa764c0c46864bd18463ad47ce31c3ace6ab2204c2d38ad44e6e924eacc";
+      sha256 = "6aa396ca00791ed0127321bc9cb9e3fe677f1897bbde157986cb8829a6d1fecf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/es-ES/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/es-ES/thunderbird-78.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "0201bed6e8286dc455389cb62393cf697be955010e893a6d294a963861331324";
+      sha256 = "4eb1605ee60dc731d578117fec45c03fec7f3f99ef29ab7475d4be15004949fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/et/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/et/thunderbird-78.10.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "a4594dbaba90ecbd7d2c6ebe91d3280bfa05815355b9f16756c19795a598f105";
+      sha256 = "94555bbc597c622ec1cab4e310a978a638c94d7398beb40cb573555e2f5a86ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/eu/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/eu/thunderbird-78.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "f74f02683bfcbf7795b92325d332f855c636f42259e36c1284d383b49e919770";
+      sha256 = "77dca056a6c4cd64d6fe5ea60fe6d9c211a1ef1d0accb4685c9c8fea7861e2bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/fa/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fa/thunderbird-78.10.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "ae29d36b6510bdda27ccdd1444bab1c2b2c581fabc2e501cfee54c50e34ea5f7";
+      sha256 = "8e0b2bb8630c2ca64652fd952656637d1393b5845104f9f2ab08d0ade2a96da6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/fi/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fi/thunderbird-78.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "2b586687b107c45d59a7da744ee7c8dca6b6b0dcf7685a963a901819e2b7c799";
+      sha256 = "d8ba0d4194628ff7946159bf511d2485d310c42c9fc745c27b751f4c59477ed9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/fr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fr/thunderbird-78.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "dcf346dd57f6c9a5a5b05c9a367a7955b821de1c1a2e25caaa2c39d7eb451f32";
+      sha256 = "ebb2561f50b1d6defb628a07646b70952687f666475ca126bd72dbd7478efe26";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/fy-NL/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/fy-NL/thunderbird-78.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "e19670ba85c5ee7840dc40e04c4d76dbe3b240c1eb865800a184cc512c7e1cc9";
+      sha256 = "45c7c92986cc792273e5923834bd4f209e25d26e44ac1e155c8f7b539e72ee8e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ga-IE/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ga-IE/thunderbird-78.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "97608d41f96d830a0926e52bc218bbdbdbe2e3abebbfaaa8fcc78c5957bf2d3a";
+      sha256 = "c127d817e6b4759eac5b2af5aaad82670a157857b63bc0869ac1adeb27d38f3c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/gd/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/gd/thunderbird-78.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "6f95e26b57550604c177a6b561bcd73ba39df76f6c08af71185eb050f66fdfbf";
+      sha256 = "40468c9214fb67dda8cca1f43d03e5621910eb260bde268034a8c967af2bf73f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/gl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/gl/thunderbird-78.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "6f911ad3c16a0fe9fcfab54518585b5ea53a6c800ef4a01ee22fba029d8f857f";
+      sha256 = "55ab753b591c72307b31e9b98a1f426886a4a0007af1507fc8ffbe656d2c92b9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/he/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/he/thunderbird-78.10.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "535430ac4b5991621ea4b3a042a45db7c5ec1dfb3831c882cc06180a6e21d1bd";
+      sha256 = "2ea8691ac3188d8ca0c20fd7c9e9cba25e8b14eb6ebb338b42303aadaeba07e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/hr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hr/thunderbird-78.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "9dd72c9c518fad8e7b44467b6b0df15a6d631aac73fe4c6d5339b1a47f0abb62";
+      sha256 = "6c5eab557ad07084889b08ae5a79569794a916535ad4b6b23493d2c658e57dc2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/hsb/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hsb/thunderbird-78.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "b42f9b479e9a9e4a9be2ab99facb9a2d8a9d29ab549a69882e2e13eb15f67414";
+      sha256 = "90ea860940cca6152ca92601e25514652ae652aae8df5a0ec9b9bcf59ccfa570";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/hu/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hu/thunderbird-78.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "b82c89ffe3e76744a85c4a5357d294108aa1fad6b8783b27b0b38911974aaa3e";
+      sha256 = "71895a707e263bbfdf9a08542bab2fd8609458c3f5229a536333db46b17282be";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/hy-AM/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/hy-AM/thunderbird-78.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "b5f7387d7e2be74fffa44af77ae7a4dfd6a5c7ce88348eca948c5756296bb1c5";
+      sha256 = "475e4c99597e444316de578c7ec4528e762ff27021189a31fb1d45a7c97b5eee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/id/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/id/thunderbird-78.10.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "87e85aace879757e916b733f36d2c6ef8aaf050c72f2a849b09df44e788071c6";
+      sha256 = "c25f6bc1478c181dd88e9506b9b81882235c39f280b0065608827e90299ba5f3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/is/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/is/thunderbird-78.10.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "06f38495a1f62bafdbf4c594851d5a50a31ff7a619654e8ec5b267f81e5d83e1";
+      sha256 = "eaa68dce6341f5074b3ba15452c24139737988d7af9046e8e3b41fae715ec344";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/it/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/it/thunderbird-78.10.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "17bf5e33c146e060b6ab26085173d46d8ef5774d0314963348507ae43928d632";
+      sha256 = "5b1ecc37001284b49dd835060f5edf6a982f2e63218ef2dabd652e10c62ca742";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ja/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ja/thunderbird-78.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "f5db8f5abd1cee454fd93b4d25d2700ac53c98fbc3b3653a7501ae46032fd22f";
+      sha256 = "eb61857839abcd445389de0349b7e297a0d737e7aa511ddeadd92b2a38419dd2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ka/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ka/thunderbird-78.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "99d0f8777c3edb3e10d9627789574cd32e3ab7b78f2d7fc914d1d8a6ccdf354c";
+      sha256 = "902c0b7c3247c1d5d6dd80d751a8fbd22756a73414d8fcba072d2b3213b18280";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/kab/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/kab/thunderbird-78.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "56303c2d1432502b8086dbf77c97807bd1d06663e7d5329a98c063d2898db531";
+      sha256 = "c91d1f0eeb7b6de618794ac369c323fe514a201d506906b53fa527da2dadabd8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/kk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/kk/thunderbird-78.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "b1e9904229f9b1029a1679bd22ae58c849e1f5966729360c03b4bd8fac00c4f7";
+      sha256 = "dc7115e726c51cb56625e2254b4987b951e972874b0dcd245e40f0477fa462af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ko/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ko/thunderbird-78.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "5f53baf78b96853b3c490abff44736ce4e24b049b81e9baad80889a995f9b610";
+      sha256 = "a6d9b6b6c8a0a05fd2dde4545af109369d1158972ebdaf91bdb4c30498c88db6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/lt/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/lt/thunderbird-78.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "b9724ca09c3c3a4be2f73a0b6673e4c17cec5baf140d89dfdfac27f0486f07e8";
+      sha256 = "4fb6c5ae8fee1c2a829c1adadb99e6e21ba96e61e59a631b88750a00093177ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ms/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ms/thunderbird-78.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "aa72459fdcf1348b53de43715b0e7649d7cbd6d450d069331f0dfd45910e68ee";
+      sha256 = "bb4bf6706ad62be4adb23101cf621b9fcc742f757d317071b81dc6860317615e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/nb-NO/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nb-NO/thunderbird-78.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d22d185bfd1db98db50151c3d8872cbfb8df5ecc1472c1526f605274de086f2a";
+      sha256 = "fdbd9715a34e6d4d4c77d1b5d6aa6ec1673907ab1df823a0b95730ea299ac6fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/nl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nl/thunderbird-78.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "a4a9fa6ff73d2a937d5a9d35e66006b1b6fec94daad7e54358844958e9b9531f";
+      sha256 = "ee94b20e182fa93360e6a89e6df64c23d8ccaca7394d0716d217b25262a916b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/nn-NO/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/nn-NO/thunderbird-78.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "814d95b6c6a5c6d7faa61aa30cb87f4c44c8b1698f8908a95b85513bb2aaf515";
+      sha256 = "9710055906529edba3d62cbc7d17745497ae3dadf1c0c53408952f4c99242c7f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/pa-IN/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pa-IN/thunderbird-78.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "39bfc9533287a19083e34a1d8e7944a434fd5348f3694b3004d2e5c05da1155a";
+      sha256 = "b61f29bc72b49761beb5083a71594a750197ff049d84db5e3eacf322dd312275";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/pl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pl/thunderbird-78.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "1888be78e04a095e0a2576acbb3a4aa82b0060c6ca490f7a7b918efbb60e44a7";
+      sha256 = "5a885bd885772dd09eea88a7e3f2d7f766d88281bb2bc1e690832286dbee3fda";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/pt-BR/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pt-BR/thunderbird-78.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "3be3a00c44ef1be4d48a5f8c391153ad636128a030a671a646c7dee9d6327c2d";
+      sha256 = "228d268675b9781aa5341bf0c8354cb1f3cdc700c7bb608438c2e31b2239e48f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/pt-PT/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/pt-PT/thunderbird-78.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "f140717de6d19f049ea3ff3ea43ba7f42a3ae6b72e9e2a2acb8b4e05c323361c";
+      sha256 = "b69cbaaed70d582319c86d46016122a2a0a3e9abfc3c6393c2fd66b8f50cf855";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/rm/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/rm/thunderbird-78.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "f19c8067bb6a584bb7c6d059cdcd069144c266982504b9421d8b91e501847cb1";
+      sha256 = "0ca4301df9ac5b234c8cf71718441c152403fbbb06cb42e2f6061fbc97ce31ca";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ro/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ro/thunderbird-78.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "64d36d6c811748b6bcb084c1a8573d9657accb9258fa384687ca8074ceb0a905";
+      sha256 = "ab06982a3f6134388e6bf8049a80b2d1c6b1a338a3f2744516af2b7ba1d23ae6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/ru/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/ru/thunderbird-78.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "e6fe0da07d30ac884c04448b7d7b0f2010948ae35184b16b6f3df2f784f6fefc";
+      sha256 = "858aedefc42e15ca2179ee5e1f09c4f89dbba46e76160cf172c3fa0cb5ed019c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/si/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/si/thunderbird-78.10.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "7ae069a1bd4020c1bedf951a9d097a95f784388d850e19514629d9b5f2a23a13";
+      sha256 = "5193e29ea9ecaa1d8e13f959f294540bc3cc3e4f161358cb057c5f44b2dba396";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/sk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sk/thunderbird-78.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "5c07370cfd51774dd7333e68a61f29aeb4108303f891e14471909477d5d2c165";
+      sha256 = "6d6fb547ded55b374c1556128af1406cd4708f207a90f24778a319cf0fab1e22";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/sl/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sl/thunderbird-78.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "936e9be71d2881151de6ceda8eec86cc7342f56f3947c9fe48f59500c83cfcb2";
+      sha256 = "89e246494a9e052e06894d2fae911e4a251b5c24b5bb26c9810277f43bcc211d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/sq/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sq/thunderbird-78.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "309857b9ab66ec1ae407b286bd4f75a519d6afadf25cb64662dd369e831d0996";
+      sha256 = "d465f5ea13b423cde1e6a6fc4bb8b21f1920fab6a73d4ed7dca16911d4918c2b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/sr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sr/thunderbird-78.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "5c437425b529b838d0895261a237d42423aad24fd5fbb5bc66cc305de30bfef9";
+      sha256 = "4c9c7e2d0929e2ef65b8c33baa2ea335b8145580f7c2bd88f7c00e3cbad49327";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/sv-SE/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/sv-SE/thunderbird-78.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "d88378fe88c18a7f2d60d9c612b414f5706a03fb602da352393e1745bc6b2070";
+      sha256 = "913c8d546f8aa518d8864c550749889b2fb72a86506bd407db2c0163fe6ea7e0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/th/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/th/thunderbird-78.10.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "197686b485f5d2573fc7fdf8104bc10d81b4100bc4875dc6162365e933d07256";
+      sha256 = "52bc9ca0b837c6209a040649dd432d459c7b73c1dcfd967c970dba3dcd0c0e8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/tr/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/tr/thunderbird-78.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "96eddab994d3aaf57b933b8a7e1f3ca3036077c3c67c13d22c629314f05933d4";
+      sha256 = "66eea04e8fa1993bff56b8af517564f782733ba83634a8b9cc452dc5fb1d87af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/uk/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/uk/thunderbird-78.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "a8170a0396763696a8ebded65e1761652b25371613dc28b3cdc6a312eb9da996";
+      sha256 = "91be59e83c11aac5cd46f687e008794e666b2efce1da572ede42291e9620d9a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/uz/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/uz/thunderbird-78.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "6de38d66847d61dcd50f0822374b3a5857272b4e74f7dae308ba3c32d42228c0";
+      sha256 = "b216b0d189828622b7dce32e91f8dcf63f3763c2610ad7b30eaf05a3e92f4b3c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/vi/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/vi/thunderbird-78.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "1a5814a3a19d91eb940abf956d401b83717706b99c976376ff64c4ceb0ed12e6";
+      sha256 = "af4294bc71e9a4fca7b7ced7fd401ef692163d7044f8b1cd5fa1c25192e98120";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/zh-CN/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/zh-CN/thunderbird-78.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "2d365539626c4f718b0e558f02827385749e6df507c81f411f688a6b43e1c4e5";
+      sha256 = "f10b21744041485cdd4bb0e68d9167acbe3b55c914ace91ba024c23e3b8f3531";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.9.1/linux-i686/zh-TW/thunderbird-78.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.10.0/linux-i686/zh-TW/thunderbird-78.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "6003512f81b9d73363bffa38be003adc684456b75017222c2e324659d94f7735";
+      sha256 = "f3df92551c102dd113ace048eca32e4dfc797cedc53fd0ea93ddea6954915316";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 046e83e493c..8e176638da6 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -61,7 +61,7 @@
 , alsaSupport ? stdenv.isLinux, alsaLib
 , pulseaudioSupport ? stdenv.isLinux, libpulseaudio
 , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
-, waylandSupport ? true
+, waylandSupport ? true, libdrm
 , libxkbcommon, calendarSupport ? true
 
 # Use official trademarked branding.  Permission obtained at:
@@ -73,13 +73,13 @@ assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "78.9.1";
+  version = "78.10.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "3370ngycp6syvxfnindzz06xg39vb2knfi2zshsm87aqrapk52vmfbdagv5a85vwlmd2h5gd47zcmz2mj5360mcfxlc380hrqks69zs";
+      "0nywhw1y9g78fpfgmcp6vphdidpnhfxif18qx23j7p20ayymvi2gd3smm4qfr6rlb0dkzyk1vxc2dj47zd8169wlkvr6l1kfsgvrj49";
   };
 
   nativeBuildInputs = [
@@ -137,12 +137,13 @@ stdenv.mkDerivation rec {
     xorg.libXt
     xorg.pixman
     xorg.xorgproto
+    xorg.libXdamage
     zip
     zlib
   ] ++ lib.optional alsaSupport alsaLib
     ++ lib.optional gtk3Support gtk3
     ++ lib.optional pulseaudioSupport libpulseaudio
-    ++ lib.optional waylandSupport libxkbcommon;
+    ++ lib.optionals waylandSupport [ libxkbcommon libdrm ];
 
   NIX_CFLAGS_COMPILE =[
     "-I${glib.dev}/include/gio-unix-2.0"
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index 9267d8d231c..b27598c40e4 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, dpkg
 , alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
-, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3
+, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3, mesa
 , xorg, autoPatchelfHook, systemd, libnotify, libappindicator
 }:
 
@@ -20,6 +20,7 @@ let deps = [
     gtk3
     libappindicator
     libnotify
+    mesa
     xorg.libX11
     xorg.libXScrnSaver
     xorg.libXcomposite
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 67ddcf59972..4567f26224a 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -20,13 +20,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.1.3";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "sha256-8Ql6tOvWOjAvMJA87WlT9TbpnbciBsjDxRuYlMVi/m8=";
+    sha256 = "1nklsa2lx9ayjp8rk1mycjysqqmnq47djig0wygzna5mycl3ji06";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/openbazaar/default.nix b/pkgs/applications/networking/openbazaar/default.nix
index beb957786ba..aa5d14724ac 100644
--- a/pkgs/applications/networking/openbazaar/default.nix
+++ b/pkgs/applications/networking/openbazaar/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "openbazaar";
-  version = "0.14.3";
+  version = "0.14.6";
 
   suffix = {
     i686-linux    = "linux-386";
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://github.com/OpenBazaar/openbazaar-go/releases/download/v${version}/${pname}-go-${suffix}";
     sha256 = {
-      i686-linux    = "098dgxpz9m4rfswc9yg77s3bvaifd4453s20n8kmh55g5ipgs2x1";
-      x86_64-darwin = "0q989m4zj7x9d6vimmpfkla78hmx2zr7bxm9yg61ir00w60l14jx";
-      x86_64-linux  = "093rwn4nfirknbxz58n16v0l0apj2h0yr63f64fqysmy78883al2";
+      i686-linux    = "1cmv3gyfd6q7y6yn6kigksy2abkq5b8mfgk51d04ky1ckgbriaqq";
+      x86_64-darwin = "0n32a0pyj1k2had3imimdyhdhyb285y1dj04f7g3jajmy5zndaxx";
+      x86_64-linux  = "105i5yl2yvhcvyh1wf35kqq1qyxgbl9j2kxs6yshsk14b2p02j5i";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/networking/p2p/frostwire/default.nix b/pkgs/applications/networking/p2p/frostwire/default.nix
index 4253969a30a..b3b277bf130 100644
--- a/pkgs/applications/networking/p2p/frostwire/default.nix
+++ b/pkgs/applications/networking/p2p/frostwire/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gradle, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
+{ lib, stdenv, fetchFromGitHub, gradle_6, perl, jre, makeWrapper, makeDesktopItem, mplayer }:
 
 let
   version = "6.6.7-build-529";
@@ -25,7 +25,7 @@ let
   deps = stdenv.mkDerivation {
     name = "${name}-deps";
     inherit src;
-    buildInputs = [ gradle perl ];
+    buildInputs = [ gradle_6 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
       ( cd desktop
@@ -47,7 +47,7 @@ in stdenv.mkDerivation {
   inherit name src;
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ gradle ];
+  buildInputs = [ gradle_6 ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index 37bc1e372ac..41b8a7d0b6c 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,37 +1,31 @@
-{ lib, stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }:
+{ lib, stdenv, fetchurl, ocamlPackages, zlib }:
 
-stdenv.mkDerivation ({
-  name = "mldonkey-3.1.6";
+stdenv.mkDerivation rec {
+  pname = "mldonkey";
+  version = "3.1.7-2";
 
   src = fetchurl {
-    url = "https://github.com/ygrek/mldonkey/releases/download/release-3-1-6/mldonkey-3.1.6.tar.bz2";
-    sha256 = "0g84islkj72ymp0zzppcj9n4r21h0vlghnq87hv2wg580mybadhv";
+    url = "https://ygrek.org/p/release/mldonkey/mldonkey-${version}.tar.bz2";
+    sha256 = "b926e7aa3de4b4525af73c88f1724d576b4add56ef070f025941dd51cb24a794";
   };
 
-  preConfigure = lib.optionalString (ocamlPackages.camlp4 != null) ''
+  preConfigure = ''
     substituteInPlace Makefile --replace '+camlp4' \
       '${ocamlPackages.camlp4}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib/camlp4'
   '';
 
-  buildInputs = [ zlib ncurses bzip2 file gd libpng libjpeg ] ++
-  (with ocamlPackages; [ ocaml camlp4 ]);
-  configureFlags = [ "--disable-gui" ];
+  buildInputs = (with ocamlPackages; [
+    ocaml
+    camlp4
+    num
+  ]) ++ [
+    zlib
+  ];
 
   meta = {
     description = "Client for many p2p networks, with multiple frontends";
     homepage = "http://mldonkey.sourceforge.net/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
   };
-} // (if !ocamlPackages.ocaml.nativeCompilers then
-{
-  # Byte code compilation (the ocaml opt compiler is not supported in some platforms)
-  buildPhase = "make mlnet.byte";
-  installPhase = ''
-    mkdir -p $out/bin
-    cp mlnet.byte $out/bin/mlnet
-  '';
-
-  # ocaml bytecode selfcontained binaries loose the bytecode if stripped
-  dontStrip = true;
-} else {}))
+}
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 7e8b6b671cd..363e5f7cfbe 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -20,6 +20,7 @@
 , enableSystemd ? stdenv.isLinux
 , enableDaemon ? true
 , enableCli ? true
+, installLib ? false
 }:
 
 let
@@ -47,6 +48,7 @@ in stdenv.mkDerivation {
       "-DENABLE_QT=${mkFlag enableQt}"
       "-DENABLE_DAEMON=${mkFlag enableDaemon}"
       "-DENABLE_CLI=${mkFlag enableCli}"
+      "-DINSTALL_LIB=${mkFlag installLib}"
     ];
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index 312734dba14..64721cd75a6 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -84,8 +84,8 @@ in stdenv.mkDerivation {
     substitute \
       app/pcloud.desktop \
       share/applications/pcloud.desktop \
-      --replace "Name=pcloud" "Name=pCloud" \
-      --replace "Exec=AppRun" "Exec=$out/bin/pcloud"
+      --replace 'Name=pcloud' 'Name=pCloud' \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
 
     # Build the main executable
     cat > bin/pcloud <<EOF
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index 3421050d1ed..5d0195b62f8 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.12";
+  version = "1.4.13";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "sha256-CjlNEmca4Kob5rdpZa+YfvdOIDDDYfhNsGYqGDxSGKY=";
+    sha256 = "sha256-R+RfczAnt5R0YmXt5SmH8gOuWOH0LZ/70pOMDAXJgsE=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ];
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://gitlab.com/Remmina/Remmina";
     description = "Remote desktop client written in GTK";
     maintainers = with maintainers; [ melsigl ryantm ];
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 23d2d498d6c..61f318009f7 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, runCommand
+, seaweedfs
+}:
 
 buildGoModule rec {
   pname = "seaweedfs";
@@ -15,6 +20,11 @@ buildGoModule rec {
 
   subPackages = [ "weed" ];
 
+  passthru.tests.check-version = runCommand "weed-version" { meta.timeout = 3; } ''
+    ${seaweedfs}/bin/weed version | grep -Fw ${version}
+    touch $out
+  '';
+
   meta = with lib; {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 249d58ceb60..230bb2d4fe4 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.4.4";
+  version = "3.4.5";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "0aad3m8nh4i75dgjs68217135bzqmhmlgjklmpjh1ihmjwgd373j";
+    sha256 = "sha256-3hqv0QCh4SB8hQ0YDpfdkauNoPXra+7FRfclzbFF0zM=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/super-productivity/default.nix b/pkgs/applications/networking/super-productivity/default.nix
deleted file mode 100644
index 38d12710cca..00000000000
--- a/pkgs/applications/networking/super-productivity/default.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{ lib, stdenv, fetchurl, dpkg, makeWrapper
-, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
-, gnome2, gtk3, gdk-pixbuf, libnotify, libxcb, nspr, nss, pango
-, systemd, xorg, xprintidle-ng }:
-
-let
-
-  version = "1.10.45";
-
-  rpath = lib.makeLibraryPath [
-    alsaLib
-    atk
-    cairo
-    cups
-    curl
-    dbus
-    expat
-    fontconfig
-    freetype
-    glib
-    gnome2.GConf
-    gdk-pixbuf
-    gtk3
-    pango
-    libnotify
-    libxcb
-    nspr
-    nss
-    stdenv.cc.cc
-    systemd
-
-    xorg.libxkbfile
-    xorg.libX11
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-    xorg.libXScrnSaver
-  ] + ":${stdenv.cc.cc.lib}/lib64";
-
-  src =
-    if stdenv.hostPlatform.system == "x86_64-linux" then
-      fetchurl {
-        url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity_${version}_amd64.deb";
-        sha256 = "0jfi0lfijnhij9jvkhxgyvq8m1jzaym8n1c7707fv3hjh1h0vxn1";
-      }
-    else
-      throw "super-productivity is not supported on ${stdenv.hostPlatform.system}";
-
-in stdenv.mkDerivation {
-  pname = "super-productivity";
-  inherit version;
-
-  inherit src;
-
-  buildInputs = [
-    dpkg
-    gtk3  # needed for GSETTINGS_SCHEMAS_PATH
-  ];
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  unpackPhase = "dpkg -x $src .";
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-
-    cp -R usr/share $out/share
-    cp -R opt $out/libexec
-
-    # Otherwise it looks "suspicious"
-    chmod -R g-w $out
-
-    # set linker and rpath
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/libexec/superProductivity/superproductivity"
-    patchelf --set-rpath ${rpath}:$out/libexec/superProductivity "$out/libexec/superProductivity/superproductivity"
-
-    # wrapper for xdg_data_dirs and xprintidle path
-    makeWrapper $out/libexec/superProductivity/superproductivity $out/bin/superproductivity \
-      --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
-      --prefix PATH : "${xprintidle-ng}/bin"
-
-    # Fix the desktop link
-    substituteInPlace $out/share/applications/superproductivity.desktop \
-      --replace /opt/superProductivity/ $out/bin/
-
-    runHook postInstall
-  '';
-
-  dontStrip = true;
-
-  meta = with lib; {
-    description = "To Do List / Time Tracker with Jira Integration";
-    homepage = "https://super-productivity.com";
-    license = licenses.mit;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ offline ];
-  };
-}
diff --git a/pkgs/applications/networking/sync/acd_cli/default.nix b/pkgs/applications/networking/sync/acd_cli/default.nix
index 49fc578377c..519242b887c 100644
--- a/pkgs/applications/networking/sync/acd_cli/default.nix
+++ b/pkgs/applications/networking/sync/acd_cli/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub, buildPythonApplication, fuse
 , appdirs, colorama, dateutil, requests, requests_toolbelt
-, fusepy, sqlalchemy }:
+, fusepy, sqlalchemy, setuptools }:
 
 buildPythonApplication rec {
   pname = "acd_cli";
@@ -16,7 +16,7 @@ buildPythonApplication rec {
   };
 
   propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests
-                            requests_toolbelt sqlalchemy ];
+                            requests_toolbelt setuptools sqlalchemy ];
 
   makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];
 
@@ -34,7 +34,6 @@ buildPythonApplication rec {
     description = "A command line interface and FUSE filesystem for Amazon Cloud Drive";
     homepage = "https://github.com/yadayada/acd_cli";
     license = licenses.gpl2;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ edwtjo ];
   };
 }
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
new file mode 100644
index 00000000000..433c6cf6fc2
--- /dev/null
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC, w3m, curl, jq, makeWrapper, installShellFiles }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "tmpmail";
+  version = "unstable-2021-02-10";
+
+   src = fetchFromGitHub {
+    owner = "sdushantha";
+    repo = "tmpmail";
+    rev = "150b32083d36006cf7f496e112715ae12ee87727";
+    sha256 = "sha256-yQ9/UUxBTEXK5z3f+tvVRUzIGrAnrqurQ0x56Ad7RKE=";
+  };
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 -t $out/bin tmpmail
+    installManPage tmpmail.1
+    wrapProgram $out/bin/tmpmail --prefix PATH : ${lib.makeBinPath [ w3m curl jq ]}
+  '';
+
+   meta = with lib; {
+    homepage = "https://github.com/sdushantha/tmpmail";
+    description = "A temporary email right from your terminal written in POSIX sh ";
+    license = licenses.mit;
+    maintainers = [ maintainers.legendofmiracles ];
+  };
+}
diff --git a/pkgs/applications/office/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix
index d49ee41c9f5..8633f1daecd 100644
--- a/pkgs/applications/office/elementary-planner/default.nix
+++ b/pkgs/applications/office/elementary-planner/default.nix
@@ -12,22 +12,24 @@
 , libgee
 , json-glib
 , glib
+, glib-networking
 , sqlite
 , libsoup
 , gtk3
 , pantheon /* granite, icons, maintainers */
 , webkitgtk
+, libpeas
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-planner";
-  version = "2.5.7";
+  version = "2.6.9";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planner";
     rev = version;
-    sha256 = "0s2f9q7i31c2splflfnaiqviwnxbsp2zvibr70xafhbhnkmzlrsk";
+    sha256 = "17ij017x2cplqhway8376k8mmrll4w1jfwhf7ixldq9g0q2inzd8";
   };
 
   nativeBuildInputs = [
@@ -43,10 +45,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     evolution-data-server
     glib
+    glib-networking
     gtk3
     json-glib
     libgee
     libical
+    libpeas
     libsoup
     pantheon.elementary-icon-theme
     pantheon.granite
@@ -66,6 +70,10 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  postFixup = ''
+    ln -s $out/bin/com.github.alainm23.planner $out/bin/planner
+  '';
+
   meta = with lib; {
     description = "Task manager with Todoist support designed for GNU/Linux 🚀️";
     homepage = "https://planner-todo.web.app";
diff --git a/pkgs/applications/office/libreoffice/wrapper.sh b/pkgs/applications/office/libreoffice/wrapper.sh
index 806dd0806ad..9ab3a907a98 100644
--- a/pkgs/applications/office/libreoffice/wrapper.sh
+++ b/pkgs/applications/office/libreoffice/wrapper.sh
@@ -2,7 +2,7 @@
 export JAVA_HOME="${JAVA_HOME:-@jdk@}"
 #export SAL_USE_VCLPLUGIN="${SAL_USE_VCLPLUGIN:-gen}"
 
-if uname | grep Linux > /dev/null && 
+if uname | grep Linux > /dev/null &&
        ! ( test -n "$DBUS_SESSION_BUS_ADDRESS" ); then
     dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
     if ! test -d "$dbus_tmp_dir" && test -d "/run"; then
@@ -14,6 +14,7 @@ if uname | grep Linux > /dev/null &&
     fi
     dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
     "@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "@dbus@"/share/dbus-1/session.conf --address "unix:path=$dbus_socket_dir/session"  &> /dev/null &
+    dbus_pid=$!
     export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
 fi
 
@@ -27,5 +28,5 @@ done
 "@libreoffice@/bin/$(basename "$0")" "$@"
 code="$?"
 
-test -n "$dbus_socket_dir" && rm -rf "$dbus_socket_dir"
+test -n "$dbus_socket_dir" && { rm -rf "$dbus_socket_dir"; kill $dbus_pid; }
 exit "$code"
diff --git a/pkgs/applications/office/onlyoffice-bin/default.nix b/pkgs/applications/office/onlyoffice-bin/default.nix
index bfd3c3529e7..987c2c3cb28 100644
--- a/pkgs/applications/office/onlyoffice-bin/default.nix
+++ b/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -21,6 +21,7 @@
 , gtk3
 , libpulseaudio
 , libudev0-shim
+, libdrm
 , makeWrapper
 , nspr
 , nss
@@ -101,6 +102,7 @@ in stdenv.mkDerivation rec {
     gtk2
     gtk3
     libpulseaudio
+    libdrm
     nspr
     nss
     qt5.qtbase
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 73cd5d7cd6c..17c6398f4ff 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.51.2";
+  version = "0.52.0";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-5wBzGj4DkTOqtN7X8/EBDoiBtbYB6vGJJ5IkuME7a9A=";
+    sha256 = "1pvjckh7z803piqyzrvk54jd43f2vcyx20zjcgmq1va8jc3q69k1";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index f83ce8b39b1..549865cd8d8 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -2,7 +2,6 @@
 , cairo
 , cmake
 , cups
-, fetchpatch
 , fetchurl
 , fontconfig
 , freetype
@@ -36,20 +35,13 @@ in
 mkDerivation rec {
   pname = "scribus";
 
-  version = "1.5.6.1";
+  version = "1.5.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-devel/${pname}-${version}.tar.xz";
-    sha256 = "sha256-1CV2lVOc+kDerYq9rwTFHjTU10vK1aLJNNCObp1Dt6s=";
+    sha256 = "sha256-MYMWss/Hp2GR0+DT+MImUUfa6gVwFiAo4kPCktgm+M4=";
   };
 
-  patches = [
-    (fetchpatch {  # fix build with podofo 0.9.7
-      url = "https://github.com/scribusproject/scribus/commit/c6182ef92820b422d61c904e40e9fed865458eb5.patch";
-      sha256 = "0vp275xfbd4xnj5s55cgzsihgihby5mmjlbmrc7sa6jbrsm8aa2c";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
new file mode 100644
index 00000000000..7793db2138c
--- /dev/null
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -0,0 +1,55 @@
+{ stdenv , lib , fetchurl , appimageTools , makeWrapper , electron_11 }:
+
+let
+  electron = electron_11;
+in
+stdenv.mkDerivation rec {
+  pname = "super-productivity";
+  version = "6.5.2";
+
+  src = fetchurl {
+    url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
+    sha256 = "1ivl7chsv9axgk6nqkf580pav651hchi3di0mrp0pylpsqgk6f1f";
+    name = "${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/${pname} $out/share/applications
+
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+    cp -a ${appimageContents}/superproductivity.desktop $out/share/applications/${pname}.desktop
+    cp -a ${appimageContents}/usr/share/icons $out/share
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
+      --add-flags $out/share/${pname}/resources/app.asar \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
+  '';
+
+  meta = with lib; {
+    description = "To Do List / Time Tracker with Jira Integration";
+    homepage = "https://super-productivity.com";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ offline ];
+  };
+}
diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix
index 5bbfca23d6d..948918e5491 100644
--- a/pkgs/applications/office/timeular/default.nix
+++ b/pkgs/applications/office/timeular/default.nix
@@ -26,7 +26,8 @@ in appimageTools.wrapType2 rec {
     mv $out/bin/{${name},${pname}}
     install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
     install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png
-    substituteInPlace $out/share/applications/timeular.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+    substituteInPlace $out/share/applications/timeular.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/office/todofi.sh/default.nix b/pkgs/applications/office/todofi.sh/default.nix
new file mode 100644
index 00000000000..afdbceb3417
--- /dev/null
+++ b/pkgs/applications/office/todofi.sh/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, gawk
+, gnugrep
+, gnused
+, rofi
+, todo-txt-cli
+}:
+
+stdenv.mkDerivation rec {
+  pname = "todofi.sh";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "hugokernel";
+    repo = "todofi.sh";
+    rev = "v${version}";
+    sha256 = "1gmy5inlghycsxiwnyyjyv81jn2fmfk3s9x78kcgyf7khzb5kwvj";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    install -Dm 755 todofi.sh -t $out/bin
+  '';
+
+  postFixup = ''
+    patchShebangs $out/bin
+    wrapProgram $out/bin/todofi.sh --prefix PATH : "${lib.makeBinPath [ coreutils gawk gnugrep gnused rofi todo-txt-cli ]}"
+  '';
+
+  meta = with lib; {
+    description = "Todo-txt + Rofi = Todofi.sh";
+    homepage = "https://github.com/hugokernel/todofi.sh";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ewok ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index 4011879ddb8..5894c6c3e14 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  inherit (python3.pkgs) buildPythonApplication fetchPypi;
+  inherit (python3.pkgs) buildPythonApplication fetchPypi setuptools-scm;
 in
 buildPythonApplication rec {
   pname = "todoman";
@@ -17,8 +17,11 @@ buildPythonApplication rec {
     sha256 = "e7e5cab13ecce0562b1f13f46ab8cbc079caed4b462f2371929f8a4abff2bcbe";
   };
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [
     installShellFiles
+    setuptools-scm
   ];
   propagatedBuildInputs = with python3.pkgs; [
     atomicwrites
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index 32c9dc79d67..1cf7f8769d5 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook }:
+{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, libxshmfence, wrapGAppsHook }:
 
 let
   description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases";
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.46.7";
+  version = "0.47.2";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0saqj32jcb9ga418bpdxy93hf1z8nmwzf76rfgnnac7286ciyinr";
+    sha256 = "04fyi0gbih6iw61b6d8lprf9qhxb6zb1pgckmi016wgv8x5ck02p";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "0b9bbm1iyaa5wf758085m6kfbq4li1iimj11ryf9xv9fzrbc4gvs";
+    sha256 = "1f8csjgqq4yw1qcnlrfy5ysarazmvj2fnmnxj4sr1xjbfa78y2rr";
   };
 
 in {
@@ -55,7 +55,7 @@ in {
       wrapGAppsHook
     ];
 
-    buildInputs = atomEnv.packages ++ [ gtk3 ];
+    buildInputs = atomEnv.packages ++ [ gtk3 libxshmfence ];
 
     installPhase = ''
       runHook preInstall
diff --git a/pkgs/applications/radio/airspy/default.nix b/pkgs/applications/radio/airspy/default.nix
index 6299fe21d29..6cb0f40f129 100644
--- a/pkgs/applications/radio/airspy/default.nix
+++ b/pkgs/applications/radio/airspy/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "airspy";
-  version = "1.0.9";
+  version = "1.0.10";
 
   src = fetchFromGitHub {
     owner = "airspy";
     repo = "airspyone_host";
     rev = "v${version}";
-    sha256 = "04kx2p461sqd4q354n1a99zcabg9h29dwcnyhakykq8bpg3mgf1x";
+    sha256 = "1v7sfkkxc6f8ny1p9xrax1agkl6q583mjx8k0lrrwdz31rf9qgw9";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/radio/rtl-sdr/default.nix b/pkgs/applications/radio/rtl-sdr/default.nix
index 2fe57eaf296..ff06eb4c044 100644
--- a/pkgs/applications/radio/rtl-sdr/default.nix
+++ b/pkgs/applications/radio/rtl-sdr/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchgit, fetchpatch, cmake, pkg-config, libusb1 }:
+{ lib
+, stdenv
+, fetchgit
+, cmake
+, pkg-config
+, libusb1
+}:
 
 stdenv.mkDerivation rec {
   pname = "rtl-sdr";
@@ -10,34 +16,25 @@ stdenv.mkDerivation rec {
     sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
   };
 
-  patches = [ (fetchpatch {
-    name = "hardened-udev-rules.patch";
-    url = "https://osmocom.org/projects/rtl-sdr/repository/revisions/b2814731563be4d5a0a68554ece6454a2c63af12/diff?format=diff";
-    sha256 = "0ns740s2rys4glq4la4bh0sxfv1mn61yfjns2yllhx70rsb2fqrn";
-  }) ];
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d"
+
+    substituteInPlace rtl-sdr.rules \
+      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
+  '';
 
   nativeBuildInputs = [ pkg-config cmake ];
+
   buildInputs = [ libusb1 ];
 
-  # TODO: get these fixes upstream:
-  # * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
-  #   /etc/udev/rules.d/, and there is no option to install elsewhere. So install
-  #   rules manually.
-  # * Propagate libusb-1.0 dependency in pkg-config file.
-  postInstall = lib.optionalString stdenv.isLinux ''
-    mkdir -p "$out/etc/udev/rules.d/"
-    cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules"
-
-    pcfile="$out"/lib/pkgconfig/librtlsdr.pc
-    grep -q "Requires:" "$pcfile" && { echo "Upstream has added 'Requires:' in $(basename "$pcfile"); update nix expression."; exit 1; }
-    echo "Requires: libusb-1.0" >> "$pcfile"
-  '';
+  cmakeFlags = lib.optional stdenv.isLinux "-DINSTALL_UDEV_RULES=ON";
 
   meta = with lib; {
     description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
-    homepage = "http://sdr.osmocom.org/trac/wiki/rtl-sdr";
+    homepage = "https://github.com/librtlsdr/librtlsdr";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 6f723971c8e..ff3ca497c7f 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -1,54 +1,78 @@
-{
-airspy,
-boost,
-cm256cc,
-cmake,
-codec2,
-fetchFromGitHub,
-fftwFloat,
-glew,
-hackrf,
-lib,
-ffmpeg,
-libiio,
-libopus,
-libpulseaudio,
-libusb1,
-limesuite,
-libbladeRF,
-mkDerivation,
-ocl-icd,
-opencv3,
-pkg-config,
-qtbase,
-qtmultimedia,
-qtserialport,
-qtwebsockets,
-rtl-sdr,
-serialdv,
-soapysdr-with-plugins,
-uhd
+{ airspy
+, boost
+, cm256cc
+, cmake
+, codec2
+, fetchFromGitHub
+, fftwFloat
+, glew
+, hackrf
+, lib
+, ffmpeg
+, libiio
+, libopus
+, libpulseaudio
+, libusb1
+, limesuite
+, libbladeRF
+, mkDerivation
+, ocl-icd
+, opencv3
+, pkg-config
+, qtcharts
+, qtlocation
+, qtmultimedia
+, qtserialport
+, qtspeech
+, qtwebsockets
+, rtl-sdr
+, serialdv
+, soapysdr-with-plugins
+, uhd
 }:
 
 mkDerivation rec {
   pname = "sdrangel";
-  version = "6.4.0";
+  version = "6.8.0";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${version}";
-    sha256 = "4iJoKs0BHmBR6JRFuTIqs0GW3SjhPRMPRlqdyTI38T4=";
+    sha256 = "sha256-dFWwEs2nvcaCWpM4tA3/w8PbmNXn/R7JvxP3XEHasSQ=";
     fetchSubmodules = false;
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
+
   buildInputs = [
-    glew opencv3 libusb1 boost libopus limesuite ffmpeg libiio libpulseaudio
-    qtbase qtwebsockets qtmultimedia rtl-sdr airspy hackrf
-    fftwFloat codec2 cm256cc serialdv qtserialport
-    libbladeRF uhd soapysdr-with-plugins
+    airspy
+    boost
+    cm256cc
+    codec2
+    ffmpeg
+    fftwFloat
+    glew
+    hackrf
+    libbladeRF
+    libiio
+    libopus
+    libpulseaudio
+    libusb1
+    limesuite
+    opencv3
+    qtcharts
+    qtlocation
+    qtmultimedia
+    qtserialport
+    qtspeech
+    qtwebsockets
+    rtl-sdr
+    serialdv
+    soapysdr-with-plugins
+    uhd
   ];
+
   cmakeFlags = [
     "-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
     "-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
@@ -61,11 +85,11 @@ mkDerivation rec {
   meta = with lib; {
     description = "Software defined radio (SDR) software";
     longDescription = ''
-        SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
+      SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
     '';
     homepage = "https://github.com/f4exb/sdrangel";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ alkeryn ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/radio/wsjtx/default.nix b/pkgs/applications/radio/wsjtx/default.nix
index 697a28e4be9..ae378b57106 100644
--- a/pkgs/applications/radio/wsjtx/default.nix
+++ b/pkgs/applications/radio/wsjtx/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, asciidoc, asciidoctor, autoconf, automake, cmake,
   docbook_xsl, fftw, fftwFloat, gfortran, libtool, libusb1, qtbase,
-  qtmultimedia, qtserialport, qttools, texinfo, wrapQtAppsHook }:
+  qtmultimedia, qtserialport, qttools, boost, texinfo, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wsjtx";
-  version = "2.2.2";
+  version = "2.3.1";
 
   # This is a "superbuild" tarball containing both wsjtx and a hamlib fork
   src = fetchurl {
     url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
-    sha256 = "17agyrhclqyahgdwba8vi9sl7vq03sm00jlyrmjgv34a4czidg0w";
+    sha256 = "11wzh4bxp9277kbqkyrc063akkk09czgxnkpk8k07vl4s3dan3hh";
   };
 
   # Hamlib builds with autotools, wsjtx builds with cmake
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     asciidoc asciidoctor autoconf automake cmake docbook_xsl gfortran libtool
     qttools texinfo wrapQtAppsHook
   ];
-  buildInputs = [ fftw fftwFloat libusb1 qtbase qtmultimedia qtserialport ];
+  buildInputs = [ fftw fftwFloat libusb1 qtbase qtmultimedia qtserialport boost ];
 
   # Remove Git dependency from superbuild since sources are included
   patches = [ ./super.patch ];
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     # Older licenses are for the statically-linked hamlib
     license = with licenses; [ gpl3Plus gpl2Plus lgpl21Plus ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ lasandell ];
+    maintainers = with maintainers; [ lasandell numinit ];
   };
 }
diff --git a/pkgs/applications/science/biology/MACS2/default.nix b/pkgs/applications/science/biology/MACS2/default.nix
new file mode 100644
index 00000000000..cc398608ce5
--- /dev/null
+++ b/pkgs/applications/science/biology/MACS2/default.nix
@@ -0,0 +1,25 @@
+{ lib, python3, fetchurl }:
+
+python3.pkgs.buildPythonPackage rec {
+  pname = "MACS2";
+  version = "2.2.7.1";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "1rcxj943kgzs746f5jrb72x1cp4v50rk3qmad0m99a02vndscb5d";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ numpy ];
+
+  # To prevent ERROR: diffpeak_cmd (unittest.loader._FailedTest) for obsolete
+  # function (ImportError: Failed to import test module: diffpeak_cmd)
+  doCheck = false;
+  pythonImportsCheck = [ "MACS2" ];
+
+  meta = with lib; {
+    description = "Model-based Analysis for ChIP-Seq";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ gschwartz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/biology/octopus/default.nix b/pkgs/applications/science/biology/octopus/default.nix
index 0ef48ec6413..b61a0764f2c 100644
--- a/pkgs/applications/science/biology/octopus/default.nix
+++ b/pkgs/applications/science/biology/octopus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "0.7.1";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "luntergroup";
     repo = "octopus";
     rev = "v${version}";
-    sha256 = "sha256-TZ57uKTZ87FWpLNGPY8kbML1EDM8fnEFbXR+Z3dmiao=";
+    sha256 = "sha256-sPOBZ0YrEdjMNVye/xwqwA5IpsLy2jWN3sm/ce1fLg4=";
   };
 
   patches = [
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index bb523cddd19..2da5a070ee8 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.35";
+  version = "14.31.36";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "sha256-uB7d27eicfmE1TpjLAxUoC8LBYAOrg3B48M1/CxWZdg=";
+    sha256 = "sha256-YwXgRRUZ75l1ZptscsZae2mwkRkYXJeWSrPvw+R6TkI=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index b91b5ad14a9..76048733a6a 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -216,6 +216,8 @@ stdenv.mkDerivation rec {
     in
     (concatStringsSep "\n"
       (flatten [
+        "runHook preInstall"
+
         (optionalString (withScripting) "buildPythonPath \"${base} $pythonPath\" \n")
 
         # wrap each of the directly usable tools
@@ -227,10 +229,19 @@ stdenv.mkDerivation rec {
 
         # link in the CLI utils
         (map (util: "ln -s ${base}/bin/${util} $out/bin/${util}") utils)
+
+        "runHook postInstall"
       ])
     )
   ;
 
+  postInstall = ''
+    mkdir -p $out/share
+    ln -s ${base}/share/applications $out/share/applications
+    ln -s ${base}/share/icons $out/share/icons
+    ln -s ${base}/share/mime $out/share/mime
+  '';
+
   # can't run this for each pname
   # stable and unstable are in the same versions.nix
   # and kicad-small reuses stable
@@ -248,7 +259,7 @@ stdenv.mkDerivation rec {
       KiCad is an open source software suite for Electronic Design Automation.
       The Programs handle Schematic Capture, and PCB Layout with Gerber output.
     '';
-    license = lib.licenses.agpl3;
+    license = lib.licenses.gpl3Plus;
     # berce seems inactive...
     maintainers = with lib.maintainers; [ evils kiwi berce ];
     # kicad is cross platform
diff --git a/pkgs/applications/science/geometry/tetgen/default.nix b/pkgs/applications/science/geometry/tetgen/default.nix
index c921c05c58e..75eaa089ecf 100644
--- a/pkgs/applications/science/geometry/tetgen/default.nix
+++ b/pkgs/applications/science/geometry/tetgen/default.nix
@@ -1,13 +1,13 @@
 {lib, stdenv, fetchurl}:
 
-let version = "1.5.1"; in
+let version = "1.6.0"; in
 stdenv.mkDerivation {
   pname = "tetgen";
   inherit version;
 
   src = fetchurl {
     url = "http://wias-berlin.de/software/tetgen/1.5/src/tetgen${version}.tar.gz";
-    sha256 = "0l5q066crs4cjj7qr0r2gnz8ajkgighngwglr1201h77lcs48sp4";
+    sha256 = "sha256-h7XmHr06Rx/E8s3XEkwrEd1mOfT+sflBpdL1EQ0Fzjk=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix
index dd72d148e29..963015b11d5 100644
--- a/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -1,12 +1,14 @@
-{ fetchurl, lib, which, ocamlPackages }:
+{ fetchFromGitHub, lib, which, ocamlPackages }:
 
 let
   pname = "alt-ergo";
-  version = "2.3.3";
+  version = "2.4.0";
 
-  src = fetchurl {
-    url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-${version}/alt-ergo-${version}.tar.gz";
-    sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
+  src = fetchFromGitHub {
+    owner = "OCamlPro";
+    repo = pname;
+    rev = version;
+    sha256 = "1jm1yrvsg8iyfp9bb728zdx2i7yb6z7minjrfs27k5ncjqkjm65g";
   };
 
   useDune2 = true;
@@ -19,6 +21,7 @@ let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-lib";
   inherit version src useDune2 nativeBuildInputs;
   configureFlags = pname;
+  buildInputs = with ocamlPackages; [ dune-configurator ];
   propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
 }; in
 
@@ -36,7 +39,9 @@ ocamlPackages.buildDunePackage {
 
   configureFlags = pname;
 
-  buildInputs = [ alt-ergo-parsers ocamlPackages.menhir ];
+  buildInputs = [ alt-ergo-parsers ] ++ (with ocamlPackages; [
+    cmdliner menhir ])
+  ;
 
   meta = {
     description = "High-performance theorem prover and SMT solver";
diff --git a/pkgs/applications/science/logic/beluga/default.nix b/pkgs/applications/science/logic/beluga/default.nix
index 44478a032b3..66cfd306128 100644
--- a/pkgs/applications/science/logic/beluga/default.nix
+++ b/pkgs/applications/science/logic/beluga/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchFromGitHub, ocamlPackages, rsync }:
 
-ocamlPackages.buildDunePackage {
+ocamlPackages.buildDunePackage rec {
   pname = "beluga";
-  version = "unstable-2020-03-11";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner  = "Beluga-lang";
     repo   = "Beluga";
-    rev    = "6133b2f572219333f304bb4f77c177592324c55b";
-    sha256 = "0sy6mi50z3mvs5z7dx38piydapk89all81rh038x3559b5fsk68q";
+    rev    = "v${version}";
+    sha256 = "1ziqjfv8jwidl8lj2mid2shhgqhv31dfh5wad2zxjpvf6038ahsw";
   };
 
   useDune2 = true;
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 560e8dd733a..20a17b11221 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -43,6 +43,7 @@ let
    "8.12.2".sha256     = "18gscfm039pqhq4msq01nraig5dm9ab98bjca94zldf8jvdv0x2n";
    "8.13.0".sha256     = "0sjbqmz6qcvnz0hv87xha80qbhvmmyd675wyc5z4rgr34j2l1ymd";
    "8.13.1".sha256     = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
+   "8.13.2".sha256     = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index fab930e2c7b..45a1345de86 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -7,16 +7,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "elan";
-  version = "0.11.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
-    owner = "kha";
+    owner = "leanprover";
     repo = "elan";
     rev = "v${version}";
-    sha256 = "1sl69ygdwhf80sx6m76x5gp1kwsw0rr1lv814cgzm8hvyr6g0jqa";
+    sha256 = "sha256-nK4wvxK5Ne1+4kaMts6pIr5FvXBgXJsGdn68gGEZUdk=";
   };
 
-  cargoSha256 = "1f881maf8jizd5ip7pc1ncbiq7lpggp0byma13pvqk7gisnqyr4r";
+  cargoSha256 = "sha256-ptSbpq1ePNWmdBGfKtqFGfkdimDjU0YEo4F8VPtQMt4=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Small tool to manage your installations of the Lean theorem prover";
-    homepage = "https://github.com/Kha/elan";
+    homepage = "https://github.com/leanprover/elan";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gebner ];
   };
diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix
index b57ee0f61f1..3a0b13d7d09 100644
--- a/pkgs/applications/science/logic/lean/default.nix
+++ b/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.28.0";
+  version = "3.29.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "sha256-IzoFE92F559WeSUCiYZ/fx2hrsyRzgOACr3/pzJ4OOY=";
+    sha256 = "sha256-f2Gp76c+4R+ww52f1AyVZqixpei1WZPwr7pfgxMMb9Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/potassco/clingo.nix b/pkgs/applications/science/logic/potassco/clingo.nix
index f473c4f5366..091b098fa3f 100644
--- a/pkgs/applications/science/logic/potassco/clingo.nix
+++ b/pkgs/applications/science/logic/potassco/clingo.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clingo";
-  version = "5.4.1";
+  version = "5.5.0";
 
   src = fetchzip {
     url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
-    sha256 = "1f0q5f71s696ywxcjlfz7z134m1h7i39j9sfdv8hlw2w3g5nppc3";
+    sha256 = "sha256-6xKtNi5IprjaFNadfk8kKjKzuPRanUjycLWCytnk0mU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 331faa6b147..8905df8ccef 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
       R_SHELL="${stdenv.shell}"
   '' + lib.optionalString stdenv.isDarwin ''
       --disable-R-framework
+      --without-x
       OBJC="clang"
       CPPFLAGS="-isystem ${libcxx}/include/c++/v1"
       LDFLAGS="-L${libcxx}/lib"
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index c5a3fd606c0..f209e2de8c3 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "calc";
-  version = "2.12.9.1";
+  version = "2.13.0.1";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-B3ko+RNT+LYSJG1P5cujgRMc1OJhDPqm1ONrMh+7fI4=";
+    sha256 = "sha256-auU49XeFxXAacBEszwB6tVU6vTMq4t6q2vVk9AHHNK0=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/gap/default.nix b/pkgs/applications/science/math/gap/default.nix
index ce93c14b334..3b3d8a58b56 100644
--- a/pkgs/applications/science/math/gap/default.nix
+++ b/pkgs/applications/science/math/gap/default.nix
@@ -5,6 +5,7 @@
 , makeWrapper
 , readline
 , gmp
+, zlib
 # one of
 # - "minimal" (~400M):
 #     Install the bare minimum of packages required by gap to start.
@@ -61,11 +62,11 @@ in
 stdenv.mkDerivation rec {
   pname = "gap";
   # https://www.gap-system.org/Releases/
-  version = "4.10.2";
+  version = "4.11.0";
 
   src = fetchurl {
     url = "https://files.gap-system.org/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
-    sha256 = "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94";
+    sha256 = "sha256-vwcKENwqxgWT/mXfD4c9ctTWdQHobrJipva9SPyGhgI=";
   };
 
   # remove all non-essential packages (which take up a lot of space)
@@ -76,6 +77,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     readline
     gmp
+    zlib
   ];
 
   nativeBuildInputs = [
@@ -83,34 +85,22 @@ stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # https://github.com/gap-system/gap/pull/3294
-    (fetchpatch {
-      name = "add-make-install-targets.patch";
-      url = "https://github.com/gap-system/gap/commit/3361c172e6c5ff3bb3f01ba9d6f1dd4ad42cea80.patch";
-      sha256 = "1kwp9qnfvmlbpf1c3rs6j5m2jz22rj7a4hb5x1gj9vkpiyn5pdyj";
-    })
-
     # Fix for locale specific tests causing issues. Already upstream.
     # Backport of https://github.com/gap-system/gap/pull/4022
-    # WHEN REMOVING: also remove the`rm tst/testinstall/strings.tst` line in
-    # `postPatch` below. That line is necessary since the patch is not intended
-    # for gap 4.10.
     (fetchpatch {
       name = "remove-locale-specific-tests.patch";
       url = "https://github.com/gap-system/gap/commit/c18b0c4215b5212a2cc4f305e2d5b94ba716bee8.patch";
-      excludes = ["tst/testinstall/stringobj.tst"];
-      sha256 = "1mz5b4mbw2jdd1ypp5s0dy6pp0jsvwsxr2dm4kbkls20r1r192sc";
+      sha256 = "sha256-De+T9Y7ewRT6plJrj2VR8axRvD/JCTYKOBWB7Bw0oq0=";
     })
 
     # fixes aarch64 gc crashes: https://github.com/gap-system/gap/pull/3965
-    ./mark-genstackfuncbags-as-noinline.patch
+    (fetchpatch {
+      name = "mark-genstackfuncbags-as-noinline.patch";
+      url = "https://github.com/gap-system/gap/commit/f0a8f49ff8dad0a5fa77253d45457c6f40f96778.patch";
+      sha256 = "sha256-GU9tOP1stX2vn8m8kXOBupEpxIYArA76ibKL8eLn0MY=";
+    })
   ];
 
-  postPatch = ''
-    # File not covered by the remove-locale-specific-tests.patch patch above.
-    rm tst/testinstall/strings.tst
-  '';
-
   # "teststandard" is a superset of testinstall. It takes ~1h instead of ~1min.
   # tests are run twice, once with all packages loaded and once without
   # checkTarget = "teststandard";
@@ -155,7 +145,6 @@ stdenv.mkDerivation rec {
 
     mkdir -p "$out/bin" "$out/share/gap/"
 
-    mkdir -p "$out/share/gap"
     echo "Copying files to target directory"
     cp -ar . "$out/share/gap/build-dir"
 
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index fabb3b08c4d..b85f8ba47a4 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.8.0";
+  version = "4.8.3";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "sha256-JYd4PEsClj+divtxfJlUyu+kY+ouChLhZZMH5qDX6ms=";
+    sha256 = "sha256-JvJIsSmgDR6gZY8CRBDCSQvNneckVFoRRKCSxgQnZ3U=";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/pkgs/applications/science/math/pynac/default.nix b/pkgs/applications/science/math/pynac/default.nix
index 00d35b491d6..9cdcd2b9ea3 100644
--- a/pkgs/applications/science/math/pynac/default.nix
+++ b/pkgs/applications/science/math/pynac/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchurl
+, fetchpatch
 , autoreconfHook
 , pkg-config
 , flint
@@ -11,16 +11,36 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.26";
+  version = "0.7.27";
   pname = "pynac";
 
   src = fetchFromGitHub {
     owner = "pynac";
     repo = "pynac";
     rev = "pynac-${version}";
-    sha256 = "09d2p74x1arkydlxy6pw4p4byi7r8q7f29w373h4d8a215kadc6d";
+    sha256 = "sha256-1HHCIeaNE2UsJNX92UlDGLJS8I4nC/8FnwX7Y4F9HpU=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "handle_factor.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/handle_factor.patch?h=9.3.rc3";
+      sha256 = "sha256-U1lb5qwBqZZgklfDMhBX4K5u8bz5x42O4w7hyNy2YVw=";
+    })
+
+    (fetchpatch {
+      name = "power_inf_loop.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/power_inf_loop.patch?h=9.3.rc3";
+      sha256 = "sha256-VYeaJl8u2wl7FQ/6xnpZv1KpdNYEmJoPhuMrBADyTRs=";
+    })
+
+    (fetchpatch {
+      name = "too_much_sub.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/too_much_sub.patch?h=9.3.rc3";
+      sha256 = "sha256-lw7xSQ/l+rzPu+ghWF4omYF0mKksGGPuuHJTktvbdis=";
+    })
+  ];
+
   buildInputs = [
     flint
     gmp
@@ -34,14 +54,6 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
 
-  patches = [
-    (fetchurl {
-      name = "py_ssize_t_clean.patch";
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/py_ssize_t_clean.patch?h=9.2";
-      sha256 = "0l3gbg9hc4v671zf4w376krnk3wh8hj3649610nlvzzxckcryzab";
-    })
-  ];
-
   meta = with lib; {
     description = "Python is Not a CAS -- modified version of Ginac";
     longDescription = ''
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 7ee86793089..56b6df94e8f 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.17.0";
+  version = "3.18.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "sha256-Nxe1DZL8mh9aBWXQdlp5wC1l5b9mchlrRyE+LKC+yLI=";
+    sha256 = "sha256-hE0di7B6dCnMmMBLgFkb6vPS4hS/7zD6BbviIucrn1I=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 8ef1f5189e5..e39db4b1ac2 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -19,6 +19,10 @@ let
         linbox = pkgs.linbox.override { withSage = true; };
         pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
       };
+
+      sage_docbuild = self.callPackage ./sage_docbuild.nix {
+        inherit sage-src;
+      };
     };
   };
 
@@ -38,14 +42,16 @@ let
     logo64 = "${sage-src}/doc/common/themes/sage/static/sageicon.png";
   };
 
+  three = callPackage ./threejs-sage.nix { };
+
   # A bash script setting various environment variables to tell sage where
   # the files its looking fore are located. Also see `sage-env`.
   env-locations = callPackage ./env-locations.nix {
     inherit pari_data;
     inherit singular maxima-ecl;
+    inherit three;
     ecl = maxima-ecl.ecl;
     cysignals = python3.pkgs.cysignals;
-    three = nodePackages.three;
     mathjax = nodePackages.mathjax;
   };
 
@@ -53,6 +59,7 @@ let
   # the env-locations file.
   sage-env = callPackage ./sage-env.nix {
     sagelib = python3.pkgs.sagelib;
+    sage_docbuild = python3.pkgs.sage_docbuild;
     inherit env-locations;
     inherit python3 singular palp flint pynac pythonEnv maxima-ecl;
     ecl = maxima-ecl.ecl;
@@ -70,8 +77,8 @@ let
     inherit python3 pythonEnv;
     inherit sage-env;
     inherit pynac singular maxima-ecl;
+    inherit three;
     pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
-    three = nodePackages.three;
   };
 
   # Doesn't actually build anything, just runs sages testsuite. This is a
@@ -86,6 +93,7 @@ let
 
   pythonRuntimeDeps = with python3.pkgs; [
     sagelib
+    sage_docbuild
     cvxopt
     networkx
     service-identity
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
index 98175920238..0dbfba642e8 100644
--- a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
+++ b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
@@ -1,13 +1,13 @@
 diff --git a/src/sage/env.py b/src/sage/env.py
-index 1ddfc7cfb9..45033d6328 100644
+index 2908f5d04f..81dfd75c0d 100644
 --- a/src/sage/env.py
 +++ b/src/sage/env.py
-@@ -203,97 +203,13 @@ var('ARB_LIBRARY',                   'arb')
- var('SAGE_BANNER', '')
- var('SAGE_IMPORTALL', 'yes')
+@@ -218,93 +218,12 @@ NTL_LIBDIR = var("NTL_LIBDIR")
+ SAGE_BANNER = var("SAGE_BANNER", "")
+ SAGE_IMPORTALL = var("SAGE_IMPORTALL", "yes")
  
 -
--def _get_shared_lib_filename(libname, *additional_libnames):
+-def _get_shared_lib_path(*libnames: str) -> Optional[str]:
 -    """
 -    Return the full path to a shared library file installed in
 -    ``$SAGE_LOCAL/lib`` or the directories associated with the
@@ -25,80 +25,76 @@ index 1ddfc7cfb9..45033d6328 100644
 -    For distributions like Debian that use a multiarch layout, we also try the
 -    multiarch lib paths (i.e. ``/usr/lib/<arch>/``).
 -
--    This returns ``None`` if the file does not exist.
+-    This returns ``None`` if no matching library file could be found.
 -
 -    EXAMPLES::
 -
 -        sage: import sys
 -        sage: from fnmatch import fnmatch
--        sage: from sage.env import _get_shared_lib_filename
--        sage: lib_filename = _get_shared_lib_filename("Singular",
--        ....:                                         "singular-Singular")
+-        sage: from sage.env import _get_shared_lib_path
+-        sage: lib_filename = _get_shared_lib_path("Singular", "singular-Singular")
 -        sage: if sys.platform == 'cygwin':
 -        ....:     pattern = "*/cygSingular-*.dll"
 -        ....: elif sys.platform == 'darwin':
--        ....:     pattern = "*/libSingular.dylib"
+-        ....:     pattern = "*/libSingular-*.dylib"
 -        ....: else:
--        ....:     pattern = "*/lib*Singular.so"
--        sage: fnmatch(lib_filename, pattern)
+-        ....:     pattern = "*/lib*Singular-*.so"
+-        sage: fnmatch(str(lib_filename), pattern)
 -        True
--        sage: _get_shared_lib_filename("an_absurd_lib") is None
+-        sage: _get_shared_lib_path("an_absurd_lib") is None
 -        True
 -    """
 -
--    for libname in (libname,) + additional_libnames:
+-    for libname in libnames:
+-        search_directories: List[Path] = []
+-        patterns: List[str] = []
 -        if sys.platform == 'cygwin':
--            # Later down we take the last matching DLL found, so search
--            # SAGE_LOCAL second so that it takes precedence
--            bindirs = [
--                sysconfig.get_config_var('BINDIR'),
--                os.path.join(SAGE_LOCAL, 'bin')
+-            # Later down we take the first matching DLL found, so search
+-            # SAGE_LOCAL first so that it takes precedence
+-            search_directories = [
+-                Path(SAGE_LOCAL) / 'bin',
+-                Path(sysconfig.get_config_var('BINDIR')),
 -            ]
--            pats = ['cyg{}.dll'.format(libname), 'cyg{}-*.dll'.format(libname)]
--            filenames = []
--            for bindir in bindirs:
--                for pat in pats:
--                    filenames += glob.glob(os.path.join(bindir, pat))
--
--            # Note: This is not very robust, since if there are multi DLL
+-            # Note: The following is not very robust, since if there are multible
 -            # versions for the same library this just selects one more or less
--            # at arbitrary.  However, practically speaking, on Cygwin, there
+-            # at arbitrary. However, practically speaking, on Cygwin, there
 -            # will only ever be one version
--            if filenames:
--                return filenames[-1]
+-            patterns = [f'cyg{libname}.dll', f'cyg{libname}-*.dll']
 -        else:
 -            if sys.platform == 'darwin':
 -                ext = 'dylib'
 -            else:
 -                ext = 'so'
 -
--            libdirs = [
--                os.path.join(SAGE_LOCAL, 'lib'),
--                sysconfig.get_config_var('LIBDIR')
--            ]
--            multilib = sysconfig.get_config_var('MULTILIB')
--            if multilib:
--                libdirs.insert(1, os.path.join(libdirs[0], multilib))
+-            search_directories = [Path(SAGE_LOCAL) / 'lib']
+-            libdir = sysconfig.get_config_var('LIBDIR')
+-            if libdir is not None:
+-                libdir = Path(libdir)
+-                search_directories.append(libdir)
+-
+-                multiarchlib = sysconfig.get_config_var('MULTIARCH')
+-                if multiarchlib is not None: 
+-                    search_directories.append(libdir / multiarchlib),
 -
--            for libdir in libdirs:
--                basename = 'lib{}.{}'.format(libname, ext)
--                filename = os.path.join(libdir, basename)
--                if os.path.exists(filename):
--                    return filename
+-            patterns = [f'lib{libname}.{ext}']
+-
+-        for directory in search_directories:
+-            for pattern in patterns:
+-                path = next(directory.glob(pattern), None)
+-                if path is not None:
+-                    return str(path.resolve())
 -
 -    # Just return None if no files were found
 -    return None
 -
--
  # locate singular shared object
  # On Debian it's libsingular-Singular so try that as well
--SINGULAR_SO = _get_shared_lib_filename('Singular', 'singular-Singular')
-+SINGULAR_SO = '/default'
- var('SINGULAR_SO', SINGULAR_SO)
+-SINGULAR_SO = var("SINGULAR_SO", _get_shared_lib_path("Singular", "singular-Singular"))
++SINGULAR_SO = var("SINGULAR_SO", '/default')
  
  # locate libgap shared object
--GAP_SO= _get_shared_lib_filename('gap','')
-+GAP_SO = '/default'
- var('GAP_SO', GAP_SO)
+-GAP_SO = var("GAP_SO", _get_shared_lib_path("gap", ""))
++GAP_SO = var("GAP_SO", '/default')
  
  # post process
+ if ' ' in DOT_SAGE:
diff --git a/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch b/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
deleted file mode 100644
index 88cb66506b1..00000000000
--- a/pkgs/applications/science/math/sage/patches/dont-grep-threejs-version-from-minified-js.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/src/sage/repl/rich_output/display_manager.py b/src/sage/repl/rich_output/display_manager.py
-index fb21f7a9c9..f39470777d 100644
---- a/src/sage/repl/rich_output/display_manager.py
-+++ b/src/sage/repl/rich_output/display_manager.py
-@@ -749,9 +749,9 @@ class DisplayManager(SageObject):
-             import sage.env
-             import re
-             import os
--            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.min.js')) as f:
-+            with open(os.path.join(sage.env.THREEJS_DIR, 'build', 'three.js')) as f:
-                 text = f.read().replace('\n','')
--            version = re.search(r'REVISION="(\d+)"', text).group(1)
-+            version = re.search(r"REVISION = '(\d+)'", text).group(1)
-             return """
- <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/build/three.min.js"></script>
- <script src="https://cdn.jsdelivr.net/gh/mrdoob/three.js@r{0}/examples/js/controls/OrbitControls.js"></script>
diff --git a/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch b/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
deleted file mode 100644
index 3fdb8f768e9..00000000000
--- a/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py
-index e898456720..6b98c12328 100644
---- a/src/sage/libs/eclib/interface.py
-+++ b/src/sage/libs/eclib/interface.py
-@@ -758,78 +758,78 @@ class mwrank_MordellWeil(SageObject):
- 
-         sage: EQ = mwrank_MordellWeil(E, verbose=True)
-         sage: EQ.search(1)
--        P1 = [0:1:0]     is torsion point, order 1
--        P1 = [-3:0:1]     is generator number 1
--        saturating up to 20...Checking 2-saturation
-+        P1 = [0:1:0]         is torsion point, order 1
-+        P1 = [-3:0:1]         is generator number 1
-+        saturating up to 20...Checking 2-saturation...
-         Points have successfully been 2-saturated (max q used = 7)
--        Checking 3-saturation
-+        Checking 3-saturation...
-         Points have successfully been 3-saturated (max q used = 7)
--        Checking 5-saturation
-+        Checking 5-saturation...
-         Points have successfully been 5-saturated (max q used = 23)
--        Checking 7-saturation
-+        Checking 7-saturation...
-         Points have successfully been 7-saturated (max q used = 41)
--        Checking 11-saturation
-+        Checking 11-saturation...
-         Points have successfully been 11-saturated (max q used = 17)
--        Checking 13-saturation
-+        Checking 13-saturation...
-         Points have successfully been 13-saturated (max q used = 43)
--        Checking 17-saturation
-+        Checking 17-saturation...
-         Points have successfully been 17-saturated (max q used = 31)
--        Checking 19-saturation
-+        Checking 19-saturation...
-         Points have successfully been 19-saturated (max q used = 37)
-         done
--        P2 = [-2:3:1]     is generator number 2
--        saturating up to 20...Checking 2-saturation
-+        P2 = [-2:3:1]         is generator number 2
-+        saturating up to 20...Checking 2-saturation...
-         possible kernel vector = [1,1]
-         This point may be in 2E(Q): [14:-52:1]
-         ...and it is!
-         Replacing old generator #1 with new generator [1:-1:1]
-         Points have successfully been 2-saturated (max q used = 7)
-         Index gain = 2^1
--        Checking 3-saturation
-+        Checking 3-saturation...
-         Points have successfully been 3-saturated (max q used = 13)
--        Checking 5-saturation
-+        Checking 5-saturation...
-         Points have successfully been 5-saturated (max q used = 67)
--        Checking 7-saturation
-+        Checking 7-saturation...
-         Points have successfully been 7-saturated (max q used = 53)
--        Checking 11-saturation
-+        Checking 11-saturation...
-         Points have successfully been 11-saturated (max q used = 73)
--        Checking 13-saturation
-+        Checking 13-saturation...
-         Points have successfully been 13-saturated (max q used = 103)
--        Checking 17-saturation
-+        Checking 17-saturation...
-         Points have successfully been 17-saturated (max q used = 113)
--        Checking 19-saturation
-+        Checking 19-saturation...
-         Points have successfully been 19-saturated (max q used = 47)
-         done (index = 2).
-         Gained index 2, new generators = [ [1:-1:1] [-2:3:1] ]
--        P3 = [-14:25:8]   is generator number 3
--        saturating up to 20...Checking 2-saturation
-+        P3 = [-14:25:8]       is generator number 3
-+        saturating up to 20...Checking 2-saturation...
-         Points have successfully been 2-saturated (max q used = 11)
--        Checking 3-saturation
-+        Checking 3-saturation...
-         Points have successfully been 3-saturated (max q used = 13)
--        Checking 5-saturation
-+        Checking 5-saturation...
-         Points have successfully been 5-saturated (max q used = 71)
--        Checking 7-saturation
-+        Checking 7-saturation...
-         Points have successfully been 7-saturated (max q used = 101)
--        Checking 11-saturation
-+        Checking 11-saturation...
-         Points have successfully been 11-saturated (max q used = 127)
--        Checking 13-saturation
-+        Checking 13-saturation...
-         Points have successfully been 13-saturated (max q used = 151)
--        Checking 17-saturation
-+        Checking 17-saturation...
-         Points have successfully been 17-saturated (max q used = 139)
--        Checking 19-saturation
-+        Checking 19-saturation...
-         Points have successfully been 19-saturated (max q used = 179)
-         done (index = 1).
--        P4 = [-1:3:1]    = -1*P1 + -1*P2 + -1*P3 (mod torsion)
--        P4 = [0:2:1]     = 2*P1 + 0*P2 + 1*P3 (mod torsion)
--        P4 = [2:13:8]    = -3*P1 + 1*P2 + -1*P3 (mod torsion)
--        P4 = [1:0:1]     = -1*P1 + 0*P2 + 0*P3 (mod torsion)
--        P4 = [2:0:1]     = -1*P1 + 1*P2 + 0*P3 (mod torsion)
--        P4 = [18:7:8]    = -2*P1 + -1*P2 + -1*P3 (mod torsion)
--        P4 = [3:3:1]     = 1*P1 + 0*P2 + 1*P3 (mod torsion)
--        P4 = [4:6:1]     = 0*P1 + -1*P2 + -1*P3 (mod torsion)
--        P4 = [36:69:64]  = 1*P1 + -2*P2 + 0*P3 (mod torsion)
--        P4 = [68:-25:64]         = -2*P1 + -1*P2 + -2*P3 (mod torsion)
--        P4 = [12:35:27]  = 1*P1 + -1*P2 + -1*P3 (mod torsion)
-+        P4 = [-1:3:1]        = -1*P1 + -1*P2 + -1*P3 (mod torsion)
-+        P4 = [0:2:1]         = 2*P1 + 0*P2 + 1*P3 (mod torsion)
-+        P4 = [2:13:8]        = -3*P1 + 1*P2 + -1*P3 (mod torsion)
-+        P4 = [1:0:1]         = -1*P1 + 0*P2 + 0*P3 (mod torsion)
-+        P4 = [2:0:1]         = -1*P1 + 1*P2 + 0*P3 (mod torsion)
-+        P4 = [18:7:8]        = -2*P1 + -1*P2 + -1*P3 (mod torsion)
-+        P4 = [3:3:1]         = 1*P1 + 0*P2 + 1*P3 (mod torsion)
-+        P4 = [4:6:1]         = 0*P1 + -1*P2 + -1*P3 (mod torsion)
-+        P4 = [36:69:64]      = 1*P1 + -2*P2 + 0*P3 (mod torsion)
-+        P4 = [68:-25:64]     = -2*P1 + -1*P2 + -2*P3 (mod torsion)
-+        P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
-         sage: EQ
-         Subgroup of Mordell-Weil group: [[1:-1:1], [-2:3:1], [-14:25:8]]
- 
-@@ -1076,7 +1076,7 @@ class mwrank_MordellWeil(SageObject):
-             sage: EQ.search(1)
-             P1 = [0:1:0]         is torsion point, order 1
-             P1 = [-3:0:1]         is generator number 1
--            saturating up to 20...Checking 2-saturation
-+            saturating up to 20...Checking 2-saturation...
-             ...
-             P4 = [12:35:27]      = 1*P1 + -1*P2 + -1*P3 (mod torsion)
-             sage: EQ
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
index 661077cfa8c..3c64be100d2 100644
--- a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -1,8 +1,8 @@
-diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
-index 73a078e619..059125c59f 100644
---- a/src/sage_setup/docbuild/__init__.py
-+++ b/src/sage_setup/docbuild/__init__.py
-@@ -86,27 +86,6 @@ def builder_helper(type):
+diff --git a/src/sage_docbuild/__init__.py b/src/sage_docbuild/__init__.py
+index 79005b903a..fbe6fe2595 100644
+--- a/src/sage_docbuild/__init__.py
++++ b/src/sage_docbuild/__init__.py
+@@ -85,27 +85,6 @@ def builder_helper(type):
      """
      Returns a function which builds the documentation for
      output type ``type``.
@@ -11,16 +11,16 @@ index 73a078e619..059125c59f 100644
 -
 -    Check that :trac:`25161` has been resolved::
 -
--        sage: from sage_setup.docbuild import DocBuilder, setup_parser
+-        sage: from sage_docbuild import DocBuilder, setup_parser
 -        sage: DocBuilder._options = setup_parser().parse_args([])[0] # builder_helper needs _options to be set
 -
--        sage: import sage_setup.docbuild.sphinxbuild
+-        sage: import sage_docbuild.sphinxbuild
 -        sage: def raiseBaseException():
 -        ....:     raise BaseException("abort pool operation")
--        sage: original_runsphinx, sage_setup.docbuild.sphinxbuild.runsphinx = sage_setup.docbuild.sphinxbuild.runsphinx, raiseBaseException
+-        sage: original_runsphinx, sage_docbuild.sphinxbuild.runsphinx = sage_docbuild.sphinxbuild.runsphinx, raiseBaseException
 -
--        sage: from sage_setup.docbuild import builder_helper, build_ref_doc
--        sage: from sage_setup.docbuild import _build_many as build_many
+-        sage: from sage_docbuild import builder_helper, build_ref_doc
+-        sage: from sage_docbuild import _build_many as build_many
 -        sage: helper = builder_helper("html")
 -        sage: try:
 -        ....:     build_many(build_ref_doc, [("docname", "en", "html", {})])
@@ -30,24 +30,24 @@ index 73a078e619..059125c59f 100644
      """
      def f(self, *args, **kwds):
          output_dir = self._output_dir(type)
-@@ -128,10 +107,9 @@ def builder_helper(type):
+@@ -127,10 +106,9 @@ def builder_helper(type):
          logger.debug(build_command)
  
          # Run Sphinx with Sage's special logger
 -        sys.argv = ["sphinx-build"] + build_command.split()
 -        from .sphinxbuild import runsphinx
-+        args = "python3 -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split()
++        args = "python3 -um sage_docbuild.sphinxbuild -N".split() + build_command.split()
          try:
 -            runsphinx()
 +            subprocess.check_call(args)
          except Exception:
              if ABORT_ON_ERROR:
                  raise
-diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py
-index fe7eba43b2..463790965c 100644
---- a/src/sage_setup/docbuild/sphinxbuild.py
-+++ b/src/sage_setup/docbuild/sphinxbuild.py
-@@ -321,3 +321,8 @@ def runsphinx():
+diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
+index f58f6c61d7..ef51a55411 100644
+--- a/src/sage_docbuild/sphinxbuild.py
++++ b/src/sage_docbuild/sphinxbuild.py
+@@ -326,3 +326,8 @@ def runsphinx():
          sys.stderr = saved_stderr
          sys.stdout.flush()
          sys.stderr.flush()
diff --git a/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch b/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch
deleted file mode 100644
index 1d21622a235..00000000000
--- a/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/src/sage/interfaces/sympy.py b/src/sage/interfaces/sympy.py
-index cc35a42a9f..6e577d5d8d 100644
---- a/src/sage/interfaces/sympy.py
-+++ b/src/sage/interfaces/sympy.py
-@@ -397,7 +397,7 @@ def _sympysage_rf(self):
-         sage: from sympy import Symbol, rf
-         sage: _ = var('x, y')
-         sage: rfxy = rf(Symbol('x'), Symbol('y'))
--        sage: assert rising_factorial(x,y)._sympy_() == rfxy.rewrite('gamma')
-+        sage: assert rising_factorial(x,y)._sympy_() == rfxy.rewrite('gamma', piecewise=False)
-         sage: assert rising_factorial(x,y) == rfxy._sage_()
-     """
-     from sage.arith.all import rising_factorial
-diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx
-index 7c18ec1efa..c2619ac42d 100644
---- a/src/sage/symbolic/expression.pyx
-+++ b/src/sage/symbolic/expression.pyx
-@@ -955,6 +955,6 @@ cdef class Expression(CommutativeRingElement):
-             sage: unicode_art(13 - I)
-             13 - ⅈ
-             sage: unicode_art(1.3 - I)
--            1.3 - 1.0⋅ⅈ
-+            1.3 - ⅈ
-             sage: unicode_art(cos(I))
-             cosh(1)
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index 568a4a39f39..fd67076c97d 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -2,6 +2,7 @@
 , lib
 , writeTextFile
 , sagelib
+, sage_docbuild
 , env-locations
 , gfortran
 , bash
@@ -191,6 +192,7 @@ writeTextFile rec {
   # for find_library
     export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
   '';
-} // {
-  lib = sagelib; # equivalent of `passthru`, which `writeTextFile` doesn't support
+} // { # equivalent of `passthru`, which `writeTextFile` doesn't support
+  lib = sagelib;
+  docbuild = sage_docbuild;
 }
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 1fb605b3599..91e855777f0 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -24,14 +24,14 @@ let
   );
 in
 stdenv.mkDerivation rec {
-  version = "9.2";
+  version = "9.3.rc4";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "103j8d5x6szl9fxaz0dvdi4y47q1af9h9y5hmjh2xayi62qmp5ql";
+    sha256 = "sha256-LDY07By2j6JagkgT9zeDJ93+m2/oXXEnDRTDzmR8ftk=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -53,14 +53,6 @@ stdenv.mkDerivation rec {
     # Parallelize docubuild using subprocesses, fixing an isolation issue. See
     # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
     ./patches/sphinx-docbuild-subprocesses.patch
-
-    # Register sorted dict pprinter earlier (https://trac.sagemath.org/ticket/31053)
-    (fetchSageDiff {
-      base = "9.3.beta4";
-      name = "register-pretty-printer-earlier.patch";
-      rev = "d658230ce06ca19f4a3b3a4576297ee82f2d2151";
-      sha256 = "sha256-9mPUV7K5PoLDH2vVaYaOfvDLDpmxU0Aj7m/eaXYotDs=";
-    })
   ];
 
   # Since sage unfortunately does not release bugfix releases, packagers must
@@ -70,31 +62,6 @@ stdenv.mkDerivation rec {
     # To help debug the transient error in
     # https://trac.sagemath.org/ticket/23087 when it next occurs.
     ./patches/configurationpy-error-verbose.patch
-
-    # fix intermittent errors in Sage 9.2's psage.py (this patch is
-    # already included in Sage 9.3): https://trac.sagemath.org/ticket/30730
-    (fetchSageDiff {
-      base = "9.2.rc2";
-      name = "fix-psage-is-locked.patch";
-      rev = "75df605f216ddc7b6ca719be942d666b241520e9";
-      sha256 = "0g9pl1wbb3sgs26d3bvv70cpa77sfskylv4kd255y1794f1fgk4q";
-    })
-
-    # fix intermittent errors in sagespawn.pyx: https://trac.sagemath.org/ticket/31052
-    (fetchSageDiff {
-      base = "9.2";
-      name = "sagespawn-implicit-casting.patch";
-      rev = "2959ac792ebd6107fe87c9af1541083de5ba02d6";
-      sha256 = "sha256-bWIpEGir9Kawak5CJegBMNcHm/CqhWmdru+emeSsvO0=";
-    })
-
-    # fix intermittent errors in doctest/test.py: https://trac.sagemath.org/ticket/26912
-    (fetchSageDiff {
-      base = "9.3.beta8";
-      name = "set-cysignals-crash-ndebug.patch";
-      rev = "ca5257a5d0f32efc9f8f07e126020856270b1a18";
-      sha256 = "sha256-KViw63xE3O0eUiOYzoxNrr4NL+csql9GPJLDJCf/EZs=";
-    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
@@ -111,120 +78,29 @@ stdenv.mkDerivation rec {
 
     # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests
     ./patches/ignore-cmp-deprecation.patch
-
-    # adapt sage's Image class to pillow 8.0.1 (https://trac.sagemath.org/ticket/30971)
-    (fetchSageDiff {
-      base = "9.3.beta2";
-      name = "pillow-8.0.1-update.patch";
-      rev = "f05f2d0aac9c4b5abe68105cee2cc7f2c8461847";
-      sha256 = "sha256-uY2UlgSd5hhOUUukB4Xc3Gjy0/e7p/qyq9jdvz10IOs=";
-    })
-
-    # don't use deprecated numpy type aliases (https://trac.sagemath.org/ticket/31364)
-    (fetchSageDiff {
-      base = "9.3.beta7";
-      name = "dont-use-deprecated-numpy-type-aliases.patch";
-      rev = "dfdef60515d4a4269e82d91280f76a7fdf10bf97";
-      sha256 = "sha256-77/3LkT5J7DQN8IPlGJKB6ZcJPaF7xwje06JNns+0AE=";
-    })
-
-    # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985)
-    ./patches/sympy-1.7-update.patch
-
-    # workaround until we use sage's fork of threejs, which contains a "version" file
-    ./patches/dont-grep-threejs-version-from-minified-js.patch
-
-    # updated eclib output has punctuation changes and tidier whitespace
-    ./patches/eclib-20210223-test-formatting.patch
-
-    # upgrade arb to 2.18.1 (https://trac.sagemath.org/ticket/28623)
-    (fetchSageDiff {
-      base = "9.3.beta3";
-      name = "arb-2.18.1-update.patch";
-      rev = "0c9c4ed35c2eaf34ae0d19387c07b7f460e4abce";
-      sha256 = "sha256-CjOJIsyyVCziAfvE6pWSihPO35IZMcY2/taXAsqhPLY=";
-    })
-
-    # giac 1.6.0-47 update (https://trac.sagemath.org/ticket/30537)
-    (fetchSageDiff {
-      base = "9.3.beta7";
-      name = "giac-1.6.0-47-update.patch";
-      rev = "f05720bf63dfaf33a4e3b6d3ed2c2c0ec46b5d31";
-      sha256 = "sha256-gDUq+84eXd5GxLBWUSI61GMJpBF2KX4LBVOt3mS1NF8=";
-    })
-
-    # Make gcd/lcm interact better with pari and gmpy2 (https://trac.sagemath.org/ticket/30849)
-    # needed for pari 2.13.1 update, which we will do in the future
-    (fetchSageDiff {
-      base = "9.3.beta0";
-      name = "make-gcd-lcm-interact-better-with-pari-and-gmpy2.patch";
-      rev = "75c1516f0abb9e6f8c335e38e4031f6ef674ed30";
-      sha256 = "sha256-RukkieIZcXNrju904H2oyGKdtpdE+9vNzvyjN2IBNg0=";
-    })
-
-    # cypari 2.1.2 update (https://trac.sagemath.org/ticket/31029)
-    (fetchSageDiff {
-      base = "9.3.beta3";
-      name = "cypari-2.1.2-update.patch";
-      rev = "b9aadfd08e81d74ca7c229bb80eb853b592887d0";
-      sha256 = "sha256-eKaMy7kpu+YKdL8bPStgocxBCTfc2Z/10RrGy2LENFw=";
-    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
 
   postPatch = ''
-    # make sure shebangs etc are fixed, but sage-python23 still works
-    find . -type f -exec sed \
-      -e 's/sage-python23/python3/g' \
-      -i {} \;
-
-    echo '#!${runtimeShell}
-    python3 "$@"' > build/bin/sage-python23
-
     # Make sure sage can at least be imported without setting any environment
     # variables. It won't be close to feature complete though.
     sed -i \
-      "s|var('SAGE_ROOT'.*|var('SAGE_ROOT', '$out')|" \
+      "s|var(\"SAGE_ROOT\".*|var(\"SAGE_ROOT\", \"$out\")|" \
       src/sage/env.py
 
-    # Do not use sage-env-config (generated by ./configure).
-    # Instead variables are set manually.
-    echo '# do nothing' >  src/bin/sage-env-config
-  '';
-
-  # Test src/doc/en/reference/spkg/conf.py will fail if
-  # src/doc/en/reference/spkg/index.rst is not generated.  It is
-  # generated by src/doc/bootstrap, so I've copied the relevant part
-  # here. An alternative would be to create an empty
-  # src/doc/en/reference/spkg/index.rst file.
-  configurePhase = ''
-    OUTPUT_DIR="src/doc/en/reference/spkg"
-    mkdir -p "$OUTPUT_DIR"
-    OUTPUT_INDEX="$OUTPUT_DIR"/index.rst
-    cat > "$OUTPUT_INDEX" <<EOF
-
-    External Packages
-    =================
-
-    .. toctree::
-       :maxdepth: 1
-
-    EOF
-    for PKG_SCRIPTS in build/pkgs/*; do
-        if [ -d "$PKG_SCRIPTS" ]; then
-            PKG_BASE=$(basename "$PKG_SCRIPTS")
-            if [ -f "$PKG_SCRIPTS"/SPKG.rst ]; then
-                # Instead of just copying, we may want to call
-                # a version of sage-spkg-info to format extra information.
-                cp "$PKG_SCRIPTS"/SPKG.rst "$OUTPUT_DIR"/$PKG_BASE.rst
-                echo >> "$OUTPUT_INDEX" "   $PKG_BASE"
-            fi
-        fi
-    done
-    cat >> "$OUTPUT_INDEX" <<EOF
-    .. include:: ../footer.txt
-    EOF
+    # src/doc/en/reference/spkg/conf.py expects index.rst in its directory,
+    # a list of external packages in the sage distribution (build/pkgs)
+    # generated by the bootstrap script (which we don't run).  this is not
+    # relevant for other distributions, so remove it.
+    rm src/doc/en/reference/spkg/conf.py
+    sed -i "/spkg/d" src/doc/en/reference/index.rst
+
+    # the bootstrap script also generates installation instructions for
+    # arch, debian, fedora, cygwin and homebrew using data from build/pkgs.
+    # we don't run the bootstrap script, so disable including the generated
+    # files. docbuilding fails otherwise.
+    sed -i "/literalinclude/d" src/doc/en/installation/source.rst
   '';
 
   buildPhase = "# do nothing";
diff --git a/pkgs/applications/science/math/sage/sage_docbuild.nix b/pkgs/applications/science/math/sage/sage_docbuild.nix
new file mode 100644
index 00000000000..ed78d46b445
--- /dev/null
+++ b/pkgs/applications/science/math/sage/sage_docbuild.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage
+, sage-src
+, sphinx
+}:
+
+buildPythonPackage rec {
+  version = src.version;
+  pname = "sage_docbuild";
+  src = sage-src;
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
+
+  preBuild = ''
+    cd build/pkgs/sage_docbuild/src
+  '';
+
+  doCheck = false; # we will run tests in sagedoc.nix
+}
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index a10672f3a09..603c1a585c7 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
     jmol
     cddlib
   ] ++ (with python3.pkgs; [
+    sage_docbuild
     psutil
     future
     sphinx
@@ -44,13 +45,6 @@ stdenv.mkDerivation rec {
     chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE"
   '';
 
-  postPatch = ''
-    # src/doc/bootstrap generates installation instructions for
-    # arch, debian, fedora, cygwin and homebrew. as a hack, disable
-    # including the generated files.
-    sed -i "/literalinclude/d" $SAGE_DOC_SRC_OVERRIDE/en/installation/source.rst
-  '';
-
   buildPhase = ''
     export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
     export HOME="$TMPDIR/sage_home"
@@ -59,13 +53,13 @@ stdenv.mkDerivation rec {
     # needed to link them in the sage docs using intersphinx
     export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
 
-    # adapted from src/doc/bootstrap
+    # adapted from src/doc/bootstrap (which we don't run)
     OUTPUT_DIR="$SAGE_DOC_SRC_OVERRIDE/en/reference/repl"
     mkdir -p "$OUTPUT_DIR"
     OUTPUT="$OUTPUT_DIR/options.txt"
     ${sage-with-env}/bin/sage -advanced > "$OUTPUT"
 
-    ${sage-with-env}/bin/sage -python -m sage_setup.docbuild \
+    ${sage-with-env}/bin/sage --docbuild \
       --mathjax \
       --no-pdf-links \
       all html
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 245ddcedeee..f60cb64d2e8 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -63,7 +63,6 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 # `sage-tests` and will not have html docs without `sagedoc`.
 
 buildPythonPackage rec {
-  format = "other";
   version = src.version;
   pname = "sagelib";
   src = sage-src;
@@ -74,6 +73,7 @@ buildPythonPackage rec {
     jupyter_core
     pkg-config
     pip # needed to query installed packages
+    ecl
   ];
 
   buildInputs = [
@@ -130,7 +130,7 @@ buildPythonPackage rec {
     sqlite
   ];
 
-  buildPhase = ''
+  preBuild = ''
     export SAGE_ROOT="$PWD"
     export SAGE_LOCAL="$SAGE_ROOT"
     export SAGE_SHARE="$SAGE_LOCAL/share"
@@ -146,15 +146,13 @@ buildPythonPackage rec {
     mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
     mkdir -p "var/lib/sage/installed"
 
-    source build/bin/sage-dist-helpers
-    cd src
-
-    ${python.interpreter} -u setup.py --no-user-cfg build
+    # src/setup.py should not be used, see https://trac.sagemath.org/ticket/31377#comment:124
+    cd build/pkgs/sagelib/src
   '';
 
-  installPhase = ''
-    ${python.interpreter} -u setup.py --no-user-cfg install --prefix=$out
-
+  postInstall = ''
     rm -r "$out/${python.sitePackages}/sage/cython_debug"
   '';
+
+  doCheck = false; # we will run tests in sage-tests.nix
 }
diff --git a/pkgs/applications/science/math/sage/threejs-sage.nix b/pkgs/applications/science/math/sage/threejs-sage.nix
new file mode 100644
index 00000000000..0e4ad4dee95
--- /dev/null
+++ b/pkgs/applications/science/math/sage/threejs-sage.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "threejs-sage";
+  version = "r122";
+
+  src = fetchFromGitHub {
+    owner = "sagemath";
+    repo = "threejs-sage";
+    rev = version;
+    sha256 = "sha256-xPAPt36Fon3hYQq6SOmGkIyUzAII2LMl10nqYG4UPI0=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/lib/node_modules/three
+    cp -r build version $out/lib/node_modules/three
+  '';
+}
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index fad05099a73..695af3d1744 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -1,57 +1,96 @@
-{ stdenv, fetchurl, gmp, bison, perl, ncurses, readline, coreutils, pkg-config
+{ stdenv, fetchFromGitHub, gmp, bison, perl, ncurses, readline, coreutils, pkg-config
 , lib
 , fetchpatch
 , autoreconfHook
+, sharutils
 , file
 , flint
 , ntl
 , cddlib
-, enableFactory ? true
+, gfan
+, lrcalc
+, doxygen
+, graphviz
+# upstream generates docs with texinfo 4. later versions of texinfo
+# use letters instead of numbers for post-appendix chapters, and we
+# want it to match the upstream format because sage depends on it.
+, texinfo4
+, texlive
+, enableDocs ? true
 , enableGfanlib ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "singular";
-  version = "4.1.1p2";
-
-  src = let
-    # singular sorts its tarballs in directories by base release (without patch version)
-    # for example 4.1.1p1 will be in the directory 4-1-1
-    baseVersion = builtins.head (lib.splitString "p" version);
-    urlVersion = builtins.replaceStrings [ "." ] [ "-" ] baseVersion;
-  in
-  fetchurl {
-    url = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/${urlVersion}/singular-${version}.tar.gz";
-    sha256 = "07x9kri8vl4galik7lr6pscq3c51n8570pyw64i7gbj0m706f7wf";
+  version = "4.2.0p2";
+
+  # since the tarball does not contain tests or documentation (and
+  # there is no separate tests tarball for 4.2.0), we fetch from
+  # GitHub.
+  src = fetchFromGitHub {
+    owner = "Singular";
+    repo = "Singular";
+
+    # 4.2.0p2 is not tagged, but the tarball matches commit
+    # 6f68939ddf612d96e3caaaaa8275f77613ac1da8. the commit below has
+    # two extra fixes.
+    rev = "3cda50c00a849455efa2502e56596955491a353a";
+    sha256 = "sha256-OizPhGE6L2LTOrKfeDdDB6BSdvYkDVXvbbYjV14hnHM=";
+
+    # if a release is tagged it will be in the format below.
+    # rev = "Release${lib.replaceStrings ["."] ["-"] version}";
+
+    # the repository's .gitattributes file contains the lines "/Tst/
+    # export-ignore" and "/doc/ export-ignore" so some directories are
+    # not included in the tarball downloaded by fetchzip. setting
+    # fetchSubmodules works around this by using fetchgit instead of
+    # fetchzip.
+    fetchSubmodules = true;
   };
 
+  patches = [
+    # add aarch64 support to cpu-check.m4. copied from redhat.
+    ./redhat-aarch64.patch
+
+    # vspace causes hangs in modstd and other libraries on aarch64
+    ./disable-vspace-on-aarch64.patch
+
+    # the newest version of ax-prog-cc-for-build.m4 seems to trigger
+    # linker errors. see
+    # https://github.com/alsa-project/alsa-firmware/issues/3 for a
+    # related issue.
+    ./use-older-ax-prog-cc-for-build.patch
+  ] ++ lib.optionals enableDocs [
+    # singular supports building without 4ti2, bertini, normaliz or
+    # topcom just fine, but the docbuilding does not skip manual pages
+    # tagged as depending on those binaries (probably a bug in
+    # doc2tex.pl::HandleLib, since it seems to ignore "-exclude"
+    # argumens). skip them manually.
+    ./disable-docs-for-optional-unpackaged-deps.patch
+  ];
+
   configureFlags = [
     "--with-ntl=${ntl}"
-  ] ++ lib.optionals enableFactory [
-    "--enable-factory"
+    "--disable-pyobject-module"
+  ] ++ lib.optionals enableDocs [
+    "--enable-doc-build"
   ] ++ lib.optionals enableGfanlib [
     "--enable-gfanlib"
   ];
 
-  postUnpack = ''
+  prePatch = ''
+    # don't let the tests depend on `hostname`
+    substituteInPlace Tst/regress.cmd --replace 'mysystem_catch("hostname")' 'nix_test_runner'
+
     patchShebangs .
+  '' + lib.optionalString enableDocs ''
+    # work around encoding problem
+    sed -i -e 's/\xb7/@cdot{}/g' doc/decodegb.doc
   '';
 
-  patches = [
-    # NTL error handler was introduced in the library part, preventing users of
-    # the library from implementing their own error handling
-    # https://www.singular.uni-kl.de/forum/viewtopic.php?t=2769
-    (fetchpatch {
-      name = "move_error_handler_out_of_libsingular.patch";
-      # rebased version of https://github.com/Singular/Sources/commit/502cf86d0bb2a96715be6764774b64a69c1ca34c.patch
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/singular/patches/singular-ntl-error-handler.patch?h=50b9ae2fd233c30860e1cbb3e63a26f2cc10560a";
-      sha256 = "0vgh4m9zn1kjl0br68n04j4nmn5i1igfn28cph0chnwf7dvr9194";
-    })
-  ];
-
   # For reference (last checked on commit 75f460d):
-  # https://github.com/Singular/Sources/blob/spielwiese/doc/Building-Singular-from-source.md
-  # https://github.com/Singular/Sources/blob/spielwiese/doc/external-packages-dynamic-modules.md
+  # https://github.com/Singular/Singular/blob/spielwiese/doc/Building-Singular-from-source.md
+  # https://github.com/Singular/Singular/blob/spielwiese/doc/external-packages-dynamic-modules.md
   buildInputs = [
     # necessary
     gmp
@@ -60,6 +99,8 @@ stdenv.mkDerivation rec {
     readline
     ntl
     flint
+    lrcalc
+    gfan
   ] ++ lib.optionals enableGfanlib [
     cddlib
   ];
@@ -68,6 +109,12 @@ stdenv.mkDerivation rec {
     perl
     pkg-config
     autoreconfHook
+    sharutils # needed for regress.cmd install checks
+  ] ++ lib.optionals enableDocs [
+    doxygen
+    graphviz
+    texinfo4
+    texlive.combined.scheme-small
   ];
 
   preAutoreconf = ''
@@ -85,23 +132,62 @@ stdenv.mkDerivation rec {
     # do nothing
   '';
 
+  doCheck = true; # very basic checks, does not test any libraries
+
   installPhase = ''
     mkdir -p "$out"
     cp -r Singular/LIB "$out/lib"
     make install
-
+  '' + lib.optionalString enableDocs ''
+    # Sage uses singular.hlp (which is not in the tarball)
+    mkdir -p $out/share/info
+    cp doc/singular.hlp $out/share/info
+  '' + ''
     # Make sure patchelf picks up the right libraries
     rm -rf libpolys factory resources omalloc Singular
   '';
 
+  # singular tests are a bit complicated, see
+  # https://github.com/Singular/Singular/tree/spielwiese/Tst
+  # https://www.singular.uni-kl.de/forum/viewtopic.php&t=2773
+  testsToRun = [
+    "Old/universal.lst"
+    "Buch/buch.lst"
+    "Plural/short.lst"
+    "Old/factor.tst"
+  ] ++ lib.optionals enableGfanlib [
+    # tests that require gfanlib
+    "Short/ok_s.lst"
+  ];
+
   # simple test to make sure singular starts and finds its libraries
   doInstallCheck = true;
   installCheckPhase = ''
+    # Very basic sanity check to make sure singular starts and finds its libraries.
+    # This is redundant with the below tests. It is only kept because the singular test
+    # runner is a bit complicated. In case we decide to give up those tests in the future,
+    # this will still be useful. It takes barely any time.
     "$out/bin/Singular" -c 'LIB "freegb.lib"; exit;'
     if [ $? -ne 0 ]; then
         echo >&2 "Error loading the freegb library in Singular."
         exit 1
     fi
+
+    # Run the test suite
+    cd Tst
+    perl ./regress.cmd \
+      -s "$out/bin/Singular" \
+      ${lib.concatStringsSep " " (map lib.escapeShellArg testsToRun)} \
+      2>"$TMPDIR/out-err.log"
+
+    # unfortunately regress.cmd always returns exit code 0, so check stderr
+    # https://www.singular.uni-kl.de/forum/viewtopic.php&t=2773
+    if [[ -s "$TMPDIR/out-err.log" ]]; then
+      cat "$TMPDIR/out-err.log"
+      exit 1
+    fi
+
+    echo "Exit status $?"
   '';
 
   enableParallelBuilding = true;
@@ -110,6 +196,7 @@ stdenv.mkDerivation rec {
     description = "A CAS for polynomial computations";
     maintainers = teams.sage.members;
     # 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
+    # https://www.singular.uni-kl.de:8002/trac/ticket/837
     platforms = subtractLists platforms.i686 platforms.unix;
     license = licenses.gpl3; # Or GPLv2 at your option - but not GPLv4
     homepage = "http://www.singular.uni-kl.de";
diff --git a/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch b/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch
new file mode 100644
index 00000000000..46d92922f3c
--- /dev/null
+++ b/pkgs/applications/science/math/singular/disable-docs-for-optional-unpackaged-deps.patch
@@ -0,0 +1,112 @@
+commit 9e8b044d982e132cf35a106a1cc0cf7e77b27f7c
+Author: Mauricio Collares <mauricio@collares.org>
+Date:   Thu Apr 15 20:33:21 2021 -0300
+
+    Disable manual sections using optional packages not yet in Nixpkgs
+
+        * normaliz.lib depends on normaliz.
+        * polymake.lib depends on topcom.
+        * recover.lib depends on bertini.
+        * sing4ti2.lib depends on 4ti2.
+        * tateProdCplxNegGrad.lib uses multigrading.lib, which depends on 4ti2.
+
+diff --git a/doc/singular.doc b/doc/singular.doc
+index 64b969d39..e704f95f0 100644
+--- a/doc/singular.doc
++++ b/doc/singular.doc
+@@ -407,7 +407,6 @@ LIB "all.lib";
+ * nfmodsyz_lib:: Syzygy modules of submodules of free modules over algebraic number fields
+ * noether_lib:: Noether normalization of an ideal
+ * normal_lib:: procedure for normalization
+-* normaliz_lib:: integral closure, normalization for monomial ideals, toric ideals
+ * pointid_lib:: factorized lex GB of the vanishing ideal of a set of points
+ * primdec_lib:: procedures for primary decomposition
+ * primdecint_lib:: primary decomposition over the integers
+@@ -416,7 +415,6 @@ LIB "all.lib";
+ * reesclos_lib:: Rees Algebra and integral closure of an ideal
+ * rstandard_lib:: Janet bases and border bases for ideals
+ * sagbi_lib:: Subalgebras bases Analogous to Groebner bases for ideals
+-* sing4ti2_lib:: interface to program 4ti2
+ * symodstd_lib:: Groebner bases for symmetric ideals
+ * toric_lib:: toric ideals
+ @end menu
+@@ -521,10 +519,6 @@ LIB "all.lib";
+ @node normal_lib
+ @subsection normal_lib
+ @c lib normal.lib
+-@c ---------------------------------------------------------
+-@node normaliz_lib
+-@subsection normaliz_lib
+-@c lib normaliz.lib tag:normaliz
+ @c ----------------------------------------------------------
+ @node pointid_lib
+ @subsection pointid_lib
+@@ -558,10 +552,6 @@ LIB "all.lib";
+ @subsection sagbi_lib
+ @c lib sagbi.lib
+ @c ---------------------------------------------------------
+-@node sing4ti2_lib
+-@subsection sing4ti2_lib
+-@c lib sing4ti2.lib tag:sing4ti2
+-@c ----------------------------------------------------------
+ @node symodstd_lib
+ @subsection symodstd_lib
+ @c lib symodstd.lib
+@@ -873,7 +863,6 @@ iniD, reslist, sumlist, dividelist, createlist
+ * solve_lib:: procedures to solve polynomial systems
+ * triang_lib:: procedures for decomposing zero-dimensional ideals
+ * ntsolve_lib:: one real solution of polynomial systems (Newton iteration)
+-* recover_lib:: Hybrid numerical/symbolical algorithms
+ * rootisolation_lib:: real root isolation with intervals
+ * signcond_lib:: computing realizable sign conditions
+ * zeroset_lib:: procedures for roots and factorization
+@@ -904,10 +893,6 @@ iniD, reslist, sumlist, dividelist, createlist
+ @subsection ntsolve_lib
+ @c lib ntsolve.lib
+ @c ---------------------------------------------------------
+-@node recover_lib
+-@subsection recover_lib
+-@c lib recover.lib tag:bertini
+-@c ----------------------------------------------------------
+ @node rootisolation_lib
+ @subsection rootisolation_lib
+ @c lib rootisolation.lib
+@@ -1108,7 +1093,6 @@ but not for serious computations.
+ * cimonom_lib:: complete intersection for toric ideals
+ * gfan_lib:: A gfanlib interface for Singular
+ * gitfan_lib:: Compute GIT-fans
+-* polymake_lib:: interface to TOPCOM
+ * realizationMatroids_lib:: Realizability for Tropical Fan Curves
+ * tropical_lib:: interface to gfan
+ * tropicalNewton_lib:: Newton polygons in tropical geometry
+@@ -1125,10 +1109,7 @@ but not for serious computations.
+ @node gitfan_lib
+ @subsection gitfan_lib
+ @c lib gitfan.lib
+-@c ----------------------------------------------------------
+-@node polymake_lib
+-@subsection polymake_lib
+-@c lib polymake.lib tag:topcom
++
+ @c ----------------------------------------------------------
+ @node realizationMatroids_lib
+ @subsection realizationMatroids_lib
+@@ -1219,7 +1200,6 @@ Comments should be send to the author of the library directly.
+ * stanleyreisner_lib:: T1 and T2 for a general Stanley-Reiser ring
+ * swalk_lib:: Sagbi Walk Conversion Algorithm
+ * systhreads_lib:: multi-threaded objects
+-* tateProdCplxNegGrad_lib:: sheaf cohomology on product of projective spaces
+ * VecField_lib:: vector fields
+ @end menu
+ @c ----------------------------------------------------------
+@@ -1310,10 +1290,6 @@ Todos/Issues:
+ @subsection systhreads_lib
+ @c lib systhreads.lib
+ @c ---------------------------------------------------------
+-@node tateProdCplxNegGrad_lib
+-@subsection tateProdCplxNegGrad_lib
+-@c lib tateProdCplxNegGrad.lib
+-@c ---------------------------------------------------------
+ @node VecField_lib
+ @subsection VecField_lib
+ @c lib VecField.lib
diff --git a/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch b/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch
new file mode 100644
index 00000000000..3e51b7fb2ce
--- /dev/null
+++ b/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch
@@ -0,0 +1,15 @@
+diff --git a/kernel/mod2.h b/kernel/mod2.h
+index 867fcae47..2abd84f23 100644
+--- a/kernel/mod2.h
++++ b/kernel/mod2.h
+@@ -60,8 +60,10 @@
+ 
+ /* define for parallel processes with shared memory */
+ #ifndef __CCYGWIN__
++#ifndef SI_CPU_AARCH64
+ #define HAVE_VSPACE 1
+ #endif
++#endif
+ 
+ /*#define PROFILING*/
+ #ifdef PROFILING
diff --git a/pkgs/applications/science/math/singular/redhat-aarch64.patch b/pkgs/applications/science/math/singular/redhat-aarch64.patch
new file mode 100644
index 00000000000..e0db6e87f99
--- /dev/null
+++ b/pkgs/applications/science/math/singular/redhat-aarch64.patch
@@ -0,0 +1,38 @@
+diff --git a/m4/cpu-check.m4 b/m4/cpu-check.m4
+index 3cf0a7f08..12bb926ac 100644
+--- a/m4/cpu-check.m4
++++ b/m4/cpu-check.m4
+@@ -37,6 +37,18 @@ if test "$ac_cv_singcpuname" = ppc; then
+   AC_DEFINE(SI_CPU_PPC,1,"PPC")
+   AC_SUBST(SI_CPU_PPC)
+ fi
++if test "$ac_cv_singcpuname" = arm -o "$ac_cv_singcpuname" = armel; then
++  AC_DEFINE(SI_CPU_ARM,1,"ARM")
++  AC_SUBST(SI_CPU_ARM)
++fi
++if test "$ac_cv_singcpuname" = aarch64; then
++  AC_DEFINE(SI_CPU_AARCH64,1,"AARCH64")
++  AC_SUBST(SI_CPU_AARCH64)
++fi
++if test "$ac_cv_singcpuname" = s390; then
++  AC_DEFINE(SI_CPU_S390,1,"S390")
++  AC_SUBST(SI_CPU_S390)
++fi
+ 
+ # UNAME and PATH
+ AC_MSG_CHECKING(uname for Singular)
+@@ -65,6 +77,14 @@ dnl testet on: ppc_Linux, 740/750 PowerMac G3, 512k L2 cache
+   [powerpc*|ppc*], [AC_DEFINE(HAVE_GENERIC_MULT,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)],
+ dnl the following settings seems to be better on arm processors
+   [arm*], [],
++dnl FIXME: need to run some tests
++  [aarch64*], [
++            AC_DEFINE(HAVE_MULT_MOD,1,multiplication is fast on the cpu: a*b is with mod otherwise using tables of logartihms)
++            AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)
++            AC_DEFINE(HAVE_DIV_MOD,1,division using extend euclidian algorithm otherwise using tables of logartihms)
++            ],
++dnl FIXME: need to run some tests
++  [s390*], [AC_DEFINE(HAVE_GENERIC_ADD,1,use branch for addition in Z/p otherwise it uses a generic add)],
+   []
+ )
+ 
diff --git a/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch b/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch
new file mode 100644
index 00000000000..f664378617c
--- /dev/null
+++ b/pkgs/applications/science/math/singular/use-older-ax-prog-cc-for-build.patch
@@ -0,0 +1,194 @@
+diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4
+index f7410d74b..12cb005a5 100644
+--- a/m4/ax_prog_cc_for_build.m4
++++ b/m4/ax_prog_cc_for_build.m4
+@@ -32,35 +32,31 @@
+ #   and this notice are preserved. This file is offered as-is, without any
+ #   warranty.
+ 
+-#serial 18
++#serial 9
+ 
+ AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD])
+ AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_PROG_CPP])dnl
+-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
++AC_REQUIRE([AC_EXEEXT])dnl
++AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ 
+ dnl Use the standard macros, but make them use other variable names
+ dnl
+ pushdef([ac_cv_prog_CPP], ac_cv_build_prog_CPP)dnl
+-pushdef([ac_cv_prog_cc_c89], ac_cv_build_prog_cc_c89)dnl
+ pushdef([ac_cv_prog_gcc], ac_cv_build_prog_gcc)dnl
+ pushdef([ac_cv_prog_cc_works], ac_cv_build_prog_cc_works)dnl
+ pushdef([ac_cv_prog_cc_cross], ac_cv_build_prog_cc_cross)dnl
+ pushdef([ac_cv_prog_cc_g], ac_cv_build_prog_cc_g)dnl
+-pushdef([ac_cv_c_compiler_gnu], ac_cv_build_c_compiler_gnu)dnl
+ pushdef([ac_cv_exeext], ac_cv_build_exeext)dnl
+ pushdef([ac_cv_objext], ac_cv_build_objext)dnl
+ pushdef([ac_exeext], ac_build_exeext)dnl
+ pushdef([ac_objext], ac_build_objext)dnl
+ pushdef([CC], CC_FOR_BUILD)dnl
+ pushdef([CPP], CPP_FOR_BUILD)dnl
+-pushdef([GCC], GCC_FOR_BUILD)dnl
+ pushdef([CFLAGS], CFLAGS_FOR_BUILD)dnl
+ pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
+-pushdef([EXEEXT], BUILD_EXEEXT)dnl
+ pushdef([LDFLAGS], LDFLAGS_FOR_BUILD)dnl
+-pushdef([OBJEXT], BUILD_OBJEXT)dnl
+ pushdef([host], build)dnl
+ pushdef([host_alias], build_alias)dnl
+ pushdef([host_cpu], build_cpu)dnl
+@@ -71,29 +67,27 @@ pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
+ pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
+ pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
+ pushdef([ac_cv_host_os], ac_cv_build_os)dnl
+-pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
+-pushdef([am_cv_CC_dependencies_compiler_type], am_cv_build_CC_dependencies_compiler_type)dnl
+-pushdef([am_cv_prog_cc_c_o], am_cv_build_prog_cc_c_o)dnl
+-pushdef([cross_compiling], cross_compiling_build)dnl
++pushdef([ac_cpp], ac_build_cpp)dnl
++pushdef([ac_compile], ac_build_compile)dnl
++pushdef([ac_link], ac_build_link)dnl
+ 
+-cross_compiling_build=no
++save_cross_compiling=$cross_compiling
++save_ac_tool_prefix=$ac_tool_prefix
++cross_compiling=no
++ac_tool_prefix=
+ 
+-ac_build_tool_prefix=
+-AS_IF([test -n "$build"],      [ac_build_tool_prefix="$build-"],
+-      [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
+-
+-AC_LANG_PUSH([C])
+ AC_PROG_CC
+-_AC_COMPILER_EXEEXT
+-_AC_COMPILER_OBJEXT
+ AC_PROG_CPP
++AC_EXEEXT
++
++ac_tool_prefix=$save_ac_tool_prefix
++cross_compiling=$save_cross_compiling
+ 
+ dnl Restore the old definitions
+ dnl
+-popdef([cross_compiling])dnl
+-popdef([am_cv_prog_cc_c_o])dnl
+-popdef([am_cv_CC_dependencies_compiler_type])dnl
+-popdef([ac_tool_prefix])dnl
++popdef([ac_link])dnl
++popdef([ac_compile])dnl
++popdef([ac_cpp])dnl
+ popdef([ac_cv_host_os])dnl
+ popdef([ac_cv_host_vendor])dnl
+ popdef([ac_cv_host_cpu])dnl
+@@ -104,33 +98,25 @@ popdef([host_vendor])dnl
+ popdef([host_cpu])dnl
+ popdef([host_alias])dnl
+ popdef([host])dnl
+-popdef([OBJEXT])dnl
+ popdef([LDFLAGS])dnl
+-popdef([EXEEXT])dnl
+ popdef([CPPFLAGS])dnl
+ popdef([CFLAGS])dnl
+-popdef([GCC])dnl
+ popdef([CPP])dnl
+ popdef([CC])dnl
+ popdef([ac_objext])dnl
+ popdef([ac_exeext])dnl
+ popdef([ac_cv_objext])dnl
+ popdef([ac_cv_exeext])dnl
+-popdef([ac_cv_c_compiler_gnu])dnl
+ popdef([ac_cv_prog_cc_g])dnl
+ popdef([ac_cv_prog_cc_cross])dnl
+ popdef([ac_cv_prog_cc_works])dnl
+-popdef([ac_cv_prog_cc_c89])dnl
+ popdef([ac_cv_prog_gcc])dnl
+ popdef([ac_cv_prog_CPP])dnl
+ 
+-dnl restore global variables ac_ext, ac_cpp, ac_compile,
+-dnl ac_link, ac_compiler_gnu (dependant on the current
+-dnl language after popping):
+-AC_LANG_POP([C])
+-
+ dnl Finally, set Makefile variables
+ dnl
++BUILD_EXEEXT=$ac_build_exeext
++BUILD_OBJEXT=$ac_build_objext
+ AC_SUBST(BUILD_EXEEXT)dnl
+ AC_SUBST(BUILD_OBJEXT)dnl
+ AC_SUBST([CFLAGS_FOR_BUILD])dnl
+diff --git a/m4/ax_prog_cxx_for_build.m4 b/m4/ax_prog_cxx_for_build.m4
+index 4d976769f..17c19a89f 100644
+--- a/m4/ax_prog_cxx_for_build.m4
++++ b/m4/ax_prog_cxx_for_build.m4
+@@ -31,7 +31,7 @@
+ #   and this notice are preserved. This file is offered as-is, without any
+ #   warranty.
+ 
+-#serial 4
++#serial 3
+ 
+ AU_ALIAS([AC_PROG_CXX_FOR_BUILD], [AX_PROG_CXX_FOR_BUILD])
+ AC_DEFUN([AX_PROG_CXX_FOR_BUILD], [dnl
+@@ -49,7 +49,6 @@ pushdef([ac_cv_prog_cxx_cross], ac_cv_build_prog_cxx_cross)dnl
+ pushdef([ac_cv_prog_cxx_g], ac_cv_build_prog_cxx_g)dnl
+ pushdef([CXX], CXX_FOR_BUILD)dnl
+ pushdef([CXXCPP], CXXCPP_FOR_BUILD)dnl
+-pushdef([GXX], GXX_FOR_BUILD)dnl
+ pushdef([CXXFLAGS], CXXFLAGS_FOR_BUILD)dnl
+ pushdef([CPPFLAGS], CPPFLAGS_FOR_BUILD)dnl
+ pushdef([CXXCPPFLAGS], CXXCPPFLAGS_FOR_BUILD)dnl
+@@ -63,25 +62,26 @@ pushdef([ac_cv_host_alias], ac_cv_build_alias)dnl
+ pushdef([ac_cv_host_cpu], ac_cv_build_cpu)dnl
+ pushdef([ac_cv_host_vendor], ac_cv_build_vendor)dnl
+ pushdef([ac_cv_host_os], ac_cv_build_os)dnl
+-pushdef([ac_tool_prefix], ac_build_tool_prefix)dnl
+-pushdef([am_cv_CXX_dependencies_compiler_type], am_cv_build_CXX_dependencies_compiler_type)dnl
+-pushdef([cross_compiling], cross_compiling_build)dnl
++pushdef([ac_cxxcpp], ac_build_cxxcpp)dnl
++pushdef([ac_compile], ac_build_compile)dnl
++pushdef([ac_link], ac_build_link)dnl
+ 
+-cross_compiling_build=no
++save_cross_compiling=$cross_compiling
++save_ac_tool_prefix=$ac_tool_prefix
++cross_compiling=no
++ac_tool_prefix=
+ 
+-ac_build_tool_prefix=
+-AS_IF([test -n "$build"],      [ac_build_tool_prefix="$build-"],
+-      [test -n "$build_alias"],[ac_build_tool_prefix="$build_alias-"])
+-
+-AC_LANG_PUSH([C++])
+ AC_PROG_CXX
+ AC_PROG_CXXCPP
+ 
++ac_tool_prefix=$save_ac_tool_prefix
++cross_compiling=$save_cross_compiling
++
+ dnl Restore the old definitions
+ dnl
+-popdef([cross_compiling])dnl
+-popdef([am_cv_CXX_dependencies_compiler_type])dnl
+-popdef([ac_tool_prefix])dnl
++popdef([ac_link])dnl
++popdef([ac_compile])dnl
++popdef([ac_cxxcpp])dnl
+ popdef([ac_cv_host_os])dnl
+ popdef([ac_cv_host_vendor])dnl
+ popdef([ac_cv_host_cpu])dnl
+@@ -103,10 +103,6 @@ popdef([ac_cv_prog_cxx_works])dnl
+ popdef([ac_cv_prog_gxx])dnl
+ popdef([ac_cv_prog_CXXCPP])dnl
+ 
+-dnl restore global variables (dependant on the current
+-dnl language after popping):
+-AC_LANG_POP([C++])
+-
+ dnl Finally, set Makefile variables
+ dnl
+ AC_SUBST([CXXFLAGS_FOR_BUILD])dnl
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 08ef2f13734..23531908a60 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -25,7 +25,7 @@
 }:
 
 let
-  version = "1.7.1";
+  version = "1.7.2";
 
   # build stimuli file for PGO build and the script to generate it
   # independently of the foot's build, so we can cache the result
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
-    sha256 = "1x6nyhlp0zynnbdjx87c4ybfx6fyr0r53vypkfima56dwbfh98ka";
+    sha256 = "0iabj9c0dj1r0m89i5gk2jdmwj4wfsai8na54x2w4fq406q6g9nh";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index 91d7b48738e..5324dc8a10b 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substituteAll, fetchFromGitHub, python3Packages, libunistring,
+{ lib, stdenv, fetchFromGitHub, python3Packages, libunistring,
   harfbuzz, fontconfig, pkg-config, ncurses, imagemagick, xsel,
   libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
   libxkbcommon, libXi, libXext, wayland-protocols, wayland,
@@ -21,14 +21,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.19.3";
+  version = "0.20.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "0r49bybqy6c0n1lz6yc85py80wb40w757m60f5rszjf200wnyl6s";
+    sha256 = "sha256-FquvC3tL565711OQmq2ddNwpyJQGgn4dhG/TYZdCRU0=";
   };
 
   buildInputs = [
@@ -135,7 +135,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/kovidgoyal/kitty";
     description = "A modern, hackable, featureful, OpenGL based terminal emulator";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
     platforms = platforms.darwin ++ platforms.linux;
     maintainers = with maintainers; [ tex rvolosatovs Luflosi ];
diff --git a/pkgs/applications/terminal-emulators/nimmm/default.nix b/pkgs/applications/terminal-emulators/nimmm/default.nix
index 648a3906fb5..bb09fa776b6 100644
--- a/pkgs/applications/terminal-emulators/nimmm/default.nix
+++ b/pkgs/applications/terminal-emulators/nimmm/default.nix
@@ -4,8 +4,8 @@ let
   noise = fetchFromGitHub {
     owner = "jangko";
     repo = "nim-noise";
-    rev = "db1e86e312413e4348fa82c02340784316a89cc1";
-    sha256 = "0n9l2dww5smrsl1xfqxjnxz3f1srb72lc1wl3pdvs6xfyf44qzlh";
+    rev = "v0.1.14";
+    sha256 = "0wndiphznfyb1pac6zysi3bqljwlfwj6ziarcwnpf00sw2zni449";
   };
 
   nimbox = fetchFromGitHub {
@@ -24,13 +24,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nimmm";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "joachimschmidt557";
     repo = "nimmm";
     rev = "v${version}";
-    sha256 = "1zpq181iz6g7yfi298gjwv33b89l4fpnkjprimykah7py5cpw67w";
+    sha256 = "168n61avphbxsxfq8qzcnlqx6wgvz5yrjvs14g25cg3k46hj4xqg";
   };
 
   nativeBuildInputs = [ nim ];
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index 8db5152137a..8b1031bb5b2 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -22,7 +22,7 @@
 , libGL
 , freetype
 , zlib
-# Apple frameworks
+  # Apple frameworks
 , CoreGraphics
 , Cocoa
 , Foundation
@@ -68,6 +68,10 @@ rustPlatform.buildRustPackage rec {
     fetchSubmodules = true;
   };
 
+  postPatch = ''
+    echo ${version} > .tag
+  '';
+
   cargoSha256 = "sha256-UaXeeuRuQk+CWF936mEAaWTjZuTSRPmxbQ/9E2oZIqg=";
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/cvs-fast-export/default.nix b/pkgs/applications/version-management/cvs-fast-export/default.nix
index f4957a82d44..ffd583585c0 100644
--- a/pkgs/applications/version-management/cvs-fast-export/default.nix
+++ b/pkgs/applications/version-management/cvs-fast-export/default.nix
@@ -7,7 +7,7 @@ with stdenv; with lib;
 mkDerivation rec {
   name = "cvs-fast-export-${meta.version}";
   meta = {
-    version = "1.55";
+    version = "1.56";
     description = "Export an RCS or CVS history as a fast-import stream";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dfoxfranke ];
@@ -16,8 +16,8 @@ mkDerivation rec {
   };
 
   src = fetchurl {
-    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.55.tar.gz";
-    sha256 = "06y2myhhv2ap08bq7d7shq0b7lq6wgznwrpz6622xq66cxkf2n5g";
+    url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.56.tar.gz";
+    sha256 = "sha256-TB/m7kd91+PyAkGdFCCgeb9pQh0kacq0QuTZa8f9CxU=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/bit/default.nix b/pkgs/applications/version-management/git-and-tools/bit/default.nix
index 1c88edfd901..cce37df357b 100644
--- a/pkgs/applications/version-management/git-and-tools/bit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bit/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "bit";
-  version = "1.0.6";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "chriswalz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-juQAFVqs0d4EtoX24EyrlKd2qRRseP+jKfM0ymkD39E=";
+    sha256 = "sha256-85GEx9y8r9Fjgfcwh1Bi8WDqBm6KF7uidutlF77my60=";
   };
 
   vendorSha256 = "sha256-3Y/B14xX5jaoL44rq9+Nn4niGViLPPXBa8WcJgTvYTA=";
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 6b79d152380..7dfca2cd80a 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,25 +2,33 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "1.8.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "1q0vc9wr4n813mxkf7jjj3prw1n7xv4l985qd57pg4a2js1dqa1y";
+    sha256 = "0lx6sx3zkjq9855va1vxbd5g47viqkrchk5d2rb6xj7zywwm4mgb";
   };
 
-  vendorSha256 = "1wv30z0jg195nkpz3rwvhixyw81lg2wzwwajq9g6s3rfjj8gs9v2";
+  vendorSha256 = "1zmyd566xcksgqm0f7mq0rkfnxk0fmf39k13fcp9jy30c1y9681v";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  # upstream unsets these to handle cross but it breaks our build
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "GOOS= GOARCH= GOARM= GOFLAGS= CGO_ENABLED=" ""
+  '';
+
   buildPhase = ''
-    export GO_LDFLAGS="-s -w"
-    make GH_VERSION=${version} bin/gh manpages
+    runHook preBuild
+    make GO_LDFLAGS="-s -w" GH_VERSION=${version} bin/gh manpages
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -Dm755 bin/gh -t $out/bin
     installManPage share/man/*/*.[1-9]
 
@@ -28,6 +36,7 @@ buildGoModule rec {
       $out/bin/gh completion -s $shell > gh.$shell
       installShellCompletion gh.$shell
     done
+    runHook postInstall
   '';
 
   # fails with `unable to find git executable in PATH`
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index 74e2a34aec1..74f644e23ad 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -32,6 +32,5 @@ buildGoModule rec {
     homepage = "https://github.com/gabrie30/ghorg";
     license = licenses.asl20;
     maintainers = with maintainers; [ vidbina ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix b/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
index 05d5dfe9605..8ec57f2e69e 100644
--- a/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
@@ -1,20 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "git-chglog";
-  version = "0.9.1";
-
-  goPackagePath = "github.com/git-chglog/git-chglog";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "git-chglog";
     repo = "git-chglog";
-    rev = version;
-    sha256 = "08x7w1jlvxxvwnz6pvkjmfd3nqayd8n15r9jbqi2amrp31z0gq0p";
+    rev = "v${version}";
+    sha256 = "124bqywkj37gv61fswgrg528bf3rjqms1664x22lkn0sqh22zyv1";
   };
 
+  vendorSha256 = "09zjypmcc3ra7sw81q1pbbrlpxxp4k00p1cfkrrih8wvb25z89h5";
+
+  buildFlagsArray = [ "-ldflags= -s -w -X=main.Version=v${version}" ];
+
+  subPackages = [ "cmd/git-chglog" ];
+
   meta = with lib; {
     description = "CHANGELOG generator implemented in Go (Golang)";
+    homepage = "https://github.com/git-chglog/git-chglog";
     license = licenses.mit;
     maintainers = with maintainers; [ ldenefle ];
   };
diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
index f28d49702bc..be6e96fc8ff 100644
--- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -2,21 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-interactive-rebase-tool";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "MitMaro";
     repo = pname;
     rev = version;
-    sha256 = "117zwxyq2vc33nbnfpjbdr5vc2l5ymf6ln1dm5551ha3y3gdq3bf";
+    sha256 = "sha256-DYl/GUbeNtKmXoR3gq8mK8EfsZNVNlrdngAwfzG+epw=";
   };
 
-  cargoSha256 = "051llwk9swq03xdqwyj0hlyv2ywq2f1cnks95nygyy393q7v930x";
+  cargoSha256 = "sha256-1joMWPfn0s+pLsO6NHMT6AoXZ33R8MY2AWSrROY2mw8=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  # external_editor::tests::* tests fail
-  doCheck = false;
+  checkFlags = [
+    "--skip=external_editor::tests::edit_success"
+    "--skip=external_editor::tests::editor_non_zero_exit"
+    "--skip=external_editor::tests::empty_edit_abort_rebase"
+    "--skip=external_editor::tests::empty_edit_error"
+    "--skip=external_editor::tests::empty_edit_noop"
+    "--skip=external_editor::tests::empty_edit_re_edit_rebase_file"
+    "--skip=external_editor::tests::empty_edit_undo_and_edit"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 551db33b010..09587daf394 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ymvvmryzv5is535bjg8h9p7gsxygyawnpyd0hicdrdiwml5mgsq";
+    sha256 = "sha256-KJXYkOHR50Zap0Ou+jVi09opHuZBfHN/ToZbasZ3IE4=";
   };
 
-  cargoSha256 = "14hf3xkdvk2mgag5pzai5382h3g79fq76s0p9pj8q9v8q21wg6pr";
+  cargoSha256 = "sha256-N6Yr+TqxWwl/6SgjizIyZJoVsjn/R9yjxUKCqwt8UJg=";
 
   nativeBuildInputs = [ python3 perl ];
   buildInputs = [ openssl ]
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index 18f2e5ad487..520f33905c9 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -1,23 +1,17 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
-# Currently `buildGo114Module` is passed as `buildGoModule` from
-# `../default.nix`. Please remove the fixed 1.14 once a new release has been
-# made and the issue linked below has been closed upstream.
-
-# https://github.com/Arkweid/lefthook/issues/151
-
 buildGoModule rec {
   pname = "lefthook";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
-    owner = "Arkweid";
+    owner = "evilmartians";
     repo = "lefthook";
-    sha256 = "1ciyxjx3r3dcl8xas49kqsjshs1bv4pafmfmhdfyfdvlaj374hgj";
+    sha256 = "sha256-VrAkmLRsYNDX5VfAxsvjsOv1bv7Nk53OjdaJm/D2GRk=";
   };
 
-  vendorSha256 = "1pdrw4vwbj9cka2pjbjvxviigfvnrf8sgws27ixwwiblbkj4isc8";
+  vendorSha256 = "sha256-XR7xJZfgt0Hx2DccdNlwEmuduuVU8IBR0pcIUyRhdko=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 042bdc2a19d..38eed2dd5af 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -1,8 +1,14 @@
-{ lib, fetchurl, buildPythonApplication, pbr, requests, setuptools }:
+{ lib
+, fetchurl
+, buildPythonApplication
+, pbr
+, requests
+, setuptools
+}:
 
 buildPythonApplication rec {
   pname = "git-review";
-  version = "2.0.0";
+  version = "2.1.0";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
@@ -10,17 +16,28 @@ buildPythonApplication rec {
 
   src = fetchurl {
     url = "https://opendev.org/opendev/${pname}/archive/${version}.tar.gz";
-    sha256 = "0dkyd5g2xmvsa114is3cd9qmki3hi6c06wjnra0f4xq3aqm0ajnj";
+    hash = "sha256-3A1T+/iXhNeMS2Aww5jISoiNExdv9N9/kwyATSuwVTE=";
   };
 
-  propagatedBuildInputs = [ pbr requests setuptools ];
+  nativeBuildInputs = [
+    pbr
+  ];
 
-  # Don't do tests because they require gerrit which is not packaged
+  propagatedBuildInputs = [
+    requests
+    setuptools # implicit dependency, used to get package version through pkg_resources
+  ];
+
+  # Don't run tests because they pull in external dependencies
+  # (a specific build of gerrit + maven plugins), and I haven't figured
+  # out how to work around this yet.
   doCheck = false;
 
+  pythonImportsCheck = [ "git_review" ];
+
   meta = with lib; {
-    homepage = "https://opendev.org/opendev/git-review";
     description = "Tool to submit code to Gerrit";
+    homepage = "https://opendev.org/opendev/git-review";
     license = licenses.asl20;
     maintainers = with maintainers; [ metadark ];
   };
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index f71235025d5..e67965f77d3 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.14.0";
+  version = "1.14.1";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-SE+YqcRNkhRQXDzgv72YrQX9bG/URYj4NAFvTg4bE3Y=";
+    sha256 = "1hpwc5jmkbnn6qf3li8g38qz2l87vk6jq2zxijq92jyfp54kj03p";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index aa5338ea7c6..6b0a98848bf 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.10.2",
-  "repo_hash": "1q3qnfzhikbbsmzzbldwn6xvsyxr1jgv5lj7mgcji11j8qv1a625",
+  "version": "13.11.2",
+  "repo_hash": "0xian17q8h5qdcvndyd27w278zqi3455svwycqfcv830g27c0csh",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.10.2-ee",
+  "rev": "v13.11.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.10.2",
-    "GITLAB_PAGES_VERSION": "1.36.0",
+    "GITALY_SERVER_VERSION": "13.11.2",
+    "GITLAB_PAGES_VERSION": "1.38.0",
     "GITLAB_SHELL_VERSION": "13.17.0",
-    "GITLAB_WORKHORSE_VERSION": "13.10.2"
+    "GITLAB_WORKHORSE_VERSION": "13.11.2"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 4cd64dc8ad9..3e70e47dc95 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
+{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitLab, bundlerEnv
 , ruby, tzdata, git, nettools, nixosTests, nodejs, openssl
 , gitlabEnterprise ? false, callPackage, yarn
 , fixup_yarn_lock, replace, file
@@ -32,7 +32,7 @@ let
         openssl = x.openssl // {
           buildInputs = [ openssl ];
         };
-        ruby-magic-static = x.ruby-magic-static // {
+        ruby-magic = x.ruby-magic // {
           buildInputs = [ file ];
           buildFlags = [ "--enable-system-libraries" ];
         };
@@ -122,7 +122,19 @@ stdenv.mkDerivation {
     rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git nettools
   ];
 
-  patches = [ ./remove-hardcoded-locations.patch ];
+  patches = [
+    # Change hardcoded paths to the NixOS equivalent
+    ./remove-hardcoded-locations.patch
+
+    # Use the exactly 32 byte long version of db_key_base with
+    # aes-256-gcm, see
+    # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/53602
+    (fetchpatch {
+      name = "secrets_db_key_base_length.patch";
+      url = "https://gitlab.com/gitlab-org/gitlab/-/commit/a5c78650441c31a522b18e30177c717ffdd7f401.patch";
+      sha256 = "1qcxr5f59slgzmpcbiwabdhpz1lxnq98yngg1xkyihk2zhv0g1my";
+    })
+  ];
 
   postPatch = ''
     ${lib.optionalString (!gitlabEnterprise) ''
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 00215cc55e9..adee2020f6f 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -3,23 +3,23 @@ source 'https://rubygems.org'
 gem 'rugged', '~> 1.1'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
-gem 'activesupport', '~> 6.0.3.4'
+gem 'activesupport', '~> 6.0.3.6'
 gem 'rdoc', '~> 6.0'
 gem 'gitlab-gollum-lib', '~> 4.2.7.10.gitlab.1', require: false
-gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.3.gitlab.1', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.4.gitlab.1', require: false
 gem 'grpc', '~> 1.30.2'
 gem 'sentry-raven', '~> 3.0', require: false
 gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.15.0'
+gem 'gitlab-labkit', '~> 0.16.2'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
 gem 'licensee', '~> 9.14.1'
 
-gem 'google-protobuf', '~> 3.12'
+gem 'google-protobuf', '~> 3.14.0'
 
 group :development, :test do
   gem 'rubocop', '~> 0.69', require: false
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 32d761f9f3f..a8e2f3f5a67 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     abstract_type (0.0.7)
-    actionpack (6.0.3.4)
-      actionview (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionpack (6.0.3.6)
+      actionview (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionview (6.0.3.6)
+      activesupport (= 6.0.3.6)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activesupport (6.0.3.4)
+    activesupport (6.0.3.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -34,7 +34,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     crass (1.0.6)
     diff-lcs (1.3)
     dotenv (2.7.6)
@@ -62,10 +62,10 @@ GEM
       rouge (~> 3.1)
       sanitize (~> 4.6.4)
       stringex (~> 2.6)
-    gitlab-gollum-rugged_adapter (0.4.4.3.gitlab.1)
+    gitlab-gollum-rugged_adapter (0.4.4.4.gitlab.1)
       mime-types (>= 1.15)
       rugged (~> 1.0)
-    gitlab-labkit (0.15.0)
+    gitlab-labkit (0.16.2)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
@@ -74,14 +74,14 @@ GEM
       pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
     gitlab-markup (1.7.1)
-    google-protobuf (3.12.4)
+    google-protobuf (3.14.0)
     googleapis-common-protos-types (1.0.5)
       google-protobuf (~> 3.11)
     grpc (1.30.2)
       google-protobuf (~> 3.12)
       googleapis-common-protos-types (~> 1.0)
     grpc-tools (1.30.2)
-    i18n (1.8.5)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     ice_nine (0.11.2)
     jaeger-client (1.1.0)
@@ -94,7 +94,7 @@ GEM
       reverse_markdown (~> 1.0)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
-    loofah (2.9.0)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -196,7 +196,7 @@ GEM
     stringex (2.8.5)
     thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.13.0)
+    thrift (0.14.1)
     timecop (0.9.1)
     tzinfo (1.2.9)
       thread_safe (~> 0.1)
@@ -215,15 +215,15 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  activesupport (~> 6.0.3.4)
+  activesupport (~> 6.0.3.6)
   factory_bot
   faraday (~> 1.0)
   github-linguist (~> 7.12)
   gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
-  gitlab-gollum-rugged_adapter (~> 0.4.4.3.gitlab.1)
-  gitlab-labkit (~> 0.15.0)
+  gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
+  gitlab-labkit (~> 0.16.2)
   gitlab-markup (~> 1.7.1)
-  google-protobuf (~> 3.12)
+  google-protobuf (~> 3.14.0)
   grpc (~> 1.30.2)
   grpc-tools (= 1.30.2)
   licensee (~> 9.14.1)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 260b3b49399..4fc298ba33d 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -21,17 +21,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.10.2";
+  version = "13.11.2";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-5CjZs5tpEEsgQGBFa8BeZ7SDhIeGKqAHWwbR8hSoCPs=";
+    sha256 = "sha256-qcrvNmnlrdJYXAlt65bA0Ij7zuX7QwVukC3A4KGL3sk=";
   };
 
-  vendorSha256 = "sha256-8AopoiLmg6kfvYbZDOfFWBy1o5tbnxsKxSBX20OasIE=";
+  vendorSha256 = "sha256-VAXQPVyB+XdfOqGaT1H/83ed6xV+4Tr5fkBu1eyPe2k=";
 
   passthru = {
     inherit rubyEnv;
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 90655ef9e93..c3c742b6669 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -13,10 +13,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
+      sha256 = "10rn7gmnnwpm593xv6lcf4qa72wmlbyjg4zmdc3lpb5596whd3yz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -24,10 +24,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
+      sha256 = "0ikqpxsrsb7xmq6ds5iq22nj2j3ai16z8z2j5r6lk8pzbi0wwsz5";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
+      sha256 = "0sls37x9pd2zmipn14c46gcjbfzlg269r413cvm0d58595qkiv7z";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   adamantium = {
     dependencies = ["ice_nine" "memoizable"];
@@ -122,10 +122,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -258,10 +258,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rqi9h6k32azljmx2q0zibvs1m59wgh879h04jflxkcqyzj6wyyj";
+      sha256 = "0gvgqfn05swsazfxdwmlqcq8v2pjyy7dmyl3bd8b8jrrxbpmpxxg";
       type = "gem";
     };
-    version = "0.4.4.3.gitlab.1";
+    version = "0.4.4.4.gitlab.1";
   };
   gitlab-labkit = {
     dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
@@ -269,10 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l9bsjszp5zyzbdsr9ls09d4yr2sb0xjc40x4rv7fbzk19n9xs71";
+      sha256 = "0184rq6sal3xz4f0w5iaa5zf3q55i4dh0rlvr25l1g0s2imwr3fa";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.2";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -289,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+      sha256 = "0pbm2kjhxvazx9d5c071bxcjx5cbip6d2y36dii2a4558nqjd12p";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "3.14.0";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -332,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "1.8.10";
   };
   ice_nine = {
     source = {
@@ -383,10 +383,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.9.0";
+    version = "2.9.1";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -898,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+      sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.1";
   };
   timecop = {
     source = {
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index c86c63a5656..51e48958ab7 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -7,14 +7,14 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-wDZLcCBbWjG6wIcEj02eqwWVfAYy1TuAo/xvJB8tt+0=";
+    sha256 = "sha256-j/80AIIJdRSisu2fNXcqazb4oIzAQP5CfxHX3l6yijY=";
   };
 
   buildInputs = [ ruby ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorSha256 = "16fa3bka0008x2yazahc6xxcv4fa6yqg74kk64v8lrp7snbvjf4d";
+  vendorSha256 = "sha256-/jJTMtS5fcbQroWuaPPfvYxy6znNS0FOXVN7IcE/spQ=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
index 888994adc92..8bbfd97e00e 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -1,34 +1,25 @@
 diff --git a/internal/config/config.go b/internal/config/config.go
-index 79c2a36..12ba31e 100644
+index 36f8625..72ede08 100644
 --- a/internal/config/config.go
 +++ b/internal/config/config.go
-@@ -3,7 +3,6 @@ package config
- import (
- 	"io/ioutil"
- 	"net/url"
--	"os"
- 	"path"
- 	"path/filepath"
- 
-@@ -59,16 +58,13 @@ func (c *Config) GetHttpClient() *client.HttpClient {
- }
- 
- func New() (*Config, error) {
--	dir, err := os.Getwd()
--	if err != nil {
--		return nil, err
--	}
-+	dir := "/run/gitlab"
- 
- 	return NewFromDir(dir)
- }
- 
- func NewFromDir(dir string) (*Config, error) {
--	return newFromFile(path.Join(dir, configFile))
-+	return newFromFile("/run/gitlab/shell-config.yml")
- }
- 
- func newFromFile(filename string) (*Config, error) {
+@@ -12,7 +12,7 @@ import (
+ )
+ 
+ const (
+-	configFile            = "config.yml"
++	configFile            = "shell-config.yml"
+ 	defaultSecretFileName = ".gitlab_shell_secret"
+ )
+ 
+@@ -91,7 +91,7 @@ func (c *Config) GetHttpClient() *client.HttpClient {
+ // NewFromDirExternal returns a new config from a given root dir. It also applies defaults appropriate for
+ // gitlab-shell running in an external SSH server.
+ func NewFromDirExternal(dir string) (*Config, error) {
+-	cfg, err := newFromFile(filepath.Join(dir, configFile))
++	cfg, err := newFromFile(filepath.Join("/run/gitlab", configFile))
+ 	if err != nil {
+ 		return nil, err
+ 	}
 diff --git a/internal/keyline/key_line.go b/internal/keyline/key_line.go
 index c6f2422..fb0426b 100644
 --- a/internal/keyline/key_line.go
@@ -55,6 +46,3 @@ index 52ac5ee..d96baa3 100644
    end
  
    def auth_file
--- 
-2.28.0
-
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index ff34a2d3595..abef022f01c 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "13.10.2";
+  version = "13.11.2";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-UCkUSv1ZjDHmTFnETU8dz4moYRDCvy6AYTTfjHBGKeE=";
+  vendorSha256 = "sha256-m/Mx4Nr4tPK6yfcHxAFbjh9DI/1WnKReaaylWpNSrc8=";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
index 83e3d7fe141..2026808875d 100644
--- a/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
+++ b/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -1,8 +1,8 @@
 diff --git a/config/environments/production.rb b/config/environments/production.rb
-index d9b3ee354b0..1eb0507488b 100644
+index e1a7db8d860..5823f170410 100644
 --- a/config/environments/production.rb
 +++ b/config/environments/production.rb
-@@ -69,10 +69,10 @@
+@@ -71,10 +71,10 @@
  
    config.action_mailer.delivery_method = :sendmail
    # Defaults to:
@@ -18,10 +18,10 @@ index d9b3ee354b0..1eb0507488b 100644
    config.action_mailer.raise_delivery_errors = true
  
 diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
-index 92e7501d49d..4ee5a1127df 100644
+index da1a15302da..c846db93e5c 100644
 --- a/config/gitlab.yml.example
 +++ b/config/gitlab.yml.example
-@@ -1168,7 +1168,7 @@ production: &base
+@@ -1191,7 +1191,7 @@ production: &base
    # CAUTION!
    # Use the default values unless you really know what you are doing
    git:
@@ -31,19 +31,19 @@ index 92e7501d49d..4ee5a1127df 100644
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
 diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
-index bbed08f5044..2906e5c44af 100644
+index 99335321f28..9d9d1c48af4 100644
 --- a/config/initializers/1_settings.rb
 +++ b/config/initializers/1_settings.rb
-@@ -183,7 +183,7 @@
+@@ -185,7 +185,7 @@
  Settings.gitlab['user_home'] ||= begin
    Etc.getpwnam(Settings.gitlab['user']).dir
-                                  rescue ArgumentError # no user configured
--                                   '/home/' + Settings.gitlab['user']
-+                                   '/homeless-shelter'
+ rescue ArgumentError # no user configured
+-  '/home/' + Settings.gitlab['user']
++  '/homeless-shelter'
  end
  Settings.gitlab['time_zone'] ||= nil
  Settings.gitlab['signup_enabled'] ||= true if Settings.gitlab['signup_enabled'].nil?
-@@ -751,7 +751,7 @@
+@@ -794,7 +794,7 @@
  # Git
  #
  Settings['git'] ||= Settingslogic.new({})
@@ -97,7 +97,7 @@ index 9fc354a8fe8..2352ca9b58c 100644
  json_formatter = Gitlab::PumaLogging::JSONFormatter.new
  log_formatter do |str|
 diff --git a/lib/api/api.rb b/lib/api/api.rb
-index ada0da28749..8a3f5824008 100644
+index a287ffbfcd8..1a5ca59183a 100644
 --- a/lib/api/api.rb
 +++ b/lib/api/api.rb
 @@ -4,7 +4,7 @@ module API
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index af00e6e7af6..94b6204dac2 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,7 +2,7 @@
 
 source 'https://rubygems.org'
 
-gem 'rails', '~> 6.0.3.1'
+gem 'rails', '~> 6.0.3.6'
 
 gem 'bootsnap', '~> 1.4.6'
 
@@ -28,6 +28,8 @@ gem 'devise', '~> 4.7.2'
 gem 'bcrypt', '~> 3.1', '>= 3.1.14'
 gem 'doorkeeper', '~> 5.5.0.rc2'
 gem 'doorkeeper-openid_connect', '~> 1.7.5'
+gem 'rexml', '~> 3.2.5'
+gem 'ruby-saml', '~> 1.12.1'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
 gem 'omniauth-azure-activedirectory-v2', '~> 0.1'
@@ -59,7 +61,7 @@ gem 'akismet', '~> 3.0'
 gem 'invisible_captcha', '~> 1.1.0'
 
 # Two-factor authentication
-gem 'devise-two-factor', '~> 3.1.0'
+gem 'devise-two-factor', '~> 4.0.0'
 gem 'rqrcode-rails3', '~> 0.1.7'
 gem 'attr_encrypted', '~> 3.1.0'
 gem 'u2f', '~> 0.2.1'
@@ -108,7 +110,7 @@ gem 'hashie-forbidden_attributes'
 gem 'kaminari', '~> 1.0'
 
 # HAML
-gem 'hamlit', '~> 2.14.4'
+gem 'hamlit', '~> 2.15.0'
 
 # Files attachments
 gem 'carrierwave', '~> 1.3'
@@ -150,7 +152,7 @@ gem 'deckar01-task_list', '2.3.1'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
 gem 'commonmarker', '~> 0.21'
-gem 'kramdown', '~> 2.3.0'
+gem 'kramdown', '~> 2.3.1'
 gem 'RedCloth', '~> 4.3.2'
 gem 'rdoc', '~> 6.1.2'
 gem 'org-ruby', '~> 0.9.12'
@@ -198,7 +200,7 @@ gem 'acts-as-taggable-on', '~> 7.0'
 gem 'sidekiq', '~> 5.2.7'
 gem 'sidekiq-cron', '~> 1.0'
 gem 'redis-namespace', '~> 1.7.0'
-gem 'gitlab-sidekiq-fetcher', '0.5.5', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.5.6', require: 'sidekiq-reliable-fetch'
 
 # Cron Parser
 gem 'fugit', '~> 1.2.1'
@@ -274,10 +276,7 @@ gem 'licensee', '~> 9.14.1'
 gem 'charlock_holmes', '~> 0.7.7'
 
 # Detect mime content type from content
-gem 'ruby-magic-static', '~> 0.3.4'
-
-# Fake version of the gem to trick bundler
-gem 'mimemagic', '~> 0.3.10'
+gem 'ruby-magic', '~> 0.4'
 
 # Faster blank
 gem 'fast_blank'
@@ -294,11 +293,11 @@ gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.7'
 gem 'gemojione', '~> 3.3'
-gem 'gon', '~> 6.2'
+gem 'gon', '~> 6.4.0'
 gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
 
-gem "gitlab-license", "~> 1.3"
+gem "gitlab-license", "~> 1.4"
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.3.0'
@@ -312,7 +311,7 @@ gem 'pg_query', '~> 1.3.0'
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.16.1'
+gem 'gitlab-labkit', '~> 0.16.2'
 # Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
 # because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
 gem 'thrift', '>= 0.14.0'
@@ -343,13 +342,12 @@ group :metrics do
 end
 
 group :development do
-  gem 'brakeman', '~> 4.2', require: false
-  gem 'lefthook', '~> 0.7', require: false
+  gem 'lefthook', '~> 0.7.0', require: false
 
-  gem 'letter_opener_web', '~> 1.3.4'
+  gem 'letter_opener_web', '~> 1.4.0'
 
   # Better errors handler
-  gem 'better_errors', '~> 2.7.1'
+  gem 'better_errors', '~> 2.9.0'
 
   # thin instead webrick
   gem 'thin', '~> 1.8.0'
@@ -366,7 +364,7 @@ group :development, :test do
 
   gem 'database_cleaner', '~> 1.7.0'
   gem 'factory_bot_rails', '~> 6.1.0'
-  gem 'rspec-rails', '~> 4.0.2'
+  gem 'rspec-rails', '~> 5.0.1'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.11.0'
@@ -377,14 +375,14 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 6.1.0', require: false
+  gem 'gitlab-styles', '~> 6.2.0', require: false
 
   gem 'haml_lint', '~> 0.36.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
 
   gem 'benchmark-ips', '~> 2.3.0', require: false
 
-  gem 'knapsack', '~> 1.17'
+  gem 'knapsack', '~> 1.21.1'
   gem 'crystalball', '~> 0.7.0', require: false
 
   gem 'simple_po_parser', '~> 1.1.2', require: false
@@ -396,11 +394,12 @@ group :development, :test do
   gem 'parallel', '~> 1.19', require: false
 
   gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
+
+  gem 'test_file_finder', '~> 0.1.3'
 end
 
 group :development, :test, :danger do
-  gem 'danger-gitlab', '~> 8.0', require: false
-  gem 'gitlab-dangerfiles', '~> 0.8.0', require: false
+  gem 'gitlab-dangerfiles', '~> 1.1.1', require: false
 end
 
 group :development, :test, :coverage do
@@ -414,6 +413,7 @@ group :development, :test, :omnibus do
 end
 
 group :test do
+  gem 'json-schema', '~> 2.8.0'
   gem 'fuubar', '~> 2.2.0'
   gem 'rspec-retry', '~> 0.6.1'
   gem 'rspec_profiling', '~> 0.0.6'
@@ -475,11 +475,11 @@ group :ed25519 do
 end
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 13.9.0.pre.rc1'
+gem 'gitaly', '~> 13.11.0.pre.rc1'
 
 gem 'grpc', '~> 1.30.2'
 
-gem 'google-protobuf', '~> 3.12'
+gem 'google-protobuf', '~> 3.14.0'
 
 gem 'toml-rb', '~> 1.0.0'
 
@@ -488,7 +488,7 @@ gem 'flipper', '~> 0.17.1'
 gem 'flipper-active_record', '~> 0.17.1'
 gem 'flipper-active_support_cache_store', '~> 0.17.1'
 gem 'unleash', '~> 0.1.5'
-gem 'gitlab-experiment', '~> 0.5.0'
+gem 'gitlab-experiment', '~> 0.5.3'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
@@ -513,14 +513,13 @@ gem 'erubi', '~> 1.9.0'
 gem 'mail', '= 2.7.1'
 
 # File encryption
-gem 'lockbox', '~> 0.3.3'
+gem 'lockbox', '~> 0.6.2'
 
 # Email validation
 gem 'valid_email', '~> 0.1'
 
 # JSON
 gem 'json', '~> 2.3.0'
-gem 'json-schema', '~> 2.8.0'
 gem 'json_schemer', '~> 0.2.12'
 gem 'oj', '~> 3.10.6'
 gem 'multi_json', '~> 1.14.1'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 203d52ddb67..98ef5870054 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -5,59 +5,59 @@ GEM
     abstract_type (0.0.7)
     acme-client (2.0.6)
       faraday (>= 0.17, < 2.0.0)
-    actioncable (6.0.3.4)
-      actionpack (= 6.0.3.4)
+    actioncable (6.0.3.6)
+      actionpack (= 6.0.3.6)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionmailbox (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       mail (>= 2.7.1)
-    actionmailer (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      actionview (= 6.0.3.4)
-      activejob (= 6.0.3.4)
+    actionmailer (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      actionview (= 6.0.3.6)
+      activejob (= 6.0.3.6)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.0.3.4)
-      actionview (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionpack (6.0.3.6)
+      actionview (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actiontext (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       nokogiri (>= 1.8.5)
-    actionview (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    actionview (6.0.3.6)
+      activesupport (= 6.0.3.6)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.0.3.4)
-      activesupport (= 6.0.3.4)
+    activejob (6.0.3.6)
+      activesupport (= 6.0.3.6)
       globalid (>= 0.3.6)
-    activemodel (6.0.3.4)
-      activesupport (= 6.0.3.4)
-    activerecord (6.0.3.4)
-      activemodel (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    activemodel (6.0.3.6)
+      activesupport (= 6.0.3.6)
+    activerecord (6.0.3.6)
+      activemodel (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      marcel (~> 0.3.1)
-    activesupport (6.0.3.4)
+    activestorage (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      marcel (~> 1.0.0)
+    activesupport (6.0.3.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -133,7 +133,7 @@ GEM
     benchmark-ips (2.3.0)
     benchmark-memory (0.1.2)
       memory_profiler (~> 0.9)
-    better_errors (2.7.1)
+    better_errors (2.9.1)
       coderay (>= 1.0.0)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
@@ -144,7 +144,6 @@ GEM
     bootstrap_form (4.2.0)
       actionpack (>= 5.0)
       activemodel (>= 5.0)
-    brakeman (4.2.1)
     browser (4.2.0)
     builder (3.2.4)
     bullet (6.1.3)
@@ -165,10 +164,11 @@ GEM
     capybara-screenshot (1.0.22)
       capybara (>= 1.0, < 4)
       launchy
-    carrierwave (1.3.1)
+    carrierwave (1.3.2)
       activemodel (>= 4.0.0)
       activesupport (>= 4.0.0)
       mime-types (>= 1.16)
+      ssrf_filter (~> 1.0)
     cbor (0.5.9.6)
     character_set (1.4.0)
     charlock_holmes (0.7.7)
@@ -259,12 +259,12 @@ GEM
       railties (>= 4.1.0)
       responders
       warden (~> 1.2.3)
-    devise-two-factor (3.1.0)
-      activesupport (< 6.1)
+    devise-two-factor (4.0.0)
+      activesupport (< 6.2)
       attr_encrypted (>= 1.3, < 4, != 2)
       devise (~> 4.0)
-      railties (< 6.1)
-      rotp (~> 2.0)
+      railties (< 6.2)
+      rotp (~> 6.0)
     diff-lcs (1.4.4)
     diff_match_patch (0.1.0)
     diffy (3.3.0)
@@ -428,7 +428,7 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (13.9.0.pre.rc1)
+    gitaly (13.11.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab (4.16.1)
@@ -436,11 +436,11 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (0.8.0)
-      danger
-    gitlab-experiment (0.5.0)
+    gitlab-dangerfiles (1.1.1)
+      danger-gitlab
+    gitlab-experiment (0.5.3)
       activesupport (>= 3.0)
-      scientist (~> 1.5, >= 1.5.0)
+      scientist (~> 1.6, >= 1.6.0)
     gitlab-fog-azure-rm (1.0.1)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
@@ -455,7 +455,7 @@ GEM
       fog-xml (~> 0.1.0)
       google-api-client (>= 0.44.2, < 0.51)
       google-cloud-env (~> 1.2)
-    gitlab-labkit (0.16.1)
+    gitlab-labkit (0.16.2)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
       grpc (~> 1.19)
@@ -463,16 +463,16 @@ GEM
       opentracing (~> 0.4)
       pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-license (1.3.1)
+    gitlab-license (1.4.0)
     gitlab-mail_room (0.0.9)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
     gitlab-pry-byebug (3.9.0)
       byebug (~> 11.0)
       pry (~> 0.13.0)
-    gitlab-sidekiq-fetcher (0.5.5)
+    gitlab-sidekiq-fetcher (0.5.6)
       sidekiq (~> 5)
-    gitlab-styles (6.1.0)
+    gitlab-styles (6.2.0)
       rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
       rubocop-performance (~> 1.9.2)
@@ -487,8 +487,9 @@ GEM
       rubyntlm (~> 0.5)
     globalid (0.4.2)
       activesupport (>= 4.2.0)
-    gon (6.2.0)
-      actionpack (>= 3.0)
+    gon (6.4.0)
+      actionpack (>= 3.0.20)
+      i18n (>= 0.7)
       multi_json
       request_store (>= 1.0)
     google-api-client (0.50.0)
@@ -502,7 +503,7 @@ GEM
       signet (~> 0.12)
     google-cloud-env (1.4.0)
       faraday (>= 0.17.3, < 2.0)
-    google-protobuf (3.12.4)
+    google-protobuf (3.14.0)
     googleapis-common-protos-types (1.0.5)
       google-protobuf (~> 3.11)
     googleauth (0.14.0)
@@ -579,7 +580,7 @@ GEM
       rainbow
       rubocop (>= 0.50.0)
       sysexits (~> 1.1)
-    hamlit (2.14.4)
+    hamlit (2.15.0)
       temple (>= 0.8.2)
       thor
       tilt
@@ -614,7 +615,7 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.9)
+    i18n (1.8.10)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
@@ -640,7 +641,7 @@ GEM
       activesupport (>= 4.2)
       aes_key_wrap
       bindata
-    json-schema (2.8.0)
+    json-schema (2.8.1)
       addressable (>= 2.4)
     json_schemer (0.2.12)
       ecma-re-validator (~> 0.2)
@@ -664,9 +665,9 @@ GEM
       kaminari-core (= 1.2.1)
     kaminari-core (1.2.1)
     kgio (2.11.3)
-    knapsack (1.17.0)
+    knapsack (1.21.1)
       rake
-    kramdown (2.3.0)
+    kramdown (2.3.1)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -675,12 +676,12 @@ GEM
       jsonpath (~> 1.0)
       recursive-open-struct (~> 1.1, >= 1.1.1)
       rest-client (~> 2.0)
-    launchy (2.4.3)
-      addressable (~> 2.3)
+    launchy (2.5.0)
+      addressable (~> 2.7)
     lefthook (0.7.2)
     letter_opener (1.7.0)
       launchy (~> 2.2)
-    letter_opener_web (1.3.4)
+    letter_opener_web (1.4.0)
       actionmailer (>= 3.2)
       letter_opener (~> 1.0)
       railties (>= 3.2)
@@ -702,21 +703,20 @@ GEM
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     locale (2.1.3)
-    lockbox (0.3.3)
+    lockbox (0.6.2)
     lograge (0.11.2)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.8.0)
+    loofah (2.9.1)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lumberjack (1.2.7)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    marcel (0.3.3)
-      mimemagic (~> 0.3.2)
+    marcel (1.0.1)
     marginalia (1.10.0)
       actionpack (>= 2.3)
       activerecord (>= 2.3)
@@ -728,12 +728,9 @@ GEM
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
-    mimemagic (0.3.10)
-      nokogiri (~> 1)
-      rake
     mini_histogram (0.3.1)
     mini_magick (4.10.1)
-    mini_mime (1.0.2)
+    mini_mime (1.1.0)
     mini_portile2 (2.5.0)
     minitest (5.11.3)
     mixlib-cli (2.1.8)
@@ -772,7 +769,7 @@ GEM
     netrc (0.11.0)
     nio4r (2.5.4)
     no_proxy_fix (0.1.2)
-    nokogiri (1.11.1)
+    nokogiri (1.11.3)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
     nokogumbo (2.0.2)
@@ -951,20 +948,20 @@ GEM
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
     rack-timeout (0.5.2)
-    rails (6.0.3.4)
-      actioncable (= 6.0.3.4)
-      actionmailbox (= 6.0.3.4)
-      actionmailer (= 6.0.3.4)
-      actionpack (= 6.0.3.4)
-      actiontext (= 6.0.3.4)
-      actionview (= 6.0.3.4)
-      activejob (= 6.0.3.4)
-      activemodel (= 6.0.3.4)
-      activerecord (= 6.0.3.4)
-      activestorage (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    rails (6.0.3.6)
+      actioncable (= 6.0.3.6)
+      actionmailbox (= 6.0.3.6)
+      actionmailer (= 6.0.3.6)
+      actionpack (= 6.0.3.6)
+      actiontext (= 6.0.3.6)
+      actionview (= 6.0.3.6)
+      activejob (= 6.0.3.6)
+      activemodel (= 6.0.3.6)
+      activerecord (= 6.0.3.6)
+      activestorage (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       bundler (>= 1.3.0)
-      railties (= 6.0.3.4)
+      railties (= 6.0.3.6)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
@@ -978,9 +975,9 @@ GEM
     rails-i18n (6.0.0)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 7)
-    railties (6.0.3.4)
-      actionpack (= 6.0.3.4)
-      activesupport (= 6.0.3.4)
+    railties (6.0.3.6)
+      actionpack (= 6.0.3.6)
+      activesupport (= 6.0.3.6)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.20.3, < 2.0)
@@ -1040,9 +1037,9 @@ GEM
     retriable (3.1.2)
     reverse_markdown (1.4.0)
       nokogiri
-    rexml (3.2.4)
+    rexml (3.2.5)
     rinku (2.0.0)
-    rotp (2.1.2)
+    rotp (6.2.0)
     rouge (3.26.0)
     rqrcode (0.7.0)
       chunky_png
@@ -1066,10 +1063,10 @@ GEM
       proc_to_ast
       rspec (>= 2.13, < 4)
       unparser
-    rspec-rails (4.0.2)
-      actionpack (>= 4.2)
-      activesupport (>= 4.2)
-      railties (>= 4.2)
+    rspec-rails (5.0.1)
+      actionpack (>= 5.2)
+      activesupport (>= 5.2)
+      railties (>= 5.2)
       rspec-core (~> 3.10)
       rspec-expectations (~> 3.10)
       rspec-mocks (~> 3.10)
@@ -1111,12 +1108,13 @@ GEM
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
-    ruby-magic-static (0.3.5)
+    ruby-magic (0.4.0)
       mini_portile2 (~> 2.5.0)
     ruby-prof (1.3.1)
     ruby-progressbar (1.11.0)
-    ruby-saml (1.7.2)
-      nokogiri (>= 1.5.10)
+    ruby-saml (1.12.1)
+      nokogiri (>= 1.10.5)
+      rexml
     ruby-statistics (2.1.2)
     ruby2_keywords (0.0.2)
     ruby_parser (3.15.0)
@@ -1201,6 +1199,7 @@ GEM
       sprockets (>= 3.0.0)
     sqlite3 (1.3.13)
     sshkey (2.0.0)
+    ssrf_filter (1.0.7)
     stackprof (0.2.15)
     state_machines (0.5.0)
     state_machines-activemodel (0.8.0)
@@ -1222,6 +1221,8 @@ GEM
     terser (1.0.2)
       execjs (>= 0.3.0, < 3)
     test-prof (0.12.0)
+    test_file_finder (0.1.3)
+      faraday (~> 1.0.1)
     text (1.3.1)
     thin (1.8.0)
       daemons (~> 1.0, >= 1.0.9)
@@ -1359,10 +1360,9 @@ DEPENDENCIES
   bcrypt_pbkdf (~> 1.0)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
-  better_errors (~> 2.7.1)
+  better_errors (~> 2.9.0)
   bootsnap (~> 1.4.6)
   bootstrap_form (~> 4.2.0)
-  brakeman (~> 4.2)
   browser (~> 4.2)
   bullet (~> 6.1.3)
   bundler-audit (~> 0.7.0.1)
@@ -1376,7 +1376,6 @@ DEPENDENCIES
   countries (~> 3.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
-  danger-gitlab (~> 8.0)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
   default_value_for (~> 3.4.0)
@@ -1384,7 +1383,7 @@ DEPENDENCIES
   derailed_benchmarks
   device_detector
   devise (~> 4.7.2)
-  devise-two-factor (~> 3.1.0)
+  devise-two-factor (~> 4.0.0)
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
   discordrb-webhooks (~> 3.4)
@@ -1419,26 +1418,26 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 13.9.0.pre.rc1)
+  gitaly (~> 13.11.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 0.8.0)
-  gitlab-experiment (~> 0.5.0)
+  gitlab-dangerfiles (~> 1.1.1)
+  gitlab-experiment (~> 0.5.3)
   gitlab-fog-azure-rm (~> 1.0.1)
   gitlab-fog-google (~> 1.13)
-  gitlab-labkit (~> 0.16.1)
-  gitlab-license (~> 1.3)
+  gitlab-labkit (~> 0.16.2)
+  gitlab-license (~> 1.4)
   gitlab-mail_room (~> 0.0.9)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
   gitlab-pry-byebug
-  gitlab-sidekiq-fetcher (= 0.5.5)
-  gitlab-styles (~> 6.1.0)
+  gitlab-sidekiq-fetcher (= 0.5.6)
+  gitlab-styles (~> 6.2.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
-  gon (~> 6.2)
+  gon (~> 6.4.0)
   google-api-client (~> 0.33)
-  google-protobuf (~> 3.12)
+  google-protobuf (~> 3.14.0)
   gpgme (~> 2.0.19)
   grape (~> 1.5.2)
   grape-entity (~> 0.7.1)
@@ -1452,7 +1451,7 @@ DEPENDENCIES
   gssapi
   guard-rspec
   haml_lint (~> 0.36.0)
-  hamlit (~> 2.14.4)
+  hamlit (~> 2.15.0)
   hangouts-chat (~> 0.0.5)
   hashie
   hashie-forbidden_attributes
@@ -1470,14 +1469,14 @@ DEPENDENCIES
   json_schemer (~> 0.2.12)
   jwt (~> 2.1.0)
   kaminari (~> 1.0)
-  knapsack (~> 1.17)
-  kramdown (~> 2.3.0)
+  knapsack (~> 1.21.1)
+  kramdown (~> 2.3.1)
   kubeclient (~> 4.9.1)
-  lefthook (~> 0.7)
-  letter_opener_web (~> 1.3.4)
+  lefthook (~> 0.7.0)
+  letter_opener_web (~> 1.4.0)
   license_finder (~> 6.0)
   licensee (~> 9.14.1)
-  lockbox (~> 0.3.3)
+  lockbox (~> 0.6.2)
   lograge (~> 0.5)
   loofah (~> 2.2)
   lru_redux
@@ -1485,7 +1484,6 @@ DEPENDENCIES
   marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
-  mimemagic (~> 0.3.10)
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
@@ -1535,7 +1533,7 @@ DEPENDENCIES
   rack-oauth2 (~> 1.16.0)
   rack-proxy (~> 0.6.0)
   rack-timeout (~> 0.5.1)
-  rails (~> 6.0.3.1)
+  rails (~> 6.0.3.6)
   rails-controller-testing
   rails-i18n (~> 6.0)
   rainbow (~> 3.0)
@@ -1551,17 +1549,19 @@ DEPENDENCIES
   request_store (~> 1.5)
   responders (~> 3.0)
   retriable (~> 3.1.2)
+  rexml (~> 3.2.5)
   rouge (~> 3.26.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
-  rspec-rails (~> 4.0.2)
+  rspec-rails (~> 5.0.1)
   rspec-retry (~> 0.6.1)
   rspec_junit_formatter
   rspec_profiling (~> 0.0.6)
   ruby-fogbugz (~> 0.2.1)
-  ruby-magic-static (~> 0.3.4)
+  ruby-magic (~> 0.4)
   ruby-prof (~> 1.3.0)
   ruby-progressbar (~> 1.10)
+  ruby-saml (~> 1.12.1)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
   rugged (~> 1.1)
@@ -1588,6 +1588,7 @@ DEPENDENCIES
   sys-filesystem (~> 1.1.6)
   terser (= 1.0.2)
   test-prof (~> 0.12.0)
+  test_file_finder (~> 0.1.3)
   thin (~> 1.8.0)
   thrift (>= 0.14.0)
   timecop (~> 0.9.1)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index f6c26777f4f..9118ac3d3d0 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y3aa0965cdsqamxk8ac6brcvijl1zv4pvqils6xy3pbcrv0ljid";
+      sha256 = "1543p34bfq7s4l83m0f84f0z5yr1ip1miyimv4gh2k136pgk23r9";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vb9s4frq22h5j6gyw2598k1jc29lg2czm95hf284l3mi4qly6a";
+      sha256 = "0dnx7mhhzwr45lsxkd7y9ld9vazcadxzs7813jp19hk3wra4jvs3";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -48,10 +48,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ykn5qkwdlcv5aa1gjhhmrxpjccwa7df6n4amvkmvxv5lggyma52";
+      sha256 = "1cnsv97qx7708wg00lxcl7a6h8amxn85h40s8ngszhknh8wpwj3f";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -59,10 +59,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fbjpnh5hrihc9l35q9why6ip0hcdj42axzbp6b4j1xcy1v1bicj";
+      sha256 = "10rn7gmnnwpm593xv6lcf4qa72wmlbyjg4zmdc3lpb5596whd3yz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -70,10 +70,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0j0m76ynjspmvj5qbzl06kl9i920v269iz62y62009xydv6rqz";
+      sha256 = "13i7x4zp991sq3zsagpzs01bhm81zgy63lamqrpsp68nv584n5sx";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -81,10 +81,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdz31cq08nrqq6bxqim2qcbzv0fr34z6ycl73dmawpafj33wdkj";
+      sha256 = "0ikqpxsrsb7xmq6ds5iq22nj2j3ai16z8z2j5r6lk8pzbi0wwsz5";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -92,10 +92,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d0p8gjplrgym38dmchyzhv7lrrxngz0yrxl6xyvwxfxm1hgdk2k";
+      sha256 = "1sy9kyl7famlwrdw7gz6sy7azhkcsn1mjja44s44libcz3fl7jpc";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -103,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00jj8namy5niq7grl5lrsr4y351rxpj1b69k1i9gvb1hnpghl099";
+      sha256 = "15kq8ghmkav331dz1pak1bc8q1v5xajw6pkj20hqr8m5zl6czcld";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -114,10 +114,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06qvvp73z8kq9sd2mhw6p9124q5pfkswjga2fidz4c73zbr79r3g";
+      sha256 = "1a3hc2rammy4mfrjwzc9rsn497yq9xc0x89c00niiq45q3qs44vz";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -136,10 +136,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q734331wb7cfsh4jahj3lphpxvglzb17yvibwss1ml4g01xxm52";
+      sha256 = "1jwdfqn01g7v7ssrrf2q2pvc8k6rdqccp26qkyfxiraaz9d1la62";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -147,10 +147,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axidc4mikgi4yxs0ynw2c54jyrs5lxprxmzv6m3aayi9rg6rk5j";
+      sha256 = "0sls37x9pd2zmipn14c46gcjbfzlg269r413cvm0d58595qkiv7z";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -527,10 +527,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kn7rv81i2r462k56v29i3s8abcmfcpfj9axia736mwjvv0app2k";
+      sha256 = "11220lfzhsyf5fcril3qd689kgg46qlpiiaj00hc9mh4mcbc3vrr";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.9.1";
   };
   bindata = {
     groups = ["default"];
@@ -574,16 +574,6 @@
     };
     version = "4.2.0";
   };
-  brakeman = {
-    groups = ["development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
-      type = "gem";
-    };
-    version = "4.2.1";
-  };
   browser = {
     groups = ["default"];
     platforms = [];
@@ -663,15 +653,15 @@
     version = "1.0.22";
   };
   carrierwave = {
-    dependencies = ["activemodel" "activesupport" "mime-types"];
+    dependencies = ["activemodel" "activesupport" "mime-types" "ssrf_filter"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10rz94kajilffp83sb767lr62b5f8l4jzqq80cr92wqxdgbszdks";
+      sha256 = "055i3ybjv9n9hqaazxn3d9ibqhlwh93d4hdlwbpjjfy8qbrz6hiw";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.3.2";
   };
   cbor = {
     groups = ["default"];
@@ -1084,10 +1074,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gzk7phrryxlq4k3jrcxm8faifmbqrbfxq7jx089ncsixwd69bn4";
+      sha256 = "148pfr6g8dwikdq3994gsid2a3n6p5h4z1a1dzh1898shr5f9znc";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "4.0.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -1861,10 +1851,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "137gr4nbxhcyh4s60r2z0js8q2bfnmxiggwnf122wp9csywlnyg2";
+      sha256 = "1hbc2frfyxxlar9ggpnl4x090nw1nlriazzkdgjz3r4mx4ihja1b";
       type = "gem";
     };
-    version = "13.9.0.pre.rc1";
+    version = "13.11.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1899,15 +1889,15 @@
     version = "0.10.5";
   };
   gitlab-dangerfiles = {
-    dependencies = ["danger"];
+    dependencies = ["danger-gitlab"];
     groups = ["danger" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09ggs890b5gfphnz7ayavs55l6xhw323spfd22dg246g0rw9vliy";
+      sha256 = "0ivkbq50fhm39zwyfac4q3y0qkrsk3hmrk1ggyhz1yphkq38qvq7";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.1.1";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "scientist"];
@@ -1915,10 +1905,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x4hyva7ypi2mx5jcyxac8w7ffai1pkkjc49fk3avqh4aimlibfr";
+      sha256 = "0ccjmm10pjvpzy5m7b86mxd2mg2x0k4y0c4cim0r4y7sy2c115mz";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.5.3";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -1948,20 +1938,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03i8fc1yzm5yzqxb8bxhjkhqpj17fy71vg2z02bcj4mzbj0piflx";
+      sha256 = "0184rq6sal3xz4f0w5iaa5zf3q55i4dh0rlvr25l1g0s2imwr3fa";
       type = "gem";
     };
-    version = "0.16.1";
+    version = "0.16.2";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01z5pb6fg1j83p73vys2fhj7qh60zkqbgiyp4nvw013a6hjlv3qk";
+      sha256 = "1rfyxchshl2h0c2dpsy1wa751l02i22nv5mkhygfwnbi0ndkzqmg";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   gitlab-mail_room = {
     groups = ["default"];
@@ -2014,10 +2004,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "055v0cxvxgy12iwhqa2xbsxa9j6ww7p1f5jqwncwsnr7l6f1f4c9";
+      sha256 = "0838p0vnyl65571d8j5hljwyfyhsnfs6dlj6di57gpmwrbl9sdpr";
       type = "gem";
     };
-    version = "0.5.5";
+    version = "0.5.6";
   };
   gitlab-styles = {
     dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -2025,10 +2015,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y3livdpkdzp4cy47ycpwqa7nhrf6fb1ff2lwhh4l5n4dpqympwn";
+      sha256 = "1lgjp6cfb92z7i03f9k519bjabnnh1k0bgzmagp5x15iza73sz4v";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.2.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2064,15 +2054,15 @@
     version = "0.4.2";
   };
   gon = {
-    dependencies = ["actionpack" "multi_json" "request_store"];
+    dependencies = ["actionpack" "i18n" "multi_json" "request_store"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      sha256 = "1w6ji15jrl4p6q0gxy5mmqspvzbmgkqj1d3xmbqr0a1rb7b1i9p3";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.4.0";
   };
   google-api-client = {
     dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet"];
@@ -2101,10 +2091,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m3la0yid3bqx9b30raisqbp27d0q7vdrlslazrdasf8v1vhifxj";
+      sha256 = "0pbm2kjhxvazx9d5c071bxcjx5cbip6d2y36dii2a4558nqjd12p";
       type = "gem";
     };
-    version = "3.12.4";
+    version = "3.14.0";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -2319,10 +2309,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gjbdni9jdpsdahrx2q7cvrc6jkrzpf9rdi0rli8mdvwi9xjafz5";
+      sha256 = "13n3v9kbyrrm48hn1v0028cdrsq7pswb4s4w63x4b29kc99m1s6j";
       type = "gem";
     };
-    version = "2.14.4";
+    version = "2.15.0";
   };
   hana = {
     groups = ["default"];
@@ -2509,10 +2499,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.9";
+    version = "1.8.10";
   };
   i18n_data = {
     groups = ["default"];
@@ -2635,10 +2625,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+      sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.8.1";
   };
   json_schemer = {
     dependencies = ["ecma-re-validator" "hana" "regexp_parser" "uri_template"];
@@ -2731,21 +2721,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c69rcwfrdrnx8ddl6k1qxhw9f2dj5x5bbddz435isl2hfr5zh92";
+      sha256 = "056g86ndhq51303k4g3fhdfwhpr6cpzypxhlnp0wxjpbmli09xw2";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "1.21.1";
   };
   kramdown = {
     dependencies = ["rexml"];
-    groups = ["default" "development"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
+      sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -2775,10 +2765,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      sha256 = "1xdyvr5j0gjj7b10kgvh8ylxnwk3wx19my42wqn9h82r4p246hlm";
       type = "gem";
     };
-    version = "2.4.3";
+    version = "2.5.0";
   };
   lefthook = {
     groups = ["development"];
@@ -2807,10 +2797,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17qhwrkncrrp1bi2f7fbkm5lpnkdsiwy8jcvgr2wa97ck8y4x2bb";
+      sha256 = "0pianlrbf9n7jrqxpyxgsfk1j1d312d57d6gq7yxni6ax2q0293q";
       type = "gem";
     };
-    version = "1.3.4";
+    version = "1.4.0";
   };
   libyajl2 = {
     groups = ["default"];
@@ -2870,10 +2860,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sgbs0frk601yc7bb33pz5z9cyadvj077vwy9k5zapsbn2rxf5aj";
+      sha256 = "0g6w327y8d7dr0d7zw6p7hmlwh0hcvb7pkc7xxyf5mn3fmw6fdh1";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.6.2";
   };
   lograge = {
     dependencies = ["actionpack" "activesupport" "railties" "request_store"];
@@ -2892,10 +2882,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.1";
   };
   lru_redux = {
     groups = ["default"];
@@ -2929,15 +2919,14 @@
     version = "2.7.1";
   };
   marcel = {
-    dependencies = ["mimemagic"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.1";
   };
   marginalia = {
     dependencies = ["actionpack" "activerecord"];
@@ -3016,17 +3005,6 @@
     };
     version = "3.2020.0512";
   };
-  mimemagic = {
-    dependencies = ["nokogiri" "rake"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cqm9n9122qpksn9v6mp0gn3lrzxhh72lwl7yb6j75gykdan6h41";
-      type = "gem";
-    };
-    version = "0.3.10";
-  };
   mini_histogram = {
     groups = ["default" "test"];
     platforms = [];
@@ -3052,10 +3030,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.0";
   };
   mini_portile2 = {
     groups = ["default" "development" "test"];
@@ -3321,10 +3299,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.11.3";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -4093,10 +4071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vs4kfgp5pr5032nnhdapq60ga6karann06ilq1yjx8qck87cfxg";
+      sha256 = "01mwx4q9yz792dbi61j378iz6p7q63sxj3267jwwccjqmn6hf2kr";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -4148,10 +4126,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x28620cvfja8r06lk6f90pw5lvijz9qi4bjsa4z1d1rkr3v4r3w";
+      sha256 = "0i50vbscdk6wqxd2p0xwsyi07lwda612njqk8pn1f56snz5z0dcr";
       type = "gem";
     };
-    version = "6.0.3.4";
+    version = "6.0.3.6";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -4453,14 +4431,14 @@
     version = "1.4.0";
   };
   rexml = {
-    groups = ["default" "development" "test"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rinku = {
     groups = ["default"];
@@ -4477,10 +4455,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "6.2.0";
   };
   rouge = {
     groups = ["default"];
@@ -4575,10 +4553,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aw5knjij21kzwis3vkcmqc16p55lbig1wq0i37093qga7zfsdg1";
+      sha256 = "1pj2a9vrkp2xzlq0810q90sdc2zcqc7k92n57hxzhri2vcspy7n6";
       type = "gem";
     };
-    version = "4.0.2";
+    version = "5.0.1";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -4711,16 +4689,16 @@
     };
     version = "0.2.1";
   };
-  ruby-magic-static = {
+  ruby-magic = {
     dependencies = ["mini_portile2"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0whs2i868g1bgglrxl6aba47h8n9zqglsipskk6l83rfkm85ik3g";
+      sha256 = "1mn1m682l6hv54afh1an5lh623zbllgl2aqjz2f62v892slzkq57";
       type = "gem";
     };
-    version = "0.3.5";
+    version = "0.4.0";
   };
   ruby-prof = {
     groups = ["default"];
@@ -4743,15 +4721,15 @@
     version = "1.11.0";
   };
   ruby-saml = {
-    dependencies = ["nokogiri"];
+    dependencies = ["nokogiri" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      sha256 = "0hczs2s490x6lj8z9xczlgi4c159nk9b10njsnl37nqbgjfkjgsw";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.12.1";
   };
   ruby-statistics = {
     groups = ["default"];
@@ -5184,6 +5162,16 @@
     };
     version = "2.0.0";
   };
+  ssrf_filter = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0flmg6f444liaxjgdwdrwcfwyyhc54a7wp26kqih2cklwll5gp40";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
   stackprof = {
     groups = ["default"];
     platforms = [];
@@ -5300,6 +5288,17 @@
     };
     version = "0.12.0";
   };
+  test_file_finder = {
+    dependencies = ["faraday"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mbhiz7g7nd3v1ai4cgwzp2zr34k1h5am0vn9bny5qqn1408rlgi";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
   text = {
     groups = ["default" "development"];
     platforms = [];
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index 8084d2ebb6d..f20ea3cbb0f 100644
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -794,11 +794,11 @@
       };
     }
     {
-      name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_8.2.0.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.1.0.tgz";
-        sha1 = "a98ac4219da3316d30ee717ef0603c8fa0c4d5d8";
+        name = "_gitlab_eslint_plugin___eslint_plugin_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.2.0.tgz";
+        sha1 = "caccf2777febd89420c0225e000a789376ecaba2";
       };
     }
     {
@@ -818,11 +818,11 @@
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.185.0.tgz";
+      name = "_gitlab_svgs___svgs_1.189.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.185.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.185.0.tgz";
-        sha1 = "15b5c6d680b5fcfc2deb2a5decef427939e34ed7";
+        name = "_gitlab_svgs___svgs_1.189.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.189.0.tgz";
+        sha1 = "1ba972bfbcf46e52321c50fd57d00315535c3d1b";
       };
     }
     {
@@ -834,11 +834,11 @@
       };
     }
     {
-      name = "_gitlab_ui___ui_28.9.1.tgz";
+      name = "_gitlab_ui___ui_29.6.0.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_28.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-28.9.1.tgz";
-        sha1 = "7d4d4502ff09fca19ab815504f80afbf03dd2fc1";
+        name = "_gitlab_ui___ui_29.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-29.6.0.tgz";
+        sha1 = "5e8369d7aeab56edab570ef148dbc289b51901fc";
       };
     }
     {
@@ -1010,6 +1010,14 @@
       };
     }
     {
+      name = "_polka_url___url_1.0.0_next.12.tgz";
+      path = fetchurl {
+        name = "_polka_url___url_1.0.0_next.12.tgz";
+        url  = "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz";
+        sha1 = "431ec342a7195622f86688bbda82e3166ce8cb28";
+      };
+    }
+    {
       name = "_rails_actioncable___actioncable_6.1.0.tgz";
       path = fetchurl {
         name = "_rails_actioncable___actioncable_6.1.0.tgz";
@@ -1138,19 +1146,19 @@
       };
     }
     {
-      name = "_toast_ui_editor___editor_2.5.1.tgz";
+      name = "_toast_ui_editor___editor_2.5.2.tgz";
       path = fetchurl {
-        name = "_toast_ui_editor___editor_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.1.tgz";
-        sha1 = "42671c52ca4b97c84f684d09c2966711b36f41a7";
+        name = "_toast_ui_editor___editor_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.2.tgz";
+        sha1 = "0637e1bbdb205c1ab53b6d3722ced26399b2f0ca";
       };
     }
     {
-      name = "_toast_ui_vue_editor___vue_editor_2.5.1.tgz";
+      name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
       path = fetchurl {
-        name = "_toast_ui_vue_editor___vue_editor_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.1.tgz";
-        sha1 = "0a221d74d5305c8ca20cb11d9eb8ff9206455cfc";
+        name = "_toast_ui_vue_editor___vue_editor_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.2.tgz";
+        sha1 = "0b54107a196471eacb18aabb7100101606917b27";
       };
     }
     {
@@ -1658,6 +1666,14 @@
       };
     }
     {
+      name = "acorn_walk___acorn_walk_8.0.2.tgz";
+      path = fetchurl {
+        name = "acorn_walk___acorn_walk_8.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz";
+        sha1 = "d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3";
+      };
+    }
+    {
       name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
         name = "acorn___acorn_6.4.2.tgz";
@@ -1674,6 +1690,14 @@
       };
     }
     {
+      name = "acorn___acorn_8.1.0.tgz";
+      path = fetchurl {
+        name = "acorn___acorn_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.1.0.tgz";
+        sha1 = "52311fd7037ae119cbb134309e901aa46295b3fe";
+      };
+    }
+    {
       name = "after___after_0.8.2.tgz";
       path = fetchurl {
         name = "after___after_0.8.2.tgz";
@@ -2394,14 +2418,6 @@
       };
     }
     {
-      name = "bfj___bfj_6.1.1.tgz";
-      path = fetchurl {
-        name = "bfj___bfj_6.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz";
-        sha1 = "05a3b7784fbd72cfa3c22e56002ef99336516c48";
-      };
-    }
-    {
       name = "big.js___big.js_5.2.2.tgz";
       path = fetchurl {
         name = "big.js___big.js_5.2.2.tgz";
@@ -2890,14 +2906,6 @@
       };
     }
     {
-      name = "check_types___check_types_7.3.0.tgz";
-      path = fetchurl {
-        name = "check_types___check_types_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz";
-        sha1 = "468f571a4435c24248f5fd0cb0e8d87c3c341e7d";
-      };
-    }
-    {
       name = "chokidar___chokidar_3.4.0.tgz";
       path = fetchurl {
         name = "chokidar___chokidar_3.4.0.tgz";
@@ -3170,6 +3178,14 @@
       };
     }
     {
+      name = "commander___commander_6.2.1.tgz";
+      path = fetchurl {
+        name = "commander___commander_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz";
+        sha1 = "0792eb682dfbc325999bb2b84fddddba110ac73c";
+      };
+    }
+    {
       name = "commander___commander_2.9.0.tgz";
       path = fetchurl {
         name = "commander___commander_2.9.0.tgz";
@@ -3450,11 +3466,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.9.1.tgz";
+      name = "core_js___core_js_3.10.2.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz";
-        sha1 = "cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae";
+        name = "core_js___core_js_3.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.10.2.tgz";
+        sha1 = "17cb038ce084522a717d873b63f2b3ee532e2cd5";
       };
     }
     {
@@ -4514,11 +4530,11 @@
       };
     }
     {
-      name = "duplexer___duplexer_0.1.1.tgz";
+      name = "duplexer___duplexer_0.1.2.tgz";
       path = fetchurl {
-        name = "duplexer___duplexer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        name = "duplexer___duplexer_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz";
+        sha1 = "3abe43aef3835f8ae077d136ddce0f276b0400e6";
       };
     }
     {
@@ -4570,14 +4586,6 @@
       };
     }
     {
-      name = "ejs___ejs_2.6.1.tgz";
-      path = fetchurl {
-        name = "ejs___ejs_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz";
-        sha1 = "498ec0d495655abc6f23cd61868d926464071aa0";
-      };
-    }
-    {
       name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
       path = fetchurl {
         name = "electron_to_chromium___electron_to_chromium_1.3.642.tgz";
@@ -4930,11 +4938,11 @@
       };
     }
     {
-      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
+      name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.5.0.tgz";
-        sha1 = "6c12e3aae172bfd3363b7ac8c3f3e944704867f4";
+        name = "eslint_plugin_no_jquery___eslint_plugin_no_jquery_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.6.0.tgz";
+        sha1 = "7892cb7c086f7813156bca6bc48429825428e9eb";
       };
     }
     {
@@ -5002,11 +5010,11 @@
       };
     }
     {
-      name = "eslint___eslint_7.21.0.tgz";
+      name = "eslint___eslint_7.24.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.21.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz";
-        sha1 = "4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83";
+        name = "eslint___eslint_7.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.24.0.tgz";
+        sha1 = "2e44fa62d93892bfdb100521f17345ba54b8513a";
       };
     }
     {
@@ -5370,11 +5378,11 @@
       };
     }
     {
-      name = "file_loader___file_loader_5.1.0.tgz";
+      name = "file_loader___file_loader_6.2.0.tgz";
       path = fetchurl {
-        name = "file_loader___file_loader_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-5.1.0.tgz";
-        sha1 = "cb56c070efc0e40666424309bd0d9e45ac6f2bb8";
+        name = "file_loader___file_loader_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz";
+        sha1 = "baef7cf8e1840df325e4390b4484879480eebe4d";
       };
     }
     {
@@ -5386,14 +5394,6 @@
       };
     }
     {
-      name = "filesize___filesize_3.6.1.tgz";
-      path = fetchurl {
-        name = "filesize___filesize_3.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
-        sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
-      };
-    }
-    {
       name = "fill_range___fill_range_4.0.0.tgz";
       path = fetchurl {
         name = "fill_range___fill_range_4.0.0.tgz";
@@ -5890,6 +5890,14 @@
       };
     }
     {
+      name = "globals___globals_13.8.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_13.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz";
+        sha1 = "3e20f504810ce87a8d72e55aecf8435b50f4c1b3";
+      };
+    }
+    {
       name = "globby___globby_11.0.2.tgz";
       path = fetchurl {
         name = "globby___globby_11.0.2.tgz";
@@ -6002,11 +6010,11 @@
       };
     }
     {
-      name = "gzip_size___gzip_size_5.0.0.tgz";
+      name = "gzip_size___gzip_size_6.0.0.tgz";
       path = fetchurl {
-        name = "gzip_size___gzip_size_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz";
-        sha1 = "a55ecd99222f4c48fd8c01c625ce3b349d0a0e80";
+        name = "gzip_size___gzip_size_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz";
+        sha1 = "065367fd50c239c0671cbcbad5be3e2eeb10e462";
       };
     }
     {
@@ -6218,14 +6226,6 @@
       };
     }
     {
-      name = "hoopy___hoopy_0.1.4.tgz";
-      path = fetchurl {
-        name = "hoopy___hoopy_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
-        sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
-      };
-    }
-    {
       name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
       path = fetchurl {
         name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
@@ -8354,11 +8354,11 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.20.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
       };
     }
     {
@@ -8730,11 +8730,11 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.9.0.tgz";
+      name = "mermaid___mermaid_8.9.2.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.0.tgz";
-        sha1 = "e569517863ab903aa5389cd746b68ca958a8ca7c";
+        name = "mermaid___mermaid_8.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.9.2.tgz";
+        sha1 = "40bb2052cc6c4feaf5d93a5e527a8d06d0bacea7";
       };
     }
     {
@@ -8778,19 +8778,19 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.44.0.tgz";
+      name = "mime_db___mime_db_1.47.0.tgz";
       path = fetchurl {
-        name = "mime_db___mime_db_1.44.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
-        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
+        name = "mime_db___mime_db_1.47.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz";
+        sha1 = "8cb313e59965d3c05cfbf898915a267af46a335c";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.27.tgz";
+      name = "mime_types___mime_types_2.1.30.tgz";
       path = fetchurl {
-        name = "mime_types___mime_types_2.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
-        sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
+        name = "mime_types___mime_types_2.1.30.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz";
+        sha1 = "6e7be8b4c479825f85ed6326695db73f9305d62d";
       };
     }
     {
@@ -8994,11 +8994,11 @@
       };
     }
     {
-      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
+      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.1.tgz";
       path = fetchurl {
-        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.0.tgz";
-        sha1 = "5b547281b9f404057dc5d8c5722390df9ac90be6";
+        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.1.tgz";
+        sha1 = "eb4bbb1c5e5bfb554541c1ae1542e74c2a9f43fd";
       };
     }
     {
@@ -9474,11 +9474,11 @@
       };
     }
     {
-      name = "opener___opener_1.5.1.tgz";
+      name = "opener___opener_1.5.2.tgz";
       path = fetchurl {
-        name = "opener___opener_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
-        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+        name = "opener___opener_1.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz";
+        sha1 = "5d37e1f35077b9dcac4301372271afdeb2a13598";
       };
     }
     {
@@ -11530,6 +11530,14 @@
       };
     }
     {
+      name = "sirv___sirv_1.0.11.tgz";
+      path = fetchurl {
+        name = "sirv___sirv_1.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz";
+        sha1 = "81c19a29202048507d6ec0d8ba8910fda52eb5a4";
+      };
+    }
+    {
       name = "sisteransi___sisteransi_1.0.5.tgz";
       path = fetchurl {
         name = "sisteransi___sisteransi_1.0.5.tgz";
@@ -12538,6 +12546,14 @@
       };
     }
     {
+      name = "totalist___totalist_1.1.0.tgz";
+      path = fetchurl {
+        name = "totalist___totalist_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz";
+        sha1 = "a4d65a3e546517701e3e5c37a47a70ac97fe56df";
+      };
+    }
+    {
       name = "touch___touch_3.1.0.tgz";
       path = fetchurl {
         name = "touch___touch_3.1.0.tgz";
@@ -12618,14 +12634,6 @@
       };
     }
     {
-      name = "tryer___tryer_1.0.0.tgz";
-      path = fetchurl {
-        name = "tryer___tryer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz";
-        sha1 = "027b69fa823225e551cace3ef03b11f6ab37c1d7";
-      };
-    }
-    {
       name = "ts_invariant___ts_invariant_0.4.4.tgz";
       path = fetchurl {
         name = "ts_invariant___ts_invariant_0.4.4.tgz";
@@ -12714,6 +12722,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.20.2.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
+        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.6.0.tgz";
@@ -12978,11 +12994,11 @@
       };
     }
     {
-      name = "url_loader___url_loader_3.0.0.tgz";
+      name = "url_loader___url_loader_4.1.1.tgz";
       path = fetchurl {
-        name = "url_loader___url_loader_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-3.0.0.tgz";
-        sha1 = "9f1f11b371acf6e51ed15a50db635e02eec18368";
+        name = "url_loader___url_loader_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz";
+        sha1 = "28505e905cae158cf07c92ca622d7f237e70a4e2";
       };
     }
     {
@@ -13370,11 +13386,11 @@
       };
     }
     {
-      name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
+      name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
       path = fetchurl {
-        name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.4.tgz";
-        sha1 = "5fca7a13f785899bbfb70471ec4fe222437d8495";
+        name = "vue_virtual_scroll_list___vue_virtual_scroll_list_1.4.7.tgz";
+        url  = "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.7.tgz";
+        sha1 = "12ee26833885f5bb4d37dc058085ccf3ce5b5a74";
       };
     }
     {
@@ -13482,11 +13498,11 @@
       };
     }
     {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
+      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.1.tgz";
       path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz";
-        sha1 = "f6f94db108fb574e415ad313de41a2707d33ef3c";
+        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_4.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz";
+        sha1 = "c71fb2eaffc10a4754d7303b224adb2342069da1";
       };
     }
     {
@@ -13698,11 +13714,11 @@
       };
     }
     {
-      name = "ws___ws_7.3.0.tgz";
+      name = "ws___ws_7.4.4.tgz";
       path = fetchurl {
-        name = "ws___ws_7.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz";
-        sha1 = "4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd";
+        name = "ws___ws_7.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz";
+        sha1 = "383bc9742cb202292c9077ceab6f6047b17f2d59";
       };
     }
     {
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index 776a794d649..a51e8c199bc 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.46";
+  version = "1.0.0-alpha.48";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "0x095g26qdch1m3izkn8ynwk1xg1qyz9ia8di23j61k7z2rqk0j5";
+    sha256 = "09sz5665nwj2jppx2695hbwdqr3ws6z6rg7mmc4ldb7hkp4yilig";
   };
 
-  cargoSha256 = "0cw1y4vmhn70a94512mppk0kfh9xdfm0v4rp3zm00y06jzq1a1fp";
+  cargoSha256 = "1v5w5za7l3hy9anz136x0vgdmgg090f5sawzgrg5ylgxy2l9s2gn";
 
   cargoBuildFlags = lib.optional gitImportSupport "--features=git";
 
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index d6cad454026..042dafbb674 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -6,18 +6,18 @@
 , javahlBindings ? false
 , saslSupport ? false
 , lib, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc
-, apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null
+, apacheHttpd ? null, expat, swig ? null, jdk ? null, python3 ? null, py3c ? null, perl ? null
 , sasl ? null, serf ? null
 }:
 
 assert bdbSupport -> aprutil.bdbSupport;
 assert httpServer -> apacheHttpd != null;
-assert pythonBindings -> swig != null && python != null;
+assert pythonBindings -> swig != null && python3 != null && py3c != null;
 assert javahlBindings -> jdk != null && perl != null;
 
 let
 
-  common = { version, sha256, extraBuildInputs ? [ ] }: stdenv.mkDerivation (rec {
+  common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec {
     inherit version;
     pname = "subversion";
 
@@ -29,14 +29,13 @@ let
     # Can't do separate $lib and $bin, as libs reference bins
     outputs = [ "out" "dev" "man" ];
 
-    buildInputs = [ zlib apr aprutil sqlite openssl ]
-      ++ extraBuildInputs
+    buildInputs = [ zlib apr aprutil sqlite openssl lz4 utf8proc ]
       ++ lib.optional httpSupport serf
-      ++ lib.optional pythonBindings python
+      ++ lib.optionals pythonBindings [ python3 py3c ]
       ++ lib.optional perlBindings perl
       ++ lib.optional saslSupport sasl;
 
-    patches = [ ./apr-1.patch ];
+    patches = [ ./apr-1.patch ] ++ extraPatches;
 
     # We are hitting the following issue even with APR 1.6.x
     # -> https://issues.apache.org/jira/browse/SVN-4813
@@ -92,7 +91,7 @@ let
 
     enableParallelBuilding = true;
 
-    checkInputs = [ python ];
+    checkInputs = [ python3 ];
     doCheck = false; # fails 10 out of ~2300 tests
 
     meta = with lib; {
@@ -112,14 +111,12 @@ let
 
 in {
   subversion_1_10 = common {
-    version = "1.10.6";
-    sha256 = "19zc215mhpnm92mlyl5jbv57r5zqp6cavr3s2g9yglp6j4kfgj0q";
-    extraBuildInputs = [ lz4 utf8proc ];
+    version = "1.10.7";
+    sha256 = "1nhrd8z6c94sc0ryrzpyd98qdn5a5g3x0xv1kdb9da4drrk8y2ww";
   };
 
   subversion = common {
-    version = "1.12.2";
-    sha256 = "0wgpw3kzsiawzqk4y0xgh1z93kllxydgv4lsviim45y5wk4bbl1v";
-    extraBuildInputs = [ lz4 utf8proc ];
+    version = "1.14.1";
+    sha256 = "1ag1hvcm9q92kgalzbbgcsq9clxnzmbj9nciz9lmabjx4lyajp9c";
   };
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index b75af94af56..fc8bee5fcb7 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, git, gnupg }:
+{ lib, stdenv, fetchFromGitHub, git, gnupg, installShellFiles }:
 
-let version = "2.5.0"; in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "yadm";
-  inherit version;
+  version = "3.1.0";
 
   buildInputs = [ git gnupg ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   src = fetchFromGitHub {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
+    sha256 = "0ga0p28nvqilswa07bzi93adk7wx6d5pgxlacr9wl9v1h6cds92s";
   };
 
   dontConfigure = true;
@@ -20,12 +21,16 @@ stdenv.mkDerivation {
   installPhase = ''
     runHook preInstall
     install -Dt $out/bin yadm
-    install -Dt $out/share/man/man1 yadm.1
-    install -D completion/yadm.zsh_completion $out/share/zsh/site-functions/_yadm
-    install -D completion/yadm.bash_completion $out/share/bash-completion/completions/yadm.bash
     runHook postInstall
   '';
 
+  postInstall = ''
+    installManPage yadm.1
+    installShellCompletion --cmd yadm \
+      --zsh completion/zsh/_yadm \
+      --bash completion/bash/yadm
+  '';
+
   meta = {
     homepage = "https://github.com/TheLocehiliosan/yadm";
     description = "Yet Another Dotfiles Manager";
@@ -35,7 +40,7 @@ stdenv.mkDerivation {
       * Provides a way to use alternate files on a specific OS or host.
       * Supplies a method of encrypting confidential data so it can safely be stored in your repository.
     '';
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ abathur ];
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/applications/video/byzanz/default.nix b/pkgs/applications/video/byzanz/default.nix
index 69d27c3a2c8..80e1c1260bd 100644
--- a/pkgs/applications/video/byzanz/default.nix
+++ b/pkgs/applications/video/byzanz/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ which gnome3.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo ]
+  buildInputs = [ which gnome3.gnome-common glib intltool libtool cairo gtk3 xorg.xwininfo xorg.libXdamage ]
   ++ (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-bad gst-plugins-good gst-plugins-ugly gst-libav wrapGAppsHook ]);
 
   meta = with lib; {
diff --git a/pkgs/applications/video/ffmpeg-normalize/default.nix b/pkgs/applications/video/ffmpeg-normalize/default.nix
index 411ab9e6bc2..de0b088030f 100644
--- a/pkgs/applications/video/ffmpeg-normalize/default.nix
+++ b/pkgs/applications/video/ffmpeg-normalize/default.nix
@@ -1,20 +1,20 @@
 { lib
 , buildPythonApplication
 , fetchPypi
-, ffmpeg_3
-, tqdm
+, ffmpeg
+, ffmpeg-progress-yield
 }:
 
 buildPythonApplication rec {
   pname = "ffmpeg-normalize";
-  version = "1.19.0";
+  version = "1.22.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18dpck9grnr3wgbjvdh4mjlx0zfwcxpy4rnpmc39in0yk3w7li2x";
+    sha256 = "df826053212d540ab1bbe9819587fcbf36162f8c2535ae85b88b252e47d6d632";
   };
 
-  propagatedBuildInputs = [ ffmpeg_3 tqdm ];
+  propagatedBuildInputs = [ ffmpeg ffmpeg-progress-yield ];
 
   checkPhase = ''
     $out/bin/ffmpeg-normalize --help > /dev/null
diff --git a/pkgs/applications/video/giph/default.nix b/pkgs/applications/video/giph/default.nix
new file mode 100644
index 00000000000..431f267e4c8
--- /dev/null
+++ b/pkgs/applications/video/giph/default.nix
@@ -0,0 +1,43 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, ffmpeg
+, xdotool
+, slop
+, libnotify
+, procps
+, makeWrapper
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "giph";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "phisch";
+    repo = pname;
+    rev = version;
+    sha256 = "19l46m1f32b3bagzrhaqsfnl5n3wbrmg3sdy6fdss4y1yf6nqayk";
+  };
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/giph \
+      --prefix PATH : ${lib.makeBinPath [ ffmpeg xdotool libnotify slop procps ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/phisch/giph";
+    description = "Simple gif recorder";
+    license = licenses.mit;
+    maintainers = [ maintainers.legendofmiracles ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
new file mode 100644
index 00000000000..3e45dd62d68
--- /dev/null
+++ b/pkgs/applications/video/haruna/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, fetchFromGitHub
+, mkDerivation
+, breeze-icons
+, breeze-qt5
+, cmake
+, extra-cmake-modules
+, kcodecs
+, kconfig
+, kcoreaddons
+, kfilemetadata
+, ki18n
+, kiconthemes
+, kio
+, kio-extras
+, kirigami2
+, kxmlgui
+, mpv
+, pkg-config
+, qqc2-desktop-style
+, qtbase
+, qtquickcontrols2
+, qtwayland
+, youtube-dl
+}:
+
+mkDerivation rec {
+  pname = "haruna";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "g-fb";
+    repo = "haruna";
+    rev = version;
+    sha256 = "sha256-gJCLc8qJolv4Yufm/OBCTTEpyoodtySAqKH+zMHCoLU=";
+  };
+
+  buildInputs = [
+    breeze-icons
+    breeze-qt5
+    kcodecs
+    kconfig
+    kcoreaddons
+    kfilemetadata
+    ki18n
+    kiconthemes
+    kio
+    kio-extras
+    kirigami2
+    kxmlgui
+    mpv
+    qqc2-desktop-style
+    qtbase
+    qtquickcontrols2
+    qtwayland
+    youtube-dl
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    pkg-config
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/g-fb/haruna";
+    description = "Open source video player built with Qt/QML and libmpv";
+    license = with licenses; [ bsd3 cc-by-40 gpl3Plus wtfpl ];
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/pkgs/applications/video/jellyfin-media-player/default.nix b/pkgs/applications/video/jellyfin-media-player/default.nix
new file mode 100644
index 00000000000..829cc4835ea
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -0,0 +1,110 @@
+{ lib
+, fetchFromGitHub
+, fetchzip
+, mkDerivation
+, stdenv
+, Cocoa
+, CoreAudio
+, CoreFoundation
+, MediaPlayer
+, SDL2
+, cmake
+, libGL
+, libX11
+, libXrandr
+, libvdpau
+, mpv
+, ninja
+, pkg-config
+, python3
+, qtbase
+, qtwayland
+, qtwebchannel
+, qtwebengine
+, qtx11extras
+}:
+
+mkDerivation rec {
+  pname = "jellyfin-media-player";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = "jellyfin-media-player";
+    rev = "v${version}";
+    sha256 = "sha256-A3vo6678XFUV2RN1lcGYbIjCbBjR1oeORcidKZVnImg=";
+  };
+
+  jmpDist = fetchzip {
+    url = "https://github.com/iwalton3/jellyfin-web-jmp/releases/download/jwc-10.7.2-3/dist.zip";
+    sha256 = "sha256-Rb0q3NFmnYkueq0JkIWkX0C/oL+gFrNOELCNfh9X/P4=";
+  };
+
+  patches = [
+    # the webclient-files are not copied in the regular build script. Copy them just like the linux build
+    ./fix-osx-resources.patch
+    # disable update notifications since the end user can't simply download the release artifacts to update
+    ./disable-update-notifications.patch
+  ];
+
+  buildInputs = [
+    SDL2
+    libGL
+    libX11
+    libXrandr
+    libvdpau
+    mpv
+    qtbase
+    qtwebchannel
+    qtwebengine
+    qtx11extras
+  ] ++ lib.optionals stdenv.isLinux [
+    qtwayland
+  ] ++ lib.optionals stdenv.isDarwin [
+    Cocoa
+    CoreAudio
+    CoreFoundation
+    MediaPlayer
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+    python3
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DQTROOT=${qtbase}"
+    "-GNinja"
+  ];
+
+  preBuild = ''
+    # copy the webclient-files to the expected "dist" directory
+    mkdir -p dist
+    cp -a ${jmpDist}/* dist
+  '';
+
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/bin $out/Applications
+    mv "$out/Jellyfin Media Player.app" $out/Applications
+
+    # move web-client resources
+    mv $out/Resources/* "$out/Applications/Jellyfin Media Player.app/Contents/Resources/"
+    rmdir $out/Resources
+
+    # fix 'Could not find the Qt platform plugin "cocoa" in ""' error
+    wrapQtApp "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player"
+
+    ln -s "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player" $out/bin/jellyfinmediaplayer
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/jellyfin/jellyfin-media-player";
+    description = "Jellyfin Desktop Client based on Plex Media Player";
+    license = with licenses; [ gpl2Only mit ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/pkgs/applications/video/jellyfin-media-player/disable-update-notifications.patch b/pkgs/applications/video/jellyfin-media-player/disable-update-notifications.patch
new file mode 100644
index 00000000000..dd56d71f907
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-media-player/disable-update-notifications.patch
@@ -0,0 +1,13 @@
+diff --git a/resources/settings/settings_description.json b/resources/settings/settings_description.json
+index 20fff81..9979de5 100644
+--- a/resources/settings/settings_description.json
++++ b/resources/settings/settings_description.json
+@@ -118,7 +118,7 @@
+       },
+       {
+         "value": "checkForUpdates",
+-        "default": true
++        "default": false
+       },
+       {
+         "value": "enableInputRepeat",
diff --git a/pkgs/applications/video/jellyfin-media-player/fix-osx-resources.patch b/pkgs/applications/video/jellyfin-media-player/fix-osx-resources.patch
new file mode 100644
index 00000000000..5c562295b40
--- /dev/null
+++ b/pkgs/applications/video/jellyfin-media-player/fix-osx-resources.patch
@@ -0,0 +1,15 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 780c0d3..d9c2341 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -108,8 +108,8 @@ endif()
+ set(RESOURCE_ROOT .)
+ if(APPLE)
+   set(RESOURCE_ROOT Resources)
+-  add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DEST ${RESOURCE_ROOT}/web-client/desktop)
+-  add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_SOURCE_DIR}/native/ DEST ${RESOURCE_ROOT}/web-client/extension)
++  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DESTINATION ${RESOURCE_ROOT}/web-client/desktop)
++  install(DIRECTORY ${CMAKE_SOURCE_DIR}/native/ DESTINATION ${RESOURCE_ROOT}/web-client/extension)
+ endif()
+ 
+ if(NOT APPLE)
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index e577abda95c..651234be8e4 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,37 +1,29 @@
 { lib
 , buildPythonApplication
-, copyDesktopItems
 , fetchPypi
-, makeDesktopItem
-, flask
 , jellyfin-apiclient-python
 , jinja2
 , mpv
 , pillow
-, pydantic
-, pyqtwebengine
 , pystray
 , python-mpv-jsonipc
 , pywebview
-, qt5
 , tkinter
-, werkzeug
 }:
 
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "1.10.3";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Tl7P8SJ/ZuwIi8RxDWkhfd7LUd63xv5Ehg1UqaYHb1g=";
+    sha256 = "sha256-NXDLqQzCUfDPoKNPrmIn5FMedMKYxtDhkawRE2lg/vI=";
   };
 
   propagatedBuildInputs = [
     jellyfin-apiclient-python
     mpv
     pillow
-    pydantic
     python-mpv-jsonipc
 
     # gui dependencies
@@ -41,28 +33,6 @@ buildPythonApplication rec {
     # display_mirror dependencies
     jinja2
     pywebview
-
-    # desktop dependencies
-    flask
-    pyqtwebengine
-    werkzeug
-  ];
-
-  nativeBuildInputs = [
-    copyDesktopItems
-    qt5.wrapQtAppsHook
-  ];
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = "Jellyfin Desktop";
-      exec = "jellyfin-desktop";
-      icon = "jellyfin-desktop";
-      desktopName = "jellyfin-desktop";
-      comment = "MPV-based desktop and cast client for Jellyfin";
-      genericName = "MPV-based desktop and cast client for Jellyfin";
-      categories = "Video;AudioVideo;TV;Player";
-    })
   ];
 
   # override $HOME directory:
@@ -82,24 +52,33 @@ buildPythonApplication rec {
       --replace "notify_updates: bool = True" "notify_updates: bool = False"
   '';
 
-  postInstall = ''
-    mkdir -p $out/share/pixmaps
-    cp jellyfin_mpv_shim/integration/jellyfin-256.png $out/share/pixmaps/jellyfin-desktop.png
-  '';
-
-  postFixup = ''
-    wrapQtApp $out/bin/jellyfin-desktop
-    wrapQtApp $out/bin/jellyfin-mpv-desktop
-  '';
-
   # no tests
   doCheck = false;
   pythonImportsCheck = [ "jellyfin_mpv_shim" ];
 
   meta = with lib; {
-    homepage = "https://github.com/jellyfin/jellyfin-desktop";
+    homepage = "https://github.com/jellyfin/jellyfin-mpv-shim";
     description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
-    license = licenses.gpl3;
+    longDescription = ''
+      Jellyfin MPV Shim is a client for the Jellyfin media server which plays media in the
+      MPV media player. The application runs in the background and opens MPV only
+      when media is cast to the player. The player supports most file formats, allowing you
+      to prevent needless transcoding of your media files on the server. The player also has
+      advanced features, such as bulk subtitle updates and launching commands on events.
+    '';
+    license = with licenses; [
+      # jellyfin-mpv-shim
+      gpl3Only
+      mit
+
+      # shader-pack licenses (github:iwalton3/default-shader-pack)
+      # KrigBilateral, SSimDownscaler, NNEDI3
+      gpl3Plus
+      # Anime4K, FSRCNNX
+      mit
+      # Static Grain
+      unlicense
+    ];
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
index 00e58ece075..b2a9fc33255 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
+++ b/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss }:
+{ stdenv, lib, rel, addonDir, buildKodiBinaryAddon, fetchFromGitHub, expat, glib, nspr, nss, gtest }:
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "2.6.8";
+  version = "2.6.13";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "0m2d5r0f82qv4kqmq5yxzpi1awkjir2b2s2mfwkjn8p55r7gzp7c";
+    sha256 = "1xvinmwyx7mai84i8c394dqw86zb6ib9wnxjmv7zpky6x64lvv10";
   };
 
+  extraNativeBuildInputs = [ gtest ];
+
   extraBuildInputs = [ expat ];
 
   extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
diff --git a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
index 32b55d5e0cb..f6ab6d2e95a 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
+++ b/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
@@ -3,13 +3,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-ffmpegdirect";
   namespace = "inputstream.ffmpegdirect";
-  version = "1.19.4";
+  version = "1.21.1";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.ffmpegdirect";
     rev = "${version}-${rel}";
-    sha256 = "1ppvs6zybbi73zq1qh8klyhj99byh61c6nijmb1gd5yhg7cywf72";
+    sha256 = "1x5gj7iq74ysyfrzvp135m0pjz47zamcgw1v1334xd7xcx5q178p";
   };
 
   extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
diff --git a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
index 32b4a035bfe..5e7f39d911f 100644
--- a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
+++ b/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-hts";
   namespace = "pvr.hts";
-  version = "8.2.4";
+  version = "8.3.0";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.hts";
     rev = "${version}-${rel}";
-    sha256 = "sha256-05RSB4ZwwZSzY2b1/MRw6zzl/HhMbeVhCVCOj3gSTWA=";
+    sha256 = "1lqd0kkfv06n8ax8ywsi1rx9glvx3pwi9yj9yb3fdf39xmd3hz7y";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
index 7fe0ed08e8f..74c5973da54 100644
--- a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
+++ b/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
@@ -1,21 +1,22 @@
 { lib, rel, buildKodiBinaryAddon, fetchFromGitHub
-, pugixml, zlib
+, xz, pugixml, zlib
 , inputstream-adaptive, inputstream-ffmpegdirect, inputstream-rtmp
 }:
 
 buildKodiBinaryAddon rec {
   pname = "pvr-iptvsimple";
   namespace = "pvr.iptvsimple";
-  version = "7.5.1";
+  version = "7.6.1";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.iptvsimple";
     rev = "${version}-${rel}";
-    sha256 = "1q470v9nipnrca0rbwvqlbxw9ccbl9s1k46hwwrh94vhyp5rjlib";
+    sha256 = "1g1ildl2l6nl63qbfhijcbmvr6z84nqhjsy2lgx3dy25cmcqzir9";
   };
 
   extraBuildInputs = [
+    xz
     pugixml
     zlib
   ];
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi-packages/youtube/default.nix
new file mode 100644
index 00000000000..c108aa36f92
--- /dev/null
+++ b/pkgs/applications/video/kodi-packages/youtube/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript, six, requests, inputstreamhelper }:
+
+buildKodiAddon rec {
+  pname = "youtube";
+  namespace = "plugin.video.youtube";
+  version = "6.8.10+matrix.1";
+
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "18z9zh6yqihnmfwd6cc4kpy2frzbarvhg8qpyc3w851ad053q7v0";
+  };
+
+  propagatedBuildInputs = [
+    six
+    requests
+    inputstreamhelper
+  ];
+
+  passthru.updateScript = addonUpdateScript {
+    attrPath = "kodi.packages.youtube";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/anxdpanic/plugin.video.youtube";
+    description = "YouTube is one of the biggest video-sharing websites of the world";
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
index e0ca5d1cf6e..72d6533f38d 100644
--- a/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
+++ b/pkgs/applications/video/kodi/build-kodi-binary-addon.nix
@@ -2,6 +2,7 @@
 { name ? "${attrs.pname}-${attrs.version}"
 , namespace
 , version
+, extraNativeBuildInputs ? []
 , extraBuildInputs ? []
 , extraRuntimeDependencies ? []
 , extraInstallPhase ? "", ... } @ attrs:
@@ -10,7 +11,7 @@ toKodiAddon (stdenv.mkDerivation ({
 
   dontStrip = true;
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ] ++ extraNativeBuildInputs;
   buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
 
   inherit extraRuntimeDependencies;
diff --git a/pkgs/applications/video/kodi/packages.nix b/pkgs/applications/video/kodi/packages.nix
deleted file mode 100644
index e6ce955e055..00000000000
--- a/pkgs/applications/video/kodi/packages.nix
+++ /dev/null
@@ -1,560 +0,0 @@
-{ lib, stdenv, callPackage, fetchFromGitHub
-, cmake, kodi, libcec_platform, tinyxml, pugixml
-, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
-, python3Packages, expat, glib, nspr, nss, openssl
-, libssh, libarchive, xz, bzip2, lz4, lzo }:
-
-with lib;
-
-let self = rec {
-
-  addonDir = "/share/kodi/addons";
-  rel = "Matrix";
-
-  inherit kodi;
-
-  # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
-  toKodiAddon = drv: drv.overrideAttrs(oldAttrs: {
-    # Use passthru in order to prevent rebuilds when possible.
-    passthru = (oldAttrs.passthru or {})// {
-      kodiAddonFor = kodi;
-      requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
-    };
-  });
-
-  # Check whether a derivation provides a Kodi addon.
-  hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
-
-  # Get list of required Kodi addons given a list of derivations.
-  requiredKodiAddons = drvs: let
-      modules = filter hasKodiAddon drvs;
-    in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
-
-  kodi-platform = stdenv.mkDerivation rec {
-    project = "kodi-platform";
-    version = "17.1";
-    name = "${project}-${version}";
-
-    src = fetchFromGitHub {
-      owner = "xbmc";
-      repo = project;
-      rev = "c8188d82678fec6b784597db69a68e74ff4986b5";
-      sha256 = "1r3gs3c6zczmm66qcxh9mr306clwb3p7ykzb70r3jv5jqggiz199";
-    };
-
-    nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodi libcec_platform tinyxml ];
-  };
-
-  buildKodiAddon =
-    { name ? "${attrs.pname}-${attrs.version}"
-    , namespace
-    , sourceDir ? ""
-    , ... } @ attrs:
-  toKodiAddon (stdenv.mkDerivation ({
-    name = "kodi-" + name;
-
-    dontStrip = true;
-
-    extraRuntimeDependencies = [ ];
-
-    installPhase = ''
-      cd $src/$sourceDir
-      d=$out${addonDir}/${namespace}
-      mkdir -p $d
-      sauce="."
-      [ -d ${namespace} ] && sauce=${namespace}
-      cp -R "$sauce/"* $d
-    '';
-  } // attrs));
-
-  buildKodiBinaryAddon =
-    { name ? "${attrs.pname}-${attrs.version}"
-    , namespace
-    , version
-    , extraBuildInputs ? []
-    , extraRuntimeDependencies ? []
-    , extraInstallPhase ? "", ... } @ attrs:
-  toKodiAddon (stdenv.mkDerivation ({
-    name = "kodi-" + name;
-
-    dontStrip = true;
-
-    nativeBuildInputs = [ cmake ];
-    buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
-
-    inherit extraRuntimeDependencies;
-
-    # disables check ensuring install prefix is that of kodi
-    cmakeFlags = [
-      "-DOVERRIDE_PATHS=1"
-    ];
-
-    # kodi checks for addon .so libs existance in the addon folder (share/...)
-    # and the non-wrapped kodi lib/... folder before even trying to dlopen
-    # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
-    installPhase = let n = namespace; in ''
-      make install
-      ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
-      ${extraInstallPhase}
-    '';
-  } // attrs));
-
-  advanced-launcher = buildKodiAddon rec {
-
-    pname = "advanced-launcher";
-    namespace = "plugin.program.advanced.launcher";
-    version = "2.5.8";
-
-    src = fetchFromGitHub {
-      owner = "edwtjo";
-      repo = pname;
-      rev = version;
-      sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
-    };
-
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=85724";
-      description = "A program launcher for Kodi";
-      longDescription = ''
-        Advanced Launcher allows you to start any Linux, Windows and
-        macOS external applications (with command line support or not)
-        directly from the Kodi GUI. Advanced Launcher also give you
-        the possibility to edit, download (from Internet resources)
-        and manage all the meta-data (informations and images) related
-        to these applications.
-      '';
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-      broken = true; # requires port to python3
-    };
-
-  };
-
-  advanced-emulator-launcher = buildKodiAddon rec {
-
-    pname = "advanced-emulator-launcher";
-    namespace = "plugin.program.advanced.emulator.launcher";
-    version = "0.9.6";
-
-    src = fetchFromGitHub {
-      owner = "Wintermute0110";
-      repo = namespace;
-      rev = version;
-      sha256 = "1sv9z77jj6bam6llcnd9b3dgkbvhwad2m1v541rv3acrackms2z2";
-    };
-
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=287826";
-      description = "A program launcher for Kodi";
-      longDescription = ''
-        Advanced Emulator Launcher is a multi-emulator front-end for Kodi
-        scalable to collections of thousands of ROMs. Includes offline scrapers
-        for MAME and No-Intro ROM sets and also supports scrapping ROM metadata
-        and artwork online. ROM auditing for No-Intro ROMs using No-Intro XML
-        DATs. Launching of games and standalone applications is also available.
-      '';
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-      broken = true; # requires port to python3
-    };
-
-  };
-
-  controllers = let
-    pname = "game-controller";
-    version = "1.0.3";
-
-    src = fetchFromGitHub {
-      owner = "kodi-game";
-      repo = "kodi-game-controllers";
-      rev = "01acb5b6e8b85392b3cb298b034aadb1b24ccf18";
-      sha256 = "0sbc0w0fwbp7rbmbgb6a1kglhnn5g85hijcbbvf5x6jdq9v3f1qb";
-    };
-
-    meta = {
-      description = "Add support for different gaming controllers.";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-    };
-
-    mkController = controller: {
-        ${controller} = buildKodiAddon rec {
-          pname = pname + "-" + controller;
-          namespace = "game.controller." + controller;
-          sourceDir = "addons/" + namespace;
-          inherit version src meta;
-        };
-      };
-    in (mkController "default")
-    // (mkController "dreamcast")
-    // (mkController "gba")
-    // (mkController "genesis")
-    // (mkController "mouse")
-    // (mkController "n64")
-    // (mkController "nes")
-    // (mkController "ps")
-    // (mkController "snes");
-
-  hyper-launcher = let
-    pname = "hyper-launcher";
-    version = "1.5.2";
-    src = fetchFromGitHub rec {
-      name = pname + "-" + version + ".tar.gz";
-      owner = "teeedubb";
-      repo = owner + "-xbmc-repo";
-      rev = "f958ba93fe85b9c9025b1745d89c2db2e7dd9bf6";
-      sha256 = "1dvff24fbas25k5kvca4ssks9l1g5rfa3hl8lqxczkaqi3pp41j5";
-    };
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=258159";
-      description = "A ROM launcher for Kodi that uses HyperSpin assets.";
-      maintainers = with maintainers; [ edwtjo ];
-      broken = true; # requires port to python3
-    };
-  in {
-    service = buildKodiAddon {
-      pname = pname + "-service";
-      version = "1.2.1";
-      namespace = "service.hyper.launcher";
-      inherit src meta;
-    };
-    plugin = buildKodiAddon {
-      namespace = "plugin.hyper.launcher";
-      inherit pname version src meta;
-    };
-  };
-
-  joystick = buildKodiBinaryAddon rec {
-    pname = namespace;
-    namespace = "peripheral.joystick";
-    version = "1.7.1";
-
-    src = fetchFromGitHub {
-      owner = "xbmc";
-      repo = namespace;
-      rev = "${version}-${rel}";
-      sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
-    };
-
-    meta = {
-      description = "Binary addon for raw joystick input.";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-    };
-
-    extraBuildInputs = [ tinyxml udev ];
-  };
-
-  simpleplugin = buildKodiAddon rec {
-    pname = "simpleplugin";
-    namespace = "script.module.simpleplugin";
-    version = "2.3.2";
-
-    src = fetchFromGitHub {
-      owner = "romanvm";
-      repo = namespace;
-      rev = "v.${version}";
-      sha256 = "0myar8dqjigb75pcc8zx3i5z79p1ifgphgb82s5syqywk0zaxm3j";
-    };
-
-    meta = {
-      homepage = src.meta.homepage;
-      description = "Simpleplugin API";
-      license = licenses.gpl3;
-      broken = true; # requires port to python3
-    };
-  };
-
-  svtplay = buildKodiAddon rec {
-
-    pname = "svtplay";
-    namespace = "plugin.video.svtplay";
-    version = "5.1.12";
-
-    src = fetchFromGitHub {
-      name = pname + "-" + version + ".tar.gz";
-      owner = "nilzen";
-      repo = "xbmc-" + pname;
-      rev = "v${version}";
-      sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
-    };
-
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=67110";
-      description = "Watch content from SVT Play";
-      longDescription = ''
-        With this addon you can stream content from SVT Play
-        (svtplay.se). The plugin fetches the video URL from the SVT
-        Play website and feeds it to the Kodi video player. HLS (m3u8)
-        is the preferred video format by the plugin.
-      '';
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-    };
-
-  };
-
-  steam-controller = buildKodiBinaryAddon rec {
-    pname = namespace;
-    namespace = "peripheral.steamcontroller";
-    version = "0.11.0";
-
-    src = fetchFromGitHub {
-      owner = "kodi-game";
-      repo = namespace;
-      rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
-      sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
-    };
-
-    extraBuildInputs = [ libusb1 ];
-
-    meta = {
-      description = "Binary addon for steam controller.";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ edwtjo ];
-    };
-
-  };
-
-  steam-launcher = buildKodiAddon {
-
-    pname = "steam-launcher";
-    namespace = "script.steam.launcher";
-    version = "3.5.1";
-
-    src = fetchFromGitHub rec {
-      owner = "teeedubb";
-      repo = owner + "-xbmc-repo";
-      rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
-      sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
-    };
-
-    propagatedBuildInputs = [ steam ];
-
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=157499";
-      description = "Launch Steam in Big Picture Mode from Kodi";
-      longDescription = ''
-        This add-on will close/minimise Kodi, launch Steam in Big
-        Picture Mode and when Steam BPM is exited (either by quitting
-        Steam or returning to the desktop) Kodi will
-        restart/maximise. Running pre/post Steam scripts can be
-        configured via the addon.
-      '';
-      maintainers = with maintainers; [ edwtjo ];
-    };
-  };
-
-  pdfreader = buildKodiAddon rec {
-    pname = "pdfreader";
-    namespace = "plugin.image.pdf";
-    version = "2.0.2";
-
-    src = fetchFromGitHub {
-      owner = "i96751414";
-      repo = "plugin.image.pdfreader";
-      rev = "v${version}";
-      sha256 = "0nkqhlm1gyagq6xpdgqvd5qxyr2ngpml9smdmzfabc8b972mwjml";
-    };
-
-    meta = {
-      homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
-      description = "A comic book reader";
-      maintainers = with maintainers; [ edwtjo ];
-    };
-  };
-
-  pvr-hts = buildKodiBinaryAddon rec {
-
-    pname = "pvr-hts";
-    namespace = "pvr.hts";
-    version = "8.2.2";
-
-    src = fetchFromGitHub {
-      owner = "kodi-pvr";
-      repo = "pvr.hts";
-      rev = "${version}-${rel}";
-      sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
-    };
-
-    meta = {
-      homepage = "https://github.com/kodi-pvr/pvr.hts";
-      description = "Kodi's Tvheadend HTSP client addon";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ cpages ];
-    };
-
-  };
-
-  pvr-hdhomerun = buildKodiBinaryAddon rec {
-
-    pname = "pvr-hdhomerun";
-    namespace = "pvr.hdhomerun";
-    version = "7.1.0";
-
-    src = fetchFromGitHub {
-      owner = "kodi-pvr";
-      repo = "pvr.hdhomerun";
-      rev = "${version}-${rel}";
-      sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
-    };
-
-    meta = {
-      homepage = "https://github.com/kodi-pvr/pvr.hdhomerun";
-      description = "Kodi's HDHomeRun PVR client addon";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ titanous ];
-    };
-
-    extraBuildInputs = [ jsoncpp libhdhomerun ];
-
-  };
-
-  pvr-iptvsimple = buildKodiBinaryAddon rec {
-
-    pname = "pvr-iptvsimple";
-    namespace = "pvr.iptvsimple";
-    version = "7.4.2";
-
-    src = fetchFromGitHub {
-      owner = "kodi-pvr";
-      repo = "pvr.iptvsimple";
-      rev = "${version}-${rel}";
-      sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
-    };
-
-    meta = {
-      homepage = "https://github.com/kodi-pvr/pvr.iptvsimple";
-      description = "Kodi's IPTV Simple client addon";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ ];
-      license = licenses.gpl2Plus;
-    };
-
-    extraBuildInputs = [ zlib pugixml ];
-  };
-
-  osmc-skin = buildKodiAddon rec {
-
-    pname = "osmc-skin";
-    namespace = "skin.osmc";
-    version = "18.0.0";
-
-    src = fetchFromGitHub {
-      owner = "osmc";
-      repo = namespace;
-      rev = "40a6c318641e2cbeac58fb0e7dde9c2beac737a0";
-      sha256 = "1l7hyfj5zvjxjdm94y325bmy1naak455b9l8952sb0gllzrcwj6s";
-    };
-
-    meta = {
-      homepage = "https://github.com/osmc/skin.osmc";
-      description = "The default skin for OSMC";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ worldofpeace ];
-      license = licenses.cc-by-nc-sa-30;
-    };
-  };
-
-  yatp = python3Packages.toPythonModule (buildKodiAddon rec {
-    pname = "yatp";
-    namespace = "plugin.video.yatp";
-    version = "3.3.2";
-
-    src = fetchFromGitHub {
-      owner = "romanvm";
-      repo = "kodi.yatp";
-      rev = "v.${version}";
-      sha256 = "12g1f57sx7dy6wy7ljl7siz2qs1kxcmijcg7xx2xpvmq61x9qa2d";
-    };
-
-    patches = [ ./yatp/dont-monkey.patch ];
-
-    propagatedBuildInputs = [
-      simpleplugin
-      python3Packages.requests
-      python3Packages.libtorrent-rasterbar
-    ];
-
-    meta = {
-      homepage = src.meta.homepage;
-      description = "Yet Another Torrent Player: libtorrent-based torrent streaming for Kodi";
-      license = licenses.gpl3;
-      broken = true; # requires port to python3
-    };
-  });
-
-  inputstream-adaptive = buildKodiBinaryAddon rec {
-
-    pname = "inputstream-adaptive";
-    namespace = "inputstream.adaptive";
-    version = "2.6.7";
-
-    src = fetchFromGitHub {
-      owner = "peak3d";
-      repo = "inputstream.adaptive";
-      rev = "${version}-${rel}";
-      sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
-    };
-
-    extraBuildInputs = [ expat ];
-
-    extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
-
-    extraInstallPhase = let n = namespace; in ''
-      ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
-    '';
-
-    meta = {
-      homepage = "https://github.com/peak3d/inputstream.adaptive";
-      description = "Kodi inputstream addon for several manifest types";
-      platforms = platforms.all;
-      maintainers = with maintainers; [ sephalon ];
-    };
-  };
-
-  vfs-sftp = buildKodiBinaryAddon rec {
-    pname = namespace;
-    namespace = "vfs.sftp";
-    version = "2.0.0";
-
-    src = fetchFromGitHub {
-      owner = "xbmc";
-      repo = namespace;
-      rev = "${version}-${rel}";
-      sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
-    };
-
-    meta = with lib; {
-      description = "SFTP Virtual Filesystem add-on for Kodi";
-      license = licenses.gpl2Plus;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ minijackson ];
-    };
-
-    extraBuildInputs = [ openssl libssh zlib ];
-  };
-
-  vfs-libarchive = buildKodiBinaryAddon rec {
-    pname = namespace;
-    namespace = "vfs.libarchive";
-    version = "2.0.0";
-
-    src = fetchFromGitHub {
-      owner = "xbmc";
-      repo = namespace;
-      rev = "${version}-${rel}";
-      sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
-    };
-
-    meta = with lib; {
-      description = "LibArchive Virtual Filesystem add-on for Kodi";
-      license = licenses.gpl2Plus;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ minijackson ];
-    };
-
-    extraBuildInputs = [ libarchive xz bzip2 zlib lz4 lzo openssl ];
-  };
-}; in self
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
index 6f926176eaf..3e6b3dc51dc 100644
--- a/pkgs/applications/video/kodi/unwrapped.nix
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -127,6 +127,7 @@ in stdenv.mkDerivation {
       bluez giflib glib harfbuzz lcms2 libpthreadstubs
       ffmpeg flatbuffers fmt fstrcmp rapidjson
       lirc
+      mesa # for libEGL
     ]
     ++ lib.optional x11Support [
       libX11 xorgproto libXt libXmu libXext.dev libXdmcp
diff --git a/pkgs/applications/video/kooha/default.nix b/pkgs/applications/video/kooha/default.nix
index 0a3de27f53e..1531378db89 100644
--- a/pkgs/applications/video/kooha/default.nix
+++ b/pkgs/applications/video/kooha/default.nix
@@ -4,14 +4,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "kooha";
-  version = "1.1.1";
+  version = "1.1.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "SeaDve";
     repo = "Kooha";
     rev = "v${version}";
-    sha256 = "05515xccs6y3wy28a6lkyn2jgi0fli53548l8qs73li8mdbxzd4c";
+    sha256 = "0jr55b39py9c8dc9rihn7ffx2yh71qqdk6pfn3c2ciiajjs74l17";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/video/lbry/default.nix b/pkgs/applications/video/lbry/default.nix
new file mode 100644
index 00000000000..cf5608e66a0
--- /dev/null
+++ b/pkgs/applications/video/lbry/default.nix
@@ -0,0 +1,49 @@
+{ lib, fetchurl, appimageTools}:
+
+let
+  pname = "lbry-desktop";
+  version = "0.50.2";
+in appimageTools.wrapAppImage rec {
+  name = "${pname}-${version}";
+
+  # Fetch from GitHub Releases and extract
+  src = appimageTools.extract {
+    inherit name;
+    src = fetchurl {
+      url = "https://github.com/lbryio/lbry-desktop/releases/download/v${version}/LBRY_${version}.AppImage";
+      # Gotten from latest-linux.yml
+      sha512 = "br6HvVRz+ybmAhmQh3vOC5wgLmOCVrGHDn59ueWk6rFoKOCbm8WdmdadOZvHeN1ld2nlvPzEy+KXMOEfF1LeQg==";
+    };
+  };
+
+  # At runtime, Lbry likes to have access to Ffmpeg
+  extraPkgs = pkgs: with pkgs; [
+    ffmpeg
+  ];
+
+  # General fixup
+  extraInstallCommands = ''
+    # Firstly, rename the executable to lbry for convinence
+    mv $out/bin/${name} $out/bin/lbry
+
+    # Now, install assets such as the desktop file and icons
+    install -m 444 -D ${src}/lbry.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/lbry.desktop \
+      --replace 'Exec=AppRun' 'Exec=lbry'
+    cp -r ${src}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "A browser and wallet for LBRY, the decentralized, user-controlled content marketplace";
+    longDescription = ''
+      The LBRY app is a graphical browser for the decentralized content marketplace provided by the LBRY protocol.
+      It is essentially the lbry daemon bundled with a UI using Electron.
+    '';
+    license = licenses.mit;
+    homepage = "https://lbry.com/";
+    downloadPage = "https://lbry.com/get/";
+    changelog = "https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md";
+    maintainers = with maintainers; [ enderger ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/losslesscut-bin/appimage.nix b/pkgs/applications/video/losslesscut-bin/appimage.nix
new file mode 100644
index 00000000000..d1f60c3dd2c
--- /dev/null
+++ b/pkgs/applications/video/losslesscut-bin/appimage.nix
@@ -0,0 +1,45 @@
+{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas, version }:
+
+let
+  pname = "losslesscut";
+  nameRepo = "lossless-cut";
+  nameCamel = "LosslessCut";
+  name = "${pname}-${version}";
+  nameSource = "${nameCamel}-linux.AppImage";
+  nameExecutable = "losslesscut";
+  owner = "mifi";
+  src = fetchurl {
+    url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}";
+    name = nameSource;
+    sha256 = "0aqz5ijl5japfzzbcdcd2mmihkb8b2fc2hs9kkm3211yb37c5ygv";
+  };
+  extracted = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  extraPkgs = ps: appimageTools.defaultFhsEnvArgs.multiPkgs ps;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${nameExecutable}}
+    (
+      mkdir -p $out/share
+      cd ${extracted}/usr
+      find share -mindepth 1 -type d -exec mkdir -p $out/{} \;
+      find share -mindepth 1 -type f,l -exec ln -s $PWD/{} $out/{} \;
+    )
+    ln -s ${extracted}/${nameExecutable}.png $out/share/icons/${nameExecutable}.png
+    mkdir $out/share/applications
+    cp ${extracted}/${nameExecutable}.desktop $out/share/applications
+    substituteInPlace $out/share/applications/${nameExecutable}.desktop \
+        --replace AppRun ${nameExecutable}
+  '';
+
+  meta.platforms = with lib.platforms; [ "x86_64-linux" ];
+}
diff --git a/pkgs/applications/video/losslesscut-bin/default.nix b/pkgs/applications/video/losslesscut-bin/default.nix
new file mode 100644
index 00000000000..01f9c158062
--- /dev/null
+++ b/pkgs/applications/video/losslesscut-bin/default.nix
@@ -0,0 +1,24 @@
+{ callPackage, stdenvNoCC, lib }:
+let
+  version = "3.33.1";
+  appimage = callPackage ./appimage.nix { inherit version; };
+  dmg = callPackage ./dmg.nix { inherit version; };
+  windows = callPackage ./windows.nix { inherit version; };
+in (
+  if stdenvNoCC.isDarwin then dmg
+  else if stdenvNoCC.isCygwin then windows
+  else appimage
+).overrideAttrs
+(oldAttrs: {
+  meta = with lib; {
+    description = "The swiss army knife of lossless video/audio editing";
+    homepage = "https://mifi.no/losslesscut/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ShamrockLee ];
+  } // oldAttrs.meta // {
+    platforms =
+      appimage.meta.platforms
+      ++ dmg.meta.platforms
+      ++ windows.meta.platforms;
+  };
+})
diff --git a/pkgs/applications/video/losslesscut-bin/dmg.nix b/pkgs/applications/video/losslesscut-bin/dmg.nix
new file mode 100644
index 00000000000..3d0bad19757
--- /dev/null
+++ b/pkgs/applications/video/losslesscut-bin/dmg.nix
@@ -0,0 +1,31 @@
+{ stdenvNoCC, lib, fetchurl, undmg, version }:
+
+let
+  pname = "losslesscut";
+  nameRepo = "lossless-cut";
+  nameCamel = "LosslessCut";
+  nameSource = "${nameCamel}-mac.dmg";
+  nameApp = nameCamel + ".app";
+  owner = "mifi";
+  src = fetchurl {
+    url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}";
+    name = nameSource;
+    sha256 = "0xa1avbwar7x7kv5yn2ldca4vj3nwaz0dhjm3bcdy59q914xn3dj";
+  };
+in stdenvNoCC.mkDerivation {
+  inherit pname version src;
+
+  nativeBuildInputs = [ undmg ];
+
+  unpackPhase = ''
+    undmg ${src}
+  '';
+  sourceRoot = nameApp;
+
+  installPhase = ''
+    mkdir -p $out/Applications/${nameApp}
+    cp -R . $out/Applications/${nameApp}
+  '';
+
+  meta.platforms = lib.platforms.darwin;
+}
diff --git a/pkgs/applications/video/losslesscut-bin/windows.nix b/pkgs/applications/video/losslesscut-bin/windows.nix
new file mode 100644
index 00000000000..fe5df9d6c90
--- /dev/null
+++ b/pkgs/applications/video/losslesscut-bin/windows.nix
@@ -0,0 +1,45 @@
+{ stdenvNoCC
+, lib
+, fetchurl
+, unzip
+, version
+, useMklink ? false
+, customSymlinkCommand ? null
+}:
+let
+  pname = "losslesscut";
+  nameRepo = "lossless-cut";
+  nameCamel = "LosslessCut";
+  nameSourceBase = "${nameCamel}-win";
+  nameSource = "${nameSourceBase}.zip";
+  nameExecutable = "${nameCamel}.exe";
+  owner = "mifi";
+  getSymlinkCommand = if (customSymlinkCommand != null) then customSymlinkCommand
+    else if useMklink then (targetPath: linkPath: "mklink ${targetPath} ${linkPath}")
+    else (targetPath: linkPath: "ln -s ${targetPath} ${linkPath}");
+in stdenvNoCC.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    name = nameSource;
+    url = "https://github.com/${owner}/${nameRepo}/releases/download/v${version}/${nameSource}";
+    sha256 = "1rq9frab0jl9y1mgmjhzsm734jvz0a646zq2wi5xzzspn4wikhvb";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  unpackPhase = ''
+    unzip $src -d ${nameSourceBase}
+  '';
+
+  sourceRoot = nameSourceBase;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec
+    cd ..
+    mv ${nameSourceBase} $out/libexec
+
+  '' + (getSymlinkCommand "${nameSourceBase}/${nameExecutable}" "$out/bin/${nameExecutable}");
+
+  meta.platforms = lib.platforms.windows;
+}
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index d26acfd7c0b..23bad049d6f 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -13,13 +13,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "55.0.0";
+  version = "56.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "129azp4cpdd05f6072gkxdjj811aqs29nbw6v6qm8vv47gfvjcf7";
+    sha256 = "0nhpp1zkggxqjj7lhj6as5mcjcz5yk3l1d1xcgs7i9153blam1yj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index 4e245b70d4f..0162a999709 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -1,4 +1,4 @@
-{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg_3
+{ config, lib, stdenv, fetchurl, pkg-config, freetype, yasm, ffmpeg
 , aalibSupport ? true, aalib ? null
 , fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
 , fribidiSupport ? true, fribidi ? null
@@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config yasm ];
   buildInputs = with lib;
-    [ freetype ffmpeg_3 ]
+    [ freetype ffmpeg ]
     ++ optional aalibSupport aalib
     ++ optional fontconfigSupport fontconfig
     ++ optional fribidiSupport fribidi
diff --git a/pkgs/applications/video/mpv/scripts/autoload.nix b/pkgs/applications/video/mpv/scripts/autoload.nix
index f64e702f21c..8f09070c5f4 100644
--- a/pkgs/applications/video/mpv/scripts/autoload.nix
+++ b/pkgs/applications/video/mpv/scripts/autoload.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, mpv-unwrapped, lib }:
+{ stdenvNoCC, mpv-unwrapped, lib }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mpv-autoload";
   version = mpv-unwrapped.version;
   src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autoload.lua";
diff --git a/pkgs/applications/video/mpv/scripts/convert.nix b/pkgs/applications/video/mpv/scripts/convert.nix
index ce069520332..40a1050cd32 100644
--- a/pkgs/applications/video/mpv/scripts/convert.nix
+++ b/pkgs/applications/video/mpv/scripts/convert.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchgit, lib
+{ stdenvNoCC, fetchgit, lib
 , yad, mkvtoolnix-cli, libnotify }:
 
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "mpv-convert-script";
   version = "2016-03-18";
   src = fetchgit {
@@ -12,15 +12,17 @@ stdenv.mkDerivation {
 
   patches = [ ./convert.patch ];
 
-  postPatch =
-    let
-      t = k: v: '' 'local ${k} = "${v}"' '';
-      subs = var: orig: repl: "--replace " + t var orig + t var repl;
-    in ''
-      substituteInPlace convert_script.lua \
-        ${subs "NOTIFY_CMD" "notify-send" "${libnotify}/bin/notify-send"} \
-        ${subs "YAD_CMD" "yad" "${yad}/bin/yad"} \
-        ${subs "MKVMERGE_CMD" "mkvmerge" "${mkvtoolnix-cli}/bin/mkvmerge"}
+  postPatch = ''
+    substituteInPlace convert_script.lua \
+      --replace 'mkvpropedit_exe = "mkvpropedit"' \
+                'mkvpropedit_exe = "${mkvtoolnix-cli}/bin/mkvpropedit"' \
+      --replace 'mkvmerge_exe = "mkvmerge"' \
+                'mkvmerge_exe = "${mkvtoolnix-cli}/bin/mkvmerge"' \
+      --replace 'yad_exe = "yad"' \
+                'yad_exe = "${yad}/bin/yad"' \
+      --replace 'notify_send_exe = "notify-send"' \
+                'notify_send_exe = "${libnotify}/bin/notify-send"' \
+
   '';
 
   dontBuild = true;
@@ -30,14 +32,15 @@ stdenv.mkDerivation {
   '';
   passthru.scriptName = "convert_script.lua";
 
-  meta = {
+  meta = with lib; {
     description = "Convert parts of a video while you are watching it in mpv";
     homepage = "https://gist.github.com/Zehkul/25ea7ae77b30af959be0";
-    maintainers = [ lib.maintainers.Profpatsch ];
+    maintainers = [ maintainers.Profpatsch ];
     longDescription = ''
       When this script is loaded into mpv, you can hit Alt+W to mark the beginning
       and Alt+W again to mark the end of the clip. Then a settings window opens.
     '';
+    # author was asked to add a license https://gist.github.com/Zehkul/25ea7ae77b30af959be0#gistcomment-3715700
+    license = licenses.unfree;
   };
 }
-
diff --git a/pkgs/applications/video/mpv/scripts/convert.patch b/pkgs/applications/video/mpv/scripts/convert.patch
index 82171210b41..d3a891bb34c 100644
--- a/pkgs/applications/video/mpv/scripts/convert.patch
+++ b/pkgs/applications/video/mpv/scripts/convert.patch
@@ -1,17 +1,45 @@
---- convert/convert_script.lua	2016-03-18 19:30:49.675401969 +0100
-+++ convert_script.lua	2016-03-19 01:18:00.801897043 +0100
-@@ -3,6 +3,10 @@
+diff --git "a/Convert Script \342\200\223 README.md" "b/Convert Script \342\200\223 README.md"
+index 8e062c1..6e0d798 100644
+--- "a/Convert Script \342\200\223 README.md"	
++++ "b/Convert Script \342\200\223 README.md"	
+@@ -68,7 +68,7 @@ and set some options in ``mpv/lua-settings/convert_script.conf`` or with ``--scr
+     If you don’t want to upgrade your yad. Features like appending segments won’t be available. 
+ 
+     libvpx_fps
+-    Default: --oautofps
++    Default: ""
+     FPS settings (or any other settings really) for libvpx encoding. Set it to --ofps=24000/1001 for example. 
+ 
+-Warning: Some of these options aren’t very robust and setting them to bogus values will break the script. 
+\ No newline at end of file
++Warning: Some of these options aren’t very robust and setting them to bogus values will break the script. 
+diff --git a/convert_script.lua b/convert_script.lua
+index 17d3100..90f88ec 100644
+--- a/convert_script.lua
++++ b/convert_script.lua
+@@ -3,6 +3,12 @@ local msg = require 'mp.msg'
  local opt = require 'mp.options'
  local utils = require 'mp.utils'
  
-+local NOTIFY_CMD = "notify-send"
-+local YAD_CMD = "yad"
-+local MKVMERGE_CMD = "mkvmerge"
++-- executables
++local mkvpropedit_exe = "mkvpropedit"
++local mkvmerge_exe = "mkvmerge"
++local yad_exe = "yad"
++local notify_send_exe = "notify-send"
 +
  -- default options, convert_script.conf is read
  local options = {
      bitrate_multiplier = 0.975,			-- to make sure the file won’t go over the target file size, set it to 1 if you don’t care
-@@ -247,12 +247,12 @@
+@@ -14,7 +20,7 @@ local options = {
+     libvpx_options = "--ovcopts-add=cpu-used=0,auto-alt-ref=1,lag-in-frames=25,quality=good",
+     libvpx_vp9_options = "",
+     legacy_yad = false,				-- if you don’t want to upgrade to at least yad 0.18
+-    libvpx_fps = "--oautofps",			-- --ofps=24000/1001 for example
++    libvpx_fps = "",			-- --ofps=24000/1001 for example
+     audio_bitrate = 112,			-- mpv default, in kbps
+ }
+ 
+@@ -247,12 +253,12 @@ function encode(enc)
      if string.len(vf) > 0 then
          vf = vf .. ","
      end
@@ -26,42 +54,49 @@
      local audio_file = ""
      for index, param in pairs(audio_file_table) do
          audio_file = audio_file .. " --audio-file='" .. string.gsub(tostring(param), "'", "'\\''") .. "'"
-@@ -354,9 +358,9 @@
+@@ -354,9 +360,9 @@ function encode(enc)
      if ovc == "gif" then
          full_command = full_command .. ' --vf-add=lavfi=graph=\\"framestep=' .. framestep .. '\\" && convert ' 
          .. tmpfolder .. '/*.png -set delay ' .. delay .. ' -loop 0 -fuzz ' .. fuzz .. '% ' .. dither .. ' -layers optimize '
 -        .. full_output_path .. ' && rm -rf ' .. tmpfolder .. ' && notify-send "Gif done") & disown'
-+        .. full_output_path .. ' && rm -rf ' .. tmpfolder .. ' && ' .. NOTIFY_CMD .. ' "Gif done") & disown'
++        .. full_output_path .. ' && rm -rf ' .. tmpfolder .. ' && ' .. notify_send_exe .. ' "Gif done") & disown'
      else
 -        full_command = full_command .. ' && notify-send "Encoding done"; mkvpropedit '
-+        full_command = full_command .. ' && ' .. NOTIFY_CMD .. ' "Encoding done"; mkvpropedit '
++        full_command = full_command .. ' && ' .. notify_send_exe .. ' "Encoding done"; ' .. mkvpropedit_exe .. ' '
          .. full_output_path .. ' -s title="' .. metadata_title .. '") & disown'
      end
      
-@@ -409,7 +413,7 @@
+@@ -409,7 +415,7 @@ function encode_copy(enc)
      sep = ",+"
      
      if enc then
 -        local command = "mkvmerge '" .. video .. "' " .. mkvmerge_parts .. " -o " .. full_output_path
-+        local command = MKVMERGE_CMD .. " '" .. video .. "' " .. mkvmerge_parts .. " -o " .. full_output_path
++        local command = mkvmerge_exe .. " '" .. video .. "' " .. mkvmerge_parts .. " -o " .. full_output_path
          msg.info(command)
          os.execute(command)
          clear()
-@@ -508,7 +512,7 @@
+@@ -508,7 +514,7 @@ function call_gui ()
      end
      
      
 -    local yad_command = [[LC_NUMERIC=C yad --title="Convert Script" --center --form --fixed --always-print-result \
-+    local yad_command = [[LC_NUMERIC=C ]] .. YAD_CMD .. [[ --title="Convert Script" --center --form --fixed --always-print-result \
++    local yad_command = [[LC_NUMERIC=C ]] .. yad_exe .. [[ --title="Convert Script" --center --form --fixed --always-print-result \
      --name "convert script" --class "Convert Script" --field="Resize to height:NUM" "]] .. scale_sav		--yad_table 1
      .. [[" --field="Resize to width instead:CHK" ]] .. resize_to_width_instead .. " "				--yad_table 2
      if options.legacy_yad then
-@@ -543,7 +547,7 @@
-     yad_command = yad_command .. [[ --button="Crop:1" --button="gtk-cancel:2" --button="gtk-ok:0"; ret=$? && echo $ret]]
-     
-     if gif_dialog then
--        yad_command = [[echo $(LC_NUMERIC=C yad --title="Gif settings" --name "convert script" --class "Convert Script" \
-+        yad_command = [[echo $(LC_NUMERIC=C ]] .. YAD_CMD .. [[ --title="Gif settings" --name "convert script" --class "Convert Script" \
-         --center --form --always-print-result --separator="…" \
-         --field="Fuzz Factor:NUM" '1!0..100!0.5!1' \
-         --field="Framestep:NUM" '3!1..3!1' \
+@@ -524,7 +530,7 @@ function call_gui ()
+         yad_command = yad_command
+         .. [[--field="2pass:CHK" "false" ]]									--yad_table 5
+         .. [[--field="Encode options::CBE" '! --ovcopts=b=2000,cpu-used=0,auto-alt-ref=1,lag-in-frames=25,quality=good,threads=4' ]]	--yad_table 6
+-        .. [[--field="Output format::CBE" ' --ovc=libx264! --oautofps --of=webm --ovc=libvpx' ]]		
++        .. [[--field="Output format::CBE" ' --ovc=libx264! --of=webm --ovc=libvpx' ]]
+         .. [[--field="Simple:FBTN" 'bash -c "echo \"simple\" && kill -s SIGUSR1 \"$YAD_PID\""' ]]
+         advanced = true
+     else
+@@ -734,4 +740,4 @@ mp.set_key_bindings({
+ 
+ mp.add_key_binding("alt+w", "convert_script", convert_script_hotkey_call)
+ 
+-mp.register_event("tick", tick)
+\ No newline at end of file
++mp.register_event("tick", tick)
diff --git a/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
new file mode 100644
index 00000000000..b7e95324f58
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/mpv-playlistmanager.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchFromGitHub, youtube-dl }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mpv-playlistmanager";
+  version = "unstable-2021-03-09";
+
+  src = fetchFromGitHub {
+    owner = "jonniek";
+    repo = "mpv-playlistmanager";
+    rev = "c15a0334cf6d4581882fa31ddb1e6e7f2d937a3e";
+    sha256 = "uxcvgcSGS61UU8MmuD6qMRqpIa53iasH/vkg1xY7MVc=";
+  };
+
+  postPatch = ''
+    substituteInPlace playlistmanager.lua \
+    --replace "'youtube-dl'" "'${youtube-dl}/bin/youtube-dl'" \
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/mpv/scripts
+    cp playlistmanager.lua $out/share/mpv/scripts
+    runHook postInstall
+  '';
+
+  passthru.scriptName = "playlistmanager.lua";
+
+  meta = with lib; {
+    description = "Mpv lua script to create and manage playlists";
+    homepage = "https://github.com/jonniek/mpv-playlistmanager";
+    license = licenses.unlicense;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ lunik1 ];
+  };
+}
diff --git a/pkgs/applications/video/mpv/scripts/mpvacious.nix b/pkgs/applications/video/mpv/scripts/mpvacious.nix
index 5bfcd2ac32c..3225317d78b 100644
--- a/pkgs/applications/video/mpv/scripts/mpvacious.nix
+++ b/pkgs/applications/video/mpv/scripts/mpvacious.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, curl, xclip }:
+{ lib, stdenvNoCC, fetchFromGitHub, curl, xclip }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mpvacious";
-  version = "0.12";
+  version = "0.14";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "mpvacious";
     rev = "v${version}";
-    sha256 = "1xz4qh2ibfv03m3pfdasim9byvlm78wigx1linmih19vgg99vky2";
+    sha256 = "0r031hh3hpim9dli15m9q4cwka4ljvwg0hdgyp36r1n097q44r5f";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
index 0c0597d3afb..99b731757ff 100644
--- a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
+++ b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv
+{ lib, stdenvNoCC
 , fetchFromGitHub }:
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "simple-mpv-ui";
   version = "1.0.0";
 
diff --git a/pkgs/applications/video/mpv/scripts/sponsorblock.nix b/pkgs/applications/video/mpv/scripts/sponsorblock.nix
index 79ede806b0c..5d33bfd92a4 100644
--- a/pkgs/applications/video/mpv/scripts/sponsorblock.nix
+++ b/pkgs/applications/video/mpv/scripts/sponsorblock.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, python3 }:
+{ lib, stdenvNoCC, fetchFromGitHub, fetchpatch, python3 }:
 
 # Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "mpv_sponsorblock";
   version = "unstable-2020-07-05";
 
diff --git a/pkgs/applications/video/mpv/scripts/thumbnail.nix b/pkgs/applications/video/mpv/scripts/thumbnail.nix
index cda15b2674c..4bee220f4c9 100644
--- a/pkgs/applications/video/mpv/scripts/thumbnail.nix
+++ b/pkgs/applications/video/mpv/scripts/thumbnail.nix
@@ -1,6 +1,6 @@
-{ fetchFromGitHub, lib, python3, stdenv }:
+{ fetchFromGitHub, lib, python3, stdenvNoCC }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mpv_thumbnail_script";
   version = "unstable-2020-01-16";
 
diff --git a/pkgs/applications/video/screenkey/default.nix b/pkgs/applications/video/screenkey/default.nix
index 00ead0f89a3..4377b255fd9 100644
--- a/pkgs/applications/video/screenkey/default.nix
+++ b/pkgs/applications/video/screenkey/default.nix
@@ -1,9 +1,7 @@
 { lib
 , fetchFromGitLab
 # native
-, intltool
 , wrapGAppsHook
-, file
 # not native
 , xorg
 , gobject-introspection
@@ -13,22 +11,16 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "screenkey";
-  version = "1.2";
+  version = "1.4";
 
   src = fetchFromGitLab {
     owner = "screenkey";
     repo = "screenkey";
     rev = "v${version}";
-    sha256 = "1x13n57iy2pg3h3r994q3g5nbmh2gwk3qidmmcv0g7qa89n2gwbj";
+    sha256 = "1rfngmkh01g5192pi04r1fm7vsz6hg9k3qd313sn9rl9xkjgp11l";
   };
 
   nativeBuildInputs = [
-    python3.pkgs.distutils_extra
-    # Shouldn't be needed once https://gitlab.com/screenkey/screenkey/-/issues/122 is fixed.
-    intltool
-    # We are not sure why is this needed, but without it we get "file: command
-    # not found" errors during build.
-    file
     wrapGAppsHook
     # for setup hook
     gobject-introspection
@@ -39,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    Babel
     pycairo
     pygobject3
   ];
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 24cb3769aac..3a9c4809c62 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -25,13 +25,13 @@ assert lib.versionAtLeast mlt.version "6.24.0";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "21.02.27";
+  version = "21.03.21";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "bcuJz27jDAB3OPEKq3xNgfv6C31UoMKosS4YIRZNMjM=";
+    sha256 = "UdeHbNkJ0U9FeTmpbcU4JxiyIHkrlC8ErhtY6zdCZEk=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index 939ae7c4440..14575a88dc1 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, mkDerivation, fetchurl, alsaLib, ffmpeg_3, libjack2, libX11, libXext, qtx11extras
-, libXfixes, libGLU, libGL, pkg-config, libpulseaudio, qtbase, cmake, ninja
+{ lib, stdenv, mkDerivation, fetchFromGitHub, alsaLib, ffmpeg, libjack2, libX11, libXext, libXinerama, qtx11extras
+, libXfixes, libGLU, libGL, pkg-config, libpulseaudio, libv4l, qtbase, qttools, cmake, ninja
 }:
 
 mkDerivation rec {
   pname = "simplescreenrecorder";
-  version = "0.3.11";
+  version = "0.4.3";
 
-  src = fetchurl {
-    url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz";
-    sha256 = "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal";
+  src = fetchFromGitHub {
+    owner = "MaartenBaert";
+    repo = "ssr";
+    rev = version;
+    sha256 = "0mrx8wprs8bi42fwwvk6rh634ic9jnn0gkfpd6q9pcawnnbz3vq8";
   };
 
   cmakeFlags = [ "-DWITH_QT5=TRUE" ];
@@ -25,14 +27,14 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config cmake ninja ];
   buildInputs = [
-    alsaLib ffmpeg_3 libjack2 libX11 libXext libXfixes libGLU libGL
-    libpulseaudio qtbase qtx11extras
+    alsaLib ffmpeg libjack2 libX11 libXext libXfixes libXinerama libGLU libGL
+    libpulseaudio libv4l qtbase qttools qtx11extras
   ];
 
   meta = with lib; {
     description = "A screen recorder for Linux";
     homepage = "https://www.maartenbaert.be/simplescreenrecorder";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.goibhniu ];
   };
diff --git a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
index ba02240ce1f..9cf634285fc 100644
--- a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
+++ b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
@@ -12,10 +12,19 @@ index 48be48d..5038d4c 100755
 -LD_PRELOAD="$LD_PRELOAD:libssr-glinject.so" "$@"
 +LD_PRELOAD="$LD_PRELOAD:@out@/lib/libssr-glinject.so" "$@"
 diff --git a/src/AV/Input/GLInjectInput.cpp b/src/AV/Input/GLInjectInput.cpp
-index 6b378f8..cbcf82b 100644
+index fc98f31..18f5196 100644
 --- a/src/AV/Input/GLInjectInput.cpp
 +++ b/src/AV/Input/GLInjectInput.cpp
-@@ -96,7 +96,7 @@ void GLInjectInput::SetCapturing(bool capturing) {
+@@ -113,7 +113,7 @@ bool ExecuteDetached(const char* command, const char* working_directory) {
+ 
+ 			// try to execute command
+ 			do {
+-				res = execl("/bin/sh", "/bin/sh", "-c", command, (char*) NULL);
++				res = execl("@sh@", "@sh@", "-c", command, (char*) NULL);
+ 			} while(res == -1 and errno == EINTR);
+ 
+ 			// failed, send feedback
+@@ -207,7 +207,7 @@ void GLInjectInput::SetCapturing(bool capturing) {
  bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permissions, const QString& command, const QString& working_directory) {
  
  	// prepare command
@@ -24,12 +33,3 @@ index 6b378f8..cbcf82b 100644
  	full_command += "SSR_CHANNEL=\"" + ShellEscape(channel) + "\" ";
  	if(relax_permissions)
  		full_command += "SSR_STREAM_RELAX_PERMISSIONS=1 ";
-@@ -106,7 +106,7 @@ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permiss
- 	QStringList args;
- 	args.push_back("-c");
- 	args.push_back(full_command);
--	return QProcess::startDetached("/bin/sh", args, working_directory);
-+	return QProcess::startDetached("@sh@", args, working_directory);
- 
- }
- 
diff --git a/pkgs/applications/video/srt-live-server/default.nix b/pkgs/applications/video/srt-live-server/default.nix
new file mode 100644
index 00000000000..e02d15a595b
--- /dev/null
+++ b/pkgs/applications/video/srt-live-server/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, srt
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "srt-live-server";
+  version = "1.4.8";
+
+  src = fetchFromGitHub {
+    owner = "Edward-Wu";
+    repo = "srt-live-server";
+    rev = "V${version}";
+    sha256 = "0x48sxpgxznb1ymx8shw437pcgk76ka5rx0zhn9b3cyi9jlq1yld";
+  };
+
+  patches = [
+    # https://github.com/Edward-Wu/srt-live-server/pull/94
+    ./fix-insecure-printfs.patch
+  ];
+
+  buildInputs = [ srt zlib ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  meta = with lib; {
+    description = "srt live server for low latency";
+    license = licenses.mit;
+    homepage = "https://github.com/Edward-Wu/srt-live-server";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch b/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch
new file mode 100644
index 00000000000..8cc85549d13
--- /dev/null
+++ b/pkgs/applications/video/srt-live-server/fix-insecure-printfs.patch
@@ -0,0 +1,61 @@
+diff --color -ur a/Makefile b/Makefile
+--- a/Makefile	2021-04-16 13:02:41.416453040 +0200
++++ b/Makefile	2021-04-16 13:21:23.020089623 +0200
+@@ -1,3 +1,4 @@
++PREFIX = /usr/local

+ SHELL = /bin/sh

+ MAIN_NAME=sls

+ CLIENT_NAME=slc

+@@ -64,3 +65,16 @@
+ 	rm -f $(OUTPUT_PATH)/*.o

+ 	rm -rf $(BIN_PATH)/*

+ 

++install: all

++	@echo installing executable files to ${DESTDIR}${PREFIX}/bin

++	@mkdir -p "${DESTDIR}${PREFIX}/bin"

++	@cp -f ${BIN_PATH}/${MAIN_NAME} "${DESTDIR}${PREFIX}/bin"

++	@chmod 755 "${DESTDIR}${PREFIX}/bin/${MAIN_NAME}"

++	@cp -f ${BIN_PATH}/${CLIENT_NAME} "${DESTDIR}${PREFIX}/bin"

++	@chmod 755 "${DESTDIR}${PREFIX}/bin/${CLIENT_NAME}"

++

++uninstall:

++	@echo removing executable files from ${DESTDIR}${PREFIX}/bin

++	@rm -f "${DESTDIR}${PREFIX}/bin/${MAIN_NAME}"

++	@rm -f "${DESTDIR}${PREFIX}/bin/${CLIENT_NAME}"

++

+diff --color -ur a/slscore/HttpClient.cpp b/slscore/HttpClient.cpp
+--- a/slscore/HttpClient.cpp	2021-04-16 13:02:41.416453040 +0200
++++ b/slscore/HttpClient.cpp	2021-04-16 13:11:40.343866698 +0200
+@@ -90,7 +90,7 @@
+ 		goto FUNC_END;
+ 	}
+ 	if (NULL != method && strlen(method) > 0) {
+-		sprintf(m_http_method, method);
++		strcpy(m_http_method, method);
+ 	}
+ 
+ 	m_interval = interval;
+diff --color -ur a/slscore/SLSLog.cpp b/slscore/SLSLog.cpp
+--- a/slscore/SLSLog.cpp	2021-04-16 13:02:41.416453040 +0200
++++ b/slscore/SLSLog.cpp	2021-04-16 13:08:16.836119519 +0200
+@@ -85,7 +85,7 @@
+     vsnprintf (buf , 4095 , fmt , vl);
+     //sprintf(buf_info, "%s %s: %s\n" , cur_time, LOG_LEVEL_NAME[level], buf);
+     sprintf(buf_info, "%s:%03d %s %s: %s\n" , cur_time, cur_time_msec, APP_NAME, LOG_LEVEL_NAME[level], buf);
+-    printf(buf_info);
++    puts(buf_info);
+ 
+     if (m_log_file) {
+         fwrite(buf_info, strlen(buf_info), 1, m_log_file);
+diff --color -ur a/slscore/SLSSrt.cpp b/slscore/SLSSrt.cpp
+--- a/slscore/SLSSrt.cpp	2021-04-16 13:02:41.417452995 +0200
++++ b/slscore/SLSSrt.cpp	2021-04-16 13:10:11.004957820 +0200
+@@ -124,7 +124,7 @@
+     std::map<int, std::string>::iterator it;
+     for(it=map_error.begin(); it!=map_error.end(); ++it) {
+         sprintf(szBuf, "%d: %s\n", it->first, it->second.c_str());
+-        printf(szBuf);
++        puts(szBuf);
+     }
+     printf("----------end------------\n");
+     map_error.clear();
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index bc265d3e786..4d90e6327b9 100644
--- a/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -19,6 +19,7 @@
 , gtk3-x11
 , libudev0-shim
 , libuuid
+, mesa
 , nss
 , nspr
 , xorg
@@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
     glib
     pango
     gtk3-x11
+    mesa
     nss
     nspr
     libuuid
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index 97607f939fd..94bd0877a7d 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -1,30 +1,29 @@
 { lib
-, pythonPackages
+, python3
 , fetchFromGitHub
 , rtmpdump
-, ffmpeg_3
+, ffmpeg
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "streamlink";
-  version = "2.0.0";
-  disabled = pythonPackages.pythonOlder "3.5.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
     rev = version;
-    sha256 = "+W9Nu5Ze08r7IlUZOkkVOz582E1Bbj0a3qIQHwxSmj8=";
+    sha256 = "14vqh4pck3q766qln7c57n9bz8zrlgfqrpkdn8x0ac9zhlhfn1zm";
   };
 
-  checkInputs = with pythonPackages; [
-    pytest
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
     mock
     requests-mock
     freezegun
   ];
 
-  propagatedBuildInputs = (with pythonPackages; [
+  propagatedBuildInputs = (with python3.pkgs; [
     pycryptodome
     requests
     iso-639
@@ -33,7 +32,11 @@ pythonPackages.buildPythonApplication rec {
     isodate
   ]) ++ [
     rtmpdump
-    ffmpeg_3
+    ffmpeg
+  ];
+
+  disabledTests = [
+    "test_plugin_not_in_removed_list"
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index d3a440fefc5..28e52a639ee 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -15,13 +15,13 @@
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.20.1";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "sha256-cli/ipWxZgAeDMBUMuOU3l2mKv4POvOhi7ctbVdU6jc=";
+    sha256 = "sha256-qhS1RLkM7xDsH3qDVL+ORXmwULYz8UK1oJM29oRqJ0M=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 1aee54c8af8..a6bf559a41a 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.19";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-G9asWedX03cP5Qg5HIzlSIwwqNL16kiyWairk+6Kabw=";
+    sha256 = "sha256-v5uESTEspIc8rhZXrQqLEVMDvvPcfHuFoj6lI4M5z70=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 889752b2703..e965b397f9f 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.34.0";
+  version = "1.35.0";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "1ynpd6yb1xc18y528sshd5k9nkz48h1zifj2w4sjh5n0864lna7b";
+    sha256 = "0j350rhyav844vhaa1f5idffflgs5h3c5zcazly9s5sf4invm49y";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index f3d5572750f..954404e5268 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -105,6 +105,8 @@ rec {
 
         # systemd
         install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
+        substituteInPlace $out/etc/systemd/system/docker.service --replace /usr/bin/dockerd $out/bin/dockerd
+        install -Dm644 ./contrib/init/systemd/docker.socket $out/etc/systemd/system/docker.socket
       '';
 
       DOCKER_BUILDTAGS = []
@@ -178,6 +180,11 @@ rec {
     '' + optionalString (stdenv.isLinux) ''
       # symlink docker daemon to docker cli derivation
       ln -s ${moby}/bin/dockerd $out/bin/dockerd
+
+      # systemd
+      mkdir -p $out/etc/systemd/system
+      ln -s ${moby}/etc/systemd/system/docker.service $out/etc/systemd/system/docker.service
+      ln -s ${moby}/etc/systemd/system/docker.socket $out/etc/systemd/system/docker.socket
     '' + ''
       # completion (cli)
       installShellCompletion --bash ./contrib/completion/bash/docker
diff --git a/pkgs/applications/virtualization/firecracker/default.nix b/pkgs/applications/virtualization/firecracker/default.nix
index f041ea7460c..a632640e900 100644
--- a/pkgs/applications/virtualization/firecracker/default.nix
+++ b/pkgs/applications/virtualization/firecracker/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv }:
 
 let
-  version = "0.23.0";
+  version = "0.24.2";
 
   suffix = {
     x86_64-linux  = "x86_64";
@@ -9,33 +9,28 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
-  fetchbin = name: sha256: fetchurl {
-    url    = "${baseurl}/v${version}/${name}-v${version}-${suffix}";
-    sha256 = sha256."${stdenv.hostPlatform.system}";
-  };
-
-  firecracker-bin = fetchbin "firecracker" {
-    x86_64-linux  = "11h6qkq55y1w0mlkfkbnpxxai73rzxkiz07i747m7a9azbrmldp8";
-    aarch64-linux = "0zyx7md54w0fhqk1anfyjfdqrkg2mjyy17y9jk17p34yrw8j9y29";
-  };
 
-  jailer-bin = fetchbin "jailer" {
-    x86_64-linux  = "15slr2azqvyqlhvlh7zk1n0rkfq282kj0pllp19r0yl1w8ns1gw5";
-    aarch64-linux = "1d92jhd6fb7w7ciz15rcfp8jf74r2503w2fl1b6pznpc8h4qscfd";
+  dlbin = sha256: fetchurl {
+    url    = "${baseurl}/v${version}/firecracker-v${version}-${suffix}.tgz";
+    sha256 = sha256."${stdenv.hostPlatform.system}";
   };
 
 in
 stdenv.mkDerivation {
   pname = "firecracker";
   inherit version;
-  srcs = [ firecracker-bin jailer-bin ];
 
-  unpackPhase    = ":";
+  sourceRoot = ".";
+  src = dlbin {
+    x86_64-linux  = "0l7x9sfyx52n0mwrmicdcnhm8z10q57kk1a5wf459l8lvp59xw08";
+    aarch64-linux = "0m7xs12g97z1ipzaf7dgknf3azlah0p6bdr9i454azvzg955238b";
+  };
+
   configurePhase = ":";
 
   buildPhase     = ''
-    cp ${firecracker-bin} firecracker
-    cp ${jailer-bin}      jailer
+    mv firecracker-* firecracker
+    mv jailer-*      jailer
     chmod +x firecracker jailer
   '';
 
diff --git a/pkgs/applications/virtualization/ignite/default.nix b/pkgs/applications/virtualization/ignite/default.nix
new file mode 100644
index 00000000000..5439ad57b1a
--- /dev/null
+++ b/pkgs/applications/virtualization/ignite/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, cni-plugins
+, buildGoModule
+, firecracker
+, containerd
+, runc
+, makeWrapper
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec{
+  pname = "ignite";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "weaveworks";
+    repo = "ignite";
+    rev = "v${version}";
+    sha256 = "sha256-rjCsZ12DHcSw5GZu6jGTtqCPOZDSbYoMplkqvspbvO8=";
+    leaveDotGit = true;
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  postPatch = ''
+    # ignite tries to run cni-plugins programs from /opt/cni/bin
+    substituteInPlace pkg/constants/dependencies.go \
+      --replace "/opt/cni/bin/loopback" ${cni-plugins}/bin/loopback \
+      --replace "/opt/cni/bin/bridge" ${cni-plugins}/bin/bridge
+
+    # ignite tries to run cni-plugins programs from /opt/cni/bin
+    substituteInPlace pkg/network/cni/cni.go \
+      --replace "/opt/cni/bin" ${cni-plugins}/bin
+
+    # fetchgit doesn't fetch tags from git repository so it's necessary to force IGNITE_GIT_VERSION to be ${version}
+    # also forcing git state to be clean because if it's dirty ignite will try to fetch the image weaveworks/ignite:dev
+    # which is not in docker.io, we want it to fetch the image weaveworks/ignite:v${version}
+    substituteInPlace hack/ldflags.sh \
+      --replace '$(git describe --tags --abbrev=14 "''${IGNITE_GIT_COMMIT}^{commit}" 2>/dev/null)' "v${version}" \
+      --replace 'IGNITE_GIT_TREE_STATE="dirty"' 'IGNITE_GIT_TREE_STATE="clean"'
+  '';
+
+  nativeBuildInputs = [
+    git
+    makeWrapper
+  ];
+
+  buildInputs = [
+    firecracker
+  ];
+
+  preBuild = ''
+    patchShebangs ./hack/ldflags.sh
+    export buildFlagsArray+=("-ldflags=$(./hack/ldflags.sh)")
+  '';
+
+  postInstall = ''
+    for prog in hack ignite ignited ignite-spawn; do
+        wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ cni-plugins firecracker containerd runc ]}
+    done
+  '';
+
+  meta = with lib; {
+    description = "Ignite a Firecracker microVM";
+    homepage = "https://github.com/weaveworks/ignite";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/pkgs/applications/virtualization/looking-glass-client/0001-client-all-fix-more-maybe-uninitialized-when-O3-is-i.patch b/pkgs/applications/virtualization/looking-glass-client/0001-client-all-fix-more-maybe-uninitialized-when-O3-is-i.patch
new file mode 100644
index 00000000000..82ce050b587
--- /dev/null
+++ b/pkgs/applications/virtualization/looking-glass-client/0001-client-all-fix-more-maybe-uninitialized-when-O3-is-i.patch
@@ -0,0 +1,45 @@
+From 95a7293b30ff7b89d615daea00269ed32f4b70a2 Mon Sep 17 00:00:00 2001
+From: Geoffrey McRae <geoff@hostfission.com>
+Date: Tue, 23 Feb 2021 20:25:30 +1100
+Subject: [PATCH] [client] all: fix more `maybe-uninitialized` when `-O3` is in
+ use
+
+Closes #475
+---
+ client/renderers/EGL/egl.c | 3 ++-
+ client/src/main.c          | 5 +++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/client/renderers/EGL/egl.c b/client/renderers/EGL/egl.c
+index b7a5644..72ce50d 100644
+--- a/client/renderers/EGL/egl.c
++++ b/client/renderers/EGL/egl.c
+@@ -271,7 +271,8 @@ static void egl_calc_mouse_size(struct Inst * this)
+   if (!this->formatValid)
+     return;
+ 
+-  int w, h;
++  int w  = 0, h = 0;
++
+   switch(this->format.rotate)
+   {
+     case LG_ROTATE_0:
+diff --git a/client/src/main.c b/client/src/main.c
+index f05e929..f5d6fad 100644
+--- a/client/src/main.c
++++ b/client/src/main.c
+@@ -186,8 +186,9 @@ static void updatePositionInfo(void)
+   if (!g_state.haveSrcSize)
+     goto done;
+ 
+-  float srcW;
+-  float srcH;
++  float srcW = 0.0f;
++  float srcH = 0.0f;
++
+   switch(params.winRotate)
+   {
+     case LG_ROTATE_0:
+-- 
+2.30.1
+
diff --git a/pkgs/applications/virtualization/looking-glass-client/default.nix b/pkgs/applications/virtualization/looking-glass-client/default.nix
index 720f684f44c..345018bbe4e 100644
--- a/pkgs/applications/virtualization/looking-glass-client/default.nix
+++ b/pkgs/applications/virtualization/looking-glass-client/default.nix
@@ -1,17 +1,18 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_ttf, spice-protocol
 , fontconfig, libX11, freefont_ttf, nettle, libpthreadstubs, libXau, libXdmcp
-, libXi, libXext, wayland, libffi, libGLU, expat, libbfd
+, libXi, libXext, wayland, wayland-protocols, libffi, libGLU, libXScrnSaver
+, expat, libbfd
 }:
 
 stdenv.mkDerivation rec {
   pname = "looking-glass-client";
-  version = "B2";
+  version = "B3";
 
   src = fetchFromGitHub {
     owner = "gnif";
     repo = "LookingGlass";
     rev = version;
-    sha256 = "100b5kzh8gr81kzw5fdqz2jsms25hv3815d31vy3qd6lrlm5gs3d";
+    sha256 = "1vmabjzn85p0brdian9lbpjq39agzn8k0limn8zjm713lh3n3c0f";
     fetchSubmodules = true;
   };
 
@@ -19,10 +20,18 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     SDL2 SDL2_ttf spice-protocol fontconfig libX11 freefont_ttf nettle
-    libpthreadstubs libXau libXdmcp libXi libXext wayland libffi libGLU expat
-    libbfd
+    libpthreadstubs libXau libXdmcp libXi libXext wayland wayland-protocols
+    libffi libGLU libXScrnSaver expat libbfd
   ];
 
+  patches = [
+    # error: ‘h’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
+    # Fixed upstream in master in 8771103abbfd04da9787dea760405364af0d82de, but not in B3.
+    # Including our own patch here since upstream commit patch doesnt apply cleanly on B3
+    ./0001-client-all-fix-more-maybe-uninitialized-when-O3-is-i.patch
+  ];
+  patchFlags = "-p2";
+
   sourceRoot = "source/client";
   NIX_CFLAGS_COMPILE = "-mavx"; # Fix some sort of AVX compiler problem.
 
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index b64fc82f532..c8b8467def5 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , installShellFiles
@@ -16,13 +17,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "3.1.0";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "sha256-Cql9ikk0lo/LeWNykEJSKgfGnBSUU5vOh/zUIEvMapk=";
+    sha256 = "sha256-PS41e7myv5xCSJIeT+SRj4rLVCXpthq7KeHisYoSiOE=";
   };
 
   patches = [
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index c04d3b33945..c3484a3312c 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -84,6 +84,126 @@ stdenv.mkDerivation rec {
   patches = [
     ./fix-qemu-ga.patch
     ./9p-ignore-noatime.patch
+    (fetchpatch {
+      name = "CVE-2020-27821.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/memory-clamp-cached-translation-if-points-to-MMIO-region-CVE-2020-27821.patch";
+      sha256 = "0sj0kr0g6jalygr5mb9i17fgr491jzaxvk3dvala0268940s01x9";
+    })
+    (fetchpatch {
+      name = "CVE-2021-20221.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/arm_gic-fix-interrupt-ID-in-GICD_SGIR-CVE-2021-20221.patch";
+      sha256 = "1iyvcw87hzlc57fg5l87vddqmch8iw2yghk0s125hk5shn1bygjq";
+    })
+    (fetchpatch {
+      name = "CVE-2021-20181.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/9pfs-Fully-restart-unreclaim-loop-CVE-2021-20181.patch";
+      sha256 = "149ifiazj6rn4d4mv2c7lcayq744fijsv5abxlb8bhbkj99wd64f";
+    })
+    (fetchpatch {
+      name = "CVE-2020-35517.part-1.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-extract-lo_do_open-from-lo_open.patch";
+      sha256 = "0j4waaz6q54by4a7vd5m8s2n8y0an9hqf0ndycxsy03g4ksm669d";
+    })
+    (fetchpatch {
+      name = "CVE-2020-35517.part-2.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-optionally-return-inode-pointer-from-lo_do_lookup.patch";
+      sha256 = "08bag890r6dx2rhnq58gyvsxvzwqgvn83pjlg95b5ic0z6gyjnsg";
+    })
+    (fetchpatch {
+      name = "CVE-2020-35517.part-3.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-prevent-opening-of-special-files-CVE-2020-35517.patch";
+      sha256 = "0ziy6638zbkn037l29ywirvgymbqq66l5rngg8iwyky67acilv94";
+    })
+    (fetchpatch {
+      name = "CVE-2021-20263.part-1.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-save-error-code-early-at-the-failure-callsite.patch";
+      sha256 = "15rwb15yjpclrqaxkhx76npr8zlfm9mj4jb19czg093is2cn4rys";
+    })
+    (fetchpatch {
+      name = "CVE-2021-20263.part-2.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-drop-remapped-security.capability-xattr-as-needed-CVE-2021-20263.patch";
+      sha256 = "06ylz80ilg30wlskd4dsjx677fp5qr8cranwlakvjhr88b630xw0";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-1.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-introduce.patch";
+      sha256 = "0hcpf00vqpg9rc0wl8cry905w04614843aqifybyv15wbv190gpz";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-2.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-cadence_gem.patch";
+      sha256 = "12mjnrvs6p4g5frzqb08k4h86hphdqlka91fcma2a3m4ap98nrxy";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-3.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-dp8393x.patch";
+      sha256 = "02z6q0578fj55phjlg2larrsx3psch2ixzy470yf57jl3jq1dy6k";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-4.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-e1000.patch";
+      sha256 = "0zzbiz8i9js524mcdi739c7hrsmn82gnafrygi0xrd5sqf1hp08z";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-5.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-lan9118.patch";
+      sha256 = "1f44v5znd9s7l7wgc71nbg8jw1bjqiga4wkz7d7cpnkv3l7b9kjj";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-6.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-msf2.patch";
+      sha256 = "04n1rzn6gfxdalp34903ysdhlvxqkfndnqayjj3iv1k27i5pcidn";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-7.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-pcnet.patch";
+      sha256 = "1p9ls6f8r6hxprj8ha6278fydcxj3av29p1hvszxmabazml2g7l2";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-8.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-rtl8139.patch";
+      sha256 = "0lms1zn49kpwblkp54widjjy7fwyhdh1x832l1jvds79l2nm6i04";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-9.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-sungem.patch";
+      sha256 = "1mkzyrgsp9ml9yqzjxdfqnwjr7n0fd8vxby4yp4ksrskyni8y0p4";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3416.part-10.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-tx_pkt-iov.patch";
+      sha256 = "1pwqq8yw06y3p6hah3dgjhsqzk802wbn7zyajla1zwdfpic63jss";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3409.part-1.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-transfer-any-data-when-command-time-out.patch";
+      sha256 = "0wf1yhb9mqpfgh9rv0hff0v1sw3zl2vsfgjrby4r8jvxdfjrxj8s";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3409.part-2.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-write-to-SDHC_SYSAD-register-when-transfer-is-in-progress.patch";
+      sha256 = "1dd405dsdc7fbp68yf6f32js1azsv3n595c6nbxh28kfh9lspx4v";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3409.part-3.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/correctly-set-the-controller-status-for-ADMA.patch";
+      sha256 = "08jk51pfrbn1zfymahgllrzivajh2v2qx0868rv9zmgi0jldbky6";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3409.part-4.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/limit-block-size-only-when-SDHC_BLKSIZE-register-is-writable.patch";
+      sha256 = "1valfhw3l83br1cny6n4kmrv0f416hl625mggayqfz4prsknyhh7";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3409.part-5.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/reset-the-data-pointer-of-s-fifo_buffer-when-a-different-block-size-is-programmed.patch";
+      sha256 = "01p5qrr00rh3mlwrp3qq56h7yhqv0w7pw2cw035nxw3mnap03v31";
+    })
+    (fetchpatch {
+      name = "CVE-2021-3392.patch";
+      url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/mptsas-remove-unused-MPTSASState.pending-CVE-2021-3392.patch";
+      sha256 = "0n7dn2p102c21mf3ncqrnks0wl5kas6yspafbn8jd03ignjgc4hd";
+    })
   ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
     ++ optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
@@ -177,6 +297,9 @@ stdenv.mkDerivation rec {
     qemu-system-i386 = "bin/qemu-system-i386";
   };
 
+  # Builds in ~3h with 2 cores, and ~20m with a big-parallel builder.
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = with lib; {
     homepage = "http://www.qemu.org/";
     description = "A generic and open source machine emulator and virtualizer";
diff --git a/pkgs/applications/virtualization/spice-vdagent/default.nix b/pkgs/applications/virtualization/spice-vdagent/default.nix
index 48b0423983d..67ac8119fd5 100644
--- a/pkgs/applications/virtualization/spice-vdagent/default.nix
+++ b/pkgs/applications/virtualization/spice-vdagent/default.nix
@@ -2,15 +2,12 @@
  libpciaccess, libxcb, libXrandr, libXinerama, libXfixes, dbus, libdrm,
  systemd}:
 stdenv.mkDerivation rec {
-  name = "spice-vdagent-0.20.0";
+  pname = "spice-vdagent";
+  version = "0.21.0";
   src = fetchurl {
-    url = "https://www.spice-space.org/download/releases/${name}.tar.bz2";
-    sha256 = "0n9k2kna2gd1zi6jv45zsp2jlv439nz5l5jjijirxqaycwi74srf";
+    url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2";
+    sha256 = "0n8jlc1pv6mkry161y656b1nk9hhhminjq6nymzmmyjl7k95ymzx";
   };
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
-  patchFlags = [ "-uNp1" ];
-  # included in the next release.
-  patches = [ ./timeout.diff ];
   postPatch = ''
     substituteInPlace data/spice-vdagent.desktop --replace /usr $out
   '';
@@ -29,7 +26,7 @@ stdenv.mkDerivation rec {
        * Multiple displays
     '';
     homepage = "https://www.spice-space.org/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.aboseley ];
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/applications/virtualization/spice-vdagent/timeout.diff b/pkgs/applications/virtualization/spice-vdagent/timeout.diff
deleted file mode 100644
index 2021e98e41f..00000000000
--- a/pkgs/applications/virtualization/spice-vdagent/timeout.diff
+++ /dev/null
@@ -1,84 +0,0 @@
-diff --git a/src/udscs.c b/src/udscs.c
-index 4de75f8..7c99eed 100644
---- a/src/udscs.c
-+++ b/src/udscs.c
-@@ -186,6 +186,7 @@ struct udscs_server *udscs_server_new(
-     server->read_callback = read_callback;
-     server->error_cb = error_cb;
-     server->service = g_socket_service_new();
-+    g_socket_service_stop(server->service);
- 
-     g_signal_connect(server->service, "incoming",
-         G_CALLBACK(udscs_server_accept_cb), server);
-@@ -223,6 +224,11 @@ void udscs_server_listen_to_address(struct udscs_server *server,
-     g_object_unref(sock_addr);
- }
- 
-+void udscs_server_start(struct udscs_server *server)
-+{
-+    g_socket_service_start(server->service);
-+}
-+
- void udscs_server_destroy_connection(struct udscs_server *server,
-                                      UdscsConnection     *conn)
- {
-diff --git a/src/udscs.h b/src/udscs.h
-index 45ebd3f..4f7ea36 100644
---- a/src/udscs.h
-+++ b/src/udscs.h
-@@ -98,6 +98,8 @@ void udscs_server_listen_to_address(struct udscs_server *server,
-                                     const gchar         *addr,
-                                     GError             **err);
- 
-+void udscs_server_start(struct udscs_server *server);
-+
- void udscs_server_destroy_connection(struct udscs_server *server,
-                                      UdscsConnection     *conn);
- 
-diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c
-index cfd0a51..753c9bf 100644
---- a/src/vdagentd/vdagentd.c
-+++ b/src/vdagentd/vdagentd.c
-@@ -1184,10 +1184,6 @@ int main(int argc, char *argv[])
-         uinput_device = g_strdup(DEFAULT_UINPUT_DEVICE);
-     }
- 
--    g_unix_signal_add(SIGINT, signal_handler, NULL);
--    g_unix_signal_add(SIGHUP, signal_handler, NULL);
--    g_unix_signal_add(SIGTERM, signal_handler, NULL);
--
-     openlog("spice-vdagentd", do_daemonize ? 0 : LOG_PERROR, LOG_USER);
- 
-     /* Setup communication with vdagent process(es) */
-@@ -1228,9 +1224,6 @@ int main(int argc, char *argv[])
-         }
-     }
- 
--    if (do_daemonize)
--        daemonize();
--
- #ifdef WITH_STATIC_UINPUT
-     uinput = vdagentd_uinput_create(uinput_device, 1024, 768, NULL, 0,
-                                     debug > 1, uinput_fake);
-@@ -1240,6 +1233,13 @@ int main(int argc, char *argv[])
-     }
- #endif
- 
-+    if (do_daemonize)
-+        daemonize();
-+
-+    g_unix_signal_add(SIGINT, signal_handler, NULL);
-+    g_unix_signal_add(SIGHUP, signal_handler, NULL);
-+    g_unix_signal_add(SIGTERM, signal_handler, NULL);
-+
-     if (want_session_info)
-         session_info = session_info_create(debug);
-     if (session_info) {
-@@ -1252,6 +1252,7 @@ int main(int argc, char *argv[])
- 
-     active_xfers = g_hash_table_new(g_direct_hash, g_direct_equal);
- 
-+    udscs_server_start(server);
-     loop = g_main_loop_new(NULL, FALSE);
-     g_main_loop_run(loop);
- 
diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix
index f7083212e70..103be0e53d7 100644
--- a/pkgs/applications/window-managers/cage/default.nix
+++ b/pkgs/applications/window-managers/cage/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, wayland, scdoc, makeWrapper
 , wlroots, wayland-protocols, pixman, libxkbcommon
-, systemd, libGL, libX11
+, systemd, libGL, libX11, mesa
 , xwayland ? null
 , nixosTests
 }:
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     wlroots wayland wayland-protocols pixman libxkbcommon
+    mesa # for libEGL headers
     systemd libGL libX11
   ];
 
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index 93ac815346e..505d1cb1520 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, wayland, scdoc, makeWrapper
 , wlroots, wayland-protocols, pixman, libxkbcommon
-, cairo , pango, fontconfig, pandoc, systemd
+, cairo , pango, fontconfig, pandoc, systemd, mesa
 , withXwayland ? true, xwayland
 , nixosTests
 }:
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     wlroots wayland wayland-protocols pixman libxkbcommon cairo
     pango fontconfig pandoc systemd
+    mesa # for libEGL headers
   ];
 
   outputs = [ "out" "contrib" ];
diff --git a/pkgs/applications/window-managers/fvwm/default.nix b/pkgs/applications/window-managers/fvwm/default.nix
index ae5dad94f2e..07c3573fb2a 100644
--- a/pkgs/applications/window-managers/fvwm/default.nix
+++ b/pkgs/applications/window-managers/fvwm/default.nix
@@ -1,27 +1,37 @@
-{ gestures ? false
-, lib, stdenv, fetchurl, pkg-config
-, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama
-, libXpm, libXt, librsvg, libpng, fribidi, perl
-, libstroke ? null
-}:
-
-assert gestures -> libstroke != null;
+{ autoreconfHook, enableGestures ? false, lib, stdenv, fetchFromGitHub
+, pkg-config, cairo, fontconfig, freetype, libXft, libXcursor, libXinerama
+, libXpm, libXt, librsvg, libpng, fribidi, perl, libstroke, readline, libxslt }:
 
 stdenv.mkDerivation rec {
   pname = "fvwm";
   version = "2.6.9";
 
-  src = fetchurl {
-    url = "https://github.com/fvwmorg/fvwm/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1bliqcnap7vb3m2rn8wvxyfhbf35h9x34s41fl4301yhrkrlrihv";
+  src = fetchFromGitHub {
+    owner = "fvwmorg";
+    repo = pname;
+    rev = version;
+    sha256 = "14jwckhikc9n4h93m00pzjs7xm2j0dcsyzv3q5vbcnknp6p4w5dh";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [
-    cairo fontconfig freetype
-    libXft libXcursor libXinerama libXpm libXt
-    librsvg libpng fribidi perl
-  ] ++ lib.optional gestures libstroke;
+    cairo
+    fontconfig
+    freetype
+    libXft
+    libXcursor
+    libXinerama
+    libXpm
+    libXt
+    librsvg
+    libpng
+    fribidi
+    perl
+    readline
+    libxslt
+  ] ++ lib.optional enableGestures libstroke;
+
+  configureFlags = [ "--enable-mandoc" "--disable-htmldoc" ];
 
   meta = {
     homepage = "http://fvwm.org";
diff --git a/pkgs/applications/window-managers/hikari/default.nix b/pkgs/applications/window-managers/hikari/default.nix
index 2325deaf37c..23c7d9f680f 100644
--- a/pkgs/applications/window-managers/hikari/default.nix
+++ b/pkgs/applications/window-managers/hikari/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchzip,
   pkg-config, bmake,
   cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman,
-  libucl, wayland, wayland-protocols, wlroots,
+  libucl, wayland, wayland-protocols, wlroots, mesa,
   features ? {
     gammacontrol = true;
     layershell   = true;
@@ -12,7 +12,7 @@
 
 let
   pname = "hikari";
-  version = "2.2.2";
+  version = "2.3.0";
 in
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
-    sha256 = "0sln1n5f67i3vxkybfi6xhzplb45djqyg272vqkv64m72rmm8875";
+    sha256 = "0vxwma2r9mb2h0c3dkpvf8dbrc2x2ykhc5bb0vd72sl9pwj4jxmy";
   };
 
   nativeBuildInputs = [ pkg-config bmake ];
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
     pango
     pixman
     libucl
+    mesa # for libEGL
     wayland
     wayland-protocols
     wlroots
@@ -42,27 +43,19 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  # Must replace GNU Make by bmake
-  buildPhase = with lib; concatStringsSep " " (
-    [ "bmake" "-j$NIX_BUILD_CORES" "PREFIX=$out" ]
+  makeFlags = with lib; [ "PREFIX=$(out)" ]
     ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
     ++ mapAttrsToList (feat: enabled:
          optionalString enabled "WITH_${toUpper feat}=YES"
-       ) features
-  );
+       ) features;
 
-  # Can't suid in nix store
-  # Run hikari as root (it will drop privileges as early as possible), or create
-  # a systemd unit to give it the necessary permissions/capabilities.
-  patchPhase = ''
+  postPatch = ''
+    # Can't suid in nix store
+    # Run hikari as root (it will drop privileges as early as possible), or create
+    # a systemd unit to give it the necessary permissions/capabilities.
     substituteInPlace Makefile --replace '4555' '555'
-  '';
 
-  installPhase = ''
-    bmake \
-      PREFIX=$out \
-      install
-    runHook postInstall
+    sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/window-managers/i3/workstyle.nix b/pkgs/applications/window-managers/i3/workstyle.nix
new file mode 100644
index 00000000000..b245139abef
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/workstyle.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "workstyle";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "pierrechevalier83";
+    repo = pname;
+    rev = "43b0b5bc0a66d40289ff26b8317f50510df0c5f9";
+    sha256 = "0f4hwf236823qmqy31fczjb1hf3fvvac3x79jz2l7li55r6fd8hn";
+  };
+
+  cargoSha256 = "1hy68wvsxncsy4yx4biigfvwyq18c7yp1g543c6nca15cdzs1c54";
+
+  doCheck = false; # No tests
+
+  meta = with lib; {
+    description = "Sway workspaces with style";
+    homepage = "https://github.com/pierrechevalier83/workstyle";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/applications/window-managers/i3/wsr.nix b/pkgs/applications/window-managers/i3/wsr.nix
index 97da815b5d7..6af5717916b 100644
--- a/pkgs/applications/window-managers/i3/wsr.nix
+++ b/pkgs/applications/window-managers/i3/wsr.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3wsr";
-  version = "1.3.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "roosta";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zpyncg29y8cv5nw0vgd69nywbj1ppxf6qfm4zc6zz0gk0vxy4pn";
+    sha256 = "sha256-JzQWfC0kmnMArpIAE5fgb3YLmXktSCH5aUdrQH9pCbo=";
   };
 
-  cargoSha256 = "0snys419d32anf73jcvrq8h9kp1fq0maqcxz6ww04yg2jv6j47nc";
+  cargoSha256 = "sha256-ZvSdJLaw1nfaqpTBKIiHiXvNFSZhsmLk0PBrV6ykv/w=";
 
   nativeBuildInputs = [ python3 ];
   buildInputs = [ libxcb ];
diff --git a/pkgs/applications/window-managers/neocomp/default.nix b/pkgs/applications/window-managers/neocomp/default.nix
index bf017ae085a..e878f4f088e 100644
--- a/pkgs/applications/window-managers/neocomp/default.nix
+++ b/pkgs/applications/window-managers/neocomp/default.nix
@@ -16,27 +16,30 @@
 , libXinerama
 , libXrandr
 , libXrender
+, libXres
 , pcre
 , pkg-config
 }:
-let
-  rev   = "v0.6-17-g271e784";
-in
+
 stdenv.mkDerivation rec {
-  pname = "neocomp-unstable";
-  version = "2019-03-12";
+  pname = "neocomp";
+  version = "unstable-2021-04-06";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner  = "DelusionalLogic";
-    repo   = "NeoComp";
-    sha256 = "1mp338vz1jm5pwf7pi5azx4hzykmvpkwzx1kw6a9anj272f32zpg";
+    owner = "DelusionalLogic";
+    repo = "NeoComp";
+    rev = "ccd340d7b2dcd3f828aff958a638cc23686aee6f";
+    sha256 = "sha256-tLLEwpAGNVTC+N41bM7pfskIli4Yvc95wH2/NT0OZ+8=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     asciidoc
     docbook_xml_dtd_45
     docbook_xsl
+    pkg-config
+  ];
+
+  buildInputs = [
     freetype
     judy
     libGL
@@ -50,15 +53,15 @@ stdenv.mkDerivation rec {
     libXinerama
     libXrandr
     libXrender
+    libXres
     pcre
-    pkg-config
   ];
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "CFGDIR=${placeholder "out"}/etc/xdg/neocomp"
     "ASTDIR=${placeholder "out"}/share/neocomp/assets"
-    "COMPTON_VERSION=git-${rev}-${version}"
+    "COMPTON_VERSION=${version}"
   ];
 
   postPatch = ''
@@ -72,8 +75,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage        = "https://github.com/DelusionalLogic/NeoComp";
-    license         = licenses.gpl3;
-    maintainers     = with maintainers; [ twey ];
+    license         = licenses.gpl3Only;
+    maintainers     = with maintainers; [ twey fortuneteller2k ];
     platforms       = platforms.linux;
     description     = "A fork of Compton, a compositor for X11";
     longDescription = ''
diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/applications/window-managers/river/default.nix
new file mode 100644
index 00000000000..9b40d34b6f2
--- /dev/null
+++ b/pkgs/applications/window-managers/river/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv ,fetchFromGitHub
+, zig, wayland, pkg-config, scdoc
+, xwayland, wayland-protocols, wlroots
+, libxkbcommon, pixman, udev, libevdev, libX11, libGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "river";
+  version = "unstable-2021-04-27";
+
+  src = fetchFromGitHub {
+    owner = "ifreund";
+    repo = pname;
+    rev = "0c8e718d95a6a621b9cba0caa9158915e567b076";
+    sha256 = "1jjh0dzxi7hy4mg8vag6ipfwb9qxm5lfc07njp1mx6m81nq76ybk";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ xwayland wayland-protocols wlroots pixman
+    libxkbcommon pixman udev libevdev libX11 libGL
+  ];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+  installPhase = ''
+    zig build -Drelease-safe -Dxwayland -Dman-pages --prefix $out install
+  '';
+
+  nativeBuildInputs = [ zig wayland scdoc pkg-config ];
+
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    description = "A dynamic tiling wayland compositor";
+    longDescription = ''
+      river is a dynamic tiling wayland compositor that takes inspiration from dwm and bspwm.
+    '';
+    homepage = "https://github.com/ifreund/river";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ branwright1 ];
+  };
+}
diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix
index eff8710ebfc..25714f1f8a9 100644
--- a/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -1,18 +1,27 @@
-{ lib, stdenv, fetchFromGitHub,
-  meson, ninja, pkg-config, scdoc,
-  wayland, wayland-protocols, libxkbcommon,
-  cairo, gdk-pixbuf, pam
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, scdoc
+, wayland
+, wayland-protocols
+, libxkbcommon
+, cairo
+, gdk-pixbuf
+, pam
 }:
 
 stdenv.mkDerivation rec {
   pname = "swaylock-effects";
-  version = "v1.6-2";
+  version = "1.6-3";
 
   src = fetchFromGitHub {
     owner = "mortie";
     repo = "swaylock-effects";
-    rev = version;
-    sha256 = "0fs3c4liajgkax0a2pdc7117v1g9k73nv87g3kyv9wsnkfbbz534";
+    rev = "v${version}";
+    sha256 = "sha256-71IX0fC4xCPP6pK63KtvDMb3KoP1rw/Iz3S7BgiLSpg=";
   };
 
   postPatch = ''
@@ -23,7 +32,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
 
   mesonFlags = [
-    "-Dpam=enabled" "-Dgdk-pixbuf=enabled" "-Dman-pages=enabled"
+    "-Dpam=enabled"
+    "-Dgdk-pixbuf=enabled"
+    "-Dman-pages=enabled"
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/window-managers/waybox/default.nix b/pkgs/applications/window-managers/waybox/default.nix
index 666b2406d5f..007e4dcc568 100644
--- a/pkgs/applications/window-managers/waybox/default.nix
+++ b/pkgs/applications/window-managers/waybox/default.nix
@@ -11,6 +11,7 @@
 , pixman
 , udev
 , libGL
+, mesa
 }:
 
 stdenv.mkDerivation rec {
@@ -33,6 +34,7 @@ stdenv.mkDerivation rec {
     pixman
     udev
     libGL
+    mesa # for libEGL
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix
index cb9f2fe85a7..42b376a97f8 100644
--- a/pkgs/applications/window-managers/wayfire/default.nix
+++ b/pkgs/applications/window-managers/wayfire/default.nix
@@ -1,28 +1,28 @@
 { stdenv, lib, fetchurl, meson, ninja, pkg-config, git
 , cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland
-, wayland-protocols, wf-config, wlroots
+, wayland-protocols, wf-config, wlroots, mesa
 }:
 
 stdenv.mkDerivation rec {
   pname = "wayfire";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://github.com/WayfireWM/wayfire/releases/download/v${version}/wayfire-${version}.tar.xz";
-    sha256 = "19k9nk5whql03ik66i06r4xgxk5v7mpdphjpv13hdw8ba48w73hd";
+    sha256 = "0wgvwbmdhn7gkdr2jl9jndgvl6w4x7ys8gmpj55gqh9b57wqhyaq";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
     cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland
-    wayland-protocols wf-config wlroots
+    wayland-protocols wf-config wlroots mesa
   ];
 
   mesonFlags = [ "--sysconfdir" "/etc" ];
 
   meta = with lib; {
     homepage = "https://wayfire.org/";
-    description = "3D wayland compositor";
+    description = "3D Wayland compositor";
     license = licenses.mit;
     maintainers = with maintainers; [ qyliss wucke13 ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix
index b8e4c6aa770..d1e653cc9e0 100644
--- a/pkgs/applications/window-managers/wayfire/wf-config.nix
+++ b/pkgs/applications/window-managers/wayfire/wf-config.nix
@@ -1,18 +1,25 @@
-{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }:
+{ stdenv, lib, fetchurl, cmake, meson, ninja, pkg-config
+, doctest, glm, libevdev, libxml2
+}:
 
 stdenv.mkDerivation rec {
   pname = "wf-config";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://github.com/WayfireWM/wf-config/releases/download/v${version}/wf-config-${version}.tar.xz";
-    sha256 = "1bas5gsbnf8jxkkxd95992chz8yk5ckgg7r09gfnmm7xi8w0pyy7";
+    sha256 = "1w75yxhz0nvw4mlv38sxp8k8wb5h99b51x3fdvizc3yaxanqa8kx";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ libevdev libxml2 ];
+  nativeBuildInputs = [ cmake meson ninja pkg-config ];
+  buildInputs = [ doctest libevdev libxml2 ];
   propagatedBuildInputs = [ glm ];
 
+  # CMake is just used for finding doctest.
+  dontUseCmakeConfigure = true;
+
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://github.com/WayfireWM/wf-config";
     description = "Library for managing configuration files, written for Wayfire";
diff --git a/pkgs/applications/window-managers/wio/default.nix b/pkgs/applications/window-managers/wio/default.nix
index 301b0184e9c..c330bbe0e0f 100644
--- a/pkgs/applications/window-managers/wio/default.nix
+++ b/pkgs/applications/window-managers/wio/default.nix
@@ -10,6 +10,7 @@
 , wayland
 , wayland-protocols
 , wlroots
+, mesa
 , xwayland
 , makeWrapper
 }:
@@ -32,6 +33,7 @@ stdenv.mkDerivation rec {
     wayland
     wayland-protocols
     wlroots
+    mesa # for libEGL
     xwayland
   ];
 
diff --git a/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh b/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh
new file mode 100644
index 00000000000..75d9484846a
--- /dev/null
+++ b/pkgs/build-support/bintools-wrapper/add-darwin-ldflags-before.sh
@@ -0,0 +1,81 @@
+# Unconditionally adding in platform version flags will result in warnings that
+# will be treated as errors by some packages. Add any missing flags here.
+
+# There are two things to be configured: the "platform version" (oldest
+# supported version of macos, ios, etc), and the "sdk version".
+#
+# The modern way of configuring these is to use:
+#    -platform_version $platform $platform_version $sdk_version"
+#
+# The old way is still supported, and uses flags like:
+#    -${platform}_version_min $platform_version
+#    -sdk_version $sdk_version
+#
+# If both styles are specified ld will combine them. If multiple versions are
+# specified for the same platform, ld will emit an error.
+#
+# The following adds flags for whichever properties have not already been
+# provided.
+
+havePlatformVersionFlag=
+haveDarwinSDKVersion=
+haveDarwinPlatformVersion=
+
+# Roles will set by add-flags.sh, but add-flags.sh can be skipped when the
+# cc-wrapper has added the linker flags. Both the cc-wrapper and the binutils
+# wrapper mangle the same variable (MACOSX_DEPLOYMENT_TARGET), so if roles are
+# empty due to being run through the cc-wrapper then the mangle here is a no-op
+# and we still do the right thing.
+#
+# To be robust, make sure we always have the correct set of roles.
+accumulateRoles
+
+mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"}
+
+n=0
+nParams=${#params[@]}
+while (( n < nParams )); do
+    p=${params[n]}
+    case "$p" in
+        # the current platform
+        -@darwinPlatform@_version_min)
+            haveDarwinPlatformVersion=1
+            ;;
+
+        # legacy aliases
+        -macosx_version_min|-iphoneos_version_min|-iosmac_version_min|-uikitformac_version_min)
+            haveDarwinPlatformVersion=1
+            ;;
+
+        -sdk_version)
+            haveDarwinSDKVersion=1
+            ;;
+
+        -platform_version)
+            havePlatformVersionFlag=1
+
+            # If clang can't determine the sdk version it will pass 0.0.0. This
+            # has runtime effects so we override this to use the known sdk
+            # version.
+            if [ "${params[n+3]-}" = 0.0.0 ]; then
+                params[n+3]=@darwinSdkVersion@
+            fi
+            ;;
+    esac
+    n=$((n + 1))
+done
+
+# If the caller has set -platform_version, trust they're doing the right thing.
+# This will be the typical case for clang in nixpkgs.
+if [ ! "$havePlatformVersionFlag" ]; then
+    if [ ! "$haveDarwinSDKVersion" ] && [ ! "$haveDarwinPlatformVersion" ]; then
+        # Nothing provided. Use the modern "-platform_version" to set both.
+        extraBefore+=(-platform_version @darwinPlatform@ "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}" @darwinSdkVersion@)
+    elif [ ! "$haveDarwinSDKVersion" ]; then
+        # Add missing sdk version
+        extraBefore+=(-sdk_version @darwinSdkVersion@)
+    elif [ ! "$haveDarwinPlatformVersion" ]; then
+        # Add missing platform version
+        extraBefore+=(-@darwinPlatform@_version_min "${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@}")
+    fi
+fi
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index dac1f3bd7c1..859e3790594 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -252,11 +252,6 @@ stdenv.mkDerivation {
       fi
     '')
 
-    # Ensure consistent LC_VERSION_MIN_MACOSX and remove LC_UUID.
-    + optionalString stdenv.targetPlatform.isMacOS ''
-      echo "-sdk_version 10.12 -no_uuid" >> $out/nix-support/libc-ldflags-before
-    ''
-
     ##
     ## User env support
     ##
@@ -310,6 +305,13 @@ stdenv.mkDerivation {
       echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
     ''
 
+    ###
+    ### Remove LC_UUID
+    ###
+    + optionalString (stdenv.targetPlatform.isDarwin && !(stdenv.cc.bintools.bintools.isGNU or false)) ''
+      echo "-no_uuid" >> $out/nix-support/libc-ldflags-before
+    ''
+
     + ''
       for flags in "$out/nix-support"/*flags*; do
         substituteInPlace "$flags" --replace $'\n' ' '
@@ -320,6 +322,23 @@ stdenv.mkDerivation {
       substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
     ''
 
+    ###
+    ### Ensure consistent LC_VERSION_MIN_MACOSX
+    ###
+    + optionalString stdenv.targetPlatform.isDarwin (
+      let
+        inherit (stdenv.targetPlatform)
+          darwinPlatform darwinSdkVersion
+          darwinMinVersion darwinMinVersionVariable;
+      in ''
+        export darwinPlatform=${darwinPlatform}
+        export darwinMinVersion=${darwinMinVersion}
+        export darwinSdkVersion=${darwinSdkVersion}
+        export darwinMinVersionVariable=${darwinMinVersionVariable}
+        substituteAll ${./add-darwin-ldflags-before.sh} $out/nix-support/add-local-ldflags-before.sh
+      ''
+    )
+
     ##
     ## Extra custom steps
     ##
diff --git a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
index 9d02f99851a..7ccf5510c88 100644
--- a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
@@ -78,6 +78,14 @@ fi
 
 extraAfter+=($NIX_LDFLAGS_AFTER_@suffixSalt@)
 
+# These flags *must not* be pulled up to -Wl, flags, so they can't go in
+# add-flags.sh. They must always be set, so must not be disabled by
+# NIX_LDFLAGS_SET.
+if [ -e @out@/nix-support/add-local-ldflags-before.sh ]; then
+    source @out@/nix-support/add-local-ldflags-before.sh
+fi
+
+
 # Specify the target emulation if nothing is passed in ("-m" overrides this
 # environment variable). Ensures we never blindly fallback on targeting the host
 # platform.
diff --git a/pkgs/build-support/build-fhs-userenv/env.nix b/pkgs/build-support/build-fhs-userenv/env.nix
index 89b567a249f..226904f311b 100644
--- a/pkgs/build-support/build-fhs-userenv/env.nix
+++ b/pkgs/build-support/build-fhs-userenv/env.nix
@@ -81,6 +81,9 @@ let
       # compatibility with NixOS
       ln -s /host/etc/static static
 
+      # symlink nix config
+      ln -s /host/etc/nix nix
+
       # symlink some NSS stuff
       ln -s /host/etc/passwd passwd
       ln -s /host/etc/group group
diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh
index 94589131b70..a6e991914e6 100644
--- a/pkgs/build-support/cc-wrapper/add-flags.sh
+++ b/pkgs/build-support/cc-wrapper/add-flags.sh
@@ -65,5 +65,13 @@ if [ -e @out@/nix-support/cc-cflags-before ]; then
     NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@="$(< @out@/nix-support/cc-cflags-before) $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@"
 fi
 
+# Only add darwin min version flag if a default darwin min version is set,
+# which is a signal that we're targetting darwin.
+if [ "@darwinMinVersion@" ]; then
+    mangleVarSingle @darwinMinVersionVariable@ ${role_suffixes[@]+"${role_suffixes[@]}"}
+
+    NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@="-m@darwinPlatformForCC@-version-min=${@darwinMinVersionVariable@_@suffixSalt@:-@darwinMinVersion@} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@"
+fi
+
 # That way forked processes will not extend these environment variables again.
 export NIX_CC_WRAPPER_FLAGS_SET_@suffixSalt@=1
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 60915d6645a..14317cbe4cc 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -100,6 +100,18 @@ let
     else
       false;
 
+
+  darwinPlatformForCC = optionalString stdenv.targetPlatform.isDarwin (
+    if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx"
+    else targetPlatform.darwinPlatform
+  );
+
+  darwinMinVersion = optionalString stdenv.targetPlatform.isDarwin (
+    stdenv.targetPlatform.darwinMinVersion
+  );
+
+  darwinMinVersionVariable = optionalString stdenv.targetPlatform.isDarwin
+    stdenv.targetPlatform.darwinMinVersionVariable;
 in
 
 # Ensure bintools matches
@@ -122,6 +134,7 @@ stdenv.mkDerivation {
   gnugrep_bin = if nativeTools then "" else gnugrep;
 
   inherit targetPrefix suffixSalt;
+  inherit darwinPlatformForCC darwinMinVersion darwinMinVersionVariable;
 
   outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ];
 
@@ -474,6 +487,10 @@ stdenv.mkDerivation {
       done
     ''
 
+    + optionalString stdenv.targetPlatform.isDarwin ''
+        echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
+    ''
+
     # There are a few tools (to name one libstdcxx5) which do not work
     # well with multi line flags, so make the flags single line again
     + ''
@@ -486,10 +503,6 @@ stdenv.mkDerivation {
       substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash
     ''
 
-    + optionalString stdenv.targetPlatform.isDarwin ''
-      echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
-    ''
-
     ##
     ## Extra custom steps
     ##
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index b261f9e095a..54eb13d38ff 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -686,6 +686,42 @@ rec {
     in
     result;
 
+  # Merge the tarballs of images built with buildImage into a single
+  # tarball that contains all images. Running `docker load` on the resulting
+  # tarball will load the images into the docker daemon.
+  mergeImages = images: runCommand "merge-docker-images"
+    {
+      inherit images;
+      nativeBuildInputs = [ pigz jq ];
+    } ''
+    mkdir image inputs
+    # Extract images
+    repos=()
+    manifests=()
+    for item in $images; do
+      name=$(basename $item)
+      mkdir inputs/$name
+      tar -I pigz -xf $item -C inputs/$name
+      if [ -f inputs/$name/repositories ]; then
+        repos+=(inputs/$name/repositories)
+      fi
+      if [ -f inputs/$name/manifest.json ]; then
+        manifests+=(inputs/$name/manifest.json)
+      fi
+    done
+    # Copy all layers from input images to output image directory
+    cp -R --no-clobber inputs/*/* image/
+    # Merge repositories objects and manifests
+    jq -s add "''${repos[@]}" > repositories
+    jq -s add "''${manifests[@]}" > manifest.json
+    # Replace output image repositories and manifest with merged versions
+    mv repositories image/repositories
+    mv manifest.json image/manifest.json
+    # Create tarball and gzip
+    tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | pigz -nT > $out
+  '';
+
+
   # Provide a /etc/passwd and /etc/group that contain root and nobody.
   # Useful when packaging binaries that insist on using nss to look up
   # username/groups (like nginx).
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index f6b468942fe..7dbee38feeb 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -497,4 +497,23 @@ rec {
       chown 1000 ./home/jane
     '';
   };
+
+  # tarball consisting of both bash and redis images
+  mergedBashAndRedis = pkgs.dockerTools.mergeImages [
+    bash
+    redis
+  ];
+
+  # tarball consisting of bash (without tag) and redis images
+  mergedBashNoTagAndRedis = pkgs.dockerTools.mergeImages [
+    bashNoTag
+    redis
+  ];
+
+  # tarball consisting of bash and layered image with different owner of the
+  # /home/jane directory
+  mergedBashFakeRoot = pkgs.dockerTools.mergeImages [
+    bash
+    layeredImageWithFakeRootCommands
+  ];
 }
diff --git a/pkgs/build-support/wrapper-common/utils.bash b/pkgs/build-support/wrapper-common/utils.bash
index d164982b434..66b7c3f3e83 100644
--- a/pkgs/build-support/wrapper-common/utils.bash
+++ b/pkgs/build-support/wrapper-common/utils.bash
@@ -49,6 +49,35 @@ mangleVarBool() {
     done
 }
 
+# Combine a singular value from all roles. If multiple roles are being served,
+# and the value differs in these roles then the request is impossible to
+# satisfy and we abort immediately.
+mangleVarSingle() {
+    local var="$1"
+    shift
+    local -a role_suffixes=("$@")
+
+    local outputVar="${var}_@suffixSalt@"
+    for suffix in "${role_suffixes[@]}"; do
+        local inputVar="${var}${suffix}"
+        if [ -v "$inputVar" ]; then
+            if [ -v "$outputVar" ]; then
+                if [ "${!outputVar}" != "${!inputVar}" ]; then
+                    {
+                        echo "Multiple conflicting values defined for $outputVar"
+                        echo "Existing value is ${!outputVar}"
+                        echo "Attempting to set to ${!inputVar} via $inputVar"
+                    } >&2
+
+                    exit 1
+                fi
+            else
+                declare -gx ${outputVar}="${!inputVar}"
+            fi
+        fi
+    done
+}
+
 skip () {
     if (( "${NIX_DEBUG:-0}" >= 1 )); then
         echo "skipping impure path $1" >&2
diff --git a/pkgs/common-updater/scripts/update-source-version b/pkgs/common-updater/scripts/update-source-version
index 90543a9cfc6..d5c23466ee0 100755
--- a/pkgs/common-updater/scripts/update-source-version
+++ b/pkgs/common-updater/scripts/update-source-version
@@ -19,6 +19,7 @@ args=()
 for arg in "$@"; do
     case $arg in
         --system=*)
+            system="${arg#*=}"
             systemArg="--system ${arg#*=}"
         ;;
         --version-key=*)
@@ -59,6 +60,9 @@ newVersion=${args[1]}
 newHash=${args[2]}
 newUrl=${args[3]}
 
+# Third-party repositories might not accept arguments in their default.nix.
+importTree="(let tree = import ./.; in if builtins.isFunction tree then tree {} else tree)"
+
 if (( "${#args[*]}" < 2 )); then
     echo "$scriptName: Too few arguments"
     usage
@@ -75,11 +79,39 @@ if [[ -z "$versionKey" ]]; then
     versionKey=version
 fi
 
+# Allow finding packages among flake outputs in repos using flake-compat.
+pname=$(nix-instantiate $systemArg --eval --strict -A "$attr.name" || echo)
+if [[ -z "$pname" ]]; then
+    if [[ -z "$system" ]]; then
+        system=$(nix-instantiate --eval -E 'builtins.currentSystem' | tr -d '"')
+    fi
+
+    pname=$(nix-instantiate $systemArg --eval --strict -A "packages.$system.$attr.name" || echo)
+    if [[ -n "$pname" ]]; then
+        attr="packages.$system.$attr"
+    else
+        pname=$(nix-instantiate $systemArg --eval --strict -A "legacyPackages.$system.$attr.name" || echo)
+        if [[ -n "$pname" ]]; then
+            attr="legacyPackages.$system.$attr"
+        else
+            die "Could not find attribute '$attr'!"
+        fi
+    fi
+fi
+
 if [[ -z "$nixFile" ]]; then
     nixFile=$(nix-instantiate $systemArg --eval --strict -A "$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
     if [[ ! -f "$nixFile" ]]; then
         die "Couldn't evaluate '$attr.meta.position' to locate the .nix file!"
     fi
+
+    # flake-compat will return paths in the Nix store, we need to correct for that.
+    possiblyOutPath=$(nix-instantiate $systemArg --eval -E "with $importTree; outPath" | tr -d '"')
+    if [[ -n "$possiblyOutPath" ]]; then
+        outPathEscaped=$(echo "$possiblyOutPath" | sed 's#[$^*\\.[|]#\\&#g')
+        pwdEscaped=$(echo "$PWD" | sed 's#[$^*\\.[|]#\\&#g')
+        nixFile=$(echo "$nixFile" | sed "s|^$outPathEscaped|$pwdEscaped|")
+    fi
 fi
 
 oldHashAlgo=$(nix-instantiate $systemArg --eval --strict -A "$attr.src.drvAttrs.outputHashAlgo" | tr -d '"')
@@ -93,17 +125,16 @@ if [[ $(grep --count "$oldHash" "$nixFile") != 1 ]]; then
     die "Couldn't locate old source hash '$oldHash' (or it appeared more than once) in '$nixFile'!"
 fi
 
-oldUrl=$(nix-instantiate $systemArg --eval -E "with import ./. {}; builtins.elemAt ($attr.src.drvAttrs.urls or [ $attr.src.url ]) 0" | tr -d '"')
+oldUrl=$(nix-instantiate $systemArg --eval -E "with $importTree; builtins.elemAt ($attr.src.drvAttrs.urls or [ $attr.src.url ]) 0" | tr -d '"')
 
 if [[ -z "$oldUrl" ]]; then
     die "Couldn't evaluate source url from '$attr.src'!"
 fi
 
-drvName=$(nix-instantiate $systemArg --eval -E "with import ./. {}; lib.getName $attr" | tr -d '"')
-oldVersion=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.${versionKey} or (lib.getVersion $attr)" | tr -d '"')
+oldVersion=$(nix-instantiate $systemArg --eval -E "with $importTree; $attr.${versionKey} or (builtins.parseDrvName $attr.name).version" | tr -d '"')
 
-if [[ -z "$drvName" || -z "$oldVersion" ]]; then
-    die "Couldn't evaluate name and version from '$attr.name'!"
+if [[ -z "$oldVersion" ]]; then
+    die "Couldn't find out the old version of '$attr'!"
 fi
 
 if [[ "$oldVersion" = "$newVersion" ]]; then
@@ -115,7 +146,7 @@ if [[ "$oldVersion" = "$newVersion" ]]; then
 fi
 
 if [[ -n "$newRevision" ]]; then
-    oldRevision=$(nix-instantiate $systemArg --eval -E "with import ./. {}; $attr.src.rev" | tr -d '"')
+    oldRevision=$(nix-instantiate $systemArg --eval -E "with $importTree; $attr.src.rev" | tr -d '"')
     if [[ -z "$oldRevision" ]]; then
         die "Couldn't evaluate source revision from '$attr.src'!"
     fi
diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix
index a65b176f88f..ca7fdf1d4be 100644
--- a/pkgs/data/documentation/man-pages-posix/default.nix
+++ b/pkgs/data/documentation/man-pages-posix/default.nix
@@ -1,21 +1,22 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-posix-2013-a";
+  pname = "man-pages-posix";
+  version = "2017-a";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${name}.tar.xz";
-    sha256 = "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr";
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${version}.tar.xz";
+    sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3";
   };
 
-  preBuild =
-    ''
-      makeFlagsArray=(MANDIR=$out/share/man)
-    '';
+  makeFlags = [
+    "MANDIR=${placeholder "out"}/share/man"
+  ];
 
   meta = {
     description = "POSIX man-pages (0p, 1p, 3p)";
     homepage = "https://www.kernel.org/doc/man-pages/";
     platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.sternenseemann ];
   };
 }
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index e9fa1b7e4f4..900f28edc8d 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scheme-manpages-unstable";
-  version = "2021-01-17";
+  version = "2021-03-11";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
     repo = "manpages";
-    rev = "817798ccca81424e797fda0e218d53a95f50ded7";
-    sha256 = "1amc0dmliz2a37pivlkx88jbc08ypfiwv3z477znx8khhc538glk";
+    rev = "d0163a4e29d29b2f0beb762be4095775134f5ef9";
+    sha256 = "0a8f7rq458c7985chwn1qb9yxcwyr0hl39r9vlvm5j687hy3igs2";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/fonts/andagii/default.nix b/pkgs/data/fonts/andagii/default.nix
index 700680a54b2..6d0b5f483ec 100644
--- a/pkgs/data/fonts/andagii/default.nix
+++ b/pkgs/data/fonts/andagii/default.nix
@@ -20,7 +20,7 @@ in fetchzip {
   meta = with lib; {
     homepage = "http://www.i18nguy.com/unicode/unicode-font.html";
     description = "Unicode Plane 1 Osmanya script font";
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = "unknown";
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/anonymous-pro/default.nix b/pkgs/data/fonts/anonymous-pro/default.nix
index 0f8289fe18a..cb6ec6d8944 100644
--- a/pkgs/data/fonts/anonymous-pro/default.nix
+++ b/pkgs/data/fonts/anonymous-pro/default.nix
@@ -23,7 +23,7 @@ in fetchzip rec {
       most Western and Central European Latin-based languages, plus
       Greek and Cyrillic. It is designed by Mark Simonson.
     '';
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/courier-prime/default.nix b/pkgs/data/fonts/courier-prime/default.nix
new file mode 100644
index 00000000000..81788b322cf
--- /dev/null
+++ b/pkgs/data/fonts/courier-prime/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchzip }:
+
+let
+  version = "unstable-2019-12-05";
+  repo = "CourierPrime";
+  rev = "7f6d46a766acd9391d899090de467c53fd9c9cb0";
+in fetchzip rec {
+  name = "courier-prime-${version}";
+  url = "https://github.com/quoteunquoteapps/${repo}/archive/${rev}/${name}.zip";
+  sha256 = "1xh4pkksm6zrafhb69q4lq093q6pl245zi9qhqw3x6c1ab718704";
+
+  postFetch = ''
+    unzip $downloadedFile
+    install -m444 -Dt $out/share/fonts/truetype ${repo}-${rev}/fonts/ttf/*.ttf
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font designed specifically for screenplays";
+    homepage = "https://github.com/quoteunquoteapps/CourierPrime";
+    license = licenses.ofl;
+    maintainers = [ maintainers.austinbutler ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/font-awesome-5/default.nix b/pkgs/data/fonts/font-awesome-5/default.nix
index bcf02f1328e..7f251232ebc 100644
--- a/pkgs/data/fonts/font-awesome-5/default.nix
+++ b/pkgs/data/fonts/font-awesome-5/default.nix
@@ -39,7 +39,7 @@ in {
     sha256 = "1j8i32dq6rrlv3kf2hnq81iqks06kczaxjks7nw3zyq1231winm9";
   };
   v5 = font-awesome {
-    version = "5.10.2";
-    sha256 = "0bg28zn2lhrcyj7mbavphkvw3hrbnjsnn84305ax93nj3qd0d4hx";
+    version = "5.15.3";
+    sha256 = "sha256-EDxk/yO3nMmtM/ytrAEgPYSBbep3rA3NrKkiqf3OsU0=";
   };
 }
diff --git a/pkgs/data/fonts/inconsolata/default.nix b/pkgs/data/fonts/inconsolata/default.nix
index 530bb0380d2..327b7fa2ca5 100644
--- a/pkgs/data/fonts/inconsolata/default.nix
+++ b/pkgs/data/fonts/inconsolata/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.levien.com/type/myfonts/inconsolata.html";
     description = "A monospace font for both screen and print";
-    maintainers = with maintainers; [ mikoim raskin rycee ];
+    maintainers = with maintainers; [ mikoim raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/last-resort/default.nix b/pkgs/data/fonts/last-resort/default.nix
new file mode 100644
index 00000000000..31fb300e591
--- /dev/null
+++ b/pkgs/data/fonts/last-resort/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl }:
+
+let
+  version = "13.001";
+in fetchurl {
+  name = "last-resort-${version}";
+
+  url = "https://github.com/unicode-org/last-resort-font/releases/download/${version}/LastResortHE-Regular.ttf";
+  downloadToTemp = true;
+
+  postFetch = ''
+    install -D -m 0644 $downloadedFile $out/share/fonts/truetype/LastResortHE-Regular.ttf
+  '';
+
+  recursiveHash = true;
+  sha256 = "08mi65j46fv6a3y3pqnglqdjxjnbzg25v25f7c1zyk3c285m14hq";
+
+  meta = with lib; {
+    description = "Fallback font of last resort";
+    homepage = "https://github.com/unicode-org/last-resort-font";
+    license = licenses.ofl;
+    maintainers = with maintainers; [ V ];
+  };
+}
diff --git a/pkgs/data/fonts/mononoki/default.nix b/pkgs/data/fonts/mononoki/default.nix
index 195c39c0e81..d48332b4a27 100644
--- a/pkgs/data/fonts/mononoki/default.nix
+++ b/pkgs/data/fonts/mononoki/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.2";
+  version = "1.3";
 in fetchzip {
   name = "mononoki-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile -d $out/share/fonts/mononoki
   '';
 
-  sha256 = "19y4xg7ilm21h9yynyrwcafdqn05zknpmmjrb37qim6p0cy2glff";
+  sha256 = "sha256-K2uOpJRmQ1NcDZfh6rorCF0MvGHFCsSW8J7Ue9OC/OY=";
 
   meta = with lib; {
     homepage = "https://github.com/madmalik/mononoki";
diff --git a/pkgs/data/fonts/oldstandard/default.nix b/pkgs/data/fonts/oldstandard/default.nix
index 5284ec7e119..ddff3666b0b 100644
--- a/pkgs/data/fonts/oldstandard/default.nix
+++ b/pkgs/data/fonts/oldstandard/default.nix
@@ -18,7 +18,7 @@ in fetchzip rec {
   meta = with lib; {
     homepage = "https://github.com/akryukov/oldstand";
     description = "An attempt to revive a specific type of Modern style of serif typefaces";
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     license = licenses.ofl;
     platforms = platforms.all;
   };
diff --git a/pkgs/data/fonts/scheherazade/default.nix b/pkgs/data/fonts/scheherazade/default.nix
index 8639d29066c..848daa899ed 100644
--- a/pkgs/data/fonts/scheherazade/default.nix
+++ b/pkgs/data/fonts/scheherazade/default.nix
@@ -1,10 +1,10 @@
-{ lib, fetchzip, version ? "3.000" }:
+{ lib, fetchzip, version ? "3.100" }:
 
 let
   new = lib.versionAtLeast version "3.000";
   sha256 = {
     "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
-    "3.000" = "12sd2mjqb80ijc73y7p0iw6j3wy9i60a3aar3ywrxz4khpya48jw";
+    "3.100" = "0svnc7l3z3vvm27zx6msyx56n2fpv6ywb5lm75bym48slkccypn7";
   }."${version}";
 
 in fetchzip rec {
diff --git a/pkgs/data/fonts/termsyn/default.nix b/pkgs/data/fonts/termsyn/default.nix
new file mode 100644
index 00000000000..50450a04e2d
--- /dev/null
+++ b/pkgs/data/fonts/termsyn/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, mkfontscale }:
+
+stdenv.mkDerivation rec {
+  pname = "termsyn";
+  version = "1.8.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/termsyn/termsyn-${version}.tar.gz";
+    sha256 = "15vsmc3nmzl0pkgdpr2993da7p38fiw2rvcg01pwldzmpqrmkpn6";
+  };
+
+  nativeBuildInputs = [ mkfontscale ];
+
+  installPhase = ''
+    install -m 644 -D *.pcf -t "$out/share/fonts"
+    install -m 644 -D *.psfu -t "$out/share/kbd/consolefonts"
+    mkfontdir "$out/share/fonts"
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on terminus and tamsyn";
+    homepage = "https://sourceforge.net/projects/termsyn/";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ sophrosyne ];
+  };
+}
diff --git a/pkgs/data/fonts/undefined-medium/default.nix b/pkgs/data/fonts/undefined-medium/default.nix
index 4c13a297c6f..5773aa94d5b 100644
--- a/pkgs/data/fonts/undefined-medium/default.nix
+++ b/pkgs/data/fonts/undefined-medium/default.nix
@@ -21,7 +21,6 @@ fetchzip rec {
       whatever else you can think of … it’s pretty undefined.
     '';
     license = licenses.ofl;
-    maintainers = [ maintainers.rycee ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/data/icons/beauty-line-icon-theme/default.nix b/pkgs/data/icons/beauty-line-icon-theme/default.nix
new file mode 100644
index 00000000000..2942315f7da
--- /dev/null
+++ b/pkgs/data/icons/beauty-line-icon-theme/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchzip, breeze-icons, gtk3, gnome-icon-theme, hicolor-icon-theme, mint-x-icons, pantheon }:
+
+stdenv.mkDerivation rec {
+  pname = "BeautyLine";
+  version = "0.0.1";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url = "https://github.com/gvolpe/BeautyLine/releases/download/${version}/BeautyLine.tar.gz";
+    sha256 = "030bjk333fr9wm1nc740q8i31rfsgf3vg6cvz36xnvavx3q363l7";
+  };
+
+  nativeBuildInputs = [ gtk3 ];
+
+  # ubuntu-mono is also required but missing in ubuntu-themes (please add it if it is packaged at some point)
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    hicolor-icon-theme
+    mint-x-icons
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons/${pname}
+    cp -r * $out/share/icons/${pname}/
+    gtk-update-icon-cache $out/share/icons/${pname}
+  '';
+
+  meta = with lib; {
+    description = "BeautyLine icon theme";
+    homepage = "https://www.gnome-look.org/p/1425426/";
+    platforms = platforms.linux;
+    license = [ licenses.publicDomain ];
+    maintainers = with maintainers; [ gvolpe ];
+  };
+}
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index ff907e91bf9..0a0cba1e98e 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gtk3
 , breeze-icons
@@ -8,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "11g740x1asy7jbfn52gp1zx7hzhklw6f97m469wgyi9yf954js15";
+    sha256 = "0kjnmclil21m9vgybk958nzzlbwryp286rajlgxg05wgjnby4cxk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index e46c7a4289b..7fe16f016cc 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "20.09.19";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "1rqlq5ssxqj0nc0i8av7zprj94km5645xzqi5j5i0sxd3jbmyfjx";
+    sha256 = "1z8c0179r8g0y9zh4383brsfhkcyfy79dc8hw94p9zjn5a66547w";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Numix icon theme (circle version)";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index bc243b95afc..9c7b1786a6e 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "20.09.19";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0afraarfcd66mpidmn0l90wif8kmwzdj3s09g704kwszyijxs80z";
+    sha256 = "0ndxjp173dwz78m41mn818mh4bdsxa2ypv4wrwicx0v4d8z90ddj";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Numix icon theme (square version)";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index d8e583b4bbb..194a36021a9 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme";
-  version = "20.06.07";
+  version = "21.04.14";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "1yp9parc8ihmai8pswf4qzrqd88qpls87ipq8ylx38yqns7wsn4h";
+    sha256 = "1ilzqh9f7skdfg5sl97zfgwrzvwa1zna22dpq0954gyyzvy7k7lg";
   };
 
   nativeBuildInputs = [ gtk3 ];
@@ -18,18 +18,22 @@ stdenv.mkDerivation rec {
   dontDropIconThemeCache = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/icons
     cp -a Numix{,-Light} $out/share/icons/
 
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Numix icon theme";
     homepage = "https://numixproject.github.io";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     # darwin cannot deal with file names differing only in case
     platforms = platforms.linux;
     maintainers = with maintainers; [ romildo ];
diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix
new file mode 100644
index 00000000000..7bbad945206
--- /dev/null
+++ b/pkgs/data/icons/tela-icon-theme/default.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenv }:
+
+stdenv.mkDerivation rec {
+  pname = "tela-icon-theme";
+  version = "2021-01-21";
+
+  src = fetchFromGitHub {
+    owner = "vinceliuice";
+    repo = pname;
+    rev = version;
+    sha256 = "0gphy4aq2qjcg79k6rc0q5901mn3q76qhckn5vxvmypn9n3lb9ph";
+  };
+
+  nativeBuildInputs = [ gtk3 jdupes ];
+
+  propagatedBuildInputs = [ hicolor-icon-theme ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs install.sh
+    mkdir -p $out/share/icons
+    ./install.sh -a -d $out/share/icons
+    jdupes -l -r $out/share/icons
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A flat colorful Design icon theme";
+    homepage = "https://github.com/vinceliuice/tela-icon-theme";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/data/misc/graphs/default.nix b/pkgs/data/misc/graphs/default.nix
index 54b6c16613e..19438d83566 100644
--- a/pkgs/data/misc/graphs/default.nix
+++ b/pkgs/data/misc/graphs/default.nix
@@ -4,11 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "graphs";
-  version = "20161026";
+  version = "20210214";
 
   src = fetchurl {
-    url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0a2b5lly9nifphvknz88rrhfbbc8vqnlqcv19zdpfq8h8nnyjbb2";
+    url = "https://mirrors.mit.edu/sage/spkg/upstream/${pname}/${pname}-${version}.tar.bz2";
+    # TODO: switch to the url below once Sage 9.3 is released
+    # url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-ByN8DZhTYRUFw4n9e7klAMh0P1YxurtND0Xf2DMvN0E=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/misc/mailcap/default.nix b/pkgs/data/misc/mailcap/default.nix
index 725d4ded0eb..56d10e5b350 100644
--- a/pkgs/data/misc/mailcap/default.nix
+++ b/pkgs/data/misc/mailcap/default.nix
@@ -1,23 +1,23 @@
 { lib, fetchzip }:
 
 let
-  version = "2.1.48";
+  version = "2.1.52";
 
 in fetchzip {
   name = "mailcap-${version}";
 
   url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
-  sha256 = "08d0avz8971hkggd60dk9yyd14izz24yag3prpfafbvm670jlmqg";
+  sha256 = "sha256-2GRNg3zoMPMaOk2zoAx5sVIzjbQhnYJuaO8nrzWujVc=";
 
   postFetch = ''
     tar -xavf $downloadedFile --strip-components=1
     substituteInPlace mailcap --replace "/usr/bin/" ""
-    gzip mailcap.4
+    gzip mailcap.5
     sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
 
     install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
     install -D -m0644 -t $out/etc mailcap mime.types
-    install -D -m0644 -t $out/share/man/man4 mailcap.4.gz
+    install -D -m0644 -t $out/share/man/man5 mailcap.5.gz
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
new file mode 100644
index 00000000000..afdf478fea0
--- /dev/null
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, gtk-engine-murrine
+}:
+
+stdenv.mkDerivation rec {
+  pname = "flat-remix-gtk";
+  version = "20201129";
+
+  src = fetchFromGitHub {
+    owner = "daniruiz";
+    repo = pname;
+    rev = version;
+    hash = "sha256-lAlHRVB/P3A1qWsXQZPZ3uhgctR4FLa+ocUrsbleXJU=";
+  };
+
+  dontBuild = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  meta = with lib; {
+    description = "GTK application theme inspired by material design";
+    homepage = "https://drasite.com/flat-remix-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/pkgs/data/themes/gruvbox-dark-gtk/default.nix b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
index 3b6f68ab475..28b55074afb 100644
--- a/pkgs/data/themes/gruvbox-dark-gtk/default.nix
+++ b/pkgs/data/themes/gruvbox-dark-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gruvbox-dark-gtk";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "jmattheis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wf4ybnjdp2kbbvz7pmqdnzk94axaqx5ws18f34hrg4y267n0w4g";
+    sha256 = "sha256-C681o89MTGNp1l3DLQsRpH9HQdmdCXZzk0F0rNhcyL4=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/themes/orchis/default.nix b/pkgs/data/themes/orchis/default.nix
index cf479021fb1..a53e2f79f6a 100644
--- a/pkgs/data/themes/orchis/default.nix
+++ b/pkgs/data/themes/orchis/default.nix
@@ -1,18 +1,25 @@
-{ lib, stdenv, fetchFromGitHub, gtk3, gnome-themes-extra, gtk-engine-murrine
-, accentColor ? "default" }:
-
-stdenv.mkDerivation rec {
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gnome-themes-extra
+, gtk-engine-murrine
+, sassc
+, accentColor ? "default"
+}:
+
+stdenvNoCC.mkDerivation rec {
   pname = "orchis";
-  version = "2021-02-28";
+  version = "2021-04-20";
 
   src = fetchFromGitHub {
     repo = "Orchis-theme";
     owner = "vinceliuice";
     rev = version;
-    sha256 = "sha256-HmC2e34n1eThFGgw9OzSgp5VFJOylyozpXgk9SO84+I=";
+    sha256 = "sha256-cCUmainVTqFztZGpL2z2Zj6zcE2SQBWrec6yNFUMo5M=";
   };
 
-  nativeBuildInputs = [ gtk3 ];
+  nativeBuildInputs = [ gtk3 sassc ];
 
   buildInputs = [ gnome-themes-extra ];
 
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index 3f87473a4a1..a1011fa0a15 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-theme";
-  version = "2021-02-09";
+  version = "2021-04-20";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1pilq939bqzxysw4ixd279c49bp7l74bykpprrhgc5f2klpjg1zn";
+    sha256 = "17ajrg5safnb6b1jbwvnysc4rvl6gkpnqdf89bammlrpkj6fr3ip";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/data/themes/vertex/default.nix b/pkgs/data/themes/vertex/default.nix
index d25df29013b..cff886440e3 100644
--- a/pkgs/data/themes/vertex/default.nix
+++ b/pkgs/data/themes/vertex/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
     license = licenses.gpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ rycee romildo ];
+    maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 11fcdb7452b..65eede25832 100644
--- a/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -1,5 +1,4 @@
 { atk
-, autoreconfHook
 , cacert
 , fetchpatch
 , dbus
@@ -20,6 +19,7 @@
 , libsoup
 , libstartup_notification
 , libXtst
+, libXdamage
 , muffin
 , networkmanager
 , pkg-config
@@ -42,32 +42,25 @@
 , pciutils
 , timezonemap
 , libnma
+, meson
+, ninja
+, gst_all_1
 }:
 
-let
-  libcroco = callPackage ./libcroco.nix { };
-in
 stdenv.mkDerivation rec {
   pname = "cinnamon-common";
-  version = "4.6.1";
+  version = "4.8.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cinnamon";
     rev = version;
-    sha256 = "149lhg953fa0glm250f76z2jzyaabh97jxiqkjnqvsk6bjk1d0bw";
+    hash = "sha256-4DMXQYH1/RjLhgrn55I7Vkk6+gGsR+OVmiwxVHUIyro=";
   };
 
   patches = [
-    # remove dbus-glib
-    (fetchpatch {
-      url = "https://github.com/linuxmint/cinnamon/commit/ce99760fa15c3de2e095b9a5372eeaca646fbed1.patch";
-      sha256 = "0p2sbdi5w7sgblqbgisb6f8lcj1syzq5vlk0ilvwaqayxjylg8gz";
-    })
-    (fetchpatch {
-      url = "https://leigh123linux.fedorapeople.org/pub/patches/new_cjs.patch";
-      sha256 = "07biv3vkbn3jzijbdrxcw73p8xz2djbsax014mlkvmryrmys0rg4";
-    })
+    ./use-sane-install-dir.patch
+    ./libdir.patch
   ];
 
   buildInputs = [
@@ -84,16 +77,17 @@ stdenv.mkDerivation rec {
     glib
     gtk3
     json-glib
-    libcroco
     libsoup
     libstartup_notification
     libXtst
+    libXdamage
     muffin
     networkmanager
     pkg-config
     polkit
     libxml2
     libgnomekbd
+    gst_all_1.gstreamer
 
     # bindings
     cairo
@@ -114,23 +108,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gobject-introspection
-    autoreconfHook
+    meson
+    ninja
     wrapGAppsHook
     intltool
     gtk-doc
   ];
 
-  autoreconfPhase = ''
-    GTK_DOC_CHECK=false NOCONFIGURE=1 bash ./autogen.sh
-  '';
-
   configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
 
   postPatch = ''
-    substituteInPlace src/Makefile.am \
-      --replace "\$(libdir)/muffin" "${muffin}/lib/muffin"
-    patchShebangs autogen.sh
-
     find . -type f -exec sed -i \
       -e s,/usr/share/cinnamon,$out/share/cinnamon,g \
       -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix b/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
deleted file mode 100644
index d1ec77b7050..00000000000
--- a/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, libxml2, glib, gnome3 }:
-
-stdenv.mkDerivation rec {
-  pname = "libcroco";
-  version = "0.6.13";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn";
-  };
-
-  outputs = [ "out" "dev" ];
-  outputBin = "dev";
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-Bsymbolic";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libxml2 glib ];
-
-  passthru = {
-    updateScript = gnome3.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with lib; {
-    description = "GNOME CSS2 parsing and manipulation toolkit";
-    homepage = https://gitlab.gnome.org/GNOME/libcroco;
-    license = licenses.lgpl2;
-    platforms = platforms.unix;
-  };
-}
-
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/libdir.patch b/pkgs/desktops/cinnamon/cinnamon-common/libdir.patch
new file mode 100644
index 00000000000..7783d0b3ad1
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/libdir.patch
@@ -0,0 +1,25 @@
+From 1c99ff9b042d77d97a0841c78fceb7cfbf41aa8b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Sun, 28 Feb 2021 05:58:09 +0100
+Subject: [PATCH] libdir patch
+
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 3c1e9a4f..a77d9b3c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -14,7 +14,7 @@ includedir = get_option('includedir')
+ libexecdir = get_option('libexecdir')
+ desktopdir = join_paths(datadir, 'applications')
+ schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
+-pkglibdir = join_paths(libdir, meson.project_name().to_lower())
++pkglibdir = libdir
+ servicedir = join_paths(datadir, 'dbus-1', 'services')
+ pkgdatadir = join_paths(datadir, meson.project_name().to_lower())
+ po_dir = join_paths(meson.source_root(), 'po')
+-- 
+2.30.0
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/use-sane-install-dir.patch b/pkgs/desktops/cinnamon/cinnamon-common/use-sane-install-dir.patch
new file mode 100644
index 00000000000..8cb6949cb2d
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-common/use-sane-install-dir.patch
@@ -0,0 +1,33 @@
+From f7e802959d7a5c217ed574cab30404fc769f174d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Sat, 6 Feb 2021 14:26:26 +0100
+Subject: [PATCH] use sane install dir
+
+---
+ meson.build | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index bd803f20..3c1e9a4f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -127,8 +127,14 @@ configure_file(
+ )
+ 
+ install_subdir(
+-    'files',
+-    install_dir: '/',
++    'files/usr',
++    install_dir: get_option('prefix'),
++    strip_directory: true,
++)
++
++install_subdir(
++    'files/etc',
++    install_dir: join_paths(get_option('prefix'), 'etc'),
+     strip_directory: true,
+ )
+ 
+-- 
+2.30.0
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 4e951bfcc58..c2e50c65557 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -1,11 +1,9 @@
 { lib, stdenv
 , fetchFromGitHub
 , pkg-config
-, autoreconfHook
 , glib
 , gettext
 , cinnamon-desktop
-, intltool
 , gtk3
 , libnotify
 , libxml2
@@ -20,7 +18,7 @@
 , libxklavier
 , networkmanager
 , libwacom
-, libtool
+, gnome3
 , wrapGAppsHook
 , tzdata
 , glibc
@@ -28,17 +26,19 @@
 , modemmanager
 , xorg
 , gdk-pixbuf
+, meson
+, ninja
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-control-center";
-  version = "4.6.2";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0fbgi2r2xikpa04k431qq9akngi9akyflq1kcks8f095qs5gsana";
+    hash = "sha256-vALThDY0uN9bV7b1fga3MK7b2/l5uL33+B2x6oSLPRE=";
   };
 
   buildInputs = [
@@ -70,16 +70,11 @@ stdenv.mkDerivation rec {
   ./panels/datetime/tz.h:34:#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
 
   postPatch = ''
-    patchShebangs ./autogen.sh
     sed 's|TZ_DIR "/usr/share/zoneinfo/"|TZ_DIR "${tzdata}/share/zoneinfo/"|g' -i ./panels/datetime/test-timezone.c
     sed 's|TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"|TZ_DATA_FILE "${tzdata}/share/zoneinfo/zone.tab"|g' -i ./panels/datetime/tz.h
     sed 's|"/usr/share/i18n/locales/"|"${glibc}/share/i18n/locales/"|g' -i panels/datetime/test-endianess.c
   '';
 
-  autoreconfPhase = ''
-    NOCONFIGURE=1 bash ./autogen.sh
-  '';
-
   # it needs to have access to that file, otherwise we can't run tests after build
 
   preBuild = ''
@@ -87,19 +82,23 @@ stdenv.mkDerivation rec {
     ln -s $PWD/panels/datetime $out/share/cinnamon-control-center/
   '';
 
+  mesonFlags = [
+    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+  ];
+
   preInstall = ''
-    rm -rfv $out
+    rm -r $out
   '';
 
-  doCheck = true;
+  # the only test is wacom-calibrator and it seems to need an xserver and prob more services aswell
+  doCheck = false;
 
   nativeBuildInputs = [
     pkg-config
-    autoreconfHook
+    meson
+    ninja
     wrapGAppsHook
     gettext
-    intltool
-    libtool
   ];
 
   meta = with lib; {
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index cdcabb1261f..25af38d43b5 100644
--- a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "4.6.4";
+  version = "4.8.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "08z5hgc6dwdp9fczm75axwh8q9665iz4y2lxp92xp62r3k0v9fvd";
+    hash = "sha256-FLruY1lxzB3iJ/So3jSjrbv9e8VoN/0+U2YDXju/u3E=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index a1771506477..44566a94c6d 100644
--- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "4.6.1";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1qdaql4mknhzvl2qi1pyw4c820lqb7lg07gblh0wzfk4f7h8hddx";
+    hash = "sha256-9VSrqCjC8U3js1gqjl5QFctWYECATxN+AdfMdHLxYUY=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 0e8f6dbf8c3..39dee473cc5 100644
--- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -23,27 +23,19 @@
 , xapps
 , xorg
 , iso-flags-png-320x420
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-screensaver";
-  version = "4.6.0";
+  version = "4.8.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "068lh6wcmznfyvny7hx83q2rf4j96b6mv4a5v79y02k9110m7bsm";
+    hash = "sha256-gvSGxSYKnRqJhj2unRYRHp6qGw/O9SxKPzhw5xjCSSQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/linuxmint/cinnamon-screensaver/pull/349/commits/4a9e5715f406bf2ca1aacddd5fd8f830102a423c.patch";
-      sha256 = "0fmkmskry4c88zcw0i8vsmh6q14k3m937hqi77p5xi1p93imr46y";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     wrapGAppsHook
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 3d63846026a..ba20bce4100 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "4.6.2";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "133vpgs0dqr16pvx5wyxhfcargn9wl14z0q99m2pn93hf6zycmsv";
+    hash = "sha256-lrwR8VSdPzHoc9MeBEQPbVfWNhPZDJ2wYizKSVpobmk=";
   };
 
   patches = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
index 967ba98eb48..a11660bdb11 100644
--- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch
@@ -1,4 +1,4 @@
-From 6d71bf9764fb81d437678a603826167850bbf453 Mon Sep 17 00:00:00 2001
+From 7fa408ebd72c9f1ff7ff4e9d7f4a811465a8a41b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
 Date: Tue, 21 Jan 2020 03:19:28 +0100
 Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix
@@ -6,35 +6,35 @@ Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix
 
 ---
  plugins/power/csd-power-manager.c                             | 4 ++--
- .../org.cinnamon.settings-daemon.plugins.power.policy.in.in   | 2 +-
+ .../org.cinnamon.settings-daemon.plugins.power.policy.in      | 2 +-
  2 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
-index b24c456..212c47e 100755
+index 33f4489..84dd98b 100644
 --- a/plugins/power/csd-power-manager.c
 +++ b/plugins/power/csd-power-manager.c
-@@ -2519,7 +2519,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager,
+@@ -2529,7 +2529,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager,
  #endif
-
+ 
          /* get the data */
 -        command = g_strdup_printf (LIBEXECDIR "/csd-backlight-helper --%s %s",
 +        command = g_strdup_printf ("/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %s",
                                     argument,
                                     manager->priv->backlight_helper_preference_args);
          ret = g_spawn_command_line_sync (command,
-@@ -2609,7 +2609,7 @@ backlight_helper_set_value (const gchar *argument,
+@@ -2619,7 +2619,7 @@ backlight_helper_set_value (const gchar *argument,
  #endif
-
+ 
          /* get the data */
 -        command = g_strdup_printf ("pkexec " LIBEXECDIR "/csd-backlight-helper --%s %i %s",
 +        command = g_strdup_printf ("pkexec " "/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %i %s",
                                     argument, value,
                                     manager->priv->backlight_helper_preference_args);
          ret = g_spawn_command_line_sync (command,
-diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
-index 2c44e62..c0a2348 100755
---- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
-+++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in
+diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
+index 504f017..3569e8c 100644
+--- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
++++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
 @@ -25,7 +25,7 @@
        <allow_inactive>no</allow_inactive>
        <allow_active>yes</allow_active>
@@ -42,7 +42,8 @@ index 2c44e62..c0a2348 100755
 -    <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/csd-backlight-helper</annotate>
 +    <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper</annotate>
    </action>
-
+ 
  </policyconfig>
---
-2.24.1
+-- 
+2.30.0
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index c5bae4e5767..3df8760c858 100644
--- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -1,12 +1,9 @@
 { fetchFromGitHub
-, autoconf-archive
-, autoreconfHook
 , cinnamon-desktop
 , colord
 , glib
 , gsettings-desktop-schemas
 , gtk3
-, intltool
 , lcms2
 , libcanberra-gtk3
 , libgnomekbd
@@ -29,11 +26,15 @@
 , tzdata
 , nss
 , libgudev
+, meson
+, ninja
+, dbus
+, dbus-glib
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-settings-daemon";
-  version = "4.6.4";
+  version = "4.8.5";
 
   /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
    #include "csd-power-proxy.h"
@@ -48,14 +49,15 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1xcjzjfwnzvkv9jiyw8adsjyhz92almzhyfwb91115774zgqnb7m";
+    hash = "sha256-PAWVTjGFs8yKXgNQ2ucDnEDS+n7bp2n3lhGl9gHXfdQ=";
   };
 
   patches = [
     ./csd-backlight-helper-fix.patch
+    ./use-sane-install-dir.patch
   ];
 
-  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+  mesonFlags = [ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" ];
 
   buildInputs = [
     cinnamon-desktop
@@ -85,13 +87,14 @@ stdenv.mkDerivation rec {
     fontconfig
     nss
     libgudev
+    dbus
+    dbus-glib
   ];
 
   nativeBuildInputs = [
-    autoconf-archive
-    autoreconfHook
+    meson
+    ninja
     wrapGAppsHook
-    intltool
     pkg-config
   ];
 
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/use-sane-install-dir.patch b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/use-sane-install-dir.patch
new file mode 100644
index 00000000000..d980431f81b
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/use-sane-install-dir.patch
@@ -0,0 +1,27 @@
+From be57c01e6595a8e08ecc17de298e30640b532f11 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Sat, 6 Feb 2021 13:55:03 +0100
+Subject: [PATCH] use sane install-dir
+
+---
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 0e11d50..54f4637 100644
+--- a/meson.build
++++ b/meson.build
+@@ -156,8 +156,8 @@ subdir('cinnamon-settings-daemon')
+ subdir('plugins')
+ 
+ install_subdir(
+-    'files',
+-    install_dir: '/',
++    'files/usr',
++    install_dir: get_option('prefix'),
+     strip_directory: true,
+ )
+ 
+-- 
+2.30.0
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index 24bb3822868..dafb5f4b3fe 100644
--- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -1,17 +1,18 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gettext
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "4.6.2";
+  version = "4.8.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0zaghha62ibhg3rir6mrfy1z3v7p7v83b6glhmj9s51nxd86fyv6";
+    hash = "sha256-o/JFfwloXLUOy9YQzHtMCuzK7yBp/G43VS/RguxiTPY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix
index 184c1438196..3c01d003937 100644
--- a/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/pkgs/desktops/cinnamon/cjs/default.nix
@@ -2,7 +2,8 @@
 , fetchFromGitHub
 , gobject-introspection
 , pkg-config
-, lib, stdenv
+, lib
+, stdenv
 , wrapGAppsHook
 , python3
 , cairo
@@ -27,14 +28,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "cjs-unstable";
-  version = "2020-10-19";
+  pname = "cjs";
+  version = "4.8.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cjs";
-    rev = "befc11adb5ba10681464e6fa81b1a79f108ce61c";
-    hash = "sha256-F2t8uKV2r29NxX2+3mYp5x1bug2lwihJZTK1dSS8rPg=";
+    rev = version;
+    hash = "sha256-6+zlWL0DmyP+RFp1ECA4XGbgYUlsMqqyTd6z46w99Ug=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
index 93079e21d3d..2df5f875b41 100644
--- a/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "muffin";
-  version = "4.6.3";
+  version = "4.8.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1p8irzf20wari1id5rfx5sypywih1jsrmn0f83zlyhc5fxg02r5p";
+    hash = "sha256-zRW+hnoaKKTe4zIJpY1D0Ahc8k5zRbvYBF5Y4vZ6Rbs=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix
index 5017c1ce7d5..482fb402e4d 100644
--- a/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/pkgs/desktops/cinnamon/nemo/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "4.6.5";
+  version = "4.8.6";
 
   # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "04rgdph9pxdj5wzzv2i0pgyhg3s74nh9jf1ry9z6v5bvv222ili4";
+    hash = "sha256-OUv7l+klu5l1Y7m+iHiq/dDyxH3/hT4k7F9gDuUiGds=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/warpinator/default.nix b/pkgs/desktops/cinnamon/warpinator/default.nix
index efcd20457b3..8b316d37f58 100644
--- a/pkgs/desktops/cinnamon/warpinator/default.nix
+++ b/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -17,7 +17,6 @@ python3.pkgs.buildPythonApplication rec  {
   version = "1.0.8";
 
   format = "other";
-  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "linuxmint";
diff --git a/pkgs/desktops/enlightenment/evisum/default.nix b/pkgs/desktops/enlightenment/evisum/default.nix
index 0c2ff79ddbd..4e21bc67910 100644
--- a/pkgs/desktops/enlightenment/evisum/default.nix
+++ b/pkgs/desktops/enlightenment/evisum/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evisum";
-  version = "0.5.11";
+  version = "0.5.13";
 
   src = fetchurl {
     url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-jCOYnG/+xz9qK6npOPT+tw1tp/K0QaFCmsBRO9J4bjE=";
+    sha256 = "sha256-TMVxx7D9wdujyN6PcbIxC8M6zby5myvxO9AqolrcWOY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 81680fb5df8..02801cd5a78 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "file-roller";
-  version = "3.38.0";
+  version = "3.38.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "06ikvjjcgb8nxabkn2rywy76a1c7s6w8dszaxvaxldbxarp1qgbj";
+    sha256 = "0mxwdbfqizakxq65fa8zlvjf48v5f44lv8ckjw8sl8fk2871784l";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 2cd22e3ceaa..97a72e379a5 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -57,6 +57,7 @@
 , gnome-autoar
 , asciidoc-full
 , bash-completion
+, mesa
 }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
@@ -147,6 +148,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     gnome-settings-daemon
     gobject-introspection
+    mesa
 
     # recording
     pipewire
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 07e3b536a41..03c20e1ef6a 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -16,9 +16,11 @@
 , ninja
 , xkeyboard_config
 , libxkbfile
+, libXdamage
 , libxkbcommon
 , libXtst
 , libinput
+, libdrm
 , gsettings-desktop-schemas
 , glib
 , gtk3
@@ -27,6 +29,7 @@
 , libgudev
 , libwacom
 , xwayland
+, mesa
 , meson
 , gnome-settings-daemon
 , xorgserver
@@ -84,6 +87,7 @@ let self = stdenv.mkDerivation rec {
   nativeBuildInputs = [
     desktop-file-utils
     gettext
+    mesa # needed for gbm
     meson
     ninja
     pkg-config
@@ -102,12 +106,14 @@ let self = stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     libcanberra
+    libdrm
     libgudev
     libinput
     libstartup_notification
     libwacom
     libxkbcommon
     libxkbfile
+    libXdamage
     pango
     pipewire
     sysprof
diff --git a/pkgs/desktops/gnome-3/extensions/unite/default.nix b/pkgs/desktops/gnome-3/extensions/unite/default.nix
index 715e2a70cc7..79d7a335239 100644
--- a/pkgs/desktops/gnome-3/extensions/unite/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/unite/default.nix
@@ -1,13 +1,14 @@
 { lib, stdenv, gnome3, fetchFromGitHub, xprop, glib }:
+
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-unite";
-  version = "49";
+  version = "53";
 
   src = fetchFromGitHub {
     owner = "hardpixel";
     repo = "unite-shell";
     rev = "v${version}";
-    sha256 = "12kjljw253hshaz6x886kg3mc93lb4pxwd05qihww6m5k4lqjcy5";
+    sha256 = "0fw9wqf362h2yd67fhgbhqx0b2fwcl25wxmb92dqwigxjcj0dnw6";
   };
 
   uuid = "unite@hardpixel.eu";
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
index b65d27bb757..935778aa649 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -25,6 +25,7 @@
 , writeTextFile
 , writeShellScriptBin
 , xkeyboard_config
+, xorg
 , runCommand
 }:
 let
@@ -101,6 +102,7 @@ let
       libcanberra-gtk3
       libpulseaudio
       libxkbfile
+      xorg.libXxf86vm
       polkit
       gdm
       gnome-panel
diff --git a/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
index 894197ae6d5..7dbf6daffa7 100644
--- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
@@ -17,14 +17,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.38.5";
+  version = "3.38.6";
   pname = "gpaste";
 
   src = fetchFromGitHub {
     owner = "Keruspe";
     repo = "GPaste";
     rev = "v${version}";
-    sha256 = "sha256-hUqFijqUQ1W8OThpbioqcxkOgYvScKUBmXN84MbMPGE=";
+    sha256 = "sha256-6CIzOBq/Y9XKiv/lQAtDYK6bxhT1WxjbXhu4+noO5nI=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome-3/misc/metacity/default.nix b/pkgs/desktops/gnome-3/misc/metacity/default.nix
index d1b1aeec4c4..c74d57d9f4d 100644
--- a/pkgs/desktops/gnome-3/misc/metacity/default.nix
+++ b/pkgs/desktops/gnome-3/misc/metacity/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     xorg.libXres
     xorg.libXpresent
+    xorg.libXdamage
     glib
     gsettings-desktop-schemas
     gtk3
diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix
index be1f8a80e78..c28d069d5f1 100644
--- a/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/libfm-qt/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "libfm-qt";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "libfm-qt";
     rev = version;
-    sha256 = "0b52bczqvw4brxv5fszjrl1375yid6xzjm49ns9rx1jw71422w0p";
+    sha256 = "0jdsqvwp81y4ylabrqdc673x80fp41rpp5w7c1v9zmk9k8z4s5ll";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix
index 959afe1b887..b7aa5d95eaf 100644
--- a/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "liblxqt";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1rp26g1ygzzy1cm7md326sv99zjz4y12pa402nlf2vrf2lzbwfmk";
+    sha256 = "0n0pjz5wihchfcji8qal0lw8kzvv3im50v1lbwww4ymrgacz9h4l";
   };
 
   nativeBuildInputs = [
@@ -43,6 +43,10 @@ mkDerivation rec {
   patches = [ ./fix-application-path.patch ];
 
   postPatch = ''
+    # https://github.com/NixOS/nixpkgs/issues/119766
+    substituteInPlace lxqtbacklight/linux_backend/driver/libbacklight_backend.c \
+      --replace "pkexec lxqt-backlight_backend" "pkexec $out/bin/lxqt-backlight_backend"
+
     sed -i "s|\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}|''${out}/share/polkit-1/actions|" CMakeLists.txt
   '';
 
diff --git a/pkgs/desktops/lxqt/libqtxdg/default.nix b/pkgs/desktops/lxqt/libqtxdg/default.nix
index adb8b8a1161..7abaed7c09a 100644
--- a/pkgs/desktops/lxqt/libqtxdg/default.nix
+++ b/pkgs/desktops/lxqt/libqtxdg/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "libqtxdg";
-  version = "3.6.0";
+  version = "3.7.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0wiannhaydnbqd8ni3nflx2s4036grxs8aklcb95j88v3cgr2gck";
+    sha256 = "1x806hdics3d49ys0a2vkln9znidj82qscjnpcqxclxn26xqzd91";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libsysstat/default.nix b/pkgs/desktops/lxqt/libsysstat/default.nix
index 6f6e432ad9e..8da7675d485 100644
--- a/pkgs/desktops/lxqt/libsysstat/default.nix
+++ b/pkgs/desktops/lxqt/libsysstat/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "libsysstat";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1pbshhg8pjkzkka5f2rxfxal7rb4fjccpgj07kxvgcnqlah27ydk";
+    sha256 = "14q55iayygmjh63zgsb9qa4af766gj9b0jsrmfn85fdiqb8p8yfz";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lximage-qt/default.nix b/pkgs/desktops/lxqt/lximage-qt/default.nix
index b7e30096b76..10e40f4ed9d 100644
--- a/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "lximage-qt";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1z2lvfrw9shpvwxva0vf0rk74nj3mmjgxznsgq8r65645fnj5imb";
+    sha256 = "1xajsblk2954crvligvrgwp7q1pj7124xdfnlq9k9q0ya2xc36lx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-about/default.nix b/pkgs/desktops/lxqt/lxqt-about/default.nix
index 523092d1782..08e21736125 100644
--- a/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-about/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "lxqt-about";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0m7gan31byy80k9jqfqxx4drvfx0d9savj4shnrabsb3z3fj9h8h";
+    sha256 = "011jcab47iif741azfgvf52my118nwkny5m0pa7nsqyv8ad1fsiw";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-admin/default.nix b/pkgs/desktops/lxqt/lxqt-admin/default.nix
index 8406b909493..a3fd034e336 100644
--- a/pkgs/desktops/lxqt/lxqt-admin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-admin/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-admin";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0mi119ji0260idi14980nhmylx3krnfmkj9r81nmbbrg02h158nz";
+    sha256 = "1xi169gz1sarv7584kg33ymckqlx9ddci7r9m0dlm4a7mw7fm0lf";
   };
 
   nativeBuildInputs = [
@@ -40,8 +40,11 @@ mkDerivation rec {
   ];
 
   postPatch = ''
-    sed "s|\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}|''${out}/share/polkit-1/actions|" \
-      -i lxqt-admin-user/CMakeLists.txt
+    for f in lxqt-admin-{time,user}/CMakeLists.txt; do
+      substituteInPlace $f --replace \
+        "\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}" \
+        "$out/share/polkit-1/actions"
+    done
   '';
 
   passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 43896c2d6c4..348ee3423de 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "lxqt-archiver";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "lxqt-archiver";
     rev = version;
-    sha256 = "0f4nj598w6qhcrhbab15cpfmrda02jcflxhb15vyv7gnplalkya6";
+    sha256 = "0wpayzcyqcnvzk95bqql7p07l8p7mwdgdj7zlbcsdn0wis4yhjm6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index f45f8c72955..27fda636103 100644
--- a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -6,18 +6,19 @@
 , pcre
 , qtbase
 , glib
+, perl
 , lxqtUpdateScript
 }:
 
 mkDerivation rec {
   pname = "lxqt-build-tools";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1wf6mhcfgk64isy7bk018szlm18xa3hjjnmhpcy2whnnjfq0jal6";
+    sha256 = "0zhcv6cbdn9fr5lpglz26gzssbxkpi824sgc0g7w3hh1z6nqqf8l";
   };
 
   nativeBuildInputs = [
@@ -32,6 +33,10 @@ mkDerivation rec {
     pcre
   ];
 
+  propagatedBuildInputs = [
+    perl # needed by LXQtTranslateDesktop.cmake
+  ];
+
   setupHook = ./setup-hook.sh;
 
   # We're dependent on this macro doing add_definitions in most places
diff --git a/pkgs/desktops/lxqt/lxqt-config/default.nix b/pkgs/desktops/lxqt/lxqt-config/default.nix
index c273a7bd859..5913ec7a0d0 100644
--- a/pkgs/desktops/lxqt/lxqt-config/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-config/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-config";
-  version = "0.16.1";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1ppkkz7rg5ddlyk1ikh2s3g7nbb0wnpl0lldg9j68l76d61sfm8z";
+    sha256 = "0b9jihmsqgdfdsisz15j3p53fgf1w30s8irj9zjh52fsj58p924p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
index a54564e062b..6dab1cbf736 100644
--- a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-globalkeys";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "00n02mci0wry9l2prc98liiamshacnj8pvmra5wkmygm581q2r19";
+    sha256 = "135292l8w9sngg437n1zigkap15apifyqd9847ln84bxsmcj8lay";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index c02b768d6b7..093706fd6ee 100644
--- a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-notificationd";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0ahvjf5102a0pz5bfznjvkg55xix6k9bw381gzv6jqw5553snanc";
+    sha256 = "1r2cmxcjkm9lvb2ilq2winyqndnamsd9x2ynmfiqidby2pcr9i3a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
index 3aac000fb67..a6fbfc2f562 100644
--- a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-openssh-askpass";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "163mshrwfwp31bjis66l50krsyp184idw9gyp7pdh047psca5129";
+    sha256 = "18pn7kw9aw7859jnwvjnjcvr50pqsi8gqcxsbx9rvsjrybw2qcgc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index bb6ed854891..c565c5b4c30 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -30,13 +30,13 @@
 
 mkDerivation rec {
   pname = "lxqt-panel";
-  version = "0.16.1";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1mm23fys5npm5fi47y3h2mzvlhlcaz7k1p4wwmc012f0hqcrvqik";
+    sha256 = "1wmm4sml7par5z9xcs5qx2y2pdbnnh66zs37jhx9f9ihcmh1sqlw";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index adda2339f36..0a84799d372 100644
--- a/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
@@ -19,13 +19,13 @@
 
 mkDerivation rec {
   pname = "lxqt-policykit";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "05qi550cjyjzhlma4zxnp1pn8i5cgak2k2mwwh2a5gpicp5axavn";
+    sha256 = "15f0hnif8zs38qgckif63dds9zgpp3dmg9pg3ppgh664lkbxx7n7";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index 3c1350753cf..a1b06806740 100644
--- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-powermanagement";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1pf3z8hymddk1cm5j5lqgah967xsdl37j66gz5bs3dw7871gbdhy";
+    sha256 = "1ikkksg5k7jwph7060h8wyk7bdsywvhl47zp23j5gcig0nk62ggf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index d19abcfe952..3095b239926 100644
--- a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-qtplugin";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "14k5icxjkl5znp59y44791brsmwy54jkwr4vn3kg4ggqjdp3vbh9";
+    sha256 = "168ii015j57hkccdh27h2fdh8yzs8nzy8nw20wnx6fbcg5401666";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-runner/default.nix b/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 3f80800310f..32d9194be67 100644
--- a/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-runner/default.nix
@@ -20,13 +20,13 @@
 
 mkDerivation rec {
   pname = "lxqt-runner";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0bmx5y4l443j8vrzw8967kw5i150braq0pfj8xk0nyz6zz62rrf1";
+    sha256 = "167gzn6aqk7akzbmrnm7nmcpkl0nphr8axbfgwnw552dnk6v8gn0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-session/default.nix b/pkgs/desktops/lxqt/lxqt-session/default.nix
index 4c29a249dde..b62ca157eeb 100644
--- a/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-session/default.nix
@@ -11,6 +11,7 @@
 , kwindowsystem
 , liblxqt
 , libqtxdg
+, procps
 , xorg
 , xdg-user-dirs
 , lxqtUpdateScript
@@ -18,13 +19,13 @@
 
 mkDerivation rec {
   pname = "lxqt-session";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1lmj0cx4crdjl2qih3scm2gvsx3qna0nb6mjjrcx0f2k7h744pik";
+    sha256 = "1nhw3y3dm4crawc1905l6drn0i79fs1dzs8iak0vmmplbiv3fvgg";
   };
 
   nativeBuildInputs = [
@@ -41,6 +42,7 @@ mkDerivation rec {
     kwindowsystem
     liblxqt
     libqtxdg
+    procps
     xorg.libpthreadstubs
     xorg.libXdmcp
     xdg-user-dirs
diff --git a/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
index 79168795c60..4daf40197e8 100644
--- a/pkgs/desktops/lxqt/lxqt-sudo/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "lxqt-sudo";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0al64v12ddi6bgrr2z86jh21c02wg5l0mxjcmk9xlsvdx0d94cdx";
+    sha256 = "10s8k83mkqiakh18mh1l7idjp95cy49rg8dh14cy159dk8mchcd0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-themes/default.nix b/pkgs/desktops/lxqt/lxqt-themes/default.nix
index 08ba99c9606..985e84d03c2 100644
--- a/pkgs/desktops/lxqt/lxqt-themes/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-themes/default.nix
@@ -8,13 +8,13 @@
 
 mkDerivation rec {
   pname = "lxqt-themes";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "12pbba7a2rk0kjn3hl2lvn90di58w0s5psbq51kz39ah3rlp9dzz";
+    sha256 = "13zh5yrq0f96cn5m6i7zdvgb9iw656fad5ps0s2zx6x8mj2mv64f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index e996eefc903..662930e4e37 100644
--- a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -13,13 +13,13 @@
 
 mkDerivation rec {
   pname = "pavucontrol-qt";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1d3kp2y3crrmbqak4mn9d6cfbhi5l5xhchhjh44ng8gpww22k5h0";
+    sha256 = "0syc4bc2k7961la2c77787akhcljspq3s2nyqvb7mq7ddq1xn0wx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index 2fa7879d58e..ba913cd147f 100644
--- a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "pcmanfm-qt";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "09mlv5qkwzpfz5l41pcz0k01kgsikzkghhfkl84hwyjdm4i2vapj";
+    sha256 = "1awyncpypygsrg7d2nc6xh1l4xaln3ypdliy4xmq8bf94sh9rf0y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qps/default.nix b/pkgs/desktops/lxqt/qps/default.nix
index be28b589ca1..0a4918190b0 100644
--- a/pkgs/desktops/lxqt/qps/default.nix
+++ b/pkgs/desktops/lxqt/qps/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "qps";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0gfw7iz7jzyfl9hiq3aivbgkkl61fz319cfg57fgn2kldlcljhwa";
+    sha256 = "0fihhnb7vp6x072spg1fnxaip4sq9mbvhrfqdwnzph5dlyvs54nj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index 740cc09fca5..d383703199a 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "qterminal";
-  version = "0.16.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0l1jhkyx7ihv3nvqm1gfvzhrhl4l8yvqxly0c9zgl6mzrd39cj3d";
+    sha256 = "0mdcz45faj9ysw725qzg572968kf5sh6zfw7iiksi26s8kiyhbbp";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qtermwidget/default.nix b/pkgs/desktops/lxqt/qtermwidget/default.nix
index 5970827f458..94a9c651cc8 100644
--- a/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/pkgs/desktops/lxqt/qtermwidget/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "qtermwidget";
-  version = "0.16.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0kpg4b60h6dads8ncwlk0zj1c8y7xpb0kz28j0v9fqjbmxja7x6w";
+    sha256 = "0pmkk2mba8z6cgfsd8sy4vhf5d9fn9hvxszzyycyy1ndygjrc1v8";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/screengrab/default.nix b/pkgs/desktops/lxqt/screengrab/default.nix
index 36174c870df..0ed305403b1 100644
--- a/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/pkgs/desktops/lxqt/screengrab/default.nix
@@ -9,6 +9,7 @@
 , qtsvg
 , kwindowsystem
 , libqtxdg
+, perl
 , xorg
 , autoPatchelfHook
 , lxqtUpdateScript
@@ -16,18 +17,19 @@
 
 mkDerivation rec {
   pname = "screengrab";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0jy2izgl3jg6mnykpw7ji1fjv7dsivdfi6k6i6glrpa0z1p51gic";
+    sha256 = "16dycq40lbvk6jvpj7zp85m23cgvh8nj38fz99gxjfzn2nz1gy4a";
   };
 
   nativeBuildInputs = [
     cmake
     pkg-config
+    perl # needed by LXQtTranslateDesktop.cmake
     autoPatchelfHook # fix libuploader.so and libextedit.so not found
   ];
 
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index 3f68da288c0..7e8afde588c 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -17,17 +17,18 @@
 , enablePostScript ? true, libspectre
 , enableXps ? true, libgxps
 , enableImages ? false
+, mateUpdateScript
 }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "atril";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0967gxw7h2qh2kpwl0jgv58hicz6aa92kr12mnykbpikad25s95y";
+    sha256 = "06nyicj96dqcv035yqnzmm6pk3m35glxj0ny6lk1vwqkk2l750xl";
   };
 
   nativeBuildInputs = [
@@ -67,10 +68,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "A simple multi-page document viewer for the MATE desktop";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/caja-dropbox/default.nix b/pkgs/desktops/mate/caja-dropbox/default.nix
index 92176493afc..3b96f67b12a 100644
--- a/pkgs/desktops/mate/caja-dropbox/default.nix
+++ b/pkgs/desktops/mate/caja-dropbox/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, substituteAll
 , pkg-config, gobject-introspection, gdk-pixbuf
-, gtk3, mate, python3, dropbox }:
+, gtk3, mate, python3, dropbox, mateUpdateScript }:
 
 let
   dropboxd = "${dropbox}/bin/dropbox";
@@ -43,10 +43,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Dropbox extension for Caja file manager";
     homepage = "https://github.com/mate-desktop/caja-dropbox";
-    license = with licenses; [ gpl3 cc-by-nd-30 ];
+    license = with licenses; [ gpl3Plus cc-by-nd-30 ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/caja-extensions/default.nix b/pkgs/desktops/mate/caja-extensions/default.nix
index 64a036fd389..5c08074f045 100644
--- a/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-extensions/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gupnp, mate, imagemagick, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gupnp, mate, imagemagick, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "caja-extensions";
@@ -33,10 +33,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Set of extensions for Caja file manager";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/caja-with-extensions/default.nix b/pkgs/desktops/mate/caja-with-extensions/default.nix
index 35e3cd198f6..125e39d1f46 100644
--- a/pkgs/desktops/mate/caja-with-extensions/default.nix
+++ b/pkgs/desktops/mate/caja-with-extensions/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, makeWrapper, caja-extensions, caja, extensions ? [ caja-extensions ] }:
+{ stdenv, lib, makeWrapper, caja-extensions, caja, extensions ? [ caja-extensions ], mateUpdateScript }:
 
 stdenv.mkDerivation {
   pname = "${caja.pname}-with-extensions";
diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix
index 890d3d61548..c533f78849c 100644
--- a/pkgs/desktops/mate/caja/default.nix
+++ b/pkgs/desktops/mate/caja/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libnotify, libxml2, libexif, exempi, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libnotify, libxml2, libexif, exempi, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "caja";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cnfy481hcwjv3ia3kw0d4h7ga8cng0pqm3z349v4qcmfdapmqc0";
+    sha256 = "0ylgb4b31vwgqmmknrhm4m9gfa1rzb9azpdd9myi0hscrr3h22z5";
   };
 
   nativeBuildInputs = [
@@ -33,11 +33,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
+  meta = with lib; {
     description = "File manager for the MATE desktop";
     homepage = "https://mate-desktop.org";
-    license = with lib.licenses; [ gpl2 lgpl2 ];
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.romildo ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/mate/default.nix b/pkgs/desktops/mate/default.nix
index 10c278c8bf9..291d26afcd5 100644
--- a/pkgs/desktops/mate/default.nix
+++ b/pkgs/desktops/mate/default.nix
@@ -1,10 +1,18 @@
-{ newScope }:
+{ pkgs, newScope }:
 
 let
   callPackage = newScope self;
 
   self = rec {
 
+    # Update script tailored to mate packages from git repository
+    mateUpdateScript = { pname, version, odd-unstable ? true, url ? "https://pub.mate-desktop.org/releases" }:
+      pkgs.genericUpdater {
+        inherit pname version odd-unstable;
+        attrPath = "mate.${pname}";
+        versionLister = "${pkgs.common-updater-scripts}/bin/list-archive-two-level-versions ${url}";
+      };
+
     atril = callPackage ./atril { };
     caja = callPackage ./caja { };
     caja-dropbox = callPackage ./caja-dropbox { };
diff --git a/pkgs/desktops/mate/engrampa/default.nix b/pkgs/desktops/mate/engrampa/default.nix
index 591cac7d886..81d34b8b125 100644
--- a/pkgs/desktops/mate/engrampa/default.nix
+++ b/pkgs/desktops/mate/engrampa/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, gtk3, file, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, gtk3, file, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "engrampa";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0akjnz85qkpiqgj1ccn41rzbfid4l3r3nsm4s9s779ilzd7f097y";
+    sha256 = "0x26djz73g3fjwzcpr7k60xb6qx5izhw7lf2ggn34iwpihl0sa7f";
   };
 
   nativeBuildInputs = [
@@ -32,11 +32,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
+  meta = with lib; {
     description = "Archive Manager for MATE";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.romildo ];
+    license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/mate/eom/default.nix b/pkgs/desktops/mate/eom/default.nix
index 8b447f14d8b..27c12079654 100644
--- a/pkgs/desktops/mate/eom/default.nix
+++ b/pkgs/desktops/mate/eom/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, exempi, lcms2, libexif, libjpeg, librsvg, libxml2, libpeas, shared-mime-info, gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, exempi, lcms2, libexif, libjpeg, librsvg, libxml2, libpeas, shared-mime-info, gtk3, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "eom";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0dralsc0dvs0l38cysdhx6kiaiqlb8qi6g9xz2cm6mjqyq3d3f9f";
+    sha256 = "08rjckr1hdw7c31f2hzz3vq0rn0c5z3hmvl409y6k6ns583k1bgf";
   };
 
   nativeBuildInputs = [
@@ -32,10 +32,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = {
     description = "An image viewing and cataloging program for the MATE desktop";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/libmatekbd/default.nix b/pkgs/desktops/mate/libmatekbd/default.nix
index 1b66bb97efe..8d0b567f161 100644
--- a/pkgs/desktops/mate/libmatekbd/default.nix
+++ b/pkgs/desktops/mate/libmatekbd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libxklavier }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libxklavier, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "libmatekbd";
@@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Keyboard management library for MATE";
     homepage = "https://github.com/mate-desktop/libmatekbd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/libmatemixer/default.nix b/pkgs/desktops/mate/libmatemixer/default.nix
index 29d6127c3b3..9d42c23c714 100644
--- a/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/pkgs/desktops/mate/libmatemixer/default.nix
@@ -2,7 +2,8 @@
 , alsaSupport ? stdenv.isLinux, alsaLib
 , pulseaudioSupport ? config.pulseaudio or true, libpulseaudio
 , ossSupport ? false
- }:
+, mateUpdateScript
+}:
 
 stdenv.mkDerivation rec {
   pname = "libmatemixer";
@@ -23,10 +24,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Mixer library for MATE";
     homepage = "https://github.com/mate-desktop/libmatemixer";
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/libmateweather/default.nix b/pkgs/desktops/mate/libmateweather/default.nix
index 0f5deb8f550..b042df0fe1a 100644
--- a/pkgs/desktops/mate/libmateweather/default.nix
+++ b/pkgs/desktops/mate/libmateweather/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libsoup, tzdata }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libsoup, tzdata, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "libmateweather";
@@ -22,10 +22,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Library to access weather information from online services for MATE";
     homepage = "https://github.com/mate-desktop/libmateweather";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index 3c16004010c..6ac9c3864ab 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -1,12 +1,13 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, libcanberra-gtk3, libgtop, libstartup_notification, gnome3, gtk3, mate-settings-daemon, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, libcanberra-gtk3, libgtop
+, libXdamage, libXpresent, libstartup_notification, gnome3, gtk3, mate-settings-daemon, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "marco";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "109b41pjrc1b4slw6sx1lakdhrc46x829vczzk4bz3j15kcszg54";
+    sha256 = "19s2y2s9immp86ni3395mgxl605m2wn10m8399y9qkgw2b5m10s9";
   };
 
   nativeBuildInputs = [
@@ -20,6 +21,8 @@ stdenv.mkDerivation rec {
     libxml2
     libcanberra-gtk3
     libgtop
+    libXdamage
+    libXpresent
     libstartup_notification
     gtk3
     gnome3.zenity
@@ -28,10 +31,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE default window manager";
     homepage = "https://github.com/mate-desktop/marco";
-    license = [ licenses.gpl2 ];
+    license = [ licenses.gpl2Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix
index bfa5a1a5d95..1046e431a3b 100644
--- a/pkgs/desktops/mate/mate-applets/default.nix
+++ b/pkgs/desktops/mate/mate-applets/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gnome3, glib, gtk3, gtksourceview3, libwnck3, libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gnome3, glib, gtk3, gtksourceview3, libwnck3
+, libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook
+, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-applets";
@@ -38,6 +40,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Applets for use with the MATE panel";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-backgrounds/default.nix b/pkgs/desktops/mate/mate-backgrounds/default.nix
index b990a53b04a..cfe1325b839 100644
--- a/pkgs/desktops/mate/mate-backgrounds/default.nix
+++ b/pkgs/desktops/mate/mate-backgrounds/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, gettext }:
+{ lib, stdenv, fetchurl, meson, ninja, gettext, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-backgrounds";
@@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
     ninja
   ];
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Background images and data for MATE";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Plus cc-by-sa-40 ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-calc/default.nix b/pkgs/desktops/mate/mate-calc/default.nix
index 2805c86fe89..a3e8d3b5951 100644
--- a/pkgs/desktops/mate/mate-calc/default.nix
+++ b/pkgs/desktops/mate/mate-calc/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, libxml2, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, libxml2, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-calc";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0imdimq5d5rjq8mkjcrsd683a2bn9acmhc0lmvyw71y0040inbaw";
+    sha256 = "1yg8j0dqy37fljd20pwxdgna3f1v7k9wmdr9l4r1nqf4a7zwi96l";
   };
 
   nativeBuildInputs = [
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Calculator for the MATE desktop";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-common/default.nix b/pkgs/desktops/mate/mate-common/default.nix
index 7a2ac74522f..58314df673a 100644
--- a/pkgs/desktops/mate/mate-common/default.nix
+++ b/pkgs/desktops/mate/mate-common/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-common";
@@ -11,10 +11,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = {
     description = "Common files for development of MATE packages";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-control-center/default.nix b/pkgs/desktops/mate/mate-control-center/default.nix
index 262ca75ac79..b94e7ecfd06 100644
--- a/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/pkgs/desktops/mate/mate-control-center/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, dbus-glib,
-  libxklavier, libcanberra-gtk3, librsvg, libappindicator-gtk3,
-  desktop-file-utils, dconf, gtk3, polkit, mate, hicolor-icon-theme, wrapGAppsHook
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, libxml2, dbus-glib
+, libxklavier, libcanberra-gtk3, librsvg, libappindicator-gtk3
+, desktop-file-utils, dconf, gtk3, polkit, mate, hicolor-icon-theme, wrapGAppsHook
+, mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-control-center";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08bai47fsmbxlw2lhig9n6c8sxr24ixkd1spq3j0635yzcqighb0";
+    sha256 = "18vsqkcl4n3k5aa05fqha61jc3133zw07gd604sm0krslwrwdn39";
   };
 
   nativeBuildInputs = [
@@ -49,10 +50,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Utilities to configure the MATE desktop";
     homepage = "https://github.com/mate-desktop/mate-control-center";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-desktop/default.nix b/pkgs/desktops/mate/mate-desktop/default.nix
index 9102ae3e8b5..b1b59dc6402 100644
--- a/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/pkgs/desktops/mate/mate-desktop/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, isocodes, gnome3, gtk3, dconf, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, isocodes, gnome3, gtk3, dconf, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-desktop";
@@ -23,10 +23,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Library with common API for various MATE modules";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
index fd280f3d96e..7dc4423fb6b 100644
--- a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook, gtk3, mate, hicolor-icon-theme }:
+{ lib, stdenv, fetchurl, autoreconfHook, gtk3, mate, hicolor-icon-theme, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-icon-theme-faenza";
@@ -23,11 +23,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
+  meta = with lib; {
     description = "Faenza icon theme from MATE";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.romildo ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/mate/mate-icon-theme/default.nix b/pkgs/desktops/mate/mate-icon-theme/default.nix
index 530a7b66ff1..cf18cf528f2 100644
--- a/pkgs/desktops/mate/mate-icon-theme/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, iconnamingutils, librsvg, gtk3, hicolor-icon-theme }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, iconnamingutils, librsvg, gtk3, hicolor-icon-theme, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-icon-theme";
@@ -27,10 +27,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = {
     description = "Icon themes from MATE";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.lgpl3;
+    license = lib.licenses.lgpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-indicator-applet/default.nix b/pkgs/desktops/mate/mate-indicator-applet/default.nix
index a26b593101a..804bf2352d0 100644
--- a/pkgs/desktops/mate/mate-indicator-applet/default.nix
+++ b/pkgs/desktops/mate/mate-indicator-applet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libindicator-gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libindicator-gtk3, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-indicator-applet";
@@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     homepage = "https://github.com/mate-desktop/mate-indicator-applet";
     description = "MATE panel indicator applet";
diff --git a/pkgs/desktops/mate/mate-media/default.nix b/pkgs/desktops/mate/mate-media/default.nix
index f4d8bd73884..6072e81fb3c 100644
--- a/pkgs/desktops/mate/mate-media/default.nix
+++ b/pkgs/desktops/mate/mate-media/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, libtool, libxml2, libcanberra-gtk3, gtk3, mate, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, libtool, libxml2, libcanberra-gtk3, gtk3, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-media";
@@ -27,10 +27,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Media tools for MATE";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl3;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo maintainers.chpatrick ];
   };
diff --git a/pkgs/desktops/mate/mate-menus/default.nix b/pkgs/desktops/mate/mate-menus/default.nix
index 1333af0cdd9..5b11c20380a 100644
--- a/pkgs/desktops/mate/mate-menus/default.nix
+++ b/pkgs/desktops/mate/mate-menus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, glib, gobject-introspection, python3 }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, glib, gobject-introspection, python3, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-menus";
@@ -20,10 +20,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Menu system for MATE";
     homepage = "https://github.com/mate-desktop/mate-menus";
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-netbook/default.nix b/pkgs/desktops/mate/mate-netbook/default.nix
index 3912ab47c8e..9b7a5ae6718 100644
--- a/pkgs/desktops/mate/mate-netbook/default.nix
+++ b/pkgs/desktops/mate/mate-netbook/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libwnck3, libfakekey, libXtst, mate, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, libwnck3, libfakekey, libXtst, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-netbook";
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE utilities for netbooks";
     longDescription = ''
@@ -35,7 +37,7 @@ stdenv.mkDerivation rec {
       devices with low resolution displays.
     '';
     homepage = "https://mate-desktop.org";
-    license = with licenses; [ gpl3 lgpl2Plus ];
+    license = with licenses; [ gpl3Only lgpl2Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-notification-daemon/default.nix b/pkgs/desktops/mate/mate-notification-daemon/default.nix
index 5e867085bb1..62181418fdf 100644
--- a/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, glib, libcanberra-gtk3,
-  libnotify, libwnck3, gtk3, libxml2, wrapGAppsHook }:
+  libnotify, libwnck3, gtk3, libxml2, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-notification-daemon";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ybzr8mni5pgrspf8hqnisd0r0hwdlgk7n5mzsh7xisbkgivpw2b";
+    sha256 = "02mf9186cbziyvz7ycb0j9b7rn085a7f9hrm03n28q5kz0z1k92q";
   };
 
   nativeBuildInputs = [
@@ -28,10 +28,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Notification daemon for MATE Desktop";
     homepage = "https://github.com/mate-desktop/mate-notification-daemon";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Plus gpl3Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-panel/default.nix b/pkgs/desktops/mate/mate-panel/default.nix
index 1ada0171911..328fcfd20de 100644
--- a/pkgs/desktops/mate/mate-panel/default.nix
+++ b/pkgs/desktops/mate/mate-panel/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, glib, libwnck3, librsvg, libxml2, dconf, gtk3, mate, hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, glib, libwnck3, librsvg, libxml2, dconf, gtk3, mate, hicolor-icon-theme, gobject-introspection, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xblqrhfazd01h0jdmx4hvavkb7f9anbd4rjsk5r6wxhp027l64l";
+    sha256 = "1sj851h71nq4ssrsd4k5b0vayxmspl5x3rhf488b2xpcj81vmi9h";
   };
 
   nativeBuildInputs = [
@@ -39,10 +39,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "The MATE panel";
     homepage = "https://github.com/mate-desktop/mate-panel";
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-polkit/default.nix b/pkgs/desktops/mate/mate-polkit/default.nix
index 67690161f55..174e2e46624 100644
--- a/pkgs/desktops/mate/mate-polkit/default.nix
+++ b/pkgs/desktops/mate/mate-polkit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gobject-introspection, libappindicator-gtk3, libindicator-gtk3, polkit }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, gobject-introspection, libappindicator-gtk3, libindicator-gtk3, polkit, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-polkit";
@@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Integrates polkit authentication for MATE desktop";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-power-manager/default.nix b/pkgs/desktops/mate/mate-power-manager/default.nix
index e0c46076a65..3a99538d929 100644
--- a/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate-panel, libnotify, libcanberra-gtk3, dbus-glib, upower, gnome3, gtk3, libtool, polkit, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate-panel, libnotify, libcanberra-gtk3, dbus-glib, upower, gnome3, gtk3, libtool, polkit, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-power-manager";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0fni41p3kraxwjnx9l5mdspng0zib1gfdxwlaiyq31mh4g79yjyj";
+    sha256 = "1rmcrpii3hl35qjznk6h5cq72n60cs12n294hjyakxr9kvgns7l6";
   };
 
   nativeBuildInputs = [
@@ -34,10 +34,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "The MATE Power Manager";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl3;
+    license = with licenses; [ gpl2Plus fdl11Plus ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ romildo chpatrick ];
   };
diff --git a/pkgs/desktops/mate/mate-screensaver/default.nix b/pkgs/desktops/mate/mate-screensaver/default.nix
index fe309352346..f132bbcd26d 100644
--- a/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, dbus-glib, libXScrnSaver, libnotify, libxml2, pam, systemd, mate, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, dbus-glib, libXScrnSaver, libnotify, libxml2, pam, systemd, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-screensaver";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0imb1z2yvz1h95dzq396c569kkxys9mb2dyc6qxxxcnc5w02a2dw";
+    sha256 = "18hxhglryfcbpbns9izigiws7lvdv5dnsaaz226ih3aar5db1ysy";
   };
 
   nativeBuildInputs = [
@@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Screen saver and locker for the MATE desktop";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-sensors-applet/default.nix b/pkgs/desktops/mate/mate-sensors-applet/default.nix
index 6fed2a65444..849f767c7c2 100644
--- a/pkgs/desktops/mate/mate-sensors-applet/default.nix
+++ b/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, libxml2, libxslt, libatasmart, libnotify, lm_sensors, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, libxml2, libxslt, libatasmart, libnotify
+, lm_sensors, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-sensors-applet";
@@ -30,6 +31,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     homepage = "https://github.com/mate-desktop/mate-sensors-applet";
     description = "MATE panel applet for hardware sensors";
diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix
index 08a119ad8d2..c0cd12bd273 100644
--- a/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, xtrans, dbus-glib, systemd,
   libSM, libXtst, gtk3, epoxy, polkit, hicolor-icon-theme, mate,
-  wrapGAppsHook, fetchpatch
+  wrapGAppsHook, fetchpatch, mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-session-manager";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1zwq8symyp3ijs28pyrknsdi9byf4dpp9wp93ndwdhi0vaip5i51";
+    sha256 = "1jcb5k2fx2rwwbrslgv1xlzaiwiwjnxjwnp503qf8cg89w69q2vb";
   };
 
   patches = [
@@ -43,16 +43,17 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     substituteInPlace $out/share/xsessions/mate.desktop \
-      --replace "Exec=mate-session" "Exec=$out/bin/mate-session" \
-      --replace "TryExec=mate-session" "TryExec=$out/bin/mate-session"
+      --replace "Exec=mate-session" "Exec=$out/bin/mate-session"
   '';
 
   passthru.providedSessions = [ "mate" ];
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE Desktop session manager";
     homepage = "https://github.com/mate-desktop/mate-session-manager";
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-settings-daemon/default.nix b/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 0a483269c5e..6c35a1d6312 100644
--- a/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, glib, dbus-glib, libxklavier,
   libcanberra-gtk3, libnotify, nss, polkit, dconf, gtk3, mate,
   pulseaudioSupport ? stdenv.config.pulseaudio or true, libpulseaudio,
-  wrapGAppsHook }:
+  wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-settings-daemon";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0n1ywr3ir5p536s7azdbw2mh40ylqlpx3a74mjrivbms1rpjxyab";
+    sha256 = "051r7xrx1byllsszbwsk646sq4izyag9yxg8jw2rm6x6mgwb89cc";
   };
 
   nativeBuildInputs = [
@@ -38,10 +38,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE settings daemon";
     homepage = "https://github.com/mate-desktop/mate-settings-daemon";
-    license = with licenses; [ gpl2 lgpl21 ];
+    license = with licenses; [ gpl2Plus gpl3Plus lgpl2Plus mit ];
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-system-monitor/default.nix b/pkgs/desktops/mate/mate-system-monitor/default.nix
index 2d89cb2494b..4527c91eed6 100644
--- a/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtkmm3, libxml2, libgtop, libwnck3, librsvg, polkit, systemd, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtkmm3, libxml2, libgtop, libwnck3, librsvg, polkit, systemd, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-system-monitor";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1i2r4lw6xsk972yp15g5hm8p8xx9pp6jmcvvzbdq80xyx3x898qz";
+    sha256 = "1mbny5hs5805398krvcsvi1jfhyq9a9dfciyrnis67n2yisr1hzp";
   };
 
   nativeBuildInputs = [
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "System monitor for the MATE desktop";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-terminal/default.nix b/pkgs/desktops/mate/mate-terminal/default.nix
index 48588cc6d6d..2c4d4223ecc 100644
--- a/pkgs/desktops/mate/mate-terminal/default.nix
+++ b/pkgs/desktops/mate/mate-terminal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate, dconf, gtk3, vte, pcre2, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, glib, itstool, libxml2, mate, dconf, gtk3, vte, pcre2, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-terminal";
@@ -30,10 +30,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "The MATE Terminal Emulator";
     homepage = "https://mate-desktop.org";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/mate/mate-themes/default.nix b/pkgs/desktops/mate/mate-themes/default.nix
index 3c0d9cf1b02..6a1be82c8a6 100644
--- a/pkgs/desktops/mate/mate-themes/default.nix
+++ b/pkgs/desktops/mate/mate-themes/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, mate-icon-theme, gtk2, gtk3,
-  gtk_engines, gtk-engine-murrine, gdk-pixbuf, librsvg }:
+  gtk_engines, gtk-engine-murrine, gdk-pixbuf, librsvg, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-themes";
-  version = "3.22.21";
+  version = "3.22.22";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/themes/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "051g2vq817g84yrqzf7hjcqr4xrghnw1rprjd6jf5mhhzmwcas6n";
+    sha256 = "18crdwfpfm3br4pv94wy7rpmzzb69im4j8dgq1b7c8gcbbzay05x";
   };
 
   nativeBuildInputs = [ pkg-config gettext gtk3 ];
@@ -24,11 +24,16 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  passthru.updateScript = mateUpdateScript {
+    inherit pname version;
+    url = "https://pub.mate-desktop.org/releases/themes";
+  };
+
+  meta = with lib; {
     description = "A set of themes from MATE";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.lgpl21;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.romildo ];
+    license = with licenses; [ lgpl21Plus lgpl3Only gpl3Plus ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/mate/mate-tweak/default.nix b/pkgs/desktops/mate/mate-tweak/default.nix
index ce97bc416e6..830cf092f80 100644
--- a/pkgs/desktops/mate/mate-tweak/default.nix
+++ b/pkgs/desktops/mate/mate-tweak/default.nix
@@ -9,17 +9,19 @@
 , gobject-introspection
 , wrapGAppsHook
 , glib
+, genericUpdater
+, common-updater-scripts
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "mate-tweak";
-  version = "20.10.0";
+  version = "21.04.3";
 
   src = fetchFromGitHub {
     owner = "ubuntu-mate";
     repo = pname;
     rev = version;
-    sha256 = "08gw5i5wjxmzn92h9fv6g7q9i00n8shv1wlpy6cb31xy9wbmjph6";
+    sha256 = "0vpzy7awhb1xfsdjsrchy5b9dygj4ixdcvgx5v5w8hllmi4yxpc1";
   };
 
   nativeBuildInputs = [
@@ -72,6 +74,12 @@ python3Packages.buildPythonApplication rec {
     done
   '';
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    attrPath = "mate.${pname}";
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+  };
+
   meta = with lib; {
     description = "Tweak tool for the MATE Desktop";
     homepage = "https://github.com/ubuntu-mate/mate-tweak";
diff --git a/pkgs/desktops/mate/mate-user-guide/default.nix b/pkgs/desktops/mate/mate-user-guide/default.nix
index 2a91cac5a54..d7c83cc9820 100644
--- a/pkgs/desktops/mate/mate-user-guide/default.nix
+++ b/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gettext, itstool, libxml2, yelp }:
+{ lib, stdenv, fetchurl, gettext, itstool, libxml2, yelp, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-user-guide";
@@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE User Guide";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mate-user-share/default.nix b/pkgs/desktops/mate/mate-user-share/default.nix
index 8aa9591003c..1126e585135 100644
--- a/pkgs/desktops/mate/mate-user-share/default.nix
+++ b/pkgs/desktops/mate/mate-user-share/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, dbus-glib, libnotify, libxml2, libcanberra-gtk3, mod_dnssd, apacheHttpd, hicolor-icon-theme, mate, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, gtk3, dbus-glib, libnotify, libxml2
+, libcanberra-gtk3, mod_dnssd, apacheHttpd, hicolor-icon-theme, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-user-share";
@@ -44,6 +45,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "User level public file sharing for the MATE desktop";
     homepage = "https://github.com/mate-desktop/mate-user-share";
diff --git a/pkgs/desktops/mate/mate-utils/default.nix b/pkgs/desktops/mate/mate-utils/default.nix
index c58a3d4bc64..0b7b181bd57 100644
--- a/pkgs/desktops/mate/mate-utils/default.nix
+++ b/pkgs/desktops/mate/mate-utils/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, glib, gtk3, libxml2, libgtop, libcanberra-gtk3, inkscape, udisks2, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, itstool, glib, gtk3, libxml2, libgtop, libcanberra-gtk3
+, inkscape, udisks2, mate, hicolor-icon-theme, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "mate-utils";
@@ -31,6 +32,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Utilities for the MATE desktop";
     homepage = "https://mate-desktop.org";
diff --git a/pkgs/desktops/mate/mozo/default.nix b/pkgs/desktops/mate/mozo/default.nix
index 4d893cd2e74..4122e823165 100644
--- a/pkgs/desktops/mate/mozo/default.nix
+++ b/pkgs/desktops/mate/mozo/default.nix
@@ -1,15 +1,15 @@
-{ lib, python3, fetchurl, pkg-config, gettext, mate, gtk3, glib, wrapGAppsHook, gobject-introspection }:
+{ lib, python3, fetchurl, pkg-config, gettext, mate, gtk3, glib, wrapGAppsHook, gobject-introspection, mateUpdateScript }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mozo";
-  version = "1.24.0";
+  version = "1.24.1";
 
   format = "other";
   doCheck = false;
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01lyi47a04xk0by5bvnfmqgv5sysk2wdlri6a4ssmy1qhgwh9zr3";
+    sha256 = "14ps43gdh1sfvq49yhl58gxq3rc0d25i2d7r4ghlzf07ssxl53b0";
   };
 
   nativeBuildInputs = [ pkg-config gettext gobject-introspection wrapGAppsHook ];
@@ -20,6 +20,8 @@ python3.pkgs.buildPythonApplication rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "MATE Desktop menu editor";
     homepage = "https://github.com/mate-desktop/mozo";
diff --git a/pkgs/desktops/mate/pluma/default.nix b/pkgs/desktops/mate/pluma/default.nix
index a879f2df5d1..4c98c9cf520 100644
--- a/pkgs/desktops/mate/pluma/default.nix
+++ b/pkgs/desktops/mate/pluma/default.nix
@@ -1,12 +1,13 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, perl, itstool, isocodes, enchant, libxml2, python3, gnome3, gtksourceview3, libpeas, mate, wrapGAppsHook }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, perl, itstool, isocodes, enchant, libxml2, python3
+, gnome3, gtksourceview3, libpeas, mate, wrapGAppsHook, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "pluma";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1sgc5f480icr2ans6gd3akvcax58mr4jp3zjk3xn7bx1mw9i299f";
+    sha256 = "183frfhll3sb4r12p24160j1c1cfd102nlp5rrwvyv5qqm7i2fg4";
   };
 
   nativeBuildInputs = [
@@ -30,11 +31,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
+  meta = with lib; {
     description = "Powerful text editor for the MATE desktop";
     homepage = "https://mate-desktop.org";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
-    maintainers = [ lib.maintainers.romildo ];
+    license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/mate/python-caja/default.nix b/pkgs/desktops/mate/python-caja/default.nix
index 2c59d78e86a..8104da3420e 100644
--- a/pkgs/desktops/mate/python-caja/default.nix
+++ b/pkgs/desktops/mate/python-caja/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, mate, python3Packages }:
+{ lib, stdenv, fetchurl, pkg-config, gettext, gtk3, mate, python3Packages, mateUpdateScript }:
 
 stdenv.mkDerivation rec {
   pname = "python-caja";
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = mateUpdateScript { inherit pname version; };
+
   meta = with lib; {
     description = "Python binding for Caja components";
     homepage = "https://github.com/mate-desktop/python-caja";
diff --git a/pkgs/desktops/mate/update.sh b/pkgs/desktops/mate/update.sh
deleted file mode 100755
index d214e07f8cd..00000000000
--- a/pkgs/desktops/mate/update.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p libarchive curl common-updater-scripts
-
-set -eu -o pipefail
-
-cd "$(dirname "${BASH_SOURCE[0]}")"
-root=../../..
-export NIXPKGS_ALLOW_UNFREE=1
-
-mate_version=1.24
-theme_version=3.22
-materepo=https://pub.mate-desktop.org/releases/${mate_version}
-themerepo=https://pub.mate-desktop.org/releases/themes/${theme_version}
-
-version() {
-    (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
-}
-
-update_package() {
-    local p=$1
-    echo $p
-    echo "# $p" >> git-commits.txt
-
-    local repo
-    if [ "$p" = "mate-themes" ]; then
-        repo=$themerepo
-    else
-        repo=$materepo
-    fi
-  
-    local p_version_old=$(version mate.$p)
-    local p_versions=$(curl -sS ${repo}/ | sed -rne "s/.*\"$p-([0-9]+\\.[0-9]+\\.[0-9]+)\\.tar\\.xz.*/\\1/p")
-    local p_version=$(echo $p_versions | sed -e 's/ /\n/g' | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n1)
-
-    if [[ -z "$p_version" ]]; then
-        echo "unavailable $p"
-        echo "# $p not found" >> git-commits.txt
-        echo
-        return
-    fi
-
-    if [[ "$p_version" = "$p_version_old" ]]; then
-        echo "nothing to do, $p $p_version is current"
-        echo
-        return
-    fi
-
-    # Download package and save hash and file path.
-    local url="$repo/$p-${p_version}.tar.xz"
-    mapfile -t prefetch < <(nix-prefetch-url --print-path "$url")
-    local hash=${prefetch[0]}
-    local path=${prefetch[1]}
-    echo "$p: $p_version_old -> $p_version"
-    (cd "$root" && update-source-version mate.$p "$p_version" "$hash")
-    echo "   git add pkgs/desktops/mate/$p" >> git-commits.txt
-    echo "   git commit -m \"mate.$p: $p_version_old -> $p_version\"" >> git-commits.txt
-    echo
-}
-
-for d in $(ls -A --indicator-style=none); do
-    if [ -d $d ]; then
-        update_package $d
-    fi
-done
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 8e314d3d84b..97c2d0c8845 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -13,6 +13,7 @@
 , granite
 , gettext
 , mutter
+, mesa
 , json-glib
 , python3
 , elementary-gtk-theme
@@ -55,6 +56,7 @@ stdenv.mkDerivation rec {
     json-glib
     libgee
     mutter
+    mesa # for libEGL
   ];
 
   patches = [
diff --git a/pkgs/desktops/plasma-5/bluedevil.nix b/pkgs/desktops/plasma-5/bluedevil.nix
index 7500dda7e3f..db1e46f6d4e 100644
--- a/pkgs/desktops/plasma-5/bluedevil.nix
+++ b/pkgs/desktops/plasma-5/bluedevil.nix
@@ -13,5 +13,4 @@ mkDerivation {
     ki18n kio kwindowsystem plasma-framework kcoreaddons kdbusaddons kded
     kiconthemes knotifications kwidgetsaddons
   ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 98bf4b025f2..ea2e199e931 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -30,6 +30,13 @@ existing packages here and modify it as necessary.
 }:
 
 let
+  minQtVersion = "5.15";
+  broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
+  maintainers = with lib.maintainers; [ ttuegel nyanloutre ];
+  license = with lib.licenses; [
+    lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
+  ];
+
   srcs = import ./srcs.nix {
     inherit fetchurl;
     mirror = "mirror://kde";
@@ -81,14 +88,15 @@ let
             defaultSetupHook = if hasBin && hasDev then propagateBin else null;
             setupHook = args.setupHook or defaultSetupHook;
 
-            meta = {
-              license = with lib.licenses; [
-                lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
-              ];
-              platforms = lib.platforms.linux;
-              maintainers = with lib.maintainers; [ ttuegel nyanloutre ];
-              homepage = "http://www.kde.org";
-            } // (args.meta or {});
+            meta =
+              let meta = args.meta or {}; in
+              meta // {
+                homepage = meta.homepage or "http://www.kde.org";
+                license = meta.license or license;
+                maintainers = (meta.maintainers or []) ++ maintainers;
+                platforms = meta.platforms or lib.platforms.linux;
+                broken = meta.broken or broken;
+              };
           in
           mkDerivation (args // {
             name = "${name}-${version}";
diff --git a/pkgs/desktops/plasma-5/discover.nix b/pkgs/desktops/plasma-5/discover.nix
index 75e0fd6917d..e065837cd2f 100644
--- a/pkgs/desktops/plasma-5/discover.nix
+++ b/pkgs/desktops/plasma-5/discover.nix
@@ -33,7 +33,6 @@
 
 mkDerivation {
   name = "discover";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python3 ];
   buildInputs = [
     # discount is needed for libmarkdown
diff --git a/pkgs/desktops/plasma-5/kactivitymanagerd.nix b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
index 5c856b9d39c..47543da1114 100644
--- a/pkgs/desktops/plasma-5/kactivitymanagerd.nix
+++ b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kactivitymanagerd";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     boost kconfig kcoreaddons kdbusaddons kglobalaccel ki18n kio kwindowsystem
diff --git a/pkgs/desktops/plasma-5/kdecoration.nix b/pkgs/desktops/plasma-5/kdecoration.nix
index 9a09ce30f4c..9b67d7bc529 100644
--- a/pkgs/desktops/plasma-5/kdecoration.nix
+++ b/pkgs/desktops/plasma-5/kdecoration.nix
@@ -5,5 +5,4 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ki18n ];
   outputs = [ "out" "dev" ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/kgamma5.nix b/pkgs/desktops/plasma-5/kgamma5.nix
index e7cc42e77cd..d371ce81510 100644
--- a/pkgs/desktops/plasma-5/kgamma5.nix
+++ b/pkgs/desktops/plasma-5/kgamma5.nix
@@ -8,5 +8,4 @@ mkDerivation {
   name = "kgamma5";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kconfig kconfigwidgets ki18n qtx11extras libXxf86vm ];
-  meta.broken = lib.versionOlder qtbase.version "5.15";
 }
diff --git a/pkgs/desktops/plasma-5/khotkeys.nix b/pkgs/desktops/plasma-5/khotkeys.nix
index ad78d602dec..fd366443861 100644
--- a/pkgs/desktops/plasma-5/khotkeys.nix
+++ b/pkgs/desktops/plasma-5/khotkeys.nix
@@ -14,5 +14,4 @@ mkDerivation {
     plasma-framework plasma-workspace qtx11extras
   ];
   outputs = [ "bin" "dev" "out" ];
-  meta.broken = lib.versionOlder qtbase.version "5.14";
 }
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index 23e225bd744..f7f50dc3b57 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -10,7 +10,6 @@
 
 mkDerivation {
   name = "kinfocenter";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
diff --git a/pkgs/desktops/plasma-5/kscreenlocker.nix b/pkgs/desktops/plasma-5/kscreenlocker.nix
index ace14b385e6..2fc26216bf4 100644
--- a/pkgs/desktops/plasma-5/kscreenlocker.nix
+++ b/pkgs/desktops/plasma-5/kscreenlocker.nix
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "kscreenlocker";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcrash kdeclarative kdelibs4support kglobalaccel kidletime kwayland
diff --git a/pkgs/desktops/plasma-5/ksshaskpass.nix b/pkgs/desktops/plasma-5/ksshaskpass.nix
index c4dabd71343..bc6702ed6d3 100644
--- a/pkgs/desktops/plasma-5/ksshaskpass.nix
+++ b/pkgs/desktops/plasma-5/ksshaskpass.nix
@@ -8,5 +8,4 @@ mkDerivation {
   name = "ksshaskpass";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcoreaddons ki18n kwallet kwidgetsaddons qtbase ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/ksysguard.nix b/pkgs/desktops/plasma-5/ksysguard.nix
index 27d0ab8a0fb..fe904bb97a4 100644
--- a/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/pkgs/desktops/plasma-5/ksysguard.nix
@@ -9,7 +9,6 @@
 
 mkDerivation {
   name = "ksysguard";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
diff --git a/pkgs/desktops/plasma-5/kwayland-integration.nix b/pkgs/desktops/plasma-5/kwayland-integration.nix
index 2e923094dc5..f886a87feb5 100644
--- a/pkgs/desktops/plasma-5/kwayland-integration.nix
+++ b/pkgs/desktops/plasma-5/kwayland-integration.nix
@@ -8,5 +8,4 @@ mkDerivation {
   name = "kwayland-integration";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/kwayland-server/default.nix b/pkgs/desktops/plasma-5/kwayland-server/default.nix
index 6d2a3fabff2..f24e0e6d6a0 100644
--- a/pkgs/desktops/plasma-5/kwayland-server/default.nix
+++ b/pkgs/desktops/plasma-5/kwayland-server/default.nix
@@ -15,5 +15,4 @@ mkDerivation {
     kwayland plasma-wayland-protocols wayland wayland-protocols
   ];
   patches = [ ./0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/kwrited.nix b/pkgs/desktops/plasma-5/kwrited.nix
index e6ee4829bcb..bb8798d2d0e 100644
--- a/pkgs/desktops/plasma-5/kwrited.nix
+++ b/pkgs/desktops/plasma-5/kwrited.nix
@@ -8,5 +8,4 @@ mkDerivation {
   name = "kwrited";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons kdbusaddons ki18n knotifications kpty qtbase ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index 08a9e6f4f24..5cd9ae94308 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -6,9 +6,6 @@
 
 mkDerivation {
   name = "libkscreen";
-  meta = {
-    broken = lib.versionOlder qtbase.version "5.15.0";
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/plasma-5/libksysguard/default.nix b/pkgs/desktops/plasma-5/libksysguard/default.nix
index 8178d407950..e291bc5c4c4 100644
--- a/pkgs/desktops/plasma-5/libksysguard/default.nix
+++ b/pkgs/desktops/plasma-5/libksysguard/default.nix
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "libksysguard";
-  meta.broken = lib.versionOlder qtbase.version "5.14.0";
   patches = [
     ./0001-qdiriterator-follow-symlinks.patch
   ];
diff --git a/pkgs/desktops/plasma-5/milou.nix b/pkgs/desktops/plasma-5/milou.nix
index ab23703a470..0e7169abf6f 100644
--- a/pkgs/desktops/plasma-5/milou.nix
+++ b/pkgs/desktops/plasma-5/milou.nix
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "milou";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons kdeclarative ki18n kitemmodels krunner kservice plasma-framework
diff --git a/pkgs/desktops/plasma-5/plasma-nm/default.nix b/pkgs/desktops/plasma-5/plasma-nm/default.nix
index 31fd3558957..585f7462c9b 100644
--- a/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -11,7 +11,6 @@
 
 mkDerivation {
   name = "plasma-nm";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
   buildInputs = [
     kdeclarative kdelibs4support ki18n kio kwindowsystem plasma-framework
diff --git a/pkgs/desktops/plasma-5/plasma-pa.nix b/pkgs/desktops/plasma-5/plasma-pa.nix
index 00f5fefdc43..bc39e520f8a 100644
--- a/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -17,5 +17,4 @@ mkDerivation {
 
     qtbase qtdeclarative
   ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/plasma-systemmonitor.nix b/pkgs/desktops/plasma-5/plasma-systemmonitor.nix
index 6b875745d27..f69808bf452 100644
--- a/pkgs/desktops/plasma-5/plasma-systemmonitor.nix
+++ b/pkgs/desktops/plasma-5/plasma-systemmonitor.nix
@@ -16,7 +16,6 @@
 
 mkDerivation {
   name = "plasma-systemmonitor";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     qtquickcontrols2
diff --git a/pkgs/desktops/plasma-5/polkit-kde-agent.nix b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
index 27f03e2d931..72217204b35 100644
--- a/pkgs/desktops/plasma-5/polkit-kde-agent.nix
+++ b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
@@ -12,5 +12,4 @@ mkDerivation {
     knotifications kwindowsystem polkit-qt
   ];
   outputs = [ "out" "dev" ];
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/sddm-kcm.nix b/pkgs/desktops/plasma-5/sddm-kcm.nix
index 9e3776e8e29..7c44e0f140d 100644
--- a/pkgs/desktops/plasma-5/sddm-kcm.nix
+++ b/pkgs/desktops/plasma-5/sddm-kcm.nix
@@ -18,7 +18,6 @@
 
 mkDerivation {
   name = "sddm-kcm";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     libpthreadstubs
diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index aade506483f..f754bc5a46d 100644
--- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -9,7 +9,6 @@
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
-  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
   buildInputs = [
     cups epoxy mesa pcre pipewire wayland wayland-protocols
diff --git a/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
index 83736166948..bef18e3e505 100644
--- a/pkgs/desktops/xfce/applications/xfdashboard/default.nix
+++ b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -17,11 +17,11 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfdashboard";
-  version = "0.9.1";
+  version = "0.9.2";
   rev-prefix = "";
   odd-unstable = false;
 
-  sha256 = "14k774wxbk3w0ci2mmm6bhq4i742qahd0j0dr40iwmld55473zgd";
+  sha256 = "06pvzhhkr2mimsrzlkpsrzf5fxag4fhabyb3cpmgpyp5hcbgvaj3";
 
   buildInputs = [
     clutter
diff --git a/pkgs/desktops/xfce/core/exo/default.nix b/pkgs/desktops/xfce/core/exo/default.nix
index d9afdfe0d9c..962170a1765 100644
--- a/pkgs/desktops/xfce/core/exo/default.nix
+++ b/pkgs/desktops/xfce/core/exo/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "exo";
-  version = "4.16.1";
+  version = "4.16.2";
 
-  sha256 = "1220mq8gs5s8l0d1p92j6icldzqj6zaisp27ss5jm7hwkkcnms9n";
+  sha256 = "0rsp92j4hkr5jrkrj8anzw9fwd96xbxzpzqzqiyjjwdiq7b29l1v";
 
   nativeBuildInputs = [
     libxslt
diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 71645cd1f98..cca80708034 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.16.0";
+  version = "4.16.1";
 
-  sha256 = "0iha3jm7vmgk6hq7z4l2r7w9qm5jraka0z580i8i83704kfx9g0y";
+  sha256 = "0mjhglfsqmiycpv98l09n2556288g2713n4pvxn0srivm017fdir";
 
   postPatch = ''
     for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix
index 6e6da4fab03..6bf9e45e622 100644
--- a/pkgs/development/beam-modules/default.nix
+++ b/pkgs/development/beam-modules/default.nix
@@ -63,6 +63,8 @@ let
         debugInfo = true;
       };
 
+      elixir_ls = callPackage ./elixir_ls.nix { inherit elixir fetchMixDeps mixRelease; };
+
       # Remove old versions of elixir, when the supports fades out:
       # https://hexdocs.pm/elixir/compatibility-and-deprecations.html
 
diff --git a/pkgs/development/beam-modules/elixir_ls.nix b/pkgs/development/beam-modules/elixir_ls.nix
new file mode 100644
index 00000000000..b61db92584d
--- /dev/null
+++ b/pkgs/development/beam-modules/elixir_ls.nix
@@ -0,0 +1,71 @@
+{ lib, elixir, fetchFromGitHub, fetchMixDeps, mixRelease }:
+# Based on the work of Hauleth
+# None of this would have happened without him
+
+mixRelease rec {
+  pname = "elixir-ls";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "elixir-lsp";
+    repo = "elixir-ls";
+    rev = "v${version}";
+    sha256 = "0d0hqc35hfjkpm88vz21mnm2a9rxiqfrdi83whhhh6d2ba216b7s";
+    fetchSubmodules = true;
+  };
+
+  mixDeps = fetchMixDeps {
+    pname = "mix-deps-${pname}";
+    inherit src version;
+    sha256 = "0r9x223imq4j9pn9niskyaybvk7jmq8dxcyzk7kwfsi128qig1a1";
+  };
+
+  # elixir_ls is an umbrella app
+  # override configurePhase to not skip umbrella children
+  configurePhase = ''
+    runHook preConfigure
+    mix deps.compile --no-deps-check
+    runHook postConfigure
+  '';
+
+  # elixir_ls require a special step for release
+  # compile and release need to be performed together because
+  # of the no-deps-check requirement
+  buildPhase = ''
+    runHook preBuild
+    mix do compile --no-deps-check, elixir_ls.release
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp -Rv release $out/lib
+    # Prepare the wrapper script
+    substitute release/language_server.sh $out/bin/elixir-ls \
+      --replace 'exec "''${dir}/launch.sh"' "exec $out/lib/launch.sh"
+    chmod +x $out/bin/elixir-ls
+    # prepare the launcher
+    substituteInPlace $out/lib/launch.sh \
+      --replace "ERL_LIBS=\"\$SCRIPTPATH:\$ERL_LIBS\"" \
+                "ERL_LIBS=$out/lib:\$ERL_LIBS" \
+      --replace "exec elixir" "exec ${elixir}/bin/elixir"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/elixir-lsp/elixir-ls";
+    description = ''
+      A frontend-independent IDE "smartness" server for Elixir.
+      Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"
+    '';
+    longDescription = ''
+      The Elixir Language Server provides a server that runs in the background, providing IDEs, editors, and other tools with information about Elixir Mix projects.
+      It adheres to the Language Server Protocol, a standard for frontend-independent IDE support.
+      Debugger integration is accomplished through the similar VS Code Debug Protocol.
+    '';
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = teams.beam.members;
+  };
+}
diff --git a/pkgs/development/beam-modules/hex/default.nix b/pkgs/development/beam-modules/hex/default.nix
index 794b9e5cf22..836740a7933 100644
--- a/pkgs/development/beam-modules/hex/default.nix
+++ b/pkgs/development/beam-modules/hex/default.nix
@@ -8,13 +8,13 @@ let
 
   pkg = self: stdenv.mkDerivation rec {
     pname = "hex";
-    version = "0.20.5";
+    version = "0.21.2";
 
     src = fetchFromGitHub {
       owner = "hexpm";
       repo = "hex";
       rev = "v${version}";
-      sha256 = "1wz6n4qrmsb4kkww6lrdbs99xzwp4dyjjmr8m4drcwn3sd2k9ba6";
+      sha256 = "18vwrc5b7pyi3nifmx5hd5wbz8fy3h6sfvkmskjg5acmz66fys0g";
     };
 
     setupHook = writeText "setupHook.sh" ''
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
index 0bcfcafaae1..262e52c2521 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk-darwin-base.nix
@@ -49,6 +49,7 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
     platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
     inherit knownVulnerabilities;
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
index 95e72facaee..a433a2f1321 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix
@@ -108,6 +108,7 @@ let result = stdenv.mkDerivation rec {
     platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms
     maintainers = with lib.maintainers; [ taku0 ];
     inherit knownVulnerabilities;
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index 5685f178876..da6857f6ab9 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -1,8 +1,6 @@
 { lib
 , callPackage
 , fetchurl
-, gcc48
-, gcc6
 , gcc7
 , gcc9
 }:
@@ -10,67 +8,6 @@
 let
   common = callPackage ./common.nix;
 in rec {
-  cudatoolkit_9_0 = common {
-    version = "9.0.176.1";
-    url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run";
-    sha256 = "0308rmmychxfa4inb1ird9bpgfppgr9yrfg1qp0val5azqik91ln";
-    runPatches = [
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/1/cuda_9.0.176.1_linux-run";
-        sha256 = "1vbqg97pq9z9c8nqvckiwmq3ljm88m7gaizikzxbvz01izh67gx4";
-      })
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/2/cuda_9.0.176.2_linux-run";
-        sha256 = "1sz5dijbx9yf7drfipdxav5a5g6sxy4w6vi9xav0lb6m2xnmyd7c";
-      })
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/3/cuda_9.0.176.3_linux-run";
-        sha256 = "1jm83bxpscpjhzs5q3qijdgjm0r8qrdlgkj7y08fq8c0v8q2r7j2";
-      })
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/4/cuda_9.0.176.4_linux-run";
-        sha256 = "0pymg3mymsa2n48y0njz3spzlkm15lvjzw8fms1q83zslz4x0lwk";
-      })
-    ];
-    gcc = gcc6;
-  };
-
-  cudatoolkit_9_1 = common {
-    version = "9.1.85.3";
-    url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux";
-    sha256 = "0lz9bwhck1ax4xf1fyb5nicb7l1kssslj518z64iirpy2qmwg5l4";
-    runPatches = [
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/1/cuda_9.1.85.1_linux";
-        sha256 = "1f53ij5nb7g0vb5pcpaqvkaj1x4mfq3l0mhkfnqbk8sfrvby775g";
-      })
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/2/cuda_9.1.85.2_linux";
-        sha256 = "16g0w09h3bqmas4hy1m0y6j5ffyharslw52fn25gql57bfihg7ym";
-      })
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/3/cuda_9.1.85.3_linux";
-        sha256 = "12mcv6f8z33z8y41ja8bv5p5iqhv2vx91mv3b5z6fcj7iqv98422";
-      })
-    ];
-    gcc = gcc6;
-  };
-
-  cudatoolkit_9_2 = common {
-    version = "9.2.148.1";
-    url = "https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda_9.2.148_396.37_linux";
-    sha256 = "04c6v9b50l4awsf9w9zj5vnxvmc0hk0ypcfjksbh4vnzrz14wigm";
-    runPatches = [
-      (fetchurl {
-        url = "https://developer.nvidia.com/compute/cuda/9.2/Prod2/patches/1/cuda_9.2.148.1_linux";
-        sha256 = "1kx6l4yzsamk6q1f4vllcpywhbfr2j5wfl4h5zx8v6dgfpsjm2lw";
-      })
-    ];
-    gcc = gcc7;
-  };
-
-  cudatoolkit_9 = cudatoolkit_9_2;
-
   cudatoolkit_10_0 = common {
     version = "10.0.130";
     url = "https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux";
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 51f30dbabda..3ae72e5862f 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -170,6 +170,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ThomasMader lionello ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
     # many tests are failing
-    broken = true;
   };
 }
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 143782d9301..f78c546542a 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -1,6 +1,9 @@
 /*
 How to combine packages for use in development:
 dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_3_0 sdk aspnetcore_2_1 ];
+
+Hashes below are retrived from:
+https://dotnet.microsoft.com/download/dotnet
 */
 { callPackage }:
 let
@@ -124,11 +127,11 @@ rec {
   };
 
   sdk_5_0 = buildNetCoreSdk {
-    version = "5.0.200";
+    version = "5.0.202";
     sha512 = {
-      x86_64-linux = "0g7zcmkcdwc11h42m6hq8d0w55nnvnsmj3dc16829q55cp7l7kggmjljnd9slx7r7nrsyi7yy8brwh8n4kfi5998pdyb09fzhq5w60d";
-      aarch64-linux = "2zy6nxiw313g2sbmnkg76r64llbk2w2wcsa6frq535zbviw52zf163jvw2687rpiw4szdizf337l3b0qa0396abw5dhq2czqlxjyjv8";
-      x86_64-darwin = "2p0yxplafhi5ks38pq8nyi43kpv4l4npa718rvcvl57qs76j0dqlk1s4wdw7msx8g7xxy1aal47zy9rxvlypmgwx4dnp339cmbd6mf6";
+      x86_64-linux = "Ae1Z8jYYSYdAVnPSSUDVXOKdgw59u8GVVv3AOJMDnmBGcS3m+QHcmREEeg3uT9FTGbfpT4ox32uYH6Nb2T2YOA==";
+      aarch64-linux = "JuwSWgY35xrK0gOGR034mhAemulIkhtd4M00P0vA6EtOeyMY4Vl4cj6zudMh6Jt5DD8EJKQ8KbABX8byuePp2Q==";
+      x86_64-darwin = "jxnfTbQUb0dJ2/NX2pu8Pi/F/e4EaDm2Ta5U+6sSYj/s6nNp6NHxtEn7BzhQ9/EVLszl/oXi3lL0d/BPbzldEA==";
     };
   };
 }
diff --git a/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..d9809e828f1
--- /dev/null
+++ b/pkgs/development/compilers/gcc/11/Added-mcf-thread-model-support-from-mcfgthread.patch
@@ -0,0 +1,306 @@
+From 86f2f767ddffd9f7c6f1470b987ae7b0d251b988 Mon Sep 17 00:00:00 2001
+From: Liu Hao <lh_mouse@126.com>
+Date: Wed, 25 Apr 2018 21:54:19 +0800
+Subject: [PATCH] Added 'mcf' thread model support from mcfgthread.
+
+Signed-off-by: Liu Hao <lh_mouse@126.com>
+---
+ config/gthr.m4                          |  1 +
+ gcc/config.gcc                          |  3 +++
+ gcc/config/i386/mingw-mcfgthread.h      |  1 +
+ gcc/config/i386/mingw-w64.h             |  2 +-
+ gcc/config/i386/mingw32.h               | 11 ++++++++++-
+ gcc/configure                           |  2 +-
+ gcc/configure.ac                        |  2 +-
+ libatomic/configure.tgt                 |  2 +-
+ libgcc/config.host                      |  6 ++++++
+ libgcc/config/i386/gthr-mcf.h           |  1 +
+ libgcc/config/i386/t-mingw-mcfgthread   |  2 ++
+ libgcc/configure                        |  1 +
+ libstdc++-v3/configure                  |  1 +
+ libstdc++-v3/libsupc++/atexit_thread.cc | 18 ++++++++++++++++++
+ libstdc++-v3/libsupc++/guard.cc         | 23 +++++++++++++++++++++++
+ libstdc++-v3/src/c++11/thread.cc        |  9 +++++++++
+ 16 files changed, 80 insertions(+), 5 deletions(-)
+ create mode 100644 gcc/config/i386/mingw-mcfgthread.h
+ create mode 100644 libgcc/config/i386/gthr-mcf.h
+ create mode 100644 libgcc/config/i386/t-mingw-mcfgthread
+
+diff --git a/config/gthr.m4 b/config/gthr.m4
+index 7b29f1f3327..82e21fe1709 100644
+--- a/config/gthr.m4
++++ b/config/gthr.m4
+@@ -21,6 +21,7 @@ case $1 in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ AC_SUBST(thread_header)
+ ])
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 46a9029acec..112c24e95a3 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1758,6 +1758,9 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
+ 	if test x$enable_threads = xposix ; then
+ 		tm_file="${tm_file} i386/mingw-pthread.h"
+ 	fi
++	if test x$enable_threads = xmcf ; then
++		tm_file="${tm_file} i386/mingw-mcfgthread.h"
++	fi
+ 	tm_file="${tm_file} i386/mingw32.h"
+ 	# This makes the logic if mingw's or the w64 feature set has to be used
+ 	case ${target} in
+diff --git a/gcc/config/i386/mingw-mcfgthread.h b/gcc/config/i386/mingw-mcfgthread.h
+new file mode 100644
+index 00000000000..ec381a7798f
+--- /dev/null
++++ b/gcc/config/i386/mingw-mcfgthread.h
+@@ -0,0 +1 @@
++#define TARGET_USE_MCFGTHREAD 1
+diff --git a/gcc/config/i386/mingw-w64.h b/gcc/config/i386/mingw-w64.h
+index 484dc7a9e9f..a15bbeea500 100644
+--- a/gcc/config/i386/mingw-w64.h
++++ b/gcc/config/i386/mingw-w64.h
+@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3.  If not see
+ 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
+      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
+         fvtable-verify=std:-lvtv -lpsapi} " \
+-		 "-ladvapi32 -lshell32 -luser32 -lkernel32"
++		 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
+ 
+ #undef SPEC_32
+ #undef SPEC_64
+diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
+index 0612b87199a..76cea94f3b7 100644
+--- a/gcc/config/i386/mingw32.h
++++ b/gcc/config/i386/mingw32.h
+@@ -32,6 +32,14 @@ along with GCC; see the file COPYING3.  If not see
+ 	 | MASK_STACK_PROBE | MASK_ALIGN_DOUBLE \
+ 	 | MASK_MS_BITFIELD_LAYOUT)
+ 
++#ifndef TARGET_USE_MCFGTHREAD
++#define CPP_MCFGTHREAD()  ((void)0)
++#define LIB_MCFGTHREAD     ""
++#else
++#define CPP_MCFGTHREAD()  (builtin_define("__USING_MCFGTHREAD__"))
++#define LIB_MCFGTHREAD     " -lmcfgthread "
++#endif
++
+ /* See i386/crtdll.h for an alternative definition. _INTEGRAL_MAX_BITS
+    is for compatibility with native compiler.  */
+ #define EXTRA_OS_CPP_BUILTINS()					\
+@@ -50,6 +58,7 @@ along with GCC; see the file COPYING3.  If not see
+ 	  builtin_define_std ("WIN64");				\
+ 	  builtin_define ("_WIN64");				\
+ 	}							\
++	CPP_MCFGTHREAD();	\
+     }								\
+   while (0)
+ 
+@@ -93,7 +102,7 @@ along with GCC; see the file COPYING3.  If not see
+ 		 "%{mwindows:-lgdi32 -lcomdlg32} " \
+      "%{fvtable-verify=preinit:-lvtv -lpsapi; \
+         fvtable-verify=std:-lvtv -lpsapi} " \
+-                 "-ladvapi32 -lshell32 -luser32 -lkernel32"
++                 LIB_MCFGTHREAD "-ladvapi32 -lshell32 -luser32 -lkernel32"
+ 
+ /* Weak symbols do not get resolved if using a Windows dll import lib.
+    Make the unwind registration references strong undefs.  */
+diff --git a/gcc/configure b/gcc/configure
+index 6121e163259..52f0e00efe6 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -11693,7 +11693,7 @@ case ${enable_threads} in
+     target_thread_file='single'
+     ;;
+   aix | dce | lynx | mipssde | posix | rtems | \
+-  single | tpf | vxworks | win32)
++  single | tpf | vxworks | win32 | mcf)
+     target_thread_file=${enable_threads}
+     ;;
+   *)
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index b066cc609e1..4ecdba88de7 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1612,7 +1612,7 @@ case ${enable_threads} in
+     target_thread_file='single'
+     ;;
+   aix | dce | lynx | mipssde | posix | rtems | \
+-  single | tpf | vxworks | win32)
++  single | tpf | vxworks | win32 | mcf)
+     target_thread_file=${enable_threads}
+     ;;
+   *)
+diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
+index ea8c34f8c71..23134ad7363 100644
+--- a/libatomic/configure.tgt
++++ b/libatomic/configure.tgt
+@@ -145,7 +145,7 @@ case "${target}" in
+   *-*-mingw*)
+ 	# OS support for atomic primitives.
+         case ${target_thread_file} in
+-          win32)
++          win32 | mcf)
+             config_path="${config_path} mingw"
+             ;;
+           posix)
+diff --git a/libgcc/config.host b/libgcc/config.host
+index 11b4acaff55..9fbd38650bd 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -737,6 +737,9 @@ i[34567]86-*-mingw*)
+ 	  posix)
+ 	    tmake_file="i386/t-mingw-pthread $tmake_file"
+ 	    ;;
++	  mcf)
++	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
++	    ;;
+ 	esac
+ 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+ 	if test x$ac_cv_sjlj_exceptions = xyes; then
+@@ -761,6 +764,9 @@ x86_64-*-mingw*)
+ 	  posix)
+ 	    tmake_file="i386/t-mingw-pthread $tmake_file"
+ 	    ;;
++	  mcf)
++	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
++	    ;;
+ 	esac
+ 	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
+ 	if test x$ac_cv_sjlj_exceptions = xyes; then
+diff --git a/libgcc/config/i386/gthr-mcf.h b/libgcc/config/i386/gthr-mcf.h
+new file mode 100644
+index 00000000000..5ea2908361f
+--- /dev/null
++++ b/libgcc/config/i386/gthr-mcf.h
+@@ -0,0 +1 @@
++#include <mcfgthread/gthread.h>
+diff --git a/libgcc/config/i386/t-mingw-mcfgthread b/libgcc/config/i386/t-mingw-mcfgthread
+new file mode 100644
+index 00000000000..4b9b10e32d6
+--- /dev/null
++++ b/libgcc/config/i386/t-mingw-mcfgthread
+@@ -0,0 +1,2 @@
++SHLIB_PTHREAD_CFLAG =
++SHLIB_PTHREAD_LDFLAG = -lmcfgthread
+diff --git a/libgcc/configure b/libgcc/configure
+index b2f3f870844..eff889dc3b3 100644
+--- a/libgcc/configure
++++ b/libgcc/configure
+@@ -5451,6 +5451,7 @@ case $target_thread_file in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ 
+ 
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index ba094be6f15..979a5ab9ace 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15187,6 +15187,7 @@ case $target_thread_file in
+     tpf)	thread_header=config/s390/gthr-tpf.h ;;
+     vxworks)	thread_header=config/gthr-vxworks.h ;;
+     win32)	thread_header=config/i386/gthr-win32.h ;;
++    mcf)	thread_header=config/i386/gthr-mcf.h ;;
+ esac
+ 
+ 
+diff --git a/libstdc++-v3/libsupc++/atexit_thread.cc b/libstdc++-v3/libsupc++/atexit_thread.cc
+index de920d714c6..665fb74bd6b 100644
+--- a/libstdc++-v3/libsupc++/atexit_thread.cc
++++ b/libstdc++-v3/libsupc++/atexit_thread.cc
+@@ -25,6 +25,22 @@
+ #include <cstdlib>
+ #include <new>
+ #include "bits/gthr.h"
++
++#ifdef __USING_MCFGTHREAD__
++
++#include <mcfgthread/gthread.h>
++
++extern "C" int
++__cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *),
++				 void *obj, void *dso_handle)
++  _GLIBCXX_NOTHROW
++{
++  return ::_MCFCRT_AtThreadExit((void (*)(_MCFCRT_STD intptr_t))dtor, (_MCFCRT_STD intptr_t)obj) ? 0 : -1;
++  (void)dso_handle;
++}
++
++#else // __USING_MCFGTHREAD__
++
+ #ifdef _GLIBCXX_THREAD_ATEXIT_WIN32
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+@@ -167,3 +183,5 @@ __cxxabiv1::__cxa_thread_atexit (void (*dtor)(void *), void *obj, void */*dso_ha
+ }
+ 
+ #endif /* _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */
++
++#endif // __USING_MCFGTHREAD__
+diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc
+index 3a2ec3ad0d6..8b4cc96199b 100644
+--- a/libstdc++-v3/libsupc++/guard.cc
++++ b/libstdc++-v3/libsupc++/guard.cc
+@@ -28,6 +28,27 @@
+ #include <cxxabi.h>
+ #include <exception>
+ #include <new>
++
++#ifdef __USING_MCFGTHREAD__
++
++#include <mcfgthread/gthread.h>
++
++namespace __cxxabiv1 {
++
++extern "C" int __cxa_guard_acquire(__guard *g){
++	return ::_MCFCRT_WaitForOnceFlagForever((::_MCFCRT_OnceFlag *)g) == ::_MCFCRT_kOnceResultInitial;
++}
++extern "C" void __cxa_guard_abort(__guard *g) throw() {
++	::_MCFCRT_SignalOnceFlagAsAborted((::_MCFCRT_OnceFlag *)g);
++}
++extern "C" void __cxa_guard_release(__guard *g) throw() {
++	::_MCFCRT_SignalOnceFlagAsFinished((::_MCFCRT_OnceFlag *)g);
++}
++
++}
++
++#else // __USING_MCFGTHREAD__
++
+ #include <ext/atomicity.h>
+ #include <ext/concurrence.h>
+ #include <bits/atomic_lockfree_defines.h>
+@@ -425,3 +446,5 @@ namespace __cxxabiv1
+ #endif
+   }
+ }
++
++#endif
+diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc
+index 8238817c2e9..0c6a1f85f6f 100644
+--- a/libstdc++-v3/src/c++11/thread.cc
++++ b/libstdc++-v3/src/c++11/thread.cc
+@@ -55,6 +55,15 @@ static inline int get_nprocs()
+ #elif defined(_GLIBCXX_USE_SC_NPROC_ONLN)
+ # include <unistd.h>
+ # define _GLIBCXX_NPROCS sysconf(_SC_NPROC_ONLN)
++#elif defined(_WIN32)
++# include <windows.h>
++static inline int get_nprocs()
++{
++  SYSTEM_INFO sysinfo;
++  GetSystemInfo(&sysinfo);
++  return (int)sysinfo.dwNumberOfProcessors;
++}
++# define _GLIBCXX_NPROCS get_nprocs()
+ #else
+ # define _GLIBCXX_NPROCS 0
+ #endif
+-- 
+2.17.0
+
diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix
new file mode 100644
index 00000000000..3a9f50be3e7
--- /dev/null
+++ b/pkgs/development/compilers/gcc/11/default.nix
@@ -0,0 +1,299 @@
+{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
+, langC ? true, langCC ? true, langFortran ? false
+, langAda ? false
+, langObjC ? stdenv.targetPlatform.isDarwin
+, langObjCpp ? stdenv.targetPlatform.isDarwin
+, langGo ? false
+, reproducibleBuild ? true
+, profiledCompiler ? false
+, langJit ? false
+, staticCompiler ? false
+, # N.B. the defult is intentionally not from an `isStatic`. See
+  # https://gcc.gnu.org/install/configure.html - this is about target
+  # platform libraries not host platform ones unlike normal. But since
+  # we can't rebuild those without also rebuilding the compiler itself,
+  # we opt to always build everything unlike our usual policy.
+  enableShared ? true
+, enableLTO ? true
+, texinfo ? null
+, perl ? null # optional, for texi2pod (then pod2man)
+, gmp, mpfr, libmpc, gettext, which, patchelf
+, libelf                      # optional, for link-time optimizations (LTO)
+, isl ? null # optional, for the Graphite optimization framework.
+, zlib ? null
+, gnatboot ? null
+, enableMultilib ? false
+, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
+, name ? "gcc"
+, libcCross ? null
+, threadsCross ? null # for MinGW
+, crossStageStatic ? false
+, # Strip kills static libs of other archs (hence no cross)
+  stripped ? stdenv.hostPlatform.system == stdenv.buildPlatform.system
+          && stdenv.targetPlatform.system == stdenv.hostPlatform.system
+, gnused ? null
+, cloog # unused; just for compat with gcc4, as we override the parameter on some places
+, buildPackages
+}:
+
+# LTO needs libelf and zlib.
+assert libelf != null -> zlib != null;
+
+# Make sure we get GNU sed.
+assert stdenv.hostPlatform.isDarwin -> gnused != null;
+
+# The go frontend is written in c++
+assert langGo -> langCC;
+assert langAda -> gnatboot != null;
+
+# threadsCross is just for MinGW
+assert threadsCross != null -> stdenv.targetPlatform.isWindows;
+
+# profiledCompiler builds inject non-determinism in one of the compilation stages.
+# If turned on, we can't provide reproducible builds anymore
+assert reproducibleBuild -> profiledCompiler == false;
+
+with lib;
+with builtins;
+
+let majorVersion = "11";
+    version = "${majorVersion}.1.0";
+
+    inherit (stdenv) buildPlatform hostPlatform targetPlatform;
+
+    patches =
+         optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+      ++ optional noSysDirs ../no-sys-dirs.patch
+      /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
+        url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
+        sha256 = ""; # TODO: uncomment and check hash when available.
+      }) */
+      ++ optional langAda ../gnat-cflags.patch
+      ++ optional langFortran ../gfortran-driving.patch
+      ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
+
+      # Obtain latest patch with ../update-mcfgthread-patches.sh
+      ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
+
+    /* Cross-gcc settings (build == host != target) */
+    crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
+    stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
+    crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
+
+in
+
+stdenv.mkDerivation ({
+  pname = "${crossNameAddon}${name}${if stripped then "" else "-debug"}";
+  inherit version;
+
+  builder = ../builder.sh;
+
+  src = fetchurl {
+    url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
+    sha256 = "1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc";
+  };
+
+  inherit patches;
+
+  outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
+  setOutputFlags = false;
+  NIX_NO_SELF_RPATH = true;
+
+  libc_dev = stdenv.cc.libc_dev;
+
+  hardeningDisable = [ "format" "pie" ];
+
+  # This should kill all the stdinc frameworks that gcc and friends like to
+  # insert into default search paths.
+  prePatch = lib.optionalString hostPlatform.isDarwin ''
+    substituteInPlace gcc/config/darwin-c.c \
+      --replace 'if (stdinc)' 'if (0)'
+
+    substituteInPlace libgcc/config/t-slibgcc-darwin \
+      --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
+
+    substituteInPlace libgfortran/configure \
+      --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
+  '';
+
+  postPatch = ''
+    configureScripts=$(find . -name configure)
+    for configureScript in $configureScripts; do
+      patchShebangs $configureScript
+    done
+  '' + (
+    if targetPlatform != hostPlatform || stdenv.cc.libc != null then
+      # On NixOS, use the right path to the dynamic linker instead of
+      # `/lib/ld*.so'.
+      let
+        libc = if libcCross != null then libcCross else stdenv.cc.libc;
+      in
+        (
+        '' echo "fixing the \`GLIBC_DYNAMIC_LINKER', \`UCLIBC_DYNAMIC_LINKER', and \`MUSL_DYNAMIC_LINKER' macros..."
+           for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
+           do
+             grep -q _DYNAMIC_LINKER "$header" || continue
+             echo "  fixing \`$header'..."
+             sed -i "$header" \
+                 -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \
+                 -e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
+           done
+        ''
+        + lib.optionalString (targetPlatform.libc == "musl")
+        ''
+            sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
+        ''
+        )
+    else "")
+      + lib.optionalString targetPlatform.isAvr ''
+            makeFlagsArray+=(
+               'LIMITS_H_TEST=false'
+            )
+          '';
+
+  inherit noSysDirs staticCompiler crossStageStatic
+    libcCross crossMingw;
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ texinfo which gettext ]
+    ++ (optional (perl != null) perl);
+
+  # For building runtime libs
+  depsBuildTarget =
+    (
+      if hostPlatform == buildPlatform then [
+        targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+      ] else assert targetPlatform == hostPlatform; [ # build != host == target
+        stdenv.cc
+      ]
+    )
+    ++ optional targetPlatform.isLinux patchelf;
+
+  buildInputs = [
+    gmp mpfr libmpc libelf
+    targetPackages.stdenv.cc.bintools # For linking code at run-time
+  ] ++ (optional (isl != null) isl)
+    ++ (optional (zlib != null) zlib)
+    # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
+    # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
+    ++ (optional hostPlatform.isDarwin gnused)
+    ++ (optional langAda gnatboot)
+    ;
+
+  depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
+
+  NIX_LDFLAGS = lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
+
+  preConfigure = import ../common/pre-configure.nix {
+    inherit lib;
+    inherit version hostPlatform gnatboot langAda langGo langJit;
+  };
+
+  dontDisableStatic = true;
+
+  configurePlatforms = [ "build" "host" "target" ];
+
+  configureFlags = import ../common/configure-flags.nix {
+    inherit
+      lib
+      stdenv
+      targetPackages
+      crossStageStatic libcCross
+      version
+
+      gmp mpfr libmpc libelf isl
+
+      enableLTO
+      enableMultilib
+      enablePlugin
+      enableShared
+
+      langC
+      langCC
+      langFortran
+      langAda
+      langGo
+      langObjC
+      langObjCpp
+      langJit
+      ;
+  };
+
+  targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
+
+  buildFlags = optional
+    (targetPlatform == hostPlatform && hostPlatform == buildPlatform)
+    (if profiledCompiler then "profiledbootstrap" else "bootstrap");
+
+  dontStrip = !stripped;
+
+  installTargets = optional stripped "install-strip";
+
+  # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
+  ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
+
+  # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
+  # library headers and binaries, regarless of the language being compiled.
+  #
+  # Likewise, the LTO code doesn't find zlib.
+  #
+  # Cross-compiling, we need gcc not to read ./specs in order to build the g++
+  # compiler (after the specs for the cross-gcc are created). Having
+  # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
+
+  CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
+    ++ optional (zlib != null) zlib
+  ));
+
+  LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib));
+
+  inherit
+    (import ../common/extra-target-flags.nix {
+      inherit lib stdenv crossStageStatic libcCross threadsCross;
+    })
+    EXTRA_FLAGS_FOR_TARGET
+    EXTRA_LDFLAGS_FOR_TARGET
+    ;
+
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langAda langFortran langGo version;
+    isGNU = true;
+  };
+
+  enableParallelBuilding = true;
+  inherit enableMultilib;
+
+  inherit (stdenv) is64bit;
+
+  meta = {
+    homepage = "https://gcc.gnu.org/";
+    license = lib.licenses.gpl3Plus;  # runtime support libraries are typically LGPLv3+
+    description = "GNU Compiler Collection, version ${version}"
+      + (if stripped then "" else " (with debugging info)");
+
+    longDescription = ''
+      The GNU Compiler Collection includes compiler front ends for C, C++,
+      Objective-C, Fortran, OpenMP for C/C++/Fortran, and Ada, as well as
+      libraries for these languages (libstdc++, libgomp,...).
+
+      GCC development is a part of the GNU Project, aiming to improve the
+      compiler used in the GNU system including the GNU/Linux variant.
+    '';
+
+    maintainers = with lib.maintainers; [ synthetica ];
+
+    platforms =
+      lib.platforms.linux ++
+      lib.platforms.freebsd ++
+      lib.platforms.illumos ++
+      lib.platforms.darwin;
+  };
+}
+
+// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
+  makeFlags = [ "all-gcc" "all-target-libgcc" ];
+  installTargets = "install-gcc install-target-libgcc";
+}
+
+// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
+)
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 6ecf462d54d..4edc034720c 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -55,6 +55,7 @@ let majorVersion = "8";
 
     patches =
          optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+      ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
         url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 7f35f5c7bb9..ca92a8f4845 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -70,6 +70,7 @@ let majorVersion = "9";
       # This patch can most likely be removed by a post 9.3.0-release.
       [ ./avoid-cycling-subreg-reloads.patch ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
+      ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
         url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix
index fc4fbb34c50..7f7a40f3368 100644
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -176,6 +176,7 @@ let
 
     # Platform-specific flags
     ++ lib.optional (targetPlatform == hostPlatform && targetPlatform.isx86_32) "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
+    ++ lib.optional targetPlatform.isNetBSD "--disable-libssp" # Provided by libc.
     ++ lib.optionals hostPlatform.isSunOS [
       "--enable-long-long" "--enable-libssp" "--enable-threads=posix" "--disable-nls" "--enable-__cxa_atexit"
       # On Illumos/Solaris GNU as is preferred
diff --git a/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
index e8c4a027520..d6a05091514 100644
--- a/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
+++ b/pkgs/development/compilers/ghcjs-ng/8.6/stage0.nix
@@ -108,7 +108,7 @@
         base binary bytestring containers ghc-prim ghci-ghcjs
         template-haskell-ghcjs
       ];
-      homepage = "http://github.com/ghcjs";
+      homepage = "https://github.com/ghcjs";
       license = lib.licenses.mit;
     }) {};
 
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
index e7332439439..ec07331dc52 100644
--- a/pkgs/development/compilers/ghdl/default.nix
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gnat, zlib, llvm, lib
+{ stdenv, fetchFromGitHub, callPackage, gnat, zlib, llvm, lib
 , backend ? "mcode" }:
 
 assert backend == "mcode" || backend == "llvm";
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   LIBRARY_PATH = "${stdenv.cc.libc}/lib";
 
   buildInputs = [ gnat zlib ] ++ lib.optional (backend == "llvm") [ llvm ];
+  propagatedBuildInputs = lib.optionals (backend == "llvm") [ zlib ];
 
   preConfigure = ''
     # If llvm 7.0 works, 7.x releases should work too.
@@ -30,6 +31,15 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = {
+    # run with either of
+    # nix-build -A ghdl-mcode.passthru.tests
+    # nix-build -A ghdl-llvm.passthru.tests
+    tests = {
+      simple = callPackage ./test-simple.nix { inherit backend; };
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/ghdl/ghdl";
     description = "VHDL 2008/93/87 simulator";
diff --git a/pkgs/development/compilers/ghdl/expected-output.txt b/pkgs/development/compilers/ghdl/expected-output.txt
new file mode 100644
index 00000000000..0396b0c2787
--- /dev/null
+++ b/pkgs/development/compilers/ghdl/expected-output.txt
@@ -0,0 +1,8 @@
+simple-tb.vhd:71:5:@700ms:(report note): 32
+simple-tb.vhd:71:5:@900ms:(report note): 78
+simple-tb.vhd:71:5:@1100ms:(report note): 105
+simple-tb.vhd:71:5:@1300ms:(report note): 120
+simple-tb.vhd:71:5:@1500ms:(report note): 79
+simple-tb.vhd:71:5:@1700ms:(report note): 83
+simple-tb.vhd:71:5:@1900ms:(report note): 32
+simple-tb.vhd:75:1:@2100ms:(report note): All tests passed.
diff --git a/pkgs/development/compilers/ghdl/simple-tb.vhd b/pkgs/development/compilers/ghdl/simple-tb.vhd
new file mode 100644
index 00000000000..65e4d0967c5
--- /dev/null
+++ b/pkgs/development/compilers/ghdl/simple-tb.vhd
@@ -0,0 +1,78 @@
+library ieee;
+use IEEE.STD_LOGIC_1164.all;
+use ieee.numeric_std.all;
+
+library STD;
+use STD.textio.all;
+
+entity tb is
+end tb;
+
+architecture beh of tb is
+
+component simple
+port (
+    CLK, RESET : in std_ulogic;
+    DATA_OUT : out std_ulogic_vector(7 downto 0);
+    DONE_OUT : out std_ulogic
+);
+end component;
+
+signal data : std_ulogic_vector(7 downto 0) := "00100000";
+signal clk : std_ulogic;
+signal RESET : std_ulogic := '0';
+signal done : std_ulogic := '0';
+signal cyclecount : integer := 0;
+
+constant cycle_time_c : time := 200 ms;
+constant maxcycles : integer := 100;
+
+begin
+
+simple1 : simple
+port map (
+    CLK => clk,
+    RESET => RESET,
+    DATA_OUT => data,
+    DONE_OUT => done
+);
+
+clk_process : process
+begin
+    clk <= '0';
+    wait for cycle_time_c/2;
+    clk <= '1';
+    wait for cycle_time_c/2;
+end process;
+
+count_process : process(CLK)
+begin
+    if (CLK'event and CLK ='1') then
+    if (RESET = '1') then
+        cyclecount <= 0;
+    else
+        cyclecount <= cyclecount + 1;
+    end if;
+    end if;
+end process;
+
+test : process
+
+begin
+
+RESET <= '1';
+wait until (clk'event and clk='1');
+wait until (clk'event and clk='1');
+RESET <= '0';
+wait until (clk'event and clk='1');
+for cyclecnt in 1 to maxcycles loop
+    exit when done = '1';
+    wait until (clk'event and clk='1');
+    report integer'image(to_integer(unsigned(data)));
+end loop;
+wait until (clk'event and clk='1');
+
+report "All tests passed." severity NOTE;
+wait;
+end process;
+end beh;
diff --git a/pkgs/development/compilers/ghdl/simple.vhd b/pkgs/development/compilers/ghdl/simple.vhd
new file mode 100644
index 00000000000..f10cf73d067
--- /dev/null
+++ b/pkgs/development/compilers/ghdl/simple.vhd
@@ -0,0 +1,45 @@
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+use IEEE.NUMERIC_STD.ALL;
+use IEEE.STD_LOGIC_MISC.or_reduce;
+
+entity simple is
+
+port (
+    CLK, RESET : in std_ulogic;
+    DATA_OUT : out std_ulogic_vector(7 downto 0);
+    DONE_OUT : out std_ulogic
+);
+end simple;
+
+architecture beh of simple is
+
+signal data : std_ulogic_vector(7 downto 0);
+signal done: std_ulogic;
+
+begin
+
+proc_ctr : process(CLK)
+begin
+if (CLK = '1' and CLK'event) then
+    if (RESET = '1') then
+        data <= "01011111";
+        done <= '0';
+    else
+    case data is
+        when "00100000" =>  data <= "01001110";
+        when "01001110" =>  data <= "01101001";
+        when "01101001" =>  data <= "01111000";
+        when "01111000" =>  data <= "01001111";
+        when "01001111" =>  data <= "01010011";
+        when others =>  data <= "00100000";
+    end case;
+    done <= not or_reduce(data xor "01010011");
+    end if;
+end if;
+end process;
+
+DATA_OUT <= data;
+DONE_OUT <= done;
+
+end beh;
diff --git a/pkgs/development/compilers/ghdl/test-simple.nix b/pkgs/development/compilers/ghdl/test-simple.nix
new file mode 100644
index 00000000000..8d3c3d3095f
--- /dev/null
+++ b/pkgs/development/compilers/ghdl/test-simple.nix
@@ -0,0 +1,23 @@
+{ stdenv, ghdl-llvm, ghdl-mcode, backend }:
+
+let
+  ghdl = if backend == "llvm" then ghdl-llvm else ghdl-mcode;
+in
+stdenv.mkDerivation {
+  name = "ghdl-test-simple";
+  meta.timeout = 300;
+  nativeBuildInputs = [ ghdl ];
+  buildCommand = ''
+    cp ${./simple.vhd} simple.vhd
+    cp ${./simple-tb.vhd} simple-tb.vhd
+    mkdir -p ghdlwork
+    ghdl -a --workdir=ghdlwork --ieee=synopsys simple.vhd simple-tb.vhd
+    ghdl -e --workdir=ghdlwork --ieee=synopsys -o sim-simple tb
+  '' + (if backend == "llvm" then ''
+    ./sim-simple --assert-level=warning > output.txt
+  '' else ''
+    ghdl -r --workdir=ghdlwork --ieee=synopsys tb > output.txt
+  '') + ''
+    diff output.txt ${./expected-output.txt} && touch $out
+  '';
+}
diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix
index d6690a71088..f82a0d72b7a 100644
--- a/pkgs/development/compilers/go/1.16.nix
+++ b/pkgs/development/compilers/go/1.16.nix
@@ -11,7 +11,7 @@ let
 
   inherit (lib) optionals optionalString;
 
-  version = "1.16.2";
+  version = "1.16.3";
 
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "1sl33wkhp6pi9f15f6khp5a7l7xwmpc3sp1zmji8pjr3g8l19jip";
+    sha256 = "sha256-spjSnekjbKR6Aj44IxO8wtLu0x36cGtgoEEDzoOnGiU=";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/haxe/default.nix b/pkgs/development/compilers/haxe/default.nix
index 73b82ff48db..d5277899892 100644
--- a/pkgs/development/compilers/haxe/default.nix
+++ b/pkgs/development/compilers/haxe/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls }:
+{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls, Security }:
 
 let
   ocamlDependencies = version:
-    if lib.versionAtLeast version "4.0"
+    if lib.versionAtLeast version "4.2"
     then with ocaml-ng.ocamlPackages; [
       ocaml
       findlib
@@ -14,6 +14,18 @@ let
       dune_2
       luv
       ocaml_extlib
+    ] else if lib.versionAtLeast version "4.0"
+    then with ocaml-ng.ocamlPackages_4_10; [
+      ocaml
+      findlib
+      sedlex_2
+      xml-light
+      ptmap
+      camlp5
+      sha
+      dune_2
+      luv
+      ocaml_extlib-1-7-7
     ] else with ocaml-ng.ocamlPackages_4_05; [
       ocaml
       camlp4
@@ -30,7 +42,8 @@ let
       inherit version;
 
       buildInputs = [ zlib pcre neko ]
-        ++ lib.optional (lib.versionAtLeast version "4.1") [ mbedtls ]
+        ++ lib.optional (lib.versionAtLeast version "4.1") mbedtls
+        ++ lib.optional (lib.versionAtLeast version "4.1" && stdenv.isDarwin) Security
         ++ ocamlDependencies version;
 
       src = fetchFromGitHub {
@@ -125,6 +138,14 @@ in {
       sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml
     '';
   };
+  haxe_4_0 = generic {
+    version = "4.0.5";
+    sha256 = "0f534pchdx0m057ixnk07ab4s518ica958pvpd0vfjsrxg5yjkqa";
+  };
+  haxe_4_1 = generic {
+    version = "4.1.5";
+    sha256 = "0rns6d28qzkbai6yyws08yzbyvxfn848nj0fsji7chdi0y7pzzj0";
+  };
   haxe_4_2 = generic {
     version = "4.2.1";
     sha256 = "sha256-0j6M21dh8DB1gC/bPYNJrVuDbJyqQbP+61ItO5RBUcA=";
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index c94df830095..4012aa260f8 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -2,12 +2,12 @@
 
 openjdk11.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk";
-  version = "11.0.10-b37";
+  version = "11.0.10-b1427";
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0bcvwnwi29z000b1bk5dhfkd33xfp9899zc3idzifdwl7q42zi02";
+    sha256 = "sha256-2cn+FiFfGpp7CBeQMAASVZwTm6DOFaXaWxAL/nVC2Nk=";
   };
   patches = [];
   meta = with lib; {
diff --git a/pkgs/development/compilers/julia/1.0.nix b/pkgs/development/compilers/julia/1.0.nix
index 5b1a4674a88..4f05329f595 100644
--- a/pkgs/development/compilers/julia/1.0.nix
+++ b/pkgs/development/compilers/julia/1.0.nix
@@ -88,13 +88,7 @@ stdenv.mkDerivation rec {
   ;
 
   patches = [
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
-    ./diagonal-test.patch
-    ./use-system-utf8proc-julia-1.0.patch
+    ./patches/1.0/use-system-utf8proc-julia-1.0.patch
   ];
 
   postPatch = ''
@@ -184,6 +178,8 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
   '';
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
     # as using a wrapper with LD_LIBRARY_PATH causes segmentation
diff --git a/pkgs/development/compilers/julia/1.3.nix b/pkgs/development/compilers/julia/1.3.nix
deleted file mode 100644
index 5e431a55233..00000000000
--- a/pkgs/development/compilers/julia/1.3.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ lib, stdenv, fetchurl, fetchzip, fetchFromGitHub
-# build tools
-, gfortran, m4, makeWrapper, patchelf, perl, which, python2
-, cmake
-# libjulia dependencies
-, libunwind, readline, utf8proc, zlib
-# standard library dependencies
-, curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2
-# linear algebra
-, blas, lapack, arpack
-# Darwin frameworks
-, CoreServices, ApplicationServices
-}:
-
-assert (!blas.isILP64) && (!lapack.isILP64);
-
-with lib;
-
-let
-  majorVersion = "1";
-  minorVersion = "3";
-  maintenanceVersion = "1";
-  src_sha256 = "0q9a7yc3b235psrwl5ghyxgwly25lf8n818l8h6bkf2ymdbsv5p6";
-  version = "${majorVersion}.${minorVersion}.${maintenanceVersion}";
-in
-
-stdenv.mkDerivation rec {
-  pname = "julia";
-  inherit version;
-
-   src = fetchzip {
-     url = "https://github.com/JuliaLang/julia/releases/download/v${majorVersion}.${minorVersion}.${maintenanceVersion}/julia-${majorVersion}.${minorVersion}.${maintenanceVersion}-full.tar.gz";
-     sha256 = src_sha256;
-   };
-
-  prePatch = ''
-    export PATH=$PATH:${cmake}/bin
-    '';
-
-  patches = [
-    ./use-system-utf8proc-julia-1.3.patch
-
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
-  ];
-
-  postPatch = ''
-    patchShebangs . contrib
-    for i in backtrace cmdlineargs; do
-      mv test/$i.jl{,.off}
-      touch test/$i.jl
-    done
-    rm stdlib/Sockets/test/runtests.jl && touch stdlib/Sockets/test/runtests.jl
-    rm stdlib/Distributed/test/runtests.jl && touch stdlib/Distributed/test/runtests.jl
-    sed -e 's/Invalid Content-Type:/invalid Content-Type:/g' -i ./stdlib/LibGit2/test/libgit2.jl
-    sed -e 's/Failed to resolve /failed to resolve /g' -i ./stdlib/LibGit2/test/libgit2.jl
-  '';
-
-  buildInputs = [
-    arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr
-    pcre2.dev blas lapack openlibm openspecfun readline utf8proc
-    zlib
-  ]
-  ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices]
-  ;
-
-  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which ];
-
-  makeFlags =
-    let
-      arch = head (splitString "-" stdenv.system);
-      march = {
-        x86_64 = stdenv.hostPlatform.gcc.arch or "x86-64";
-        i686 = "pentium4";
-        aarch64 = "armv8-a";
-      }.${arch}
-              or (throw "unsupported architecture: ${arch}");
-      # Julia requires Pentium 4 (SSE2) or better
-      cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; aarch64 = "generic"; }.${arch}
-                  or (throw "unsupported architecture: ${arch}");
-    in [
-      "ARCH=${arch}"
-      "MARCH=${march}"
-      "JULIA_CPU_TARGET=${cpuTarget}"
-      "PREFIX=$(out)"
-      "prefix=$(out)"
-      "SHELL=${stdenv.shell}"
-
-      (lib.optionalString (!stdenv.isDarwin) "USE_SYSTEM_BLAS=1")
-      "USE_BLAS64=${if blas.isILP64 then "1" else "0"}"
-
-      "USE_SYSTEM_LAPACK=1"
-
-      "USE_SYSTEM_ARPACK=1"
-      "USE_SYSTEM_FFTW=1"
-      "USE_SYSTEM_GMP=1"
-      "USE_SYSTEM_LIBGIT2=1"
-      "USE_SYSTEM_LIBUNWIND=1"
-
-      "USE_SYSTEM_MPFR=1"
-      "USE_SYSTEM_OPENLIBM=1"
-      "USE_SYSTEM_OPENSPECFUN=1"
-      "USE_SYSTEM_PATCHELF=1"
-      "USE_SYSTEM_PCRE=1"
-      "PCRE_CONFIG=${pcre2.dev}/bin/pcre2-config"
-      "PCRE_INCL_PATH=${pcre2.dev}/include/pcre2.h"
-      "USE_SYSTEM_READLINE=1"
-      "USE_SYSTEM_UTF8PROC=1"
-      "USE_SYSTEM_ZLIB=1"
-
-      "USE_BINARYBUILDER=0"
-    ];
-
-  LD_LIBRARY_PATH = makeLibraryPath [
-    arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm
-    openspecfun pcre2 lapack
-  ];
-
-  # Other versions of Julia pass the tests, but we are not sure why these fail.
-  doCheck = false;
-  checkTarget = "testall";
-  # Julia's tests require read/write access to $HOME
-  preCheck = ''
-    export HOME="$NIX_BUILD_TOP"
-  '';
-
-  preBuild = ''
-    sed -e '/^install:/s@[^ ]*/doc/[^ ]*@@' -i Makefile
-    sed -e '/[$](DESTDIR)[$](docdir)/d' -i Makefile
-    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
-  '';
-
-  postInstall = ''
-    # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
-    # as using a wrapper with LD_LIBRARY_PATH causes segmentation
-    # faults when program returns an error:
-    #   $ julia -e 'throw(Error())'
-    find $(echo $LD_LIBRARY_PATH | sed 's|:| |g') -maxdepth 1 -name '*.${if stdenv.isDarwin then "dylib" else "so"}*' | while read lib; do
-      if [[ ! -e $out/lib/julia/$(basename $lib) ]]; then
-        ln -sv $lib $out/lib/julia/$(basename $lib)
-      fi
-    done
-  '';
-
-  passthru = {
-    inherit majorVersion minorVersion maintenanceVersion;
-    site = "share/julia/site/v${majorVersion}.${minorVersion}";
-  };
-
-  meta = {
-    description = "High-level performance-oriented dynamical language for technical computing";
-    homepage = "https://julialang.org/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ raskin rob garrison ];
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
-    broken = stdenv.isi686;
-  };
-}
diff --git a/pkgs/development/compilers/julia/1.5.nix b/pkgs/development/compilers/julia/1.5.nix
index b4c33faa44c..271ea64a094 100644
--- a/pkgs/development/compilers/julia/1.5.nix
+++ b/pkgs/development/compilers/julia/1.5.nix
@@ -33,13 +33,7 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./use-system-utf8proc-julia-1.3.patch
-
-    # Julia recompiles a precompiled file if the mtime stored *in* the
-    # .ji file differs from the mtime of the .ji file.  This
-    # doesn't work in Nix because Nix changes the mtime of files in
-    # the Nix store to 1. So patch Julia to accept mtimes of 1.
-    ./allow_nix_mtime.patch
+    ./patches/1.5/use-system-utf8proc-julia-1.3.patch
   ];
 
   postPatch = ''
@@ -129,6 +123,8 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
   '';
 
+  enableParallelBuilding = true;
+
   postInstall = ''
     # Symlink shared libraries from LD_LIBRARY_PATH into lib/julia,
     # as using a wrapper with LD_LIBRARY_PATH causes segmentation
diff --git a/pkgs/development/compilers/julia/README.md b/pkgs/development/compilers/julia/README.md
new file mode 100644
index 00000000000..d37c01bc8ce
--- /dev/null
+++ b/pkgs/development/compilers/julia/README.md
@@ -0,0 +1,24 @@
+Julia
+=====
+
+[Julia][julia], as a full-fledged programming language with an extensive
+standard library that covers numerical computing, can be somewhat challenging to
+package. This file aims to provide pointers which could not easily be included
+as comments in the expressions themselves.
+
+[julia]: https://julialang.org
+
+For Nixpkgs, the manual is as always your primary reference, and for the Julia
+side of things you probably want to familiarise yourself with the [README
+][readme], [build instructions][build], and [release process][release_process].
+Remember that these can change between Julia releases, especially if the LTS and
+release branches have deviated greatly. A lot of the build process is
+underdocumented and thus there is no substitute for digging into the code that
+controls the build process. You are very likely to need to use the test suite to
+locate and address issues and in the end passing it, while only disabling a
+minimal set of broken or incompatible tests you think you have a good reason to
+disable, is your best bet at arriving at a solid derivation.
+
+[readme]: https://github.com/JuliaLang/julia/blob/master/README.md
+[build]: https://github.com/JuliaLang/julia/blob/master/doc/build/build.md
+[release_process]: https://julialang.org/blog/2019/08/release-process
diff --git a/pkgs/development/compilers/julia/allow_nix_mtime.patch b/pkgs/development/compilers/julia/allow_nix_mtime.patch
deleted file mode 100644
index e4a164cfa1a..00000000000
--- a/pkgs/development/compilers/julia/allow_nix_mtime.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f79775378a9eeec5b99f18cc95735b12d172aba3 Mon Sep 17 00:00:00 2001
-From: Tom McLaughlin <pyro777@gmail.com>
-Date: Wed, 12 Dec 2018 13:01:32 -0800
-Subject: [PATCH] Patch to make work better with nix
-
----
- base/loading.jl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/base/loading.jl b/base/loading.jl
-index 51201b98b6..b40c0690f6 100644
---- a/base/loading.jl
-+++ b/base/loading.jl
-@@ -1384,7 +1384,7 @@ function stale_cachefile(modpath::String, cachefile::String)
-                 # Issue #13606: compensate for Docker images rounding mtimes
-                 # Issue #20837: compensate for GlusterFS truncating mtimes to microseconds
-                 ftime = mtime(f)
--                if ftime != ftime_req && ftime != floor(ftime_req) && ftime != trunc(ftime_req, digits=6)
-+                if ftime != ftime_req && ftime != floor(ftime_req) && ftime != trunc(ftime_req, digits=6) && ftime != 1.0
-                     @debug "Rejecting stale cache file $cachefile (mtime $ftime_req) because file $f (mtime $ftime) has changed"
-                     return true
-                 end
--- 
-2.17.1
-
diff --git a/pkgs/development/compilers/julia/diagonal-test.patch b/pkgs/development/compilers/julia/diagonal-test.patch
deleted file mode 100644
index dd31e67e9d3..00000000000
--- a/pkgs/development/compilers/julia/diagonal-test.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9eb180c523b877a53b9e1cf53a4d5e6dad3d7bfe Mon Sep 17 00:00:00 2001
-From: Lars Jellema <lars.jellema@gmail.com>
-Date: Sat, 19 Sep 2020 13:52:20 +0200
-Subject: [PATCH] Use approximate comparisons for diagonal tests
-
----
- stdlib/LinearAlgebra/test/diagonal.jl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/stdlib/LinearAlgebra/test/diagonal.jl b/stdlib/LinearAlgebra/test/diagonal.jl
-index e420d5bc6d..7f1b5d0aec 100644
---- a/stdlib/LinearAlgebra/test/diagonal.jl
-+++ b/stdlib/LinearAlgebra/test/diagonal.jl
-@@ -450,8 +450,8 @@ end
-         M = randn(T, 5, 5)
-         MM = [randn(T, 2, 2) for _ in 1:2, _ in 1:2]
-         for transform in (identity, adjoint, transpose, Adjoint, Transpose)
--            @test lmul!(transform(D), copy(M)) == *(transform(Matrix(D)), M)
--            @test rmul!(copy(M), transform(D)) == *(M, transform(Matrix(D)))
-+            @test lmul!(transform(D), copy(M)) ≈ *(transform(Matrix(D)), M)
-+            @test rmul!(copy(M), transform(D)) ≈ *(M, transform(Matrix(D)))
-             @test lmul!(transform(DD), copy(MM)) == *(transform(fullDD), MM)
-             @test rmul!(copy(MM), transform(DD)) == *(MM, transform(fullDD))
-         end
--- 
-2.28.0
-
diff --git a/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch b/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch
index be4391399f5..be4391399f5 100644
--- a/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.0.patch
+++ b/pkgs/development/compilers/julia/patches/1.0/use-system-utf8proc-julia-1.0.patch
diff --git a/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch b/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch
index 63e0ba9ab05..63e0ba9ab05 100644
--- a/pkgs/development/compilers/julia/use-system-utf8proc-julia-1.3.patch
+++ b/pkgs/development/compilers/julia/patches/1.5/use-system-utf8proc-julia-1.3.patch
diff --git a/pkgs/development/compilers/julia/update-1.5.py b/pkgs/development/compilers/julia/update-1.5.py
deleted file mode 100755
index e37f37d456b..00000000000
--- a/pkgs/development/compilers/julia/update-1.5.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i python3 -p python3 python3Packages.requests
-
-import os
-import re
-import requests
-import subprocess
-
-latest = requests.get("https://api.github.com/repos/JuliaLang/julia/releases/latest").json()["tag_name"]
-assert latest[0] == "v"
-major, minor, patch = latest[1:].split(".")
-assert major == "1"
-# When a new minor version comes out we'll have to refactor/copy this update script.
-assert minor == "5"
-
-sha256 = subprocess.check_output(["nix-prefetch-url", "--unpack", f"https://github.com/JuliaLang/julia/releases/download/v{major}.{minor}.{patch}/julia-{major}.{minor}.{patch}-full.tar.gz"], text=True).strip()
-
-nix_path = os.path.join(os.path.dirname(__file__), "1.5.nix")
-nix0 = open(nix_path, "r").read()
-nix1 = re.sub("maintenanceVersion = \".*\";", f"maintenanceVersion = \"{patch}\";", nix0)
-nix2 = re.sub("src_sha256 = \".*\";", f"src_sha256 = \"{sha256}\";", nix1)
-open(nix_path, "w").write(nix2)
diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix
index 087b0ad1153..6523dcca2f6 100644
--- a/pkgs/development/compilers/koka/default.nix
+++ b/pkgs/development/compilers/koka/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPackages, cmake, gnumake, makeWrapper, mkDerivation, fetchFromGitHub
+{ stdenv, pkgsHostTarget, cmake, makeWrapper, mkDerivation, fetchFromGitHub
 , alex, array, base, bytestring, cond, containers, directory, extra
 , filepath, haskeline, hpack, hspec, hspec-core, json, lib, mtl
 , parsec, process, regex-compat, text, time }:
@@ -18,11 +18,12 @@ let
     src = "${src}/kklib";
     nativeBuildInputs = [ cmake ];
   };
+  inherit (pkgsHostTarget.targetPackages.stdenv) cc;
   runtimeDeps = [
-    buildPackages.stdenv.cc
-    buildPackages.stdenv.cc.bintools.bintools
-    gnumake
-    cmake
+    cc
+    cc.bintools.bintools
+    pkgsHostTarget.gnumake
+    pkgsHostTarget.cmake
   ];
 in
 mkDerivation rec {
@@ -42,7 +43,7 @@ mkDerivation rec {
     cp -a contrib $out/share/koka/v${version}
     cp -a kklib $out/share/koka/v${version}
     wrapProgram "$out/bin/koka" \
-      --set CC "${lib.getBin buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" \
+      --set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \
       --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}"
   '';
   doCheck = false;
diff --git a/pkgs/development/compilers/llvm/10/libc++abi/default.nix b/pkgs/development/compilers/llvm/10/libc++abi/default.nix
index 7541cee1a54..1909996614d 100644
--- a/pkgs/development/compilers/llvm/10/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/10/libc++abi/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
diff --git a/pkgs/development/compilers/llvm/11/libc++abi/default.nix b/pkgs/development/compilers/llvm/11/libc++abi/default.nix
index a95a3051415..c35ec706a02 100644
--- a/pkgs/development/compilers/llvm/11/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/11/libc++abi/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d libcxx -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
     patch -p1 -d llvm -i ${./wasm.patch}
   '';
diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix
index fc64451e013..ee2fe9c90b2 100644
--- a/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -70,7 +70,7 @@ in stdenv.mkDerivation (rec {
       --replace "Path.cpp" ""
     rm unittests/Support/Path.cpp
   '' + optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -i ${../TLI-musl.patch}
+    patch -p1 -i ${../../TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "add_subdirectory(DynamicLibrary)" ""
     rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
diff --git a/pkgs/development/compilers/llvm/12/bintools.nix b/pkgs/development/compilers/llvm/12/bintools/default.nix
index 53f7941e336..53f7941e336 100644
--- a/pkgs/development/compilers/llvm/12/bintools.nix
+++ b/pkgs/development/compilers/llvm/12/bintools/default.nix
diff --git a/pkgs/development/compilers/llvm/12/clang/default.nix b/pkgs/development/compilers/llvm/12/clang/default.nix
index d90d019e6d5..ab329e3d85d 100644
--- a/pkgs/development/compilers/llvm/12/clang/default.nix
+++ b/pkgs/development/compilers/llvm/12/clang/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
+{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld
 , fixDarwinDylibNames
 , enableManpages ? false
 }:
@@ -8,7 +8,7 @@ let
     pname = "clang";
     inherit version;
 
-    src = fetch "clang" "185r9rr254v75ja33nmm53j85lcnkj7bzsl18wvnd37jmz2nfxa5";
+    src = fetch "clang" "1vd9rhhrd8ghdg111lac7w8by71y9l14yh5zxfijsm6lj4p4avp2";
     inherit clang-tools-extra_src;
 
     unpackPhase = ''
@@ -82,11 +82,20 @@ let
       inherit llvm;
     };
 
-    meta = {
-      description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler";
-      homepage    = "https://llvm.org/";
-      license     = lib.licenses.ncsa;
-      platforms   = lib.platforms.all;
+    meta = llvm_meta // {
+      homepage = "https://clang.llvm.org/";
+      description = "A C language family frontend for LLVM";
+      longDescription = ''
+        The Clang project provides a language front-end and tooling
+        infrastructure for languages in the C language family (C, C++, Objective
+        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
+        It aims to deliver amazingly fast compiles, extremely useful error and
+        warning messages and to provide a platform for building great source
+        level tools. The Clang Static Analyzer and clang-tidy are tools that
+        automatically find bugs in your code, and are great examples of the sort
+        of tools that can be built using the Clang frontend as a library to
+        parse C/C++ code.
+      '';
     };
   } // lib.optionalAttrs enableManpages {
     pname = "clang-manpages";
@@ -105,6 +114,8 @@ let
 
     doCheck = false;
 
-    meta.description = "man page for Clang ${version}";
+    meta = llvm_meta // {
+      description = "man page for Clang ${version}";
+    };
   });
 in self
diff --git a/pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch
index f6f9336ad5a..f6f9336ad5a 100644
--- a/pkgs/development/compilers/llvm/12/compiler-rt-X86-support-extension.patch
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-X86-support-extension.patch
diff --git a/pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch
index 120cfe6feb2..120cfe6feb2 100644
--- a/pkgs/development/compilers/llvm/12/compiler-rt-armv7l.patch
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-armv7l.patch
diff --git a/pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch
index 3cc12b94b20..3cc12b94b20 100644
--- a/pkgs/development/compilers/llvm/12/compiler-rt-codesign.patch
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/compiler-rt-codesign.patch
diff --git a/pkgs/development/compilers/llvm/12/compiler-rt.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
index e6ac77b7d26..bf7f4bc4312 100644
--- a/pkgs/development/compilers/llvm/12/compiler-rt.nix
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, version, fetch, cmake, python3, llvm, libcxxabi }:
+{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, llvm, libcxxabi }:
 
 let
 
@@ -11,7 +11,7 @@ in
 stdenv.mkDerivation rec {
   pname = "compiler-rt";
   inherit version;
-  src = fetch pname "1x0z875nbdpzhr4qb7linm6r9swvdf6dvwqy1s22pbn4wdcw0cvf";
+  src = fetch pname "0d444qihq9jhqnfv003cr704v363va72zl6qaw2algj1c85cva45";
 
   nativeBuildInputs = [ cmake python3 llvm ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
@@ -87,4 +87,19 @@ stdenv.mkDerivation rec {
     ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
   '';
 
+  meta = llvm_meta // {
+    homepage = "https://compiler-rt.llvm.org/";
+    description = "Compiler runtime libraries";
+    longDescription = ''
+      The compiler-rt project provides highly tuned implementations of the
+      low-level code generator support routines like "__fixunsdfdi" and other
+      calls generated when a target doesn't have a short sequence of native
+      instructions to implement a core IR operation. It also provides
+      implementations of run-time libraries for dynamic testing tools such as
+      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
+    '';
+    # "All of the code in the compiler-rt project is dual licensed under the MIT
+    # license and the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
 }
diff --git a/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch b/pkgs/development/compilers/llvm/12/compiler-rt/sanitizers-nongnu.patch
index 1f2ac97818e..1f2ac97818e 100644
--- a/pkgs/development/compilers/llvm/12/sanitizers-nongnu.patch
+++ b/pkgs/development/compilers/llvm/12/compiler-rt/sanitizers-nongnu.patch
diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix
index 593db716ac6..a6d68d2e2a4 100644
--- a/pkgs/development/compilers/llvm/12/default.nix
+++ b/pkgs/development/compilers/llvm/12/default.nix
@@ -8,7 +8,7 @@
 
 let
   release_version = "12.0.0";
-  candidate = "rc5"; # empty or "rcN"
+  candidate = ""; # empty or "rcN"
   dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
   version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
   targetConfig = stdenv.targetPlatform.config;
@@ -18,7 +18,13 @@ let
     inherit sha256;
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "1hga9k5m60ywmr7m69jf1v6vj1ra1n6ybv1abzlz94f5q22i1a02";
+  clang-tools-extra_src = fetch "clang-tools-extra" "0p3dzr0qa7mar83y66xa5m5apynf6ia0lsdsq6axwnm64ysy0hdd";
+
+  llvm_meta = {
+    license     = lib.licenses.ncsa;
+    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
+    platforms   = lib.platforms.all;
+  };
 
   tools = lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
@@ -30,13 +36,16 @@ let
       ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
       echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
     '';
+
   in {
 
-    llvm = callPackage ./llvm.nix { };
+    llvm = callPackage ./llvm {
+      inherit llvm_meta;
+    };
 
     clang-unwrapped = callPackage ./clang {
       inherit (tools) lld;
-      inherit clang-tools-extra_src;
+      inherit clang-tools-extra_src llvm_meta;
     };
 
     # disabled until recommonmark supports sphinx 3
@@ -80,11 +89,13 @@ let
       extraBuildCommands = mkExtraBuildCommands cc;
     };
 
-    lld = callPackage ./lld.nix {
+    lld = callPackage ./lld {
+      inherit llvm_meta;
       libunwind = libraries.libunwind;
     };
 
-    lldb = callPackage ./lldb.nix {
+    lldb = callPackage ./lldb {
+      inherit llvm_meta;
       inherit (darwin) libobjc bootstrap_cmds;
       inherit (darwin.apple_sdk.libs) xpc;
       inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa;
@@ -97,7 +108,7 @@ let
     # doesn’t support like LLVM. Probably we should move to some other
     # file.
 
-    bintools = callPackage ./bintools.nix {};
+    bintools = callPackage ./bintools {};
 
     lldClang = wrapCCWith rec {
       cc = tools.clang-unwrapped;
@@ -172,7 +183,7 @@ let
     callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
   in {
 
-    compiler-rt = callPackage ./compiler-rt.nix ({} //
+    compiler-rt = callPackage ./compiler-rt ({ inherit llvm_meta; } //
       (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
         stdenv = overrideCC stdenv buildLlvmTools.lldClangNoCompilerRt;
       }));
@@ -181,20 +192,20 @@ let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxx = callPackage ./libc++ ({} //
+    libcxx = callPackage ./libcxx ({ inherit llvm_meta; } //
       (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
         stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
       }));
 
-    libcxxabi = callPackage ./libc++abi.nix ({} //
+    libcxxabi = callPackage ./libcxxabi ({ inherit llvm_meta; } //
       (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
         stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
         libunwind = libraries.libunwind;
       }));
 
-    openmp = callPackage ./openmp.nix {};
+    openmp = callPackage ./openmp { inherit llvm_meta; };
 
-    libunwind = callPackage ./libunwind.nix ({} //
+    libunwind = callPackage ./libunwind ({ inherit llvm_meta; } //
       (lib.optionalAttrs (stdenv.hostPlatform.useLLVM or false) {
         stdenv = overrideCC stdenv buildLlvmTools.lldClangNoLibcxx;
       }));
diff --git a/pkgs/development/compilers/llvm/12/libc++/default.nix b/pkgs/development/compilers/llvm/12/libcxx/default.nix
index 757651c0f4c..7b3b26b959e 100644
--- a/pkgs/development/compilers/llvm/12/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/12/libcxx/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetch, fetchpatch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
+{ lib, stdenv, llvm_meta, fetch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++";
+  pname = "libcxx";
   inherit version;
 
-  src = fetch "libcxx" "01abh553dvjgk5cjzzp0ghmg00laqbr4ar4frdhyhpbwhhmwc880";
+  src = fetch "libcxx" "1wf3ww29xkx7prs7pdwicy5qqfapib26110jgmkjrbka9z57bjvx";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
@@ -40,10 +40,15 @@ stdenv.mkDerivation {
     isLLVM = true;
   };
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxx.llvm.org/";
-    description = "A new implementation of the C++ standard library, targeting C++11";
-    license = with lib.licenses; [ ncsa mit ];
-    platforms = lib.platforms.all;
+    description = "C++ standard library";
+    longDescription = ''
+      libc++ is an implementation of the C++ standard library, targeting C++11,
+      C++14 and above.
+    '';
+    # "All of the code in libc++ is dual licensed under the MIT license and the
+    # UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
   };
 }
diff --git a/pkgs/development/compilers/llvm/12/libc++abi.nix b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
index e35480c7bf2..dab6c583e88 100644
--- a/pkgs/development/compilers/llvm/12/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, cmake, python3, fetch, libcxx, libunwind, llvm, version
+{ lib, stdenv, llvm_meta, cmake, python3, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation {
-  pname = "libc++abi";
+  pname = "libcxxabi";
   inherit version;
 
-  src = fetch "libcxxabi" "0mjj4f63ix4j1b72bgzpcki7mzf3qszrq7snqhiq0c5s73skkwx0";
+  src = fetch "libcxxabi" "1cbmzspwjlr8f6sp73pw6ivf4dpg6rpc61by0q1m2zca2k6yif3a";
 
   nativeBuildInputs = [ cmake python3 ];
   buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d libcxx -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
     patch -p1 -d llvm -i ${./libcxxabi-wasm.patch}
   '';
@@ -57,11 +57,15 @@ stdenv.mkDerivation {
       ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
     '';
 
-  meta = {
+  meta = llvm_meta // {
     homepage = "https://libcxxabi.llvm.org/";
-    description = "A new implementation of low level support for a standard C++ library";
-    license = with lib.licenses; [ ncsa mit ];
-    maintainers = with lib.maintainers; [ vlstill ];
-    platforms = lib.platforms.all;
+    description = "Provides C++ standard library support";
+    longDescription = ''
+      libc++abi is a new implementation of low level support for a standard C++ library.
+    '';
+    # "All of the code in libc++abi is dual licensed under the MIT license and
+    # the UIUC License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
   };
 }
diff --git a/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch b/pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch
index 4ebfe46aa81..4ebfe46aa81 100644
--- a/pkgs/development/compilers/llvm/12/libcxxabi-wasm.patch
+++ b/pkgs/development/compilers/llvm/12/libcxxabi/libcxxabi-wasm.patch
diff --git a/pkgs/development/compilers/llvm/12/libunwind.nix b/pkgs/development/compilers/llvm/12/libunwind.nix
deleted file mode 100644
index 83e76c0c56c..00000000000
--- a/pkgs/development/compilers/llvm/12/libunwind.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, stdenv, version, fetch, libcxx, llvm, cmake
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libunwind";
-  inherit version;
-
-  src = fetch pname "0kaq75ygzv9dqfsx27pi5a0clipdjq6a9vghhb89d8k1rf20lslh";
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    mv libcxx-* libcxx
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
-  '';
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
-}
diff --git a/pkgs/development/compilers/llvm/12/libunwind/default.nix b/pkgs/development/compilers/llvm/12/libunwind/default.nix
new file mode 100644
index 00000000000..8b75146d7b2
--- /dev/null
+++ b/pkgs/development/compilers/llvm/12/libunwind/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, llvm_meta, version, fetch, libcxx, llvm, cmake
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libunwind";
+  inherit version;
+
+  src = fetch pname "1x8wpmsrsgnwj2v5ih52ylni7r6n8gzkcj6hx65zbxski2rablly";
+
+  postUnpack = ''
+    unpackFile ${libcxx.src}
+    mv libcxx-* libcxx
+    unpackFile ${llvm.src}
+    mv llvm-* llvm
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+
+  meta = llvm_meta // {
+    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
+    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
+    description = "LLVM's unwinder library";
+    longDescription = ''
+      The unwind library provides a family of _Unwind_* functions implementing
+      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
+      I). It is a dependency of the C++ ABI library, and sometimes is a
+      dependency of other runtimes.
+    '';
+  };
+}
diff --git a/pkgs/development/compilers/llvm/12/lld.nix b/pkgs/development/compilers/llvm/12/lld.nix
deleted file mode 100644
index a5e4ab834ec..00000000000
--- a/pkgs/development/compilers/llvm/12/lld.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv
-, fetch
-, libunwind
-, cmake
-, libxml2
-, llvm
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lld";
-  inherit version;
-
-  src = fetch pname "044lv1d9am2xmbc3pvssxkkiyxyv72n2xkgk8z3p9k72h3ay00q3";
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ llvm libxml2 ];
-
-  postPatch = ''
-    substituteInPlace MachO/CMakeLists.txt --replace \
-      '(''${LLVM_MAIN_SRC_DIR}/' '('
-    mkdir -p libunwind/include
-    tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  postInstall = ''
-    moveToOutput include "$dev"
-    moveToOutput lib "$dev"
-  '';
-
-  meta = {
-    description = "The LLVM Linker";
-    homepage    = "https://lld.llvm.org/";
-    license     = lib.licenses.ncsa;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/compilers/llvm/12/lld/default.nix b/pkgs/development/compilers/llvm/12/lld/default.nix
new file mode 100644
index 00000000000..18b72a90407
--- /dev/null
+++ b/pkgs/development/compilers/llvm/12/lld/default.nix
@@ -0,0 +1,45 @@
+{ lib, stdenv, llvm_meta
+, fetch
+, libunwind
+, cmake
+, libxml2
+, llvm
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lld";
+  inherit version;
+
+  src = fetch pname "1zakyxk5bwnh7jarckcd4rbmzi58jgn2dbah5j5cwcyfyfbx9drc";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ llvm libxml2 ];
+
+  postPatch = ''
+    substituteInPlace MachO/CMakeLists.txt --replace \
+      '(''${LLVM_MAIN_SRC_DIR}/' '('
+    mkdir -p libunwind/include
+    tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/"
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  postInstall = ''
+    moveToOutput include "$dev"
+    moveToOutput lib "$dev"
+  '';
+
+  meta = llvm_meta // {
+    homepage = "https://lld.llvm.org/";
+    description = "The LLVM linker";
+    longDescription = ''
+      LLD is a linker from the LLVM project that is a drop-in replacement for
+      system linkers and runs much faster than them. It also provides features
+      that are useful for toolchain developers.
+      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS) and
+      WebAssembly in descending order of completeness. Internally, LLD consists
+      of several different linkers.
+    '';
+  };
+}
diff --git a/pkgs/development/compilers/llvm/12/lldb.nix b/pkgs/development/compilers/llvm/12/lldb/default.nix
index 67de0c18741..1fce82d7990 100644
--- a/pkgs/development/compilers/llvm/12/lldb.nix
+++ b/pkgs/development/compilers/llvm/12/lldb/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , zlib
@@ -25,7 +25,7 @@ stdenv.mkDerivation (rec {
   pname = "lldb";
   inherit version;
 
-  src = fetch pname "0q4p4s5ws1zszs3i4da5w5fnxkpny0q3fr1s1sh7jp9wcwxbxiqq";
+  src = fetch pname "1v85qyq3snk81vjmwq5q7xikyyqsfpqy2c4qmr81mps4avsw1g0l";
 
   patches = [ ./lldb-procfs.patch ];
 
@@ -72,11 +72,15 @@ stdenv.mkDerivation (rec {
     ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
   '';
 
-  meta = with lib; {
+  meta = llvm_meta // {
+    homepage = "https://lldb.llvm.org/";
     description = "A next-generation high-performance debugger";
-    homepage = "https://lldb.llvm.org";
-    license = licenses.ncsa;
-    platforms = platforms.all;
+    longDescription = ''
+      LLDB is a next generation, high-performance debugger. It is built as a set
+      of reusable components which highly leverage existing libraries in the
+      larger LLVM Project, such as the Clang expression parser and LLVM
+      disassembler.
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "lldb-manpages";
@@ -99,5 +103,7 @@ stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLDB ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLDB ${version}";
+  };
 })
diff --git a/pkgs/development/compilers/llvm/12/lldb-procfs.patch b/pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch
index b075dbaeee0..b075dbaeee0 100644
--- a/pkgs/development/compilers/llvm/12/lldb-procfs.patch
+++ b/pkgs/development/compilers/llvm/12/lldb/lldb-procfs.patch
diff --git a/pkgs/development/compilers/llvm/12/llvm.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix
index 6e6127ba949..33bb7b931f1 100644
--- a/pkgs/development/compilers/llvm/12/llvm.nix
+++ b/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv
+{ lib, stdenv, llvm_meta
 , fetch
 , cmake
 , python3
@@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
   pname = "llvm";
   inherit version;
 
-  src = fetch pname "088dyv7hppidl3rqfsjdibvn4d3a74896fg2sz4dwaxlg19way93";
-  polly_src = fetch "polly" "1qj7gkfr1yrsrz6j086l9p6d2kyyln15fmfiab4isn96g1dhsfb5";
+  src = fetch pname "0l4b79gwfvxild974aigcq1yigypjsk2j5p59syhl6ksd744gp29";
+  polly_src = fetch "polly" "1ixl9yj526n8iqh9ckyiah2vzravs9d1akybqq7rvy32n9vgr6hd";
 
   unpackPhase = ''
     unpackFile $src
@@ -55,6 +55,12 @@ in stdenv.mkDerivation (rec {
 
   propagatedBuildInputs = [ ncurses zlib ];
 
+  patches = [
+    # Force a test to evaluate the saved benchmark for a CPU for which LLVM has
+    # an execution model. See NixOS/nixpkgs#119673.
+    ../../exegesis-force-bdver2.patch
+  ];
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
@@ -73,7 +79,7 @@ in stdenv.mkDerivation (rec {
       --replace "PassBuilderCallbacksTest.cpp" ""
     rm unittests/IR/PassBuilderCallbacksTest.cpp
   '' + optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -i ${../TLI-musl.patch}
+    patch -p1 -i ${../../TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "add_subdirectory(DynamicLibrary)" ""
     rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
@@ -160,12 +166,23 @@ in stdenv.mkDerivation (rec {
   checkTarget = "check-all";
 
   requiredSystemFeatures = [ "big-parallel" ];
-  meta = {
-    description = "Collection of modular and reusable compiler and toolchain technologies";
-    homepage    = "https://llvm.org/";
-    license     = lib.licenses.ncsa;
-    maintainers = with lib.maintainers; [ lovek323 raskin dtzWill primeos ];
-    platforms   = lib.platforms.all;
+  meta = llvm_meta // {
+    homepage = "https://llvm.org/";
+    description = "A collection of modular and reusable compiler and toolchain technologies";
+    longDescription = ''
+      The LLVM Project is a collection of modular and reusable compiler and
+      toolchain technologies. Despite its name, LLVM has little to do with
+      traditional virtual machines. The name "LLVM" itself is not an acronym; it
+      is the full name of the project.
+      LLVM began as a research project at the University of Illinois, with the
+      goal of providing a modern, SSA-based compilation strategy capable of
+      supporting both static and dynamic compilation of arbitrary programming
+      languages. Since then, LLVM has grown to be an umbrella project consisting
+      of a number of subprojects, many of which are being used in production by
+      a wide variety of commercial and open source projects as well as being
+      widely used in academic research. Code in the LLVM project is licensed
+      under the "Apache 2.0 License with LLVM exceptions".
+    '';
   };
 } // lib.optionalAttrs enableManpages {
   pname = "llvm-manpages";
@@ -185,5 +202,7 @@ in stdenv.mkDerivation (rec {
 
   doCheck = false;
 
-  meta.description = "man pages for LLVM ${version}";
+  meta = llvm_meta // {
+    description = "man pages for LLVM ${version}";
+  };
 })
diff --git a/pkgs/development/compilers/llvm/12/llvm-outputs.patch b/pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch
index 40096fa3497..40096fa3497 100644
--- a/pkgs/development/compilers/llvm/12/llvm-outputs.patch
+++ b/pkgs/development/compilers/llvm/12/llvm/llvm-outputs.patch
diff --git a/pkgs/development/compilers/llvm/12/openmp.nix b/pkgs/development/compilers/llvm/12/openmp.nix
deleted file mode 100644
index 1e4618e4a1b..00000000000
--- a/pkgs/development/compilers/llvm/12/openmp.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib
-, stdenv
-, fetch
-, cmake
-, llvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "1d16r5whjb2n4n28rg8wn2g9krlc92q6nb0qmnnbzhqhx0rbkjfb";
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [ llvm ];
-
-  meta = {
-    description = "Components required to build an executable OpenMP program";
-    homepage    = "https://openmp.llvm.org/";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/compilers/llvm/12/openmp/default.nix b/pkgs/development/compilers/llvm/12/openmp/default.nix
new file mode 100644
index 00000000000..c107258dd18
--- /dev/null
+++ b/pkgs/development/compilers/llvm/12/openmp/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, llvm_meta
+, fetch
+, cmake
+, llvm
+, perl
+, version
+}:
+
+stdenv.mkDerivation rec {
+  pname = "openmp";
+  inherit version;
+
+  src = fetch pname "0z8n1wanby6aq3i7d91mgk72hb33zfl5blayk0a22cs7l8i706zb";
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ llvm ];
+
+  meta = llvm_meta // {
+    homepage = "https://openmp.llvm.org/";
+    description = "Support for the OpenMP language";
+    longDescription = ''
+      The OpenMP subproject of LLVM contains the components required to build an
+      executable OpenMP program that are outside the compiler itself.
+      Contains the code for the runtime library against which code compiled by
+      "clang -fopenmp" must be linked before it can run and the library that
+      supports offload to target devices.
+    '';
+    # "All of the code is dual licensed under the MIT license and the UIUC
+    # License (a BSD-like license)":
+    license = with lib.licenses; [ mit ncsa ];
+  };
+}
diff --git a/pkgs/development/compilers/llvm/5/libc++abi/default.nix b/pkgs/development/compilers/llvm/5/libc++abi/default.nix
index 8fc9ef9fded..dd148a8917f 100644
--- a/pkgs/development/compilers/llvm/5/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/5/libc++abi/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
   installPhase = if stdenv.isDarwin
diff --git a/pkgs/development/compilers/llvm/6/libc++abi/default.nix b/pkgs/development/compilers/llvm/6/libc++abi/default.nix
index 6e99f2d287a..c0d90f6c8e4 100644
--- a/pkgs/development/compilers/llvm/6/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/6/libc++abi/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
   installPhase = if stdenv.isDarwin
diff --git a/pkgs/development/compilers/llvm/7/libc++abi/default.nix b/pkgs/development/compilers/llvm/7/libc++abi/default.nix
index 61879be91da..84c47865141 100644
--- a/pkgs/development/compilers/llvm/7/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/7/libc++abi/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '';
 
   cmakeFlags =
diff --git a/pkgs/development/compilers/llvm/8/libc++abi/default.nix b/pkgs/development/compilers/llvm/8/libc++abi/default.nix
index 411b94e6275..bde67f86640 100644
--- a/pkgs/development/compilers/llvm/8/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/8/libc++abi/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
diff --git a/pkgs/development/compilers/llvm/9/libc++abi/default.nix b/pkgs/development/compilers/llvm/9/libc++abi/default.nix
index ceb83d252a8..99d3918b89d 100644
--- a/pkgs/development/compilers/llvm/9/libc++abi/default.nix
+++ b/pkgs/development/compilers/llvm/9/libc++abi/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '' + lib.optionalString stdenv.isDarwin ''
     export TRIPLE=x86_64-apple-darwin
   '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch}
+    patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
   '' + lib.optionalString stdenv.hostPlatform.isWasm ''
     patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch}
   '';
diff --git a/pkgs/development/compilers/llvm/exegesis-force-bdver2.patch b/pkgs/development/compilers/llvm/exegesis-force-bdver2.patch
new file mode 100644
index 00000000000..c2654153ed5
--- /dev/null
+++ b/pkgs/development/compilers/llvm/exegesis-force-bdver2.patch
@@ -0,0 +1,11 @@
+diff --git a/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s b/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s
+index 3fc1f31d54dc..a4c9bdd92131 100644
+--- a/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s
++++ b/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s
+@@ -1,5 +1,6 @@
+ # RUN: llvm-exegesis -mode=uops -opcode-name=CMOV16rm  -benchmarks-file=%t.CMOV16rm-uops.yaml
+ # RUN: FileCheck -check-prefixes=CHECK-YAML -input-file=%t.CMOV16rm-uops.yaml %s
++# RUN: sed -i 's,cpu_name:.*,cpu_name: bdver2,g' %t.CMOV16rm-uops.yaml
+ # RUN: llvm-exegesis -mcpu=bdver2 -mode=analysis -benchmarks-file=%t.CMOV16rm-uops.yaml -analysis-clusters-output-file=- -analysis-clustering-epsilon=0.1 -analysis-inconsistency-epsilon=0.1 -analysis-numpoints=1 -analysis-clustering=naive | FileCheck -check-prefixes=CHECK-CLUSTERS %s
+ 
+ # https://bugs.llvm.org/show_bug.cgi?id=41448
diff --git a/pkgs/development/compilers/mrustc/bootstrap.nix b/pkgs/development/compilers/mrustc/bootstrap.nix
new file mode 100644
index 00000000000..35e7daaf210
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/bootstrap.nix
@@ -0,0 +1,153 @@
+{ lib, stdenv
+, fetchurl
+, mrustc
+, mrustc-minicargo
+, rust
+, llvm_7
+, llvmPackages_7
+, libffi
+, cmake
+, python3
+, zlib
+, libxml2
+, openssl
+, pkg-config
+, curl
+, which
+, time
+}:
+
+let
+  rustcVersion = "1.29.0";
+  rustcSrc = fetchurl {
+    url = "https://static.rust-lang.org/dist/rustc-${rustcVersion}-src.tar.gz";
+    sha256 = "1sb15znckj8pc8q3g7cq03pijnida6cg64yqmgiayxkzskzk9sx4";
+  };
+  rustcDir = "rustc-${rustcVersion}-src";
+in
+
+stdenv.mkDerivation rec {
+  pname = "mrustc-bootstrap";
+  version = "${mrustc.version}_${rustcVersion}";
+
+  inherit (mrustc) src;
+  postUnpack = "tar -xf ${rustcSrc} -C source/";
+
+  # the rust build system complains that nix alters the checksums
+  dontFixLibtool = true;
+
+  patches = [
+    ./patches/0001-use-shared-llvm.patch
+    ./patches/0002-dont-build-llvm.patch
+    ./patches/0003-echo-newlines.patch
+    ./patches/0004-increase-parallelism.patch
+  ];
+
+  postPatch = ''
+    echo "applying patch ./rustc-${rustcVersion}-src.patch"
+    patch -p0 -d ${rustcDir}/ < rustc-${rustcVersion}-src.patch
+
+    for p in ${lib.concatStringsSep " " llvmPackages_7.compiler-rt.patches}; do
+      echo "applying patch $p"
+      patch -p1 -d ${rustcDir}/src/libcompiler_builtins/compiler-rt < $p
+    done
+  '';
+
+  # rustc unfortunately needs cmake to compile llvm-rt but doesn't
+  # use it for the normal build. This disables cmake in Nix.
+  dontUseCmakeConfigure = true;
+
+  strictDeps = true;
+  nativeBuildInputs = [
+    cmake
+    mrustc
+    mrustc-minicargo
+    pkg-config
+    python3
+    time
+    which
+  ];
+  buildInputs = [
+    # for rustc
+    llvm_7 libffi zlib libxml2
+    # for cargo
+    openssl curl
+  ];
+
+  makeFlags = [
+    # Use shared mrustc/minicargo/llvm instead of rebuilding them
+    "MRUSTC=${mrustc}/bin/mrustc"
+    "MINICARGO=${mrustc-minicargo}/bin/minicargo"
+    "LLVM_CONFIG=${llvm_7}/bin/llvm-config"
+    "RUSTC_TARGET=${rust.toRustTarget stdenv.targetPlatform}"
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    local flagsArray=(
+      PARLEVEL=$NIX_BUILD_CORES
+      ${toString makeFlags}
+    )
+
+    echo minicargo.mk: libs
+    make -f minicargo.mk "''${flagsArray[@]}" LIBS
+
+    echo minicargo.mk: deps
+    mkdir -p output/cargo-build
+    # minicargo has concurrency issues when running these; let's build them
+    # without parallelism
+    for crate in regex regex-0.2.11 curl-sys
+    do
+      echo "building $crate"
+      minicargo ${rustcDir}/src/vendor/$crate \
+        --vendor-dir ${rustcDir}/src/vendor \
+        --output-dir output/cargo-build -L output/
+    done
+
+    echo minicargo.mk: rustc
+    make -f minicargo.mk "''${flagsArray[@]}" output/rustc
+
+    echo minicargo.mk: cargo
+    make -f minicargo.mk "''${flagsArray[@]}" output/cargo
+
+    echo run_rustc
+    make -C run_rustc "''${flagsArray[@]}"
+
+    unset flagsArray
+
+    runHook postBuild
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    run_rustc/output/prefix/bin/hello_world | grep "hello, world"
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin/ $out/lib/
+    cp run_rustc/output/prefix/bin/cargo $out/bin/cargo
+    cp run_rustc/output/prefix/bin/rustc_binary $out/bin/rustc
+
+    cp -r run_rustc/output/prefix/lib/* $out/lib/
+    cp $out/lib/rustlib/${rust.toRustTarget stdenv.targetPlatform}/lib/*.so $out/lib/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A minimal build of Rust";
+    longDescription = ''
+      A minimal build of Rust, built from source using mrustc.
+      This is useful for bootstrapping the main Rust compiler without
+      an initial binary toolchain download.
+    '';
+    maintainers = with maintainers; [ progval r-burns ];
+    license = with licenses; [ mit asl20 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
+
diff --git a/pkgs/development/compilers/mrustc/default.nix b/pkgs/development/compilers/mrustc/default.nix
new file mode 100644
index 00000000000..4c813d88b76
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv
+, fetchFromGitHub
+, zlib
+}:
+
+let
+  version = "0.9";
+  tag = "v${version}";
+  rev = "15773561e40ca5c8cffe0a618c544b6cfdc5ad7e";
+in
+
+stdenv.mkDerivation rec {
+  pname = "mrustc";
+  inherit version;
+
+  # Always update minicargo.nix and bootstrap.nix in lockstep with this
+  src = fetchFromGitHub {
+    owner = "thepowersgang";
+    repo = "mrustc";
+    rev = tag;
+    sha256 = "194ny7vsks5ygiw7d8yxjmp1qwigd71ilchis6xjl6bb2sj97rd2";
+  };
+
+  postPatch = ''
+    sed -i 's/\$(shell git show --pretty=%H -s)/${rev}/' Makefile
+    sed -i 's/\$(shell git symbolic-ref -q --short HEAD || git describe --tags --exact-match)/${tag}/' Makefile
+    sed -i 's/\$(shell git diff-index --quiet HEAD; echo $$?)/0/' Makefile
+  '';
+
+  strictDeps = true;
+  buildInputs = [ zlib ];
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp bin/mrustc $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mutabah's Rust Compiler";
+    longDescription = ''
+      In-progress alternative rust compiler, written in C++.
+      Capable of building a fully-working copy of rustc,
+      but not yet suitable for everyday use.
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ progval r-burns ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/mrustc/minicargo.nix b/pkgs/development/compilers/mrustc/minicargo.nix
new file mode 100644
index 00000000000..8505e5b8d7c
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/minicargo.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv
+, makeWrapper
+, mrustc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mrustc-minicargo";
+  inherit (mrustc) src version;
+
+  strictDeps = true;
+  nativeBuildInputs = [ makeWrapper ];
+
+  enableParallelBuilding = true;
+  makefile = "minicargo.mk";
+  makeFlags = [ "tools/bin/minicargo" ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp tools/bin/minicargo $out/bin
+
+    # without it, minicargo defaults to "<minicargo_path>/../../bin/mrustc"
+    wrapProgram "$out/bin/minicargo" --set MRUSTC_PATH ${mrustc}/bin/mrustc
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A minimalist builder for Rust";
+    longDescription = ''
+      A minimalist builder for Rust, similar to Cargo but written in C++.
+      Designed to work with mrustc to build Rust projects
+      (like the Rust compiler itself).
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ progval r-burns ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/mrustc/patches/0001-use-shared-llvm.patch b/pkgs/development/compilers/mrustc/patches/0001-use-shared-llvm.patch
new file mode 100644
index 00000000000..e8c57ae2541
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/patches/0001-use-shared-llvm.patch
@@ -0,0 +1,12 @@
+--- a/rustc-1.29.0-src/src/librustc_llvm/lib.rs
+--- b/rustc-1.29.0-src/src/librustc_llvm/lib.rs
+@@ -23,6 +23,9 @@
+ #![feature(link_args)]
+ #![feature(static_nobundle)]
+ 
++// https://github.com/rust-lang/rust/issues/34486
++#[link(name = "ffi")] extern {}
++
+ // See librustc_cratesio_shim/Cargo.toml for a comment explaining this.
+ #[allow(unused_extern_crates)]
+ extern crate rustc_cratesio_shim;
diff --git a/pkgs/development/compilers/mrustc/patches/0002-dont-build-llvm.patch b/pkgs/development/compilers/mrustc/patches/0002-dont-build-llvm.patch
new file mode 100644
index 00000000000..7ae8d191d87
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/patches/0002-dont-build-llvm.patch
@@ -0,0 +1,14 @@
+--- a/minicargo.mk
++++ b/minicargo.mk
+@@ -116,11 +116,6 @@
+ LLVM_CMAKE_OPTS += CMAKE_BUILD_TYPE=RelWithDebInfo
+ 
+ 
+-$(LLVM_CONFIG): $(RUSTCSRC)build/Makefile
+-	$Vcd $(RUSTCSRC)build && $(MAKE)
+-$(RUSTCSRC)build/Makefile: $(RUSTCSRC)src/llvm/CMakeLists.txt
+-	@mkdir -p $(RUSTCSRC)build
+-	$Vcd $(RUSTCSRC)build && cmake $(addprefix -D , $(LLVM_CMAKE_OPTS)) ../src/llvm
+ 
+ 
+ #
diff --git a/pkgs/development/compilers/mrustc/patches/0003-echo-newlines.patch b/pkgs/development/compilers/mrustc/patches/0003-echo-newlines.patch
new file mode 100644
index 00000000000..f4a4acca857
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/patches/0003-echo-newlines.patch
@@ -0,0 +1,13 @@
+--- a/run_rustc/Makefile
++++ b/run_rustc/Makefile
+@@ -103,7 +103,9 @@
+ else
+ 	cp $(OUTDIR)build-rustc/release/rustc_binary $(BINDIR)rustc_binary
+ endif
+-	echo '#!/bin/sh\nd=$$(dirname $$0)\nLD_LIBRARY_PATH="$(abspath $(LIBDIR))" $$d/rustc_binary $$@' >$@
++	echo '#!$(shell which bash)' > $@
++	echo 'd=$$(dirname $$0)' >> $@
++	echo 'LD_LIBRARY_PATH="$(abspath $(LIBDIR))" $$d/rustc_binary $$@' >> $@
+ 	chmod +x $@
+ 
+ $(BINDIR)hello_world: $(RUST_SRC)test/run-pass/hello.rs $(LIBDIR)libstd.rlib $(BINDIR)rustc
diff --git a/pkgs/development/compilers/mrustc/patches/0004-increase-parallelism.patch b/pkgs/development/compilers/mrustc/patches/0004-increase-parallelism.patch
new file mode 100644
index 00000000000..ce1fec57262
--- /dev/null
+++ b/pkgs/development/compilers/mrustc/patches/0004-increase-parallelism.patch
@@ -0,0 +1,28 @@
+--- a/run_rustc/Makefile
++++ b/run_rustc/Makefile
+@@ -79,14 +79,14 @@
+ 	@mkdir -p $(OUTDIR)build-std
+ 	@mkdir -p $(LIBDIR)
+ 	@echo [CARGO] $(RUST_SRC)libstd/Cargo.toml
+-	$VCARGO_TARGET_DIR=$(OUTDIR)build-std RUSTC=$(BINDIR_S)rustc $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)libstd/Cargo.toml  -j 1 --release --features panic-unwind
++	$VCARGO_TARGET_DIR=$(OUTDIR)build-std RUSTC=$(BINDIR_S)rustc $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)libstd/Cargo.toml  -j $(NIX_BUILD_CORES) --release --features panic-unwind
+ 	$Vcp --remove-destination $(OUTDIR)build-std/release/deps/*.rlib $(LIBDIR)
+ 	$Vcp --remove-destination $(OUTDIR)build-std/release/deps/*.so $(LIBDIR)
+ # libtest
+ $(LIBDIR)libtest.rlib: $(BINDIR)rustc_m $(LIBDIR)libstd.rlib $(CARGO_HOME)config
+ 	@mkdir -p $(OUTDIR)build-test
+ 	@echo [CARGO] $(RUST_SRC)libtest/Cargo.toml
+-	$VCARGO_TARGET_DIR=$(OUTDIR)build-test RUSTC=$(BINDIR)rustc_m $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)libtest/Cargo.toml  -j 1 --release
++	$VCARGO_TARGET_DIR=$(OUTDIR)build-test RUSTC=$(BINDIR)rustc_m $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)libtest/Cargo.toml  -j $(NIX_BUILD_CORES) --release
+ 	@mkdir -p $(LIBDIR)
+ 	$Vcp --remove-destination $(OUTDIR)build-test/release/deps/*.rlib $(LIBDIR)
+ 	$Vcp --remove-destination $(OUTDIR)build-test/release/deps/*.so $(LIBDIR)
+@@ -95,7 +95,7 @@
+ $(BINDIR)rustc: $(BINDIR)rustc_m $(BINDIR)cargo $(CARGO_HOME)config $(LIBDIR)libtest.rlib
+ 	@mkdir -p $(PREFIX)tmp
+ 	@echo [CARGO] $(RUST_SRC)rustc/Cargo.toml
+-	$V$(RUSTC_ENV_VARS) TMPDIR=$(abspath $(PREFIX)tmp) CARGO_TARGET_DIR=$(OUTDIR)build-rustc RUSTC=$(BINDIR)rustc_m RUSTC_ERROR_METADATA_DST=$(abspath $(PREFIX)) $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)rustc/Cargo.toml --release -j 1
++	$V$(RUSTC_ENV_VARS) TMPDIR=$(abspath $(PREFIX)tmp) CARGO_TARGET_DIR=$(OUTDIR)build-rustc RUSTC=$(BINDIR)rustc_m RUSTC_ERROR_METADATA_DST=$(abspath $(PREFIX)) $(CARGO_ENV) $(BINDIR)cargo build --manifest-path $(RUST_SRC)rustc/Cargo.toml --release -j $(NIX_BUILD_CORES)
+ 	cp $(OUTDIR)build-rustc/release/deps/*.so $(LIBDIR)
+ 	cp $(OUTDIR)build-rustc/release/deps/*.rlib $(LIBDIR)
+ ifeq ($(RUSTC_VERSION),1.19.0)
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index f9dd7205659..15238e63ecb 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -142,6 +142,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo asbachb ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/12.nix b/pkgs/development/compilers/openjdk/12.nix
index 8c12b5be7f2..33169be5302 100644
--- a/pkgs/development/compilers/openjdk/12.nix
+++ b/pkgs/development/compilers/openjdk/12.nix
@@ -151,6 +151,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/13.nix b/pkgs/development/compilers/openjdk/13.nix
index 7e4d9fc7d69..d3db493c5fe 100644
--- a/pkgs/development/compilers/openjdk/13.nix
+++ b/pkgs/development/compilers/openjdk/13.nix
@@ -151,6 +151,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/14.nix b/pkgs/development/compilers/openjdk/14.nix
index d98d0e9f8ee..3804999376e 100644
--- a/pkgs/development/compilers/openjdk/14.nix
+++ b/pkgs/development/compilers/openjdk/14.nix
@@ -147,6 +147,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/15.nix
index 5606059c62d..d5cf8fe06cd 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/15.nix
@@ -22,9 +22,9 @@ let
       sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l";
     };
 
-    nativeBuildInputs = [ pkg-config autoconf unzip ];
+    nativeBuildInputs = [ pkg-config autoconf ];
     buildInputs = [
-      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
       libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
@@ -147,6 +147,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix
new file mode 100644
index 00000000000..9a710ed6fa4
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/16.nix
@@ -0,0 +1,165 @@
+{ stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio
+, file, which, unzip, zip, perl, cups, freetype, alsaLib, libjpeg, giflib
+, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst
+, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk16-bootstrap
+, setJavaClassPath
+, headless ? false
+, enableJavaFX ? openjfx.meta.available, openjfx
+, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
+}:
+
+let
+  version = {
+    feature = "16";
+    interim = "0";
+    build = "36";
+  };
+
+  openjdk = stdenv.mkDerivation {
+    pname = "openjdk" + lib.optionalString headless "-headless";
+    version = "${version.feature}+${version.build}";
+
+    src = fetchFromGitHub {
+      owner = "openjdk";
+      repo = "jdk${version.feature}u";
+      rev = "jdk-${version.feature}+${version.build}";
+      sha256 = "165nr15dqfcxzsl5z95g4iklln4rlfkgdigdma576mx8813ldi44";
+    };
+
+    nativeBuildInputs = [ pkg-config autoconf unzip ];
+    buildInputs = [
+      cpio file which zip perl zlib cups freetype alsaLib libjpeg giflib
+      libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
+      libXi libXinerama libXcursor libXrandr fontconfig openjdk16-bootstrap
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      gtk3 gnome_vfs GConf glib
+    ];
+
+    patches = [
+      ./fix-java-home-jdk10.patch
+      ./read-truststore-from-env-jdk10.patch
+      ./currency-date-range-jdk10.patch
+      ./increase-javadoc-heap-jdk13.patch
+      # -Wformat etc. are stricter in newer gccs, per
+      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
+      # so grab the work-around from
+      # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
+      (fetchurl {
+        url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
+        sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
+      })
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      ./swing-use-gtk-jdk13.patch
+    ];
+
+    prePatch = ''
+      chmod +x configure
+      patchShebangs --build configure
+    '';
+
+    configureFlags = [
+      "--with-boot-jdk=${openjdk16-bootstrap.home}"
+      "--with-version-build=${version.build}"
+      "--with-version-opt=nixos"
+      "--with-version-pre="
+      "--enable-unlimited-crypto"
+      "--with-native-debug-symbols=internal"
+      "--with-libjpeg=system"
+      "--with-giflib=system"
+      "--with-libpng=system"
+      "--with-zlib=system"
+      "--with-lcms=system"
+      "--with-stdc++lib=dynamic"
+    ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc"
+      ++ lib.optional headless "--enable-headless-only"
+      ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
+
+    separateDebugInfo = true;
+
+    NIX_CFLAGS_COMPILE = "-Wno-error";
+
+    NIX_LDFLAGS = toString (lib.optionals (!headless) [
+      "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
+    ]);
+
+    buildFlags = [ "all" ];
+
+    installPhase = ''
+      mkdir -p $out/lib
+
+      mv build/*/images/jdk $out/lib/openjdk
+
+      # Remove some broken manpages.
+      rm -rf $out/lib/openjdk/man/ja*
+
+      # Mirror some stuff in top-level.
+      mkdir -p $out/share
+      ln -s $out/lib/openjdk/include $out/include
+      ln -s $out/lib/openjdk/man $out/share/man
+      ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/linux/*_md.h $out/include/
+
+      # Remove crap from the installation.
+      rm -rf $out/lib/openjdk/demo
+      ${lib.optionalString headless ''
+        rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
+      ''}
+
+      ln -s $out/lib/openjdk/bin $out/bin
+    '';
+
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook so that any package
+      # that depends on the JDK has $CLASSPATH set up properly.
+      mkdir -p $out/nix-support
+      #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
+      echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
+    postFixup = ''
+      # Build the set of output library directories to rpath against
+      LIBDIRS=""
+      for output in $outputs; do
+        if [ "$output" = debug ]; then continue; fi
+        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+      done
+      # Add the local library paths to remove dependencies on the bootstrap
+      for output in $outputs; do
+        if [ "$output" = debug ]; then continue; fi
+        OUTPUTDIR=$(eval echo \$$output)
+        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+        echo "$BINLIBS" | while read i; do
+          patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+          patchelf --shrink-rpath "$i" || true
+        done
+      done
+    '';
+
+    disallowedReferences = [ openjdk16-bootstrap ];
+
+    meta = with lib; {
+      homepage = "https://openjdk.java.net/";
+      license = licenses.gpl2;
+      description = "The open-source Java Development Kit";
+      maintainers = with maintainers; [ edwtjo ];
+      platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+      mainProgram = "java";
+    };
+
+    passthru = {
+      architecture = "";
+      home = "${openjdk}/lib/openjdk";
+      inherit gtk3;
+    };
+  };
+in openjdk
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 75dc722b1b2..f10b7310df1 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -262,6 +262,7 @@ let
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
+      mainProgram = "java";
     };
 
     passthru = {
diff --git a/pkgs/development/compilers/openjdk/darwin/default.nix b/pkgs/development/compilers/openjdk/darwin/default.nix
index 93821054760..731ff4d56de 100644
--- a/pkgs/development/compilers/openjdk/darwin/default.nix
+++ b/pkgs/development/compilers/openjdk/darwin/default.nix
@@ -7,12 +7,12 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    pname = "zulu15.28.51-ca-jdk";
-    version = "15.0.1";
+    pname = "zulu16.28.11-ca-jdk";
+    version = "16.0.0";
 
     src = fetchurl {
       url = "https://cdn.azul.com/zulu/bin/${pname}${version}-macosx_x64.tar.gz";
-      sha256 = "0h738pbnwcn7pjp0qyryzazqj5nw5sy2f8l0ycl39crm9ia6akvh";
+      sha256 = "6d47ef22dc56ce1f5a102ed39e21d9a97320f0bb786818e2c686393109d79bc5";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
diff --git a/pkgs/development/compilers/openjdk/jre.nix b/pkgs/development/compilers/openjdk/jre.nix
index 817cdf9c26a..78dec7885d9 100644
--- a/pkgs/development/compilers/openjdk/jre.nix
+++ b/pkgs/development/compilers/openjdk/jre.nix
@@ -1,19 +1,39 @@
-{ jdk
-, runCommand
-, patchelf
+{ stdenv
+, jdk
 , lib
+, callPackage
 , modules ? [ "java.base" ]
 }:
 
 let
-  jre = runCommand "${jdk.name}-jre" {
-    nativeBuildInputs = [ patchelf ];
+  jre = stdenv.mkDerivation {
+    name = "${jdk.name}-minimal-jre";
+    version = jdk.version;
+
     buildInputs = [ jdk ];
+
+    dontUnpack = true;
+
+    # Strip more heavily than the default '-S', since if you're
+    # using this derivation you probably care about this.
+    stripDebugFlags = [ "--strip-unneeded" ];
+
+    buildPhase = ''
+      runHook preBuild
+
+      jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out
+
+      runHook postBuild
+    '';
+
+    dontInstall = true;
+
     passthru = {
       home = "${jre}";
+      tests = [
+        (callPackage ./tests/test_jre_minimal.nix {})
+        (callPackage ./tests/test_jre_minimal_with_logging.nix {})
+      ];
     };
-  }   ''
-      jlink --module-path ${jdk}/lib/openjdk/jmods --add-modules ${lib.concatStringsSep "," modules} --output $out
-      patchelf --shrink-rpath $out/bin/* $out/lib/jexec $out/lib/jspawnhelper $out/lib/*.so $out/lib/*/*.so
-  '';
+  };
 in jre
diff --git a/pkgs/development/compilers/openjdk/jre_minimal_test1.nix b/pkgs/development/compilers/openjdk/jre_minimal_test1.nix
new file mode 100644
index 00000000000..eebd11fb2fd
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/jre_minimal_test1.nix
@@ -0,0 +1,16 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello = callPackage tests/hello.nix {
+    jdk = jdk;
+    jre = jre_minimal;
+  };
+in
+  runCommand "test" {} ''
+    ${hello}/bin/hello | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/pkgs/development/compilers/openjdk/tests/hello-logging.nix b/pkgs/development/compilers/openjdk/tests/hello-logging.nix
new file mode 100644
index 00000000000..71f3a5543f7
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/tests/hello-logging.nix
@@ -0,0 +1,47 @@
+{ jdk
+, jre
+, pkgs
+}:
+
+/* 'Hello world' Java application derivation for use in tests */
+let
+  source = pkgs.writeTextDir "src/Hello.java" ''
+    import java.util.logging.Logger;
+    import java.util.logging.Level;
+
+    class Hello {
+      static Logger logger = Logger.getLogger(Hello.class.getName());
+
+      public static void main(String[] args) {
+        logger.log(Level.INFO, "Hello, world!");
+      }
+    }
+  '';
+in
+  pkgs.stdenv.mkDerivation {
+    pname = "hello";
+    version = "1.0.0";
+
+    src = source;
+
+    buildPhase = ''
+      runHook preBuildPhase
+      ${jdk}/bin/javac src/Hello.java
+      runHook postBuildPhase
+    '';
+    installPhase = ''
+      runHook preInstallPhase
+
+      mkdir -p $out/lib
+      cp src/Hello.class $out/lib
+
+      mkdir -p $out/bin
+      cat >$out/bin/hello <<EOF;
+      #!/usr/bin/env sh
+      ${jre}/bin/java -cp $out/lib Hello
+      EOF
+      chmod a+x $out/bin/hello
+
+      runHook postInstallPhase
+    '';
+  }
diff --git a/pkgs/development/compilers/openjdk/tests/hello.nix b/pkgs/development/compilers/openjdk/tests/hello.nix
new file mode 100644
index 00000000000..bc5be4a9e9a
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/tests/hello.nix
@@ -0,0 +1,42 @@
+{ jdk
+, jre
+, pkgs
+}:
+
+/* 'Hello world' Java application derivation for use in tests */
+let
+  source = pkgs.writeTextDir "src/Hello.java" ''
+    class Hello {
+      public static void main(String[] args) {
+        System.out.println("Hello, world!");
+      }
+    }
+  '';
+in
+  pkgs.stdenv.mkDerivation {
+    pname = "hello";
+    version = "1.0.0";
+
+    src = source;
+
+    buildPhase = ''
+      runHook preBuildPhase
+      ${jdk}/bin/javac src/Hello.java
+      runHook postBuildPhase
+    '';
+    installPhase = ''
+      runHook preInstallPhase
+
+      mkdir -p $out/lib
+      cp src/Hello.class $out/lib
+
+      mkdir -p $out/bin
+      cat >$out/bin/hello <<EOF;
+      #!/usr/bin/env sh
+      ${jre}/bin/java -cp $out/lib Hello
+      EOF
+      chmod a+x $out/bin/hello
+
+      runHook postInstallPhase
+    '';
+  }
diff --git a/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix b/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix
new file mode 100644
index 00000000000..ed7b839cd22
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/tests/test_jre_minimal.nix
@@ -0,0 +1,16 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello = callPackage ./hello.nix {
+    jdk = jdk;
+    jre = jre_minimal;
+  };
+in
+  runCommand "test" {} ''
+    ${hello}/bin/hello | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix b/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix
new file mode 100644
index 00000000000..b9c417d3949
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/tests/test_jre_minimal_with_logging.nix
@@ -0,0 +1,21 @@
+{ runCommand
+, callPackage
+, jdk
+, jre_minimal
+}:
+
+let
+  hello-logging = callPackage ./hello-logging.nix {
+    jdk = jdk;
+    jre = jre_minimal.override {
+      modules = [
+        "java.base"
+        "java.logging"
+      ];
+    };
+  };
+in
+  runCommand "test" {} ''
+    ${hello-logging}/bin/hello &>/dev/stdout | grep "Hello, world!"
+    touch $out
+  ''
diff --git a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
index 41f4befe469..2cb8a459e64 100644
--- a/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk-linux-base.nix
@@ -184,6 +184,7 @@ let result = stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" "aarch64-linux" ]; # some inherit jre.meta.platforms
+    mainProgram = "java";
   };
 
 }; in result
diff --git a/pkgs/development/compilers/roslyn/deps.nix b/pkgs/development/compilers/roslyn/deps.nix
index 0afb482350b..deb72e522cd 100644
--- a/pkgs/development/compilers/roslyn/deps.nix
+++ b/pkgs/development/compilers/roslyn/deps.nix
@@ -137,10 +137,10 @@
   }
   {
     name = "microsoft.netcore.app.host.linux-x64";
-    version = "3.1.12";
+    version = "3.1.14";
     src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.12/microsoft.netcore.app.host.linux-x64.3.1.12.nupkg";
-      sha256 = "1kp1sb7n1sb012v4k1xfv97n0x7k5r2rn0za8y8nbxjb2a4i4a8n";
+      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/45bacae2-5efb-47c8-91e5-8ec20c22b4f8/nuget/v3/flat2/microsoft.netcore.app.host.linux-x64/3.1.14/microsoft.netcore.app.host.linux-x64.3.1.14.nupkg";
+      sha256 = "11rqnascx9asfyxgxzwgxgr9gxxndm552k4dn4p1s57ciz7vkg9h";
     };
   }
   {
diff --git a/pkgs/development/compilers/rust/1_51.nix b/pkgs/development/compilers/rust/1_51.nix
index bbdf8111e15..a489df471a8 100644
--- a/pkgs/development/compilers/rust/1_51.nix
+++ b/pkgs/development/compilers/rust/1_51.nix
@@ -45,6 +45,7 @@ import ./default.nix {
     aarch64-unknown-linux-gnu = "1db7a4fbddc68cd29eb9bca9fa7d0d2d9e3d59ede7ddaad66222fb4336a6bacf";
     aarch64-unknown-linux-musl = "adcc6c76a8967bacb6687b565d3cf739e35fde066b03edb745b05b52fa8b5b36";
     x86_64-apple-darwin = "1bf5a7ecf6468ce1bf9fe49c8083b3f648b40c16fbfb7539d106fe28eb0e792e";
+    aarch64-apple-darwin = "1ed91a867e7b86cc4bc84c0838240f1c25acd007100ec9f7a14c4873e4b56561";
     powerpc64le-unknown-linux-gnu = "e0472589d3f9ba7ebf27f033af320e0d5cfb70222955bd8ed73ce2c9a70ae535";
   };
 
diff --git a/pkgs/development/compilers/rust/print-hashes.sh b/pkgs/development/compilers/rust/print-hashes.sh
index 0639726f48d..c24052fcc05 100755
--- a/pkgs/development/compilers/rust/print-hashes.sh
+++ b/pkgs/development/compilers/rust/print-hashes.sh
@@ -16,6 +16,7 @@ PLATFORMS=(
   aarch64-unknown-linux-gnu
   aarch64-unknown-linux-musl
   x86_64-apple-darwin
+  aarch64-apple-darwin
   powerpc64le-unknown-linux-gnu
 )
 BASEURL=https://static.rust-lang.org/dist
diff --git a/pkgs/development/compilers/scala/dotty-bare.nix b/pkgs/development/compilers/scala/dotty-bare.nix
index 66a634914df..66b6cf7737a 100644
--- a/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.26.0-RC1";
+  version = "3.0.0-RC3";
   pname = "dotty-bare";
 
   src = fetchurl {
-    url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
-    sha256 = "16njy9f0lk7q5x5w1k4yqy644005w4cxhq20r8i2qslhxjndz66f";
+    url = "https://github.com/lampepfl/dotty/releases/download/${version}/scala3-${version}.tar.gz";
+    sha256 = "1xp9nql2l62fra8p29fgk3srdbvza9g5inxr8p0sihsrp0bgxa0m";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/pkgs/development/compilers/scala/dotty.nix b/pkgs/development/compilers/scala/dotty.nix
index 7bc7fa3d4c2..c99ed24c214 100644
--- a/pkgs/development/compilers/scala/dotty.nix
+++ b/pkgs/development/compilers/scala/dotty.nix
@@ -13,9 +13,10 @@ stdenv.mkDerivation {
 
   installPhase = ''
     mkdir -p $out/bin
-    ln -s ${dotty-bare}/bin/dotc $out/bin/dotc
-    ln -s ${dotty-bare}/bin/dotd $out/bin/dotd
-    ln -s ${dotty-bare}/bin/dotr $out/bin/dotr
+    ln -s ${dotty-bare}/bin/scalac $out/bin/scalac
+    ln -s ${dotty-bare}/bin/scaladoc $out/bin/scaladoc
+    ln -s ${dotty-bare}/bin/scala $out/bin/scala
+    ln -s ${dotty-bare}/bin/common $out/bin/common
   '';
 
   inherit (dotty-bare) meta;
diff --git a/pkgs/development/compilers/sdcc/default.nix b/pkgs/development/compilers/sdcc/default.nix
index 500c0b4d395..d0ebb57920b 100644
--- a/pkgs/development/compilers/sdcc/default.nix
+++ b/pkgs/development/compilers/sdcc/default.nix
@@ -10,14 +10,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sdcc";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/sdcc/sdcc-src-${version}.tar.bz2";
-    sha256 = "042fxw5mnsfhpc0z9lxfsw88kdkm32pwrxacp88kj2n2dy0814a8";
+    sha256 = "0gskzli17ghnn5qllvn4d56qf9bvvclqjh63nnj63p52smvggvc1";
   };
 
-  buildInputs = [ autoconf bison boost flex gputils texinfo zlib ];
+  buildInputs = [ boost gputils texinfo zlib ];
+
+  nativeBuildInputs = [ autoconf bison flex ];
 
   configureFlags = map (f: "--disable-${f}-port") excludedPorts;
 
@@ -32,7 +34,7 @@ stdenv.mkDerivation rec {
       PIC18 targets. It can be retargeted for other microprocessors.
     '';
     homepage = "http://sdcc.sourceforge.net/";
-    license = with licenses; if (gputils == null) then gpl2 else unfreeRedistributable;
+    license = with licenses; if (gputils == null) then gpl2Plus else unfreeRedistributable;
     maintainers = with maintainers; [ bjornfor yorickvp ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/compilers/xa/dxa.nix b/pkgs/development/compilers/xa/dxa.nix
index 03f2d054cc8..56661c1dbcc 100644
--- a/pkgs/development/compilers/xa/dxa.nix
+++ b/pkgs/development/compilers/xa/dxa.nix
@@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
   version = "0.1.4";
 
   src = fetchurl {
-    url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
+    urls = [
+      "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz"
+      "https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz"
+    ];
     hash = "sha256-C0rgwK51Ij9EZCm9GeiVnWIkEkse0d60ok8G9hm2a5U=";
   };
 
diff --git a/pkgs/development/compilers/xa/xa.nix b/pkgs/development/compilers/xa/xa.nix
index c445940f5cd..dbeabe97b1a 100644
--- a/pkgs/development/compilers/xa/xa.nix
+++ b/pkgs/development/compilers/xa/xa.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, perl
 }:
 
 stdenv.mkDerivation rec {
@@ -8,22 +9,39 @@ stdenv.mkDerivation rec {
   version = "2.3.11";
 
   src = fetchurl {
-    url = "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz";
+    urls = [
+      "https://www.floodgap.com/retrotech/xa/dists/${pname}-${version}.tar.gz"
+      "https://www.floodgap.com/retrotech/xa/dists/unsupported/${pname}-${version}.tar.gz"
+    ];
     hash = "sha256-MvIWTJnjBSGOmSlwhW3Y4jCbXLasR1jXsq/jv+vJAS0=";
   };
 
+  checkInputs = [ perl ];
+
   dontConfigure = true;
 
   postPatch = ''
     substituteInPlace Makefile \
-      --replace "DESTDIR" "PREFIX" \
       --replace "CC = gcc" "CC = ${stdenv.cc.targetPrefix}cc" \
-      --replace "LDD = gcc" "LDD = ${stdenv.cc.targetPrefix}cc" \
+      --replace "LD = gcc" "LD = ${stdenv.cc.targetPrefix}cc" \
       --replace "CFLAGS = -O2" "CFLAGS ?=" \
       --replace "LDFLAGS = -lc" "LDFLAGS ?= -lc"
   '';
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "DESTDIR:=${placeholder "out"}"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  # Running tests in parallel does not work
+  enableParallelChecking = false;
+
+  preCheck = ''
+    patchShebangs tests
+  '';
 
   meta = with lib; {
     homepage = "https://www.floodgap.com/retrotech/xa/";
diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix
index dd1660d9fec..591f10b3be9 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -105,5 +105,6 @@ in stdenv.mkDerivation {
     '';
     maintainers = with maintainers; [ fpletz ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "java";
   };
 }
diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix
index c7b01877ad5..cd118187748 100644
--- a/pkgs/development/compilers/zulu/default.nix
+++ b/pkgs/development/compilers/zulu/default.nix
@@ -108,5 +108,6 @@ in stdenv.mkDerivation {
     '';
     maintainers = with maintainers; [ fpletz ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    mainProgram = "java";
   };
 }
diff --git a/pkgs/development/coq-modules/ITree/default.nix b/pkgs/development/coq-modules/ITree/default.nix
new file mode 100644
index 00000000000..95174d9547e
--- /dev/null
+++ b/pkgs/development/coq-modules/ITree/default.nix
@@ -0,0 +1,17 @@
+{ lib, mkCoqDerivation, coq, version ? null , paco, coq-ext-lib }:
+
+with lib; mkCoqDerivation rec {
+  pname = "InteractionTrees";
+  owner = "DeepSpec";
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.10" "8.13";  out = "4.0.0"; }
+  ] null;
+  release."4.0.0".sha256 = "0h5rhndl8syc24hxq1gch86kj7mpmgr89bxp2hmf28fd7028ijsm";
+  releaseRev = v: "${v}";
+  propagatedBuildInputs = [ coq-ext-lib paco ];
+  meta = {
+    description = "A Library for Representing Recursive and Impure Programs in Coq";
+    maintainers = with maintainers; [ larsr ];
+  };
+}
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index 32ef1ad633c..6490391eb63 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -5,6 +5,7 @@ mkCoqDerivation {
   pname = "QuickChick";
   owner = "QuickChick";
   defaultVersion = with versions; switch [ coq.coq-version ssreflect.version ] [
+      { cases = [ "8.13" pred.true  ]; out = "1.5.0"; }
       { cases = [ "8.12" pred.true  ]; out = "1.4.0"; }
       { cases = [ "8.11" pred.true  ]; out = "1.3.2"; }
       { cases = [ "8.10" pred.true  ]; out = "1.2.1"; }
@@ -14,6 +15,7 @@ mkCoqDerivation {
       { cases = [ "8.6"  pred.true  ];  out = "20171102"; }
       { cases = [ "8.5"  pred.true  ];  out = "20170512"; }
     ] null;
+  release."1.5.0".sha256    = "1lq8x86vd3vqqh2yq6hvyagpnhfq5wmk5pg2z0xq7b7dcw7hyfkw";
   release."1.4.0".sha256    = "068p48pm5yxjc3yv8qwzp25bp9kddvxj81l31mjkyx3sdrsw3kyc";
   release."1.3.2".sha256    = "0lciwaqv288dh2f13xk2x0lrn6zyrkqy6g4yy927wwzag2gklfrs";
   release."1.2.1".sha256    = "17vz88xjzxh3q7hs6hnndw61r3hdfawxp5awqpgfaxx4w6ni8z46";
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index f945096ee9a..0aff0e3b54d 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -4,7 +4,7 @@ with builtins; with lib; let
   elpi = coq.ocamlPackages.elpi.override (lib.switch coq.coq-version [
     { case = "8.11"; out = { version = "1.11.4"; };}
     { case = "8.12"; out = { version = "1.12.0"; };}
-    { case = "8.13"; out = { version = "1.13.0"; };}
+    { case = "8.13"; out = { version = "1.13.1"; };}
   ] {});
 in mkCoqDerivation {
   pname = "elpi";
@@ -12,19 +12,24 @@ in mkCoqDerivation {
   owner = "LPCIC";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
-    { case = "8.13"; out = "1.9.5"; }
-    { case = "8.12"; out = "1.8.2_8.12"; }
-    { case = "8.11"; out = "1.6.2_8.11"; }
+    { case = "8.13"; out = "1.9.7"; }
+    { case = "8.12"; out = "1.8.3_8.12"; }
+    { case = "8.11"; out = "1.6.3_8.11"; }
   ] null;
+  release."1.9.7".sha256      = "0rvn12h9dpk9s4pxy32p8j0a1h7ib7kg98iv1cbrdg25y5vs85n1";
   release."1.9.5".sha256      = "0gjdwmb6bvb5gh0a6ra48bz5fb3pr5kpxijb7a8mfydvar5i9qr6";
   release."1.9.4".sha256      = "0nii7238mya74f9g6147qmpg6gv6ic9b54x5v85nb6q60d9jh0jq";
   release."1.9.3".sha256      = "198irm800fx3n8n56vx1c6f626cizp1d7jfkrc6ba4iqhb62ma0z";
   release."1.9.2".sha256      = "1rr2fr8vjkc0is7vh1461aidz2iwkigdkp6bqss4hhv0c3ijnn07";
+  release."1.8.3_8.12".sha256  = "15z2l4zy0qpw0ws7bvsmpmyv543aqghrfnl48nlwzn9q0v89p557";
+  release."1.8.3_8.12".version = "1.8.3";
   release."1.8.2_8.12".sha256  = "1n6jwcdazvjgj8vsv2r9zgwpw5yqr5a1ndc2pwhmhqfl04b5dk4y";
   release."1.8.2_8.12".version = "1.8.2";
   release."1.8.1".sha256      = "1fbbdccdmr8g4wwpihzp4r2xacynjznf817lhijw6kqfav75zd0r";
   release."1.8.0".sha256      = "13ywjg94zkbki22hx7s4gfm9rr87r4ghsgan23xyl3l9z8q0idd1";
   release."1.7.0".sha256      = "1ws5cqr0xawv69prgygbl3q6dgglbaw0vc397h9flh90kxaqgyh8";
+  release."1.6.3_8.11".sha256 = "1j340cr2bv95clzzkkfmsjkklham1mj84cmiyprzwv20q89zr1hp";
+  release."1.6.3_8.11".version = "1.6.3";
   release."1.6.2_8.11".sha256 = "06xrx0ljilwp63ik2sxxr7h617dgbch042xfcnfpy5x96br147rn";
   release."1.6.2_8.11".version = "1.6.2";
   release."1.6.1_8.11".sha256 = "0yyyh35i1nb3pg4hw7cak15kj4y6y9l84nwar9k1ifdsagh5zq53";
diff --git a/pkgs/development/coq-modules/coq-ext-lib/default.nix b/pkgs/development/coq-modules/coq-ext-lib/default.nix
index 8acb0643781..6ba798ac328 100644
--- a/pkgs/development/coq-modules/coq-ext-lib/default.nix
+++ b/pkgs/development/coq-modules/coq-ext-lib/default.nix
@@ -5,7 +5,7 @@ with lib; mkCoqDerivation rec {
   owner = "coq-ext-lib";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.8" "8.12"; out = "0.11.3"; }
+    { case = range "8.8" "8.13"; out = "0.11.3"; }
     { case = "8.7";              out = "0.9.7"; }
     { case = "8.6";              out = "0.9.5"; }
     { case = "8.5";              out = "0.9.4"; }
diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix
index 4c978a791db..615c200c633 100644
--- a/pkgs/development/coq-modules/coqeal/default.nix
+++ b/pkgs/development/coq-modules/coqeal/default.nix
@@ -7,10 +7,12 @@ with lib; mkCoqDerivation {
   owner = "CoqEAL";
   inherit version;
   defaultVersion = with versions; switch [ coq.version mathcomp.version ]  [
+      { cases = [ (isGe "8.10") (range "1.11.0" "1.12.0") ]; out = "1.0.5"; }
       { cases = [ (isGe "8.7") "1.11.0" ]; out = "1.0.4"; }
       { cases = [ (isGe "8.7") "1.10.0" ]; out = "1.0.3"; }
     ] null;
 
+  release."1.0.5".sha256 = "0cmvky8glb5z2dy3q62aln6qbav4lrf2q1589f6h1gn5bgjrbzkm";
   release."1.0.4".sha256 = "1g5m26lr2lwxh6ld2gykailhay4d0ayql4bfh0aiwqpmmczmxipk";
   release."1.0.3".sha256 = "0hc63ny7phzbihy8l7wxjvn3haxx8jfnhi91iw8hkq8n29i23v24";
 
diff --git a/pkgs/development/coq-modules/coqhammer/default.nix b/pkgs/development/coq-modules/coqhammer/default.nix
index 89aa8d74e85..93582745564 100644
--- a/pkgs/development/coq-modules/coqhammer/default.nix
+++ b/pkgs/development/coq-modules/coqhammer/default.nix
@@ -5,18 +5,27 @@ with lib; mkCoqDerivation {
   pname = "coqhammer";
   owner = "lukaszcz";
   defaultVersion = with versions; switch coq.coq-version [
-    { case = "8.12"; out = "1.3-coq8.12"; }
-    { case = "8.11"; out = "1.3-coq8.11"; }
-    { case = "8.10"; out = "1.3-coq8.10"; }
+    { case = "8.13"; out = "1.3.1-coq8.13"; }
+    { case = "8.12"; out = "1.3.1-coq8.12"; }
+    { case = "8.11"; out = "1.3.1-coq8.11"; }
+    { case = "8.10"; out = "1.3.1-coq8.10"; }
     { case = "8.9";  out = "1.1.1-coq8.9"; }
     { case = "8.8";  out = "1.1-coq8.8"; }
   ] null;
+  release."1.3.1-coq8.13".sha256 = "033j6saw24anb1lqbgsg1zynxi2rnxq7pgqwh11k8r8y3xisz78w";
+  release."1.3.1-coq8.12".sha256 = "0xy3vy4rv8w5ydwb9nq8y4dcimd91yr0hak2j4kn02svssg1kv1y";
+  release."1.3.1-coq8.11".sha256 = "0i9nlcayq0ac95vc09d1w8sd221gdjs0g215n086qscqjwimnz8j";
+  release."1.3.1-coq8.10".sha256 = "0aq9qwqx680lkidhb77fmyq403rvfcdxch849x1pzy6a48rz5yra";
   release."1.3-coq8.12".sha256   = "1q1y3cwhd98pkm98g71fsdjz85bfwgcz2xn7s7wwmiraifv5l6z8";
   release."1.3-coq8.11".sha256   = "08zf8qfna7b9p2myfaz4g7bas3a1q1156x78n5isqivlnqfrjc1b";
   release."1.3-coq8.10".sha256   = "1fj8497ir4m79hyrmmmmrag01001wrby0h24wv6525vz0w5py3cd";
   release."1.1.1-coq8.9".sha256  = "1knjmz4hr8vlp103j8n4fyb2lfxysnm512gh3m2kp85n6as6fvb9";
   release."1.1-coq8.8".sha256    = "0ms086wp4jmrzyglb8wymchzyflflk01nsfsk4r6qv8rrx81nx9h";
 
+  release."1.3.1-coq8.13".version  = "1.3.1";
+  release."1.3.1-coq8.12".version  = "1.3.1";
+  release."1.3.1-coq8.11".version  = "1.3.1";
+  release."1.3.1-coq8.10".version  = "1.3.1";
   release."1.3-coq8.12".version  = "1.3";
   release."1.3-coq8.11".version  = "1.3";
   release."1.3-coq8.10".version  = "1.3";
diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix
index 352222e8aa6..d19d3826c74 100644
--- a/pkgs/development/coq-modules/equations/default.nix
+++ b/pkgs/development/coq-modules/equations/default.nix
@@ -6,8 +6,9 @@ with lib; mkCoqDerivation {
   repo = "Coq-Equations";
   inherit version;
   defaultVersion = switch coq.coq-version [
-    { case = "8.12"; out = "1.2.3+coq8.12"; }
-    { case = "8.11"; out = "1.2.3+coq8.11"; }
+    { case = "8.13"; out = "1.2.4+coq8.13"; }
+    { case = "8.12"; out = "1.2.4+coq8.12"; }
+    { case = "8.11"; out = "1.2.4+coq8.11"; }
     { case = "8.10"; out = "1.2.1+coq8.10-2"; }
     { case = "8.9";  out = "1.2.1+coq8.9"; }
     { case = "8.8";  out = "1.2+coq8.8"; }
@@ -36,6 +37,12 @@ with lib; mkCoqDerivation {
     release."1.2.3+coq8.12".version   = "1.2.3";
     release."1.2.3+coq8.12".rev       = "v1.2.3-8.12";
     release."1.2.3+coq8.12".sha256    = "1y0jkvzyz5ssv5vby41p1i8zs7nsdc8g3pzyq73ih9jz8h252643";
+    release."1.2.4+coq8.11".rev       = "v1.2.4-8.11";
+    release."1.2.4+coq8.11".sha256    = "01fihyav8jbjinycgjc16adpa0zy5hcav5mlkf4s9zvqxka21i52";
+    release."1.2.4+coq8.12".rev       = "v1.2.4-8.12";
+    release."1.2.4+coq8.12".sha256    = "1n0w8is464qcq8mk2mv7amaf0khbjz5mpc9phf0rhpjm0lb22cb3";
+    release."1.2.4+coq8.13".rev       = "v1.2.4-8.13";
+    release."1.2.4+coq8.13".sha256    = "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q";
 
   mlPlugin = true;
   preBuild = "coq_makefile -f _CoqProject -o Makefile";
diff --git a/pkgs/development/coq-modules/paramcoq/default.nix b/pkgs/development/coq-modules/paramcoq/default.nix
index 342e4225a3c..8f2ef30d37c 100644
--- a/pkgs/development/coq-modules/paramcoq/default.nix
+++ b/pkgs/development/coq-modules/paramcoq/default.nix
@@ -3,9 +3,10 @@
 with lib; mkCoqDerivation {
   pname = "paramcoq";
   inherit version;
-  defaultVersion = if versions.range "8.7" "8.12" coq.coq-version
+  defaultVersion = if versions.range "8.7" "8.13" coq.coq-version
     then "1.1.2+coq${coq.coq-version}" else null;
   displayVersion = { paramcoq = "1.1.2"; };
+  release."1.1.2+coq8.13".sha256 = "02vnf8p04ynf3qk8myvjzsbga15395235mpdpj54pvxis3h5qq22";
   release."1.1.2+coq8.12".sha256 = "0qd72r45if4h7c256qdfiimv75zyrs0w0xqij3m866jxaq591v4i";
   release."1.1.2+coq8.11".sha256 = "09c6813988nvq4fpa45s33k70plnhxsblhm7cxxkg0i37mhvigsa";
   release."1.1.2+coq8.10".sha256 = "1lq1mw15w4yky79qg3rm0mpzqi2ir51b6ak04ismrdr7ixky49y8";
diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix
index 42d4f782f1c..3631bdd54bf 100644
--- a/pkgs/development/coq-modules/simple-io/default.nix
+++ b/pkgs/development/coq-modules/simple-io/default.nix
@@ -5,7 +5,7 @@ with lib; mkCoqDerivation {
   owner = "Lysxia";
   repo = "coq-simple-io";
   inherit version;
-  defaultVersion = if versions.range "8.7" "8.12" coq.coq-version then "1.3.0" else null;
+  defaultVersion = if versions.range "8.7" "8.13" coq.coq-version then "1.3.0" else null;
   release."1.3.0".sha256 = "1yp7ca36jyl9kz35ghxig45x6cd0bny2bpmy058359p94wc617ax";
   extraBuildInputs = (with coq.ocamlPackages; [ ocaml ocamlbuild ]);
   propagatedBuildInputs = [ coq-ext-lib ];
diff --git a/pkgs/development/coq-modules/tlc/default.nix b/pkgs/development/coq-modules/tlc/default.nix
index 6bbad1c6c2b..1e212b44e72 100644
--- a/pkgs/development/coq-modules/tlc/default.nix
+++ b/pkgs/development/coq-modules/tlc/default.nix
@@ -1,23 +1,29 @@
 { lib, mkCoqDerivation, coq, version ? null }:
 
-with lib; mkCoqDerivation {
+with lib; (mkCoqDerivation {
   pname = "tlc";
   owner = "charguer";
   inherit version;
   displayVersion = { tlc = false; };
   defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.12" "8.13"; out = "20210316"; }
     { case = range "8.10" "8.12"; out = "20200328"; }
     { case = range "8.6"  "8.12"; out = "20181116"; }
   ] null;
+  release."20210316".sha256 = "1hlavnx20lxpf2iydbbxqmim9p8wdwv4phzp9ypij93yivih0g4a";
   release."20200328".sha256 = "16vzild9gni8zhgb3qhmka47f8zagdh03k6nssif7drpim8233lx";
   release."20181116".sha256 = "032lrbkxqm9d3fhf6nv1kq2z0mqd3czv3ijlbsjwnfh12xck4vpl";
 
-  installFlags = [ "CONTRIB=$(out)/lib/coq/${coq.coq-version}/user-contrib" ];
-
   meta = {
     homepage = "http://www.chargueraud.org/softs/tlc/";
     description = "A non-constructive library for Coq";
     license = licenses.free;
     maintainers = [ maintainers.vbgl ];
   };
-}
+}).overrideAttrs (x:
+  if versionAtLeast x.version "20210316"
+  then {}
+  else {
+    installFlags = [ "CONTRIB=$(out)/lib/coq/${coq.coq-version}/user-contrib" ];
+  }
+)
diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index 15e3ccbb972..1ea76cb237d 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -1,23 +1,38 @@
-{ lib, stdenv, fetchurl, pkg-config, guile, guile-lib, cairo, expat }:
+{ lib
+, stdenv
+, fetchurl
+, cairo
+, expat
+, guile
+, guile-lib
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "guile-cairo";
   version = "1.11.2";
 
   src = fetchurl {
-    url = "mirror://savannah/guile-cairo/${pname}-${version}.tar.gz";
-    sha256 = "0yx0844p61ljd4d3d63qrawiygiw6ks02fwv2cqx7nav5kfd8ck2";
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-YjLU3Cxb2dMxE5s7AfQ0PD4fucp4mDYaaZIGcwlBoHs=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    cairo
+    expat
+    guile
+  ];
 
-  buildInputs = [ guile cairo expat ];
   enableParallelBuilding = true;
 
   doCheck = false; # Cannot find unit-test module from guile-lib
   checkInputs = [ guile-lib ];
 
   meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-cairo/";
     description = "Cairo bindings for GNU Guile";
     longDescription = ''
       Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
@@ -28,7 +43,6 @@ stdenv.mkDerivation rec {
       maintained graphics library with all of the benefits of Scheme: memory
       management, exceptions, macros, and a dynamic programming environment.
     '';
-    homepage = "https://www.nongnu.org/guile-cairo/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-commonmark/default.nix b/pkgs/development/guile-modules/guile-commonmark/default.nix
new file mode 100644
index 00000000000..113fad13600
--- /dev/null
+++ b/pkgs/development/guile-modules/guile-commonmark/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, guile
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "guile-commonmark";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "OrangeShark";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-qYDcIiObKOU8lmcfk327LMPx/2Px9ecI3QLrSWWLxMo=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+  ];
+
+  # https://github.com/OrangeShark/guile-commonmark/issues/20
+  doCheck = false;
+
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/OrangeShark/guile-commonmark";
+    description = "Implementation of CommonMark for Guile";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = guile.meta.platforms;
+  };
+}
diff --git a/pkgs/development/guile-modules/guile-fibers/default.nix b/pkgs/development/guile-modules/guile-fibers/default.nix
index 3521853187c..ccc51a5a769 100644
--- a/pkgs/development/guile-modules/guile-fibers/default.nix
+++ b/pkgs/development/guile-modules/guile-fibers/default.nix
@@ -1,26 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, guile, texinfo }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, guile
+, pkg-config
+, texinfo
+}:
 
-let
+stdenv.mkDerivation rec {
+  pname = "guile-fibers";
   version = "1.0.0";
-  name = "guile-fibers-${version}";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchFromGitHub {
     owner = "wingo";
     repo = "fibers";
     rev = "v${version}";
-    sha256 = "1r47m1m112kxf23xny99f0qkqsk6626iyc5jp7vzndfiyp5yskwi";
+    hash = "sha256-kU/ty/XRNfv3ubIwH40wZmo8MXApeduHcH2KEGqoh+Q=";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ guile texinfo ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
 
   autoreconfPhase = "./autogen.sh";
 
   meta = with lib; {
-    description = "Concurrent ML-like concurrency for Guile";
     homepage = "https://github.com/wingo/fibers";
+    description = "Concurrent ML-like concurrency for Guile";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-gnome/default.nix b/pkgs/development/guile-modules/guile-gnome/default.nix
index 2dc07deac5c..ead08ce0231 100644
--- a/pkgs/development/guile-modules/guile-gnome/default.nix
+++ b/pkgs/development/guile-modules/guile-gnome/default.nix
@@ -1,7 +1,21 @@
-{ fetchurl, lib, stdenv, guile, guile-lib, gwrap
-, pkg-config, gconf, glib, gnome_vfs, gtk2
-, libglade, libgnome, libgnomecanvas, libgnomeui
-, pango, guile-cairo, texinfo
+{ lib
+, stdenv
+, fetchurl
+, gconf
+, glib
+, gnome_vfs
+, gtk2
+, guile
+, guile-cairo
+, guile-lib
+, gwrap
+, libglade
+, libgnome
+, libgnomecanvas
+, libgnomeui
+, pango
+, pkg-config
+, texinfo
 }:
 
 stdenv.mkDerivation rec {
@@ -10,20 +24,37 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/guile-gnome/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "adabd48ed5993d8528fd604e0aa0d96ad81a61d06da6cdd68323572ad6c216c3";
+    hash = "sha256-ravUjtWZPYUo/WBOCqDZatgaYdBtps3WgyNXKtbCFsM=";
   };
 
+  nativeBuildInputs = [
+    pkg-config
+    texinfo
+  ];
   buildInputs = [
-    texinfo guile gwrap pkg-config gconf glib gnome_vfs gtk2
-    libglade libgnome libgnomecanvas libgnomeui pango guile-cairo
+    gconf
+    glib
+    gnome_vfs
+    gtk2
+    guile
+    guile-cairo
+    gwrap
+    libglade
+    libgnome
+    libgnomecanvas
+    libgnomeui
+    pango
   ] ++ lib.optional doCheck guile-lib;
 
   # The test suite tries to open an X display, which fails.
   doCheck = false;
 
-  GUILE_AUTO_COMPILE = 0;
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
 
   meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-gnome/";
     description = "GNOME bindings for GNU Guile";
     longDescription = ''
       GNU guile-gnome brings the power of Scheme to your graphical application.
@@ -32,7 +63,6 @@ stdenv.mkDerivation rec {
       guile-gnome a comprehensive environment for developing modern
       applications.
     '';
-    homepage = "https://www.gnu.org/software/guile-gnome/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index 34299b345ee..50c6a1daefb 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -1,20 +1,29 @@
-{ lib, stdenv, fetchurl, guile, texinfo, pkg-config }:
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+, texinfo
+}:
 
 assert stdenv ? cc && stdenv.cc.isGNU;
 
-let
-  name = "guile-lib-${version}";
+stdenv.mkDerivation rec {
+  pname = "guile-lib";
   version = "0.2.6.1";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
-    url = "mirror://savannah/guile-lib/${name}.tar.gz";
-    sha256 = "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd";
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-bR09DxTbnSgLjUJ9bh3sRBfd0Cv/I71Zguy24mLrPyo=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ guile texinfo ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
 
   doCheck = true;
 
@@ -25,6 +34,7 @@ in stdenv.mkDerivation {
   '';
 
   meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-lib/";
     description = "A collection of useful Guile Scheme modules";
     longDescription = ''
       guile-lib is intended as an accumulation place for pure-scheme Guile
@@ -32,7 +42,6 @@ in stdenv.mkDerivation {
       modules into a coherent library.  Think "a down-scaled, limited-scope CPAN
       for Guile".
     '';
-    homepage = "https://www.nongnu.org/guile-lib/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.gnu ++ platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-ncurses/default.nix b/pkgs/development/guile-modules/guile-ncurses/default.nix
index 8f879249a23..1e6418b0c3c 100644
--- a/pkgs/development/guile-modules/guile-ncurses/default.nix
+++ b/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -1,18 +1,29 @@
-{ lib, stdenv, fetchurl, pkg-config, guile, ncurses, libffi }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, guile
+, libffi
+, ncurses
+}:
 
-let
-  name = "guile-ncurses-${version}";
+stdenv.mkDerivation rec {
+  pname = "guile-ncurses";
   version = "1.7";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
-    url = "mirror://gnu/guile-ncurses/${name}.tar.gz";
-    sha256 = "153vv75gb7l62sp3666rc97i63rnaqbx2rjar7d9b5w81fhwv4r5";
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-JZPNoQuIl5XayUpm0RdWNg8TT2LZGDOuFoae9crZe5Q=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ guile ncurses libffi ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    libffi
+    ncurses
+  ];
 
   preConfigure = ''
     configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site"
@@ -29,6 +40,7 @@ in stdenv.mkDerivation {
   doCheck = false;
 
   meta = with lib; {
+    homepage = "https://www.gnu.org/software/guile-ncurses/";
     description = "Scheme interface to the NCurses libraries";
     longDescription = ''
       GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
@@ -36,7 +48,6 @@ in stdenv.mkDerivation {
       interface functionality is built on the ncurses libraries: curses, form,
       panel, and menu.
     '';
-    homepage = "https://www.gnu.org/software/guile-ncurses/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.gnu ++ platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-opengl/default.nix b/pkgs/development/guile-modules/guile-opengl/default.nix
index 5ada5d41c7d..437af0f4edf 100644
--- a/pkgs/development/guile-modules/guile-opengl/default.nix
+++ b/pkgs/development/guile-modules/guile-opengl/default.nix
@@ -1,21 +1,27 @@
-{ lib, stdenv, fetchurl, pkg-config, guile }:
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+}:
 
-let
-  name = "guile-opengl-${version}";
+stdenv.mkDerivation rec {
+  pname = "guile-opengl";
   version = "0.1.0";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
-    url = "mirror://gnu/guile-opengl/${name}.tar.gz";
-    sha256 = "13qfx4xh8baryxqrv986l848ygd0piqwm6s2s90pxk9c0m9vklim";
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-NdK5UwUszX5B0kKbynG8oD2PCKIGpZ1x91ktBDvpDo8=";
   };
 
-  nativeBuildInputs = [ pkg-config guile ];
+  nativeBuildInputs = [
+    pkg-config
+    guile
+  ];
 
   meta = with lib; {
-    description = "Guile bindings for the OpenGL graphics API";
     homepage = "https://www.gnu.org/software/guile-opengl/";
+    description = "Guile bindings for the OpenGL graphics API";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.unix;
diff --git a/pkgs/development/guile-modules/guile-reader/default.nix b/pkgs/development/guile-modules/guile-reader/default.nix
index eaf402a8605..1675ac0e333 100644
--- a/pkgs/development/guile-modules/guile-reader/default.nix
+++ b/pkgs/development/guile-modules/guile-reader/default.nix
@@ -1,36 +1,49 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config
-, gperf, guile, guile-lib, libffi }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, gperf
+, guile
+, guile-lib
+, libffi
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "guile-reader";
   version = "0.6.3";
 
   src = fetchurl {
-    url = "http://download.savannah.nongnu.org/releases/guile-reader/${pname}-${version}.tar.gz";
-    sha256 = "sha256-OMK0ROrbuMDKt42QpE7D6/9CvUEMW4SpEBjO5+tk0rs=";
+    url = "http://download.savannah.nongnu.org/releases/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-OMK0ROrbuMDKt42QpE7D6/9CvUEMW4SpEBjO5+tk0rs=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gperf guile guile-lib libffi ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    gperf
+    guile
+    guile-lib
+    libffi
+  ];
 
   GUILE_SITE="${guile-lib}/share/guile/site";
 
   configureFlags = [ "--with-guilemoduledir=$(out)/share/guile/site" ];
 
   meta = with lib; {
+    homepage = "https://www.nongnu.org/guile-reader/";
     description = "A simple framework for building readers for GNU Guile";
     longDescription = ''
-       Guile-Reader is a simple framework for building readers for GNU
-       Guile.
+       Guile-Reader is a simple framework for building readers for GNU Guile.
 
-       The idea is to make it easy to build procedures that extend
-       Guile's read procedure. Readers supporting various syntax
-       variants can easily be written, possibly by re-using existing
-       "token readers" of a standard Scheme readers. For example, it
-       is used to implement Skribilo's R5RS-derived document syntax.
+       The idea is to make it easy to build procedures that extend Guile's read
+       procedure. Readers supporting various syntax variants can easily be
+       written, possibly by re-using existing "token readers" of a standard
+       Scheme readers. For example, it is used to implement Skribilo's
+       R5RS-derived document syntax.
     '';
-    homepage = "https://www.nongnu.org/guile-reader/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.gnu;
diff --git a/pkgs/development/guile-modules/guile-sdl/default.nix b/pkgs/development/guile-modules/guile-sdl/default.nix
index 8816e7b4ffc..c6e250e6d71 100644
--- a/pkgs/development/guile-modules/guile-sdl/default.nix
+++ b/pkgs/development/guile-modules/guile-sdl/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchurl, pkg-config, guile, buildEnv
-, SDL, SDL_image, SDL_ttf, SDL_mixer
+{ lib
+, stdenv
+, fetchurl
+, SDL
+, SDL_image
+, SDL_mixer
+, SDL_ttf
+, buildEnv
+, guile
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
@@ -8,25 +16,33 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0cjgs012a9922hn6xqwj66w6qmfs3nycnm56hyykx5n3g5p7ag01";
+    hash = "sha256-ATx1bnnDlj69h6ZUy7wd2lVsuDGS424sFCIlJQLQTzI=";
   };
 
-  nativeBuildInputs = [ pkg-config guile ];
-
-  buildInputs = [ SDL.dev SDL_image SDL_ttf SDL_mixer ];
-
-  GUILE_AUTO_COMPILE = 0;
+  nativeBuildInputs = [
+    guile
+    pkg-config
+  ];
+  buildInputs = [
+    SDL.dev
+    SDL_image
+    SDL_mixer
+    SDL_ttf
+  ];
 
   makeFlags = let
-    sdl = buildEnv {
+    sdl-env = buildEnv {
       name = "sdl-env";
       paths = buildInputs;
     };
-  in [ "SDLMINUSI=-I${sdl}/include/SDL" ];
+  in [
+    "GUILE_AUTO_COMPILE=0"
+    "SDLMINUSI=-I${sdl-env}/include/SDL"
+  ];
 
   meta = with lib; {
-    description = "Guile bindings for SDL";
     homepage = "https://www.gnu.org/software/guile-sdl/";
+    description = "Guile bindings for SDL";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/guile-modules/guile-sdl2/default.nix b/pkgs/development/guile-modules/guile-sdl2/default.nix
index c3f5fdaefbd..c6fbba93de4 100644
--- a/pkgs/development/guile-modules/guile-sdl2/default.nix
+++ b/pkgs/development/guile-modules/guile-sdl2/default.nix
@@ -1,36 +1,50 @@
-{ lib, stdenv, fetchurl, guile, libtool, pkg-config
-, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, SDL2_ttf
+, guile
+, libtool
+, pkg-config
 }:
 
-let
-  name = "${pname}-${version}";
+stdenv.mkDerivation rec {
   pname = "guile-sdl2";
   version = "0.5.0";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
-    url = "https://files.dthompson.us/${pname}/${name}.tar.gz";
-    sha256 = "118x0cg7fzbsyrfhy5f9ab7dqp9czgia0ycgzp6sn3nlsdrcnr4m";
+    url = "https://files.dthompson.us/${pname}/${pname}-${version}.tar.gz";
+    hash = "sha256-lWTLctPUDqvN/Y95oOL7LF3czlLJFQ9d9np9dx4DHYU=";
   };
 
-  nativeBuildInputs = [ libtool pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    libtool
+  ];
   buildInputs = [
-    guile SDL2 SDL2_image SDL2_ttf SDL2_mixer
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+    guile
   ];
 
   configureFlags = [
-    "--with-libsdl2-prefix=${SDL2}"
     "--with-libsdl2-image-prefix=${SDL2_image}"
-    "--with-libsdl2-ttf-prefix=${SDL2_ttf}"
     "--with-libsdl2-mixer-prefix=${SDL2_mixer}"
+    "--with-libsdl2-prefix=${SDL2}"
+    "--with-libsdl2-ttf-prefix=${SDL2_ttf}"
   ];
 
-  makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
+  makeFlags = [
+    "GUILE_AUTO_COMPILE=0"
+  ];
 
   meta = with lib; {
-    description = "Bindings to SDL2 for GNU Guile";
     homepage = "https://dthompson.us/projects/guile-sdl2.html";
+    description = "Bindings to SDL2 for GNU Guile";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ seppeljordan vyp ];
     platforms = platforms.all;
diff --git a/pkgs/development/guile-modules/guile-xcb/default.nix b/pkgs/development/guile-modules/guile-xcb/default.nix
index 2de44524425..72066313eca 100644
--- a/pkgs/development/guile-modules/guile-xcb/default.nix
+++ b/pkgs/development/guile-modules/guile-xcb/default.nix
@@ -1,29 +1,36 @@
-{ lib, stdenv, fetchurl, pkg-config, guile, texinfo }:
+{ lib
+, stdenv
+, fetchurl
+, guile
+, pkg-config
+, texinfo
+}:
 
-let
-  name = "guile-xcb-${version}";
+stdenv.mkDerivation rec {
+  pname = "guile-xcb";
   version = "1.3";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchurl {
-    url = "http://www.markwitmer.com/dist/${name}.tar.gz";
-    sha256 = "04dvbqdrrs67490gn4gkq9zk8mqy3mkls2818ha4p0ckhh0pm149";
+    url = "http://www.markwitmer.com/dist/${pname}-${version}.tar.gz";
+    hash = "sha256-iYR6AYSTgUsURAEJTWcdHlc0f8LzEftAIsfonBteuxE=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ guile texinfo ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    guile
+    texinfo
+  ];
 
-  preConfigure = ''
-    configureFlags="
-      --with-guile-site-dir=$out/share/guile/site
-      --with-guile-site-ccache-dir=$out/share/guile/site
-    ";
-  '';
+  configureFlags = [
+    "--with-guile-site-dir=$out/share/guile/site"
+    "--with-guile-site-ccache-dir=$out/share/guile/site"
+  ];
 
   meta = with lib; {
-    description = "XCB bindings for Guile";
     homepage = "http://www.markwitmer.com/guile-xcb/guile-xcb.html";
+    description = "XCB bindings for Guile";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.linux;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index c228527d0cc..552e35b9c36 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -85,7 +85,6 @@ self: super: {
   kademlia = dontCheck super.kademlia;
 
   # Tests require older versions of tasty.
-  cborg = (doJailbreak super.cborg).override { base16-bytestring = self.base16-bytestring_0_1_1_7; };
   hzk = dontCheck super.hzk;
   resolv = doJailbreak super.resolv;
   tdigest = doJailbreak super.tdigest;
@@ -326,6 +325,7 @@ self: super: {
   optional = dontCheck super.optional;
   orgmode-parse = dontCheck super.orgmode-parse;
   os-release = dontCheck super.os-release;
+  parameterized = dontCheck super.parameterized; # https://github.com/louispan/parameterized/issues/2
   persistent-redis = dontCheck super.persistent-redis;
   pipes-extra = dontCheck super.pipes-extra;
   pipes-websockets = dontCheck super.pipes-websockets;
@@ -1242,22 +1242,7 @@ self: super: {
   patch = doJailbreak super.patch;
 
   # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
-  reflex-dom-core = doDistribute (unmarkBroken (dontCheck (appendPatch (doJailbreak super.reflex-dom-core) (pkgs.fetchpatch {
-    url = https://github.com/reflex-frp/reflex-dom/commit/6aed7b7ebb70372778f1a29a724fcb4de815ba04.patch;
-    sha256 = "1g7lgwj7rpziilif2gian412iy05gqbzwx9w0m6ajq3clxs5zs7l";
-    stripLen = 2;
-    extraPrefix = "";
-    includes = ["reflex-dom-core.cabal" ];
-  }))));
-
-  # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
-  reflex-dom = appendPatch super.reflex-dom (pkgs.fetchpatch {
-    url = https://github.com/reflex-frp/reflex-dom/commit/6aed7b7ebb70372778f1a29a724fcb4de815ba04.patch;
-    sha256 = "1ndqw5r85axynmx55ld6qr8ik1i1mkh6wrnkzpxbwyil2ms8mxn0";
-    stripLen = 2;
-    extraPrefix = "";
-    includes = ["reflex-dom.cabal" ];
-  });
+  reflex-dom-core = doDistribute (unmarkBroken (dontCheck (doJailbreak super.reflex-dom-core)));
 
   # add unreleased commit fixing version constraint as a patch
   # Can be removed if https://github.com/lpeterse/haskell-utc/issues/8 is resolved
@@ -1475,14 +1460,6 @@ self: super: {
   # https://github.com/obsidiansystems/dependent-sum/issues/55
   dependent-sum = doJailbreak super.dependent-sum;
 
-  # Overspecified constraint on 'constraints'. Kinda funny, huh?
-  dependent-sum-aeson-orphans = appendPatch (doJailbreak super.dependent-sum-aeson-orphans) (pkgs.fetchpatch {
-    # 2020-11-18: https://github.com/obsidiansystems/dependent-sum-aeson-orphans/pull/9
-    # Bump version bounds for ghc 8.10
-    url = https://github.com/obsidiansystems/dependent-sum-aeson-orphans/commit/e1f5898116222a1bc557d41f3395066f83736093.patch;
-    sha256 = "01fj29xdblxpz4drasaygf9875fipylpj8w164lb0cszd1vmqwnb";
-  });
-
   # 2020-11-18: https://github.com/srid/rib/issues/169
   # aeson bound out of sync
   rib-core = doJailbreak super.rib-core;
@@ -1491,20 +1468,8 @@ self: super: {
   # base upper bound is incompatible with ghc 8.10
   neuron = doJailbreak super.neuron;
 
-  reflex = dontCheck (doJailbreak (appendPatches super.reflex [
-    # https://github.com/reflex-frp/reflex/pull/444
-    # Fixes for ghc 8.10
-    (pkgs.fetchpatch {
-      url = https://github.com/reflex-frp/reflex/commit/d230632427fc1b7031163567c97f20050610c122.patch;
-      sha256 = "0gafqqi6q16m5y4mrc2f7lhahmazvcbiadn2v84y9p3zvx2v26xy";
-    })
-    # https://github.com/reflex-frp/reflex/pull/444
-    # Bound bumps for ghc 8.10
-    (pkgs.fetchpatch {
-      url = https://patch-diff.githubusercontent.com/raw/reflex-frp/reflex/pull/448.patch;
-      sha256 = "0a8gcq9g8dyyafkvs54mi3fnisff20r0x0qzmhxcp9md61nkf7gq";
-    })
-  ]));
+  # 2020-04-16: https://github.com/reflex-frp/reflex/issues/449
+  reflex = dontCheck (doJailbreak super.reflex);
 
   # 2020-11-19: jailbreaking because of pretty-simple bound out of date
   # https://github.com/kowainik/stan/issues/408
@@ -1563,9 +1528,9 @@ self: super: {
   );
 
   # 2020-12-05: http-client is fixed on too old version
-  essence-of-live-coding-warp = super.essence-of-live-coding-warp.override {
-    http-client = self.http-client_0_7_6;
-  };
+  essence-of-live-coding-warp = doJailbreak (super.essence-of-live-coding-warp.override {
+    http-client = self.http-client_0_7_8;
+  });
 
   # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
   pandoc-include-code = doJailbreak super.pandoc-include-code;
@@ -1811,4 +1776,15 @@ self: super: {
   # PR pending https://github.com/zohl/cereal-time/pull/2
   cereal-time = doJailbreak super.cereal-time;
 
+  # 2021-04-16: too strict bounds on QuickCheck and tasty
+  # https://github.com/hasufell/lzma-static/issues/1
+  lzma-static = doJailbreak super.lzma-static;
+
+  # Fix haddock errors: https://github.com/koalaman/shellcheck/issues/2216
+  ShellCheck = appendPatch super.ShellCheck (pkgs.fetchpatch {
+    url = "https://github.com/koalaman/shellcheck/commit/9e60b3ea841bcaf48780bfcfc2e44aa6563a62de.patch";
+    sha256 = "1vmg8mmmnph34x7y0mhkcd5nzky8f1rh10pird750xbkp9zlk099";
+    excludes = ["test/buildtest"];
+  });
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 62285754cd8..ab237362dab 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -82,6 +82,8 @@ default-package-overrides:
   - hls-retrie-plugin < 1.0.0.1
   - lsp < 1.2
   - lsp-types < 1.2
+  - hls-plugin-api < 1.1.0.0
+  - hls-explicit-imports-plugin < 1.0.0.1
   # 2021-04-02: Stackage Nighlty has haskell-gi* < 0.25,
   # so we need to restrict these to compatible versions
   # Remove these as soon as haskell-gi{,-base} are 0.25.*
@@ -99,7 +101,7 @@ default-package-overrides:
   - gi-secret < 0.0.13
   - gi-vte < 2.91.28
 
-  # Stackage Nightly 2021-04-02
+  # Stackage Nightly 2021-04-15
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -137,7 +139,7 @@ default-package-overrides:
   - alex-meta ==0.3.0.13
   - alg ==0.2.13.1
   - algebraic-graphs ==0.5
-  - Allure ==0.9.5.0
+  - Allure ==0.10.2.0
   - almost-fix ==0.0.2
   - alsa-core ==0.5.0.1
   - alsa-mixer ==0.3.0
@@ -325,12 +327,12 @@ default-package-overrides:
   - bazel-runfiles ==0.12
   - bbdb ==0.8
   - bcp47 ==0.2.0.3
-  - bcp47-orphans ==0.1.0.2
+  - bcp47-orphans ==0.1.0.3
   - bcrypt ==0.0.11
   - bech32 ==1.1.0
   - bech32-th ==1.0.2
   - bench ==1.0.12
-  - benchpress ==0.2.2.15
+  - benchpress ==0.2.2.16
   - between ==0.11.0.0
   - bibtex ==0.1.0.6
   - bifunctors ==5.5.10
@@ -381,7 +383,7 @@ default-package-overrides:
   - boolsimplifier ==0.1.8
   - boots ==0.2.0.1
   - bordacount ==0.1.0.0
-  - boring ==0.1.3
+  - boring ==0.2
   - both ==0.1.1.1
   - bound ==2.0.3
   - BoundedChan ==1.0.3.0
@@ -389,7 +391,7 @@ default-package-overrides:
   - boundingboxes ==0.2.3
   - bower-json ==1.0.0.1
   - boxes ==0.1.5
-  - brick ==0.60.2
+  - brick ==0.61
   - broadcast-chan ==0.2.1.1
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
@@ -449,8 +451,8 @@ default-package-overrides:
   - cassava-megaparsec ==2.0.2
   - cast ==0.1.0.2
   - category ==0.2.5.0
-  - cayley-client ==0.4.14
-  - cborg ==0.2.4.0
+  - cayley-client ==0.4.15
+  - cborg ==0.2.5.0
   - cborg-json ==0.2.2.0
   - cereal ==0.5.8.1
   - cereal-conduit ==0.8.0
@@ -526,16 +528,16 @@ default-package-overrides:
   - compiler-warnings ==0.1.0
   - composable-associations ==0.1.0.0
   - composable-associations-aeson ==0.1.0.1
-  - composite-aeson ==0.7.4.0
-  - composite-aeson-path ==0.7.4.0
-  - composite-aeson-refined ==0.7.4.0
-  - composite-base ==0.7.4.0
-  - composite-binary ==0.7.4.0
-  - composite-ekg ==0.7.4.0
-  - composite-hashable ==0.7.4.0
+  - composite-aeson ==0.7.5.0
+  - composite-aeson-path ==0.7.5.0
+  - composite-aeson-refined ==0.7.5.0
+  - composite-base ==0.7.5.0
+  - composite-binary ==0.7.5.0
+  - composite-ekg ==0.7.5.0
+  - composite-hashable ==0.7.5.0
   - composite-tuple ==0.1.2.0
   - composite-xstep ==0.1.0.0
-  - composition ==1.0.2.1
+  - composition ==1.0.2.2
   - composition-extra ==2.0.0
   - concise ==0.1.0.1
   - concurrency ==1.11.0.1
@@ -661,7 +663,7 @@ default-package-overrides:
   - data-ordlist ==0.4.7.0
   - data-ref ==0.0.2
   - data-reify ==0.6.3
-  - data-serializer ==0.3.4.1
+  - data-serializer ==0.3.5
   - data-textual ==0.3.0.3
   - dataurl ==0.1.0.0
   - DAV ==1.3.4
@@ -679,7 +681,7 @@ default-package-overrides:
   - deferred-folds ==0.9.17
   - dejafu ==2.4.0.2
   - dense-linear-algebra ==0.1.0.0
-  - depq ==0.4.1.0
+  - depq ==0.4.2
   - deque ==0.4.3
   - deriveJsonNoPrefix ==0.1.0.1
   - derive-topdown ==0.0.2.2
@@ -708,7 +710,7 @@ default-package-overrides:
   - distributed-closure ==0.4.2.0
   - distribution-opensuse ==1.1.1
   - distributive ==0.6.2.1
-  - dl-fedora ==0.7.6
+  - dl-fedora ==0.8
   - dlist ==0.8.0.8
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.1
@@ -798,10 +800,10 @@ default-package-overrides:
   - errors-ext ==0.4.2
   - ersatz ==0.4.9
   - esqueleto ==3.4.1.1
-  - essence-of-live-coding ==0.2.4
-  - essence-of-live-coding-gloss ==0.2.4
-  - essence-of-live-coding-pulse ==0.2.4
-  - essence-of-live-coding-quickcheck ==0.2.4
+  - essence-of-live-coding ==0.2.5
+  - essence-of-live-coding-gloss ==0.2.5
+  - essence-of-live-coding-pulse ==0.2.5
+  - essence-of-live-coding-quickcheck ==0.2.5
   - etc ==0.4.1.0
   - eve ==0.1.9.0
   - eventful-core ==0.2.0
@@ -823,7 +825,7 @@ default-package-overrides:
   - expiring-cache-map ==0.0.6.1
   - explicit-exception ==0.1.10
   - exp-pairs ==0.2.1.0
-  - express ==0.1.3
+  - express ==0.1.4
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
@@ -867,13 +869,13 @@ default-package-overrides:
   - first-class-patterns ==0.3.2.5
   - fitspec ==0.4.8
   - fixed ==0.3
-  - fixed-length ==0.2.2
+  - fixed-length ==0.2.2.1
   - fixed-vector ==1.2.0.0
   - fixed-vector-hetero ==0.6.1.0
   - fix-whitespace ==0.0.5
   - flac ==0.2.0
   - flac-picture ==0.1.2
-  - flags-applicative ==0.1.0.2
+  - flags-applicative ==0.1.0.3
   - flat ==0.4.4
   - flat-mcmc ==1.5.2
   - flexible-defaults ==0.0.3
@@ -934,10 +936,10 @@ default-package-overrides:
   - generic-data-surgery ==0.3.0.0
   - generic-deriving ==1.13.1
   - generic-functor ==0.2.0.0
-  - generic-lens ==2.0.0.0
-  - generic-lens-core ==2.0.0.0
+  - generic-lens ==2.1.0.0
+  - generic-lens-core ==2.1.0.0
   - generic-monoid ==0.1.0.1
-  - generic-optics ==2.0.0.0
+  - generic-optics ==2.1.0.0
   - GenericPretty ==1.2.2
   - generic-random ==1.3.0.1
   - generics-eot ==0.4.0.1
@@ -976,7 +978,7 @@ default-package-overrides:
   - geojson ==4.0.2
   - getopt-generics ==0.13.0.4
   - ghc-byteorder ==4.11.0.0.10
-  - ghc-check ==0.5.0.3
+  - ghc-check ==0.5.0.4
   - ghc-core ==0.5.6
   - ghc-events ==0.16.0
   - ghc-exactprint ==0.6.4
@@ -1026,7 +1028,7 @@ default-package-overrides:
   - gitrev ==1.3.1
   - gi-xlib ==2.0.9
   - gl ==0.9
-  - glabrous ==2.0.2
+  - glabrous ==2.0.3
   - GLFW-b ==3.3.0.0
   - Glob ==0.10.1
   - gloss ==1.13.2.1
@@ -1043,7 +1045,7 @@ default-package-overrides:
   - graphite ==0.10.0.1
   - graphql-client ==1.1.1
   - graphs ==0.7.1
-  - graphula ==2.0.0.3
+  - graphula ==2.0.0.4
   - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
@@ -1126,9 +1128,9 @@ default-package-overrides:
   - hformat ==0.3.3.1
   - hfsevents ==0.1.6
   - hgrev ==0.2.6
-  - hidapi ==0.1.6
+  - hidapi ==0.1.7
   - hie-bios ==0.7.5
-  - hi-file-parser ==0.1.1.0
+  - hi-file-parser ==0.1.2.0
   - higher-leveldb ==0.6.0.0
   - highlighting-kate ==0.6.4
   - hinfo ==0.0.3.0
@@ -1162,7 +1164,7 @@ default-package-overrides:
   - hp2pretty ==0.10
   - hpack ==0.34.4
   - hpack-dhall ==0.5.2
-  - hpc-codecov ==0.2.0.2
+  - hpc-codecov ==0.3.0.0
   - hpc-lcov ==1.0.1
   - hprotoc ==2.4.17
   - hruby ==0.3.8.1
@@ -1185,7 +1187,7 @@ default-package-overrides:
   - hslua-module-path ==0.1.0.1
   - hslua-module-system ==0.2.2.1
   - hslua-module-text ==0.3.0.1
-  - HsOpenSSL ==0.11.6
+  - HsOpenSSL ==0.11.6.2
   - HsOpenSSL-x509-system ==0.1.0.4
   - hsp ==0.10.0
   - hspec ==2.7.9
@@ -1195,13 +1197,13 @@ default-package-overrides:
   - hspec-core ==2.7.9
   - hspec-discover ==2.7.9
   - hspec-expectations ==0.8.2
-  - hspec-expectations-json ==1.0.0.2
+  - hspec-expectations-json ==1.0.0.3
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.5
   - hspec-golden ==0.1.0.3
   - hspec-golden-aeson ==0.7.0.0
   - hspec-hedgehog ==0.0.1.2
-  - hspec-junit-formatter ==1.0.0.1
+  - hspec-junit-formatter ==1.0.0.2
   - hspec-leancheck ==0.0.4
   - hspec-megaparsec ==2.2.0
   - hspec-meta ==2.7.8
@@ -1314,7 +1316,7 @@ default-package-overrides:
   - indexed ==0.1.3
   - indexed-containers ==0.1.0.2
   - indexed-list-literals ==0.2.1.3
-  - indexed-profunctors ==0.1
+  - indexed-profunctors ==0.1.1
   - indexed-traversable ==0.1.1
   - indexed-traversable-instances ==0.1
   - infer-license ==0.2.0
@@ -1330,6 +1332,7 @@ default-package-overrides:
   - insert-ordered-containers ==0.2.4
   - inspection-testing ==0.4.3.0
   - instance-control ==0.1.2.0
+  - int-cast ==0.2.0.0
   - integer-logarithms ==1.0.3.1
   - integer-roots ==1.0
   - integration ==0.2.1
@@ -1354,7 +1357,7 @@ default-package-overrides:
   - io-streams-haproxy ==1.0.1.0
   - ip6addr ==1.0.2
   - iproute ==1.7.11
-  - IPv6Addr ==2.0.1
+  - IPv6Addr ==2.0.2
   - ipynb ==0.1.0.1
   - ipython-kernel ==0.10.2.1
   - irc ==0.6.1.0
@@ -1367,13 +1370,12 @@ default-package-overrides:
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
   - iterable ==3.0
-  - it-has ==0.2.0.0
   - ixset-typed ==0.5
   - ixset-typed-binary-instance ==0.1.0.2
   - ixset-typed-conversions ==0.1.2.0
   - ixset-typed-hashable-instance ==0.1.0.2
   - ix-shapable ==0.1.0
-  - jack ==0.7.1.4
+  - jack ==0.7.2
   - jalaali ==1.0.0.0
   - jira-wiki-markup ==1.3.4
   - jose ==0.8.4
@@ -1414,13 +1416,13 @@ default-package-overrides:
   - l10n ==0.1.0.1
   - labels ==0.3.3
   - lackey ==1.0.14
-  - LambdaHack ==0.9.5.0
+  - LambdaHack ==0.10.2.0
   - lame ==0.2.0
   - language-avro ==0.1.3.1
   - language-bash ==0.9.2
   - language-c ==0.8.3
   - language-c-quote ==0.12.2.1
-  - language-docker ==9.1.3
+  - language-docker ==9.2.0
   - language-java ==0.2.9
   - language-javascript ==0.7.1.0
   - language-protobuf ==1.0.1
@@ -1465,7 +1467,7 @@ default-package-overrides:
   - liboath-hs ==0.0.1.2
   - libyaml ==0.1.2
   - LibZip ==1.0.1
-  - lifted-async ==0.10.1.3
+  - lifted-async ==0.10.2
   - lifted-base ==0.2.3.12
   - lift-generics ==0.2
   - line ==4.0.1
@@ -1589,7 +1591,7 @@ default-package-overrides:
   - mnist-idx ==0.1.2.8
   - mockery ==0.3.5
   - mock-time ==0.1.0
-  - mod ==0.1.2.1
+  - mod ==0.1.2.2
   - model ==0.5
   - modern-uri ==0.3.4.1
   - modular ==0.1.0.8
@@ -1615,7 +1617,7 @@ default-package-overrides:
   - monad-primitive ==0.1
   - monad-products ==4.0.1
   - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.2
+  - MonadRandom ==0.5.3
   - monad-resumption ==0.1.4.0
   - monad-skeleton ==0.1.5
   - monad-st ==0.2.4.1
@@ -1629,7 +1631,7 @@ default-package-overrides:
   - mono-traversable ==1.0.15.1
   - mono-traversable-instances ==0.1.1.0
   - mono-traversable-keys ==0.1.0
-  - more-containers ==0.2.2.0
+  - more-containers ==0.2.2.2
   - morpheus-graphql ==0.17.0
   - morpheus-graphql-app ==0.17.0
   - morpheus-graphql-client ==0.17.0
@@ -1705,7 +1707,7 @@ default-package-overrides:
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.1.0
-  - nonempty-zipper ==1.0.0.1
+  - nonempty-zipper ==1.0.0.2
   - non-negative ==0.1.2
   - not-gloss ==0.7.7.0
   - no-value ==1.0.0.0
@@ -1713,7 +1715,7 @@ default-package-overrides:
   - nqe ==0.6.3
   - nri-env-parser ==0.1.0.6
   - nri-observability ==0.1.0.1
-  - nri-prelude ==0.5.0.2
+  - nri-prelude ==0.5.0.3
   - nsis ==0.3.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
@@ -1959,8 +1961,8 @@ default-package-overrides:
   - QuickCheck ==2.14.2
   - quickcheck-arbitrary-adt ==0.3.1.0
   - quickcheck-assertions ==0.3.0
-  - quickcheck-classes ==0.6.4.0
-  - quickcheck-classes-base ==0.6.1.0
+  - quickcheck-classes ==0.6.5.0
+  - quickcheck-classes-base ==0.6.2.0
   - quickcheck-higherorder ==0.1.0.0
   - quickcheck-instances ==0.3.25.2
   - quickcheck-io ==0.2.0
@@ -2011,7 +2013,7 @@ default-package-overrides:
   - rebase ==1.6.1
   - record-dot-preprocessor ==0.2.10
   - record-hasfield ==1.0
-  - records-sop ==0.1.0.3
+  - records-sop ==0.1.1.0
   - record-wrangler ==0.1.1.0
   - recursion-schemes ==5.2.2.1
   - reducers ==3.12.3
@@ -2036,7 +2038,7 @@ default-package-overrides:
   - regex-posix ==0.96.0.0
   - regex-tdfa ==1.3.1.0
   - regex-with-pcre ==1.1.0.0
-  - registry ==0.2.0.2
+  - registry ==0.2.0.3
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
   - relational-query ==0.12.2.3
@@ -2069,7 +2071,7 @@ default-package-overrides:
   - rhine-gloss ==0.7.0
   - rigel-viz ==0.2.0.0
   - rio ==0.1.20.0
-  - rio-orphans ==0.1.1.0
+  - rio-orphans ==0.1.2.0
   - rio-prettyprint ==0.1.1.0
   - roc-id ==0.1.0.0
   - rocksdb-haskell ==1.0.1
@@ -2085,7 +2087,7 @@ default-package-overrides:
   - rvar ==0.2.0.6
   - safe ==0.3.19
   - safe-coloured-text ==0.0.0.0
-  - safecopy ==0.10.4.1
+  - safecopy ==0.10.4.2
   - safe-decimal ==0.2.0.0
   - safe-exceptions ==0.1.7.1
   - safe-foldable ==0.1.0.0
@@ -2163,7 +2165,7 @@ default-package-overrides:
   - servant-swagger ==1.1.10
   - servant-swagger-ui ==0.3.4.3.37.2
   - servant-swagger-ui-core ==0.3.4
-  - serverless-haskell ==0.12.5
+  - serverless-haskell ==0.12.6
   - serversession ==1.0.2
   - serversession-frontend-wai ==1.0
   - ses-html ==0.4.0.0
@@ -2234,7 +2236,7 @@ default-package-overrides:
   - soap-tls ==0.1.1.4
   - socket ==0.8.3.0
   - socks ==0.6.1
-  - some ==1.0.2
+  - some ==1.0.3
   - sop-core ==0.5.0.1
   - sort ==1.0.0.0
   - sorted-list ==0.2.1.0
@@ -2246,9 +2248,9 @@ default-package-overrides:
   - sparse-tensor ==0.2.1.5
   - spatial-math ==0.5.0.1
   - special-values ==0.1.0.0
-  - speculate ==0.4.2
+  - speculate ==0.4.4
   - speedy-slice ==0.3.2
-  - Spintax ==0.3.5
+  - Spintax ==0.3.6
   - splice ==0.6.1.1
   - splint ==1.0.1.4
   - split ==0.2.3.4
@@ -2309,7 +2311,7 @@ default-package-overrides:
   - string-conversions ==0.4.0.1
   - string-interpolate ==0.3.1.0
   - string-qq ==0.0.4
-  - string-random ==0.1.4.0
+  - string-random ==0.1.4.1
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
   - stripe-concepts ==1.0.2.6
@@ -2362,7 +2364,7 @@ default-package-overrides:
   - tardis ==0.4.3.0
   - tasty ==1.4.1
   - tasty-ant-xml ==1.1.8
-  - tasty-bench ==0.2.4
+  - tasty-bench ==0.2.5
   - tasty-dejafu ==2.0.0.7
   - tasty-discover ==4.2.2
   - tasty-expected-failure ==0.12.3
@@ -2417,7 +2419,7 @@ default-package-overrides:
   - text-metrics ==0.3.0
   - text-postgresql ==0.0.3.1
   - text-printer ==0.5.0.1
-  - text-regex-replace ==0.1.1.3
+  - text-regex-replace ==0.1.1.4
   - text-region ==0.3.1.0
   - text-short ==0.1.3
   - text-show ==3.9
@@ -2455,9 +2457,9 @@ default-package-overrides:
   - throwable-exceptions ==0.1.0.9
   - th-strict-compat ==0.1.0.1
   - th-test-utils ==1.1.0
-  - th-utilities ==0.2.4.2
+  - th-utilities ==0.2.4.3
   - thyme ==0.3.5.5
-  - tidal ==1.7.2
+  - tidal ==1.7.3
   - tile ==0.3.0.0
   - time-compat ==1.9.5
   - timeit ==2.0
@@ -2602,9 +2604,9 @@ default-package-overrides:
   - valor ==0.1.0.0
   - vault ==0.3.1.5
   - vec ==0.4
-  - vector ==0.12.2.0
+  - vector ==0.12.3.0
   - vector-algorithms ==0.8.0.4
-  - vector-binary-instances ==0.2.5.1
+  - vector-binary-instances ==0.2.5.2
   - vector-buffer ==0.4.1
   - vector-builder ==0.3.8.1
   - vector-bytes-instances ==0.1.1
@@ -2727,21 +2729,21 @@ default-package-overrides:
   - yesod ==1.6.1.0
   - yesod-auth ==1.6.10.2
   - yesod-auth-hashdb ==1.7.1.5
-  - yesod-auth-oauth2 ==0.6.2.3
+  - yesod-auth-oauth2 ==0.6.3.0
   - yesod-bin ==1.6.1
-  - yesod-core ==1.6.18.8
+  - yesod-core ==1.6.19.0
   - yesod-fb ==0.6.1
   - yesod-form ==1.6.7
   - yesod-gitrev ==0.2.1
   - yesod-markdown ==0.12.6.8
   - yesod-newsfeed ==1.7.0.0
-  - yesod-page-cursor ==2.0.0.5
+  - yesod-page-cursor ==2.0.0.6
   - yesod-paginator ==1.1.1.0
   - yesod-persistent ==1.6.0.6
   - yesod-sitemap ==1.6.0
   - yesod-static ==1.6.1.0
   - yesod-test ==1.6.12
-  - yesod-websockets ==0.3.0.2
+  - yesod-websockets ==0.3.0.3
   - yes-precure5-command ==5.5.3
   - yi-rope ==0.11
   - yjsvg ==0.2.0.1
@@ -5694,6 +5696,7 @@ broken-packages:
   - ghcjs-xhr
   - ghclive
   - ghcprofview
+  - ghcup
   - ght
   - gi-cairo-again
   - gi-graphene
@@ -5948,7 +5951,6 @@ broken-packages:
   - gw
   - gyah-bin
   - gym-http-api
-  - H
   - h-booru
   - h-gpgme
   - h-reversi
@@ -6835,6 +6837,7 @@ broken-packages:
   - hsdip
   - hsdns-cache
   - Hsed
+  - hsendxmpp
   - hsenv
   - HSet
   - hset
@@ -7190,7 +7193,6 @@ broken-packages:
   - inject-function
   - inline-asm
   - inline-java
-  - inline-r
   - inserts
   - inspector-wrecker
   - instana-haskell-trace-sdk
@@ -7490,7 +7492,6 @@ broken-packages:
   - kparams
   - kqueue
   - kraken
-  - krank
   - krapsh
   - Kriens
   - krpc
@@ -8691,6 +8692,8 @@ broken-packages:
   - opentelemetry-http-client
   - opentheory-char
   - opentok
+  - opentracing-jaeger
+  - opentracing-zipkin-v1
   - opentype
   - OpenVG
   - OpenVGRaw
@@ -8779,7 +8782,6 @@ broken-packages:
   - pandoc-placetable
   - pandoc-plantuml-diagrams
   - pandoc-pyplot
-  - pandoc-sidenote
   - pandoc-unlit
   - pandoc-utils
   - PandocAgda
@@ -8811,7 +8813,6 @@ broken-packages:
   - Paraiso
   - Parallel-Arrows-Eden
   - parallel-tasks
-  - parameterized
   - parameterized-utils
   - paranoia
   - parco
@@ -9330,7 +9331,6 @@ broken-packages:
   - puzzle-draw
   - puzzle-draw-cmdline
   - pvd
-  - PyF
   - pyffi
   - pyfi
   - python-pickle
@@ -9817,6 +9817,7 @@ broken-packages:
   - safe-globals
   - safe-lazy-io
   - safe-length
+  - safe-numeric
   - safe-plugins
   - safe-printf
   - safecopy-migrate
@@ -10003,11 +10004,11 @@ broken-packages:
   - servant-db
   - servant-db-postgresql
   - servant-dhall
-  - servant-docs
   - servant-docs-simple
   - servant-ede
   - servant-ekg
   - servant-elm
+  - servant-event-stream
   - servant-examples
   - servant-fiat-content
   - servant-generate
@@ -10379,6 +10380,7 @@ broken-packages:
   - sorted
   - sorting
   - sorty
+  - souffle-dsl
   - souffle-haskell
   - sound-collage
   - sounddelay
@@ -10767,6 +10769,7 @@ broken-packages:
   - TaskMonad
   - tasty-auto
   - tasty-bdd
+  - tasty-checklist
   - tasty-fail-fast
   - tasty-grading-system
   - tasty-groundhog-converters
@@ -11454,6 +11457,7 @@ broken-packages:
   - wai-graceful
   - wai-handler-devel
   - wai-handler-fastcgi
+  - wai-handler-hal
   - wai-handler-scgi
   - wai-handler-snap
   - wai-handler-webkit
@@ -11571,6 +11575,7 @@ broken-packages:
   - whois
   - why3
   - wide-word
+  - wide-word-instances
   - WikimediaParser
   - wikipedia4epub
   - wild-bind-indicator
@@ -11634,7 +11639,6 @@ broken-packages:
   - wshterm
   - wsjtx-udp
   - wss-client
-  - wstunnel
   - wtk
   - wtk-gtk
   - wu-wei
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 066830814fd..ba00d200073 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -661,20 +661,26 @@ self: super: builtins.intersectAttrs super {
       # fine with newer versions.
       spagoWithOverrides = doJailbreak super.spago;
 
-      # This defines the version of the purescript-docs-search release we are using.
-      # This is defined in the src/Spago/Prelude.hs file in the spago source.
-      docsSearchVersion = "v0.0.10";
-
-      docsSearchAppJsFile = pkgs.fetchurl {
-        url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/docs-search-app.js";
+      docsSearchApp_0_0_10 = pkgs.fetchurl {
+        url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/docs-search-app.js";
         sha256 = "0m5ah29x290r0zk19hx2wix2djy7bs4plh9kvjz6bs9r45x25pa5";
       };
 
-      purescriptDocsSearchFile = pkgs.fetchurl {
-        url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/purescript-docs-search";
+      docsSearchApp_0_0_11 = pkgs.fetchurl {
+        url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.11/docs-search-app.js";
+        sha256 = "17qngsdxfg96cka1cgrl3zdrpal8ll6vyhhnazqm4hwj16ywjm02";
+      };
+
+      purescriptDocsSearch_0_0_10 = pkgs.fetchurl {
+        url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/purescript-docs-search";
         sha256 = "0wc1zyhli4m2yykc6i0crm048gyizxh7b81n8xc4yb7ibjqwhyj3";
       };
 
+      purescriptDocsSearch_0_0_11 = pkgs.fetchurl {
+        url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.11/purescript-docs-search";
+        sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6";
+      };
+
       spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
         postUnpack = (drv.postUnpack or "") + ''
           # The source for spago is pulled directly from GitHub.  It uses a
@@ -695,13 +701,19 @@ self: super: builtins.intersectAttrs super {
           # However, they are not actually available in the spago source, so they
           # need to fetched with nix and put in the correct place.
           # https://github.com/spacchetti/spago/issues/510
-          cp ${docsSearchAppJsFile} "$sourceRoot/templates/docs-search-app.js"
-          cp ${purescriptDocsSearchFile} "$sourceRoot/templates/purescript-docs-search"
+          cp ${docsSearchApp_0_0_10} "$sourceRoot/templates/docs-search-app-0.0.10.js"
+          cp ${docsSearchApp_0_0_11} "$sourceRoot/templates/docs-search-app-0.0.11.js"
+          cp ${purescriptDocsSearch_0_0_10} "$sourceRoot/templates/purescript-docs-search-0.0.10"
+          cp ${purescriptDocsSearch_0_0_11} "$sourceRoot/templates/purescript-docs-search-0.0.11"
 
           # For some weird reason, on Darwin, the open(2) call to embed these files
           # requires write permissions. The easiest resolution is just to permit that
           # (doesn't cause any harm on other systems).
-          chmod u+w "$sourceRoot/templates/docs-search-app.js" "$sourceRoot/templates/purescript-docs-search"
+          chmod u+w \
+            "$sourceRoot/templates/docs-search-app-0.0.10.js" \
+            "$sourceRoot/templates/purescript-docs-search-0.0.10" \
+            "$sourceRoot/templates/docs-search-app-0.0.11.js" \
+            "$sourceRoot/templates/purescript-docs-search-0.0.11"
         '';
       });
 
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 582cf6df010..faf80da0c7d 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -51,6 +51,7 @@ in
 , license
 , enableParallelBuilding ? true
 , maintainers ? null
+, changelog ? null
 , doCoverage ? false
 , doHaddock ? !(ghc.isHaLVM or false)
 , passthru ? {}
@@ -642,6 +643,7 @@ stdenv.mkDerivation ({
          // optionalAttrs (args ? description)    { inherit description; }
          // optionalAttrs (args ? maintainers)    { inherit maintainers; }
          // optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
+         // optionalAttrs (args ? changelog)      { inherit changelog; }
          ;
 
 }
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 3fa0fecb730..7869388c544 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -946,35 +946,6 @@ self: {
      }) {};
 
   "Allure" = callPackage
-    ({ mkDerivation, async, base, enummapset, filepath, ghc-compact
-     , LambdaHack, optparse-applicative, primitive, random
-     , template-haskell, text, transformers
-     }:
-     mkDerivation {
-       pname = "Allure";
-       version = "0.9.5.0";
-       sha256 = "0cl1r3rcbkj8q290l3q5xva7lkh444s49xz8bm8sbgrk0q3zx041";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         async base enummapset filepath ghc-compact LambdaHack
-         optparse-applicative primitive random template-haskell text
-         transformers
-       ];
-       executableHaskellDepends = [
-         async base filepath LambdaHack optparse-applicative
-       ];
-       testHaskellDepends = [
-         async base filepath LambdaHack optparse-applicative
-       ];
-       description = "Near-future Sci-Fi roguelike and tactical squad combat game";
-       license = lib.licenses.agpl3Plus;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "Allure_0_10_2_0" = callPackage
     ({ mkDerivation, async, base, containers, enummapset, file-embed
      , filepath, ghc-compact, hsini, LambdaHack, optparse-applicative
      , primitive, splitmix, tasty, tasty-hunit, template-haskell, text
@@ -6908,6 +6879,27 @@ self: {
        broken = true;
      }) {};
 
+  "GPipe-Core" = callPackage
+    ({ mkDerivation, base, Boolean, containers, criterion
+     , exception-transformers, gl, hspec, hspec-discover, lens, linear
+     , text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "GPipe-Core";
+       version = "0.2.3.1";
+       sha256 = "0yrqhm77bn8dwx335fpkjyxz5jm7i7g5hpxgk9xrrm6b3sm24w0j";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base Boolean containers exception-transformers gl lens linear text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [ base hspec lens ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion lens ];
+       description = "Typesafe functional GPU graphics programming";
+       license = lib.licenses.mit;
+     }) {};
+
   "GPipe-Examples" = callPackage
     ({ mkDerivation, base, GLUT, GPipe, GPipe-TextureLoad, haskell98
      , Vec, Vec-Transform
@@ -6941,6 +6933,35 @@ self: {
        broken = true;
      }) {};
 
+  "GPipe-GLFW4" = callPackage
+    ({ mkDerivation, async, base, containers, criterion
+     , exception-transformers, GLFW-b, GPipe-Core, hspec, hspec-discover
+     , JuicyPixels, lens, stm, transformers
+     }:
+     mkDerivation {
+       pname = "GPipe-GLFW4";
+       version = "2.0.0";
+       sha256 = "1bzbnn7ip5n01kd7nydlmmp5xbzhnfpfhhcmlx1l9qjwzj4zf708";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         async base containers GLFW-b GPipe-Core stm
+       ];
+       executableHaskellDepends = [
+         base exception-transformers GPipe-Core lens transformers
+       ];
+       testHaskellDepends = [
+         base exception-transformers GPipe-Core hspec lens transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base criterion GPipe-Core JuicyPixels
+       ];
+       description = "GLFW OpenGL context creation for GPipe";
+       license = lib.licenses.mit;
+     }) {};
+
   "GPipe-TextureLoad" = callPackage
     ({ mkDerivation, base, bitmap, GPipe, stb-image }:
      mkDerivation {
@@ -7806,8 +7827,6 @@ self: {
        ];
        description = "The Haskell/R mixed programming environment";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "HABQT" = callPackage
@@ -8962,8 +8981,8 @@ self: {
      }:
      mkDerivation {
        pname = "HPDF";
-       version = "1.5.2";
-       sha256 = "0mp3lbyyp6iykqrnviam46wb5aab24c1ncivxp5c2v5hg89a1jrm";
+       version = "1.5.3";
+       sha256 = "12h3gx9gikzz4fwf11zk1nwzbpwqzzyavjz8mr27scy3s94vw41r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -10836,8 +10855,8 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
      mkDerivation {
        pname = "HsOpenSSL";
-       version = "0.11.6";
-       sha256 = "1gkx6kk03ziz9wk6iwxcdpf1ig8a9whwv3yjbzmqrwkp7fh1wdrw";
+       version = "0.11.6.2";
+       sha256 = "160fpl2lcardzf4gy5dimhad69gvkkvnpp5nqbf8fcxzm4vgg76y";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring network time ];
        librarySystemDepends = [ openssl ];
@@ -10846,12 +10865,12 @@ self: {
        license = lib.licenses.publicDomain;
      }) {inherit (pkgs) openssl;};
 
-  "HsOpenSSL_0_11_6_2" = callPackage
+  "HsOpenSSL_0_11_7" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
      mkDerivation {
        pname = "HsOpenSSL";
-       version = "0.11.6.2";
-       sha256 = "160fpl2lcardzf4gy5dimhad69gvkkvnpp5nqbf8fcxzm4vgg76y";
+       version = "0.11.7";
+       sha256 = "0kji758bi8agcjvpbb3hpppv55qm9g2r02mamiv568zwmlkkxsm3";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring network time ];
        librarySystemDepends = [ openssl ];
@@ -11242,8 +11261,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "2.0.1";
-       sha256 = "0gkk20ngbfrr64w5szjhvlwlmali4xcx36iqa714cbxy6lpqy5cl";
+       version = "2.0.2";
+       sha256 = "0r712250lv8brgy3ysdyj41snl0qbsx9h0p853w8n1aif0fsnxkw";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -12375,40 +12394,6 @@ self: {
 
   "LambdaHack" = callPackage
     ({ mkDerivation, assert-failure, async, base, base-compat, binary
-     , bytestring, containers, deepseq, directory, enummapset, filepath
-     , ghc-compact, ghc-prim, hashable, hsini, keys, miniutter
-     , optparse-applicative, pretty-show, primitive, random, sdl2
-     , sdl2-ttf, stm, template-haskell, text, time, transformers
-     , unordered-containers, vector, vector-binary-instances, zlib
-     }:
-     mkDerivation {
-       pname = "LambdaHack";
-       version = "0.9.5.0";
-       sha256 = "1y5345cmwl40p0risziyqlxfa8jv1rm9x6ivv85xhznrsmr0406h";
-       revision = "1";
-       editedCabalFile = "0qaqfyg7a50yibshq63718iyi4z1v017fzp7kbwrnwqmkmdqfa5a";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         assert-failure async base base-compat binary bytestring containers
-         deepseq directory enummapset filepath ghc-compact ghc-prim hashable
-         hsini keys miniutter optparse-applicative pretty-show primitive
-         random sdl2 sdl2-ttf stm template-haskell text time transformers
-         unordered-containers vector vector-binary-instances zlib
-       ];
-       executableHaskellDepends = [
-         async base filepath optparse-applicative
-       ];
-       testHaskellDepends = [ async base filepath optparse-applicative ];
-       description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "LambdaHack_0_10_2_0" = callPackage
-    ({ mkDerivation, assert-failure, async, base, base-compat, binary
      , bytestring, containers, deepseq, directory, enummapset
      , file-embed, filepath, ghc-compact, ghc-prim, hashable, hsini
      , int-cast, keys, miniutter, open-browser, optparse-applicative
@@ -13868,21 +13853,6 @@ self: {
      }:
      mkDerivation {
        pname = "MonadRandom";
-       version = "0.5.2";
-       sha256 = "1rjihspfdg2b9bwvbgj36ql595nbza8ddh1bmgz924xmddshcf30";
-       libraryHaskellDepends = [
-         base mtl primitive random transformers transformers-compat
-       ];
-       description = "Random-number generation monad";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "MonadRandom_0_5_3" = callPackage
-    ({ mkDerivation, base, mtl, primitive, random, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "MonadRandom";
        version = "0.5.3";
        sha256 = "17qaw1gg42p9v6f87dj5vih7l88lddbyd8880ananj8avanls617";
        libraryHaskellDepends = [
@@ -13890,7 +13860,6 @@ self: {
        ];
        description = "Random-number generation monad";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "MonadRandomLazy" = callPackage
@@ -14519,8 +14488,8 @@ self: {
      }:
      mkDerivation {
        pname = "Network-NineP";
-       version = "0.4.7";
-       sha256 = "08r15aacvdx739w1nn1bmr0n8ygfjhqnj12zk6zchw1d50x65mi2";
+       version = "0.4.7.1";
+       sha256 = "0gjscwrm4qjz662819g3l7i989ykxg3cka82kp23j5d2fy2sn2mc";
        libraryHaskellDepends = [
          async base binary bytestring containers convertible exceptions
          hslogger monad-loops monad-peel mstate mtl network network-bsd
@@ -16461,8 +16430,6 @@ self: {
        ];
        description = "Quasiquotations for a python like interpolated string formater";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "QIO" = callPackage
@@ -18338,8 +18305,8 @@ self: {
      }:
      mkDerivation {
        pname = "ShellCheck";
-       version = "0.7.1";
-       sha256 = "06m4wh891nah3y0br4wh3adpsb16zawkb2ijgf1vcz61fznj6ps1";
+       version = "0.7.2";
+       sha256 = "0wl43njaq95l35y5mvipwp1db9vr551nz9wl0xy83j1x1kc38xgz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -19157,8 +19124,8 @@ self: {
     ({ mkDerivation, attoparsec, base, extra, mtl, mwc-random, text }:
      mkDerivation {
        pname = "Spintax";
-       version = "0.3.5";
-       sha256 = "1z5sv03h07bf8z6pzxsia9hgf879cmiqdajvx212dk47lysfnm8v";
+       version = "0.3.6";
+       sha256 = "000yprzvq72ia6wfk3hjarb8anx3wfm54rzpv8x7d2zf09pzxk6k";
        libraryHaskellDepends = [
          attoparsec base extra mtl mwc-random text
        ];
@@ -22101,8 +22068,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-Data";
-       version = "0.7.4.0";
-       sha256 = "1v0n0f96d5g1j6xw7d8w225r9qk9snjdfz7snq8pnmpjcna374jf";
+       version = "0.8.1.0";
+       sha256 = "19w5g5flsjnhjpvnmw7s8b5jg5nlpg0md99zgp3by8gjyigappc7";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq ghc-prim
@@ -22157,8 +22124,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-MessagePack";
-       version = "0.3.0.1";
-       sha256 = "1xn3by0fkn8w9akldfk2rrfk8ns2r64zxqadrcsgga7nv88q49am";
+       version = "0.4.0.1";
+       sha256 = "1i1ycf1bhahbh7d9rvz4hl5jq16mld8sya2h2xrxlvg9yqab19hy";
        libraryHaskellDepends = [
          base containers deepseq hashable integer-gmp primitive QuickCheck
          scientific tagged time unordered-containers Z-Data Z-IO
@@ -34751,12 +34718,12 @@ self: {
      , configurator, containers, cryptohash, hostname, http-client
      , http-client-tls, http-media, http-types, jwt, mtl, network
      , network-api-support, network-uri, snap, snap-core, split, text
-     , time, time-units, transformers, zlib
+     , time, time-units, transformers
      }:
      mkDerivation {
        pname = "atlassian-connect-core";
-       version = "0.8.1.0";
-       sha256 = "17xvqf2j77y8lqvl2k5a924yvjym4aqii6glwfs3rjvw6a08k9zp";
+       version = "0.8.2.0";
+       sha256 = "06wrbz8r4yc6spjrawqrdsc1nf3bc5nr40ssnrmyv00xzkhvjq2j";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson atlassian-connect-descriptor base base64-bytestring
@@ -34765,12 +34732,11 @@ self: {
          http-types jwt mtl network network-api-support network-uri snap
          snap-core split text time time-units transformers
        ];
-       libraryPkgconfigDepends = [ zlib ];
        description = "Atlassian Connect snaplet for the Snap Framework and helper code";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) zlib;};
+     }) {};
 
   "atlassian-connect-descriptor" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, cases, HUnit
@@ -39283,27 +39249,6 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47-orphans";
-       version = "0.1.0.2";
-       sha256 = "0rgr1p8dn54j432hfwg361dhsd4ngwvy3h8wx094m0kb6vjix9l6";
-       libraryHaskellDepends = [
-         base bcp47 cassava errors esqueleto hashable http-api-data
-         path-pieces persistent text
-       ];
-       testHaskellDepends = [
-         base bcp47 cassava hspec path-pieces persistent QuickCheck
-       ];
-       description = "BCP47 orphan instances";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "bcp47-orphans_0_1_0_3" = callPackage
-    ({ mkDerivation, base, bcp47, cassava, errors, esqueleto, hashable
-     , hspec, http-api-data, path-pieces, persistent, QuickCheck, text
-     }:
-     mkDerivation {
-       pname = "bcp47-orphans";
        version = "0.1.0.3";
        sha256 = "1dm65nq49zqbc6kxkh2kmsracc9a7vlbq4mpq60jh2wxgvzcfghm";
        libraryHaskellDepends = [
@@ -39962,20 +39907,6 @@ self: {
     ({ mkDerivation, base, bytestring, mtl, time }:
      mkDerivation {
        pname = "benchpress";
-       version = "0.2.2.15";
-       sha256 = "0bffchlwcyqgbnviqvm01lyj7zldvd3yj9yqnc8150lgxr29kvf9";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base mtl time ];
-       executableHaskellDepends = [ base bytestring time ];
-       description = "Micro-benchmarking with detailed statistics";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "benchpress_0_2_2_16" = callPackage
-    ({ mkDerivation, base, bytestring, mtl, time }:
-     mkDerivation {
-       pname = "benchpress";
        version = "0.2.2.16";
        sha256 = "0p8wxd7liz7ihqlqhk1l8z3hn7hc24qlf69ykxixp69jx479dkan";
        isLibrary = true;
@@ -39984,7 +39915,6 @@ self: {
        executableHaskellDepends = [ base bytestring time ];
        description = "Micro-benchmarking with detailed statistics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bencode" = callPackage
@@ -40195,8 +40125,8 @@ self: {
      }:
      mkDerivation {
        pname = "betris";
-       version = "0.2.0.0";
-       sha256 = "0d8qiiabcca7l57lkmmz5pn11y0jbksv08bzisfab588sbxd9vqr";
+       version = "0.2.1.0";
+       sha256 = "1vpj20hvr2nf3i8a2ijlxmfa1zqv3xwfp8krz4zjznhgjrb1nfpj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -42527,8 +42457,8 @@ self: {
      }:
      mkDerivation {
        pname = "birch-beer";
-       version = "0.3.1.1";
-       sha256 = "0v2202zrnli49z4vw4zc6cgxvfqrv51b6p0svp0fdd2f9add4rvm";
+       version = "0.4.1.0";
+       sha256 = "07l9y57if58047d54g52vhpk4372aj563brbds62c3fgb5wjpdc6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44563,8 +44493,8 @@ self: {
      }:
      mkDerivation {
        pname = "blucontrol";
-       version = "0.2.1.1";
-       sha256 = "087bk9fxjgavrprba7ffyb91jv7ms8k7mlq9s5963lkpdf5636n7";
+       version = "0.3.0.0";
+       sha256 = "0xh1qxfmrfjdsprl5m748j5z9w0qmww8gkj8lhghfskdzxhy0qic";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44760,6 +44690,21 @@ self: {
        license = "GPL";
      }) {};
 
+  "boardgame" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "boardgame";
+       version = "0.0.0.1";
+       sha256 = "0azbr123zykvjya60s8q3vdpsg2xvy5wn9py0dsi4ih039s7jg64";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers ];
+       executableHaskellDepends = [ base containers ];
+       testHaskellDepends = [ base ];
+       description = "Modeling boardgames";
+       license = lib.licenses.mit;
+     }) {};
+
   "bogocopy" = callPackage
     ({ mkDerivation, base, directory, filemanip, filepath
      , optparse-applicative, shelly, text, transformers, unix
@@ -45428,26 +45373,6 @@ self: {
      }) {};
 
   "boring" = callPackage
-    ({ mkDerivation, adjunctions, base, base-compat, bin, constraints
-     , dec, fin, generics-sop, ral, singleton-bool, streams, tagged
-     , transformers, transformers-compat, vec
-     }:
-     mkDerivation {
-       pname = "boring";
-       version = "0.1.3";
-       sha256 = "1fljlkzc5016xbq9jykh0wr1mbyfcikh818pp54djws5vm66hh6d";
-       revision = "2";
-       editedCabalFile = "031vricyy2m7hg2hk3bj64lsz55k9qh36s2yfh09pgsfykr883ag";
-       libraryHaskellDepends = [
-         adjunctions base base-compat bin constraints dec fin generics-sop
-         ral singleton-bool streams tagged transformers transformers-compat
-         vec
-       ];
-       description = "Boring and Absurd types";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "boring_0_2" = callPackage
     ({ mkDerivation, base, tagged, transformers }:
      mkDerivation {
        pname = "boring";
@@ -45456,7 +45381,6 @@ self: {
        libraryHaskellDepends = [ base tagged transformers ];
        description = "Boring and Absurd types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "boring-game" = callPackage
@@ -45990,34 +45914,6 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.60.2";
-       sha256 = "1fcpbm58fikqv94cl97p6bzhyq07kkp3zppylqwpil2qzfhvzb3i";
-       revision = "1";
-       editedCabalFile = "0jm3f0f9hyl6pn92d74shm33v93pyjj20x2axp5y9jgkf1ynnbc8";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring config-ini containers contravariant data-clist
-         deepseq directory dlist exceptions filepath microlens microlens-mtl
-         microlens-th stm template-haskell text text-zipper transformers
-         unix vector vty word-wrap
-       ];
-       testHaskellDepends = [
-         base containers microlens QuickCheck vector
-       ];
-       description = "A declarative terminal user interface library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "brick_0_61" = callPackage
-    ({ mkDerivation, base, bytestring, config-ini, containers
-     , contravariant, data-clist, deepseq, directory, dlist, exceptions
-     , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
-     , template-haskell, text, text-zipper, transformers, unix, vector
-     , vty, word-wrap
-     }:
-     mkDerivation {
-       pname = "brick";
        version = "0.61";
        sha256 = "0cwrsndplgw5226cpdf7aad03jjidqh5wwwgm75anmya7c5lzl2d";
        isLibrary = true;
@@ -46033,7 +45929,6 @@ self: {
        ];
        description = "A declarative terminal user interface library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "brick-dropdownmenu" = callPackage
@@ -50521,8 +50416,8 @@ self: {
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.27.0";
-       sha256 = "1aslkqv8j5zq3pznlw4ga32gz8w29xd365rcjw3xbdj4cygpix40";
+       version = "0.1.28.4";
+       sha256 = "07ibhr3xngpwl7pq9ykbf6pxzlp8yx49d0qrlhyn7hj5xbswkv3f";
        libraryHaskellDepends = [
          aeson async base bytestring colour concurrent-extra connection
          containers data-default-class data-flags deepseq deque df1 di-core
@@ -52322,6 +52217,17 @@ self: {
        broken = true;
      }) {};
 
+  "catalyst" = callPackage
+    ({ mkDerivation, base, profunctors }:
+     mkDerivation {
+       pname = "catalyst";
+       version = "0.0.0.1";
+       sha256 = "04vp18pblx88djjdiidhg2i52rry08kx43zzvf7nfap46zv51a6a";
+       libraryHaskellDepends = [ base profunctors ];
+       description = "A Category typeclass hierarchy powerful enough to encode full programs";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "catamorphism" = callPackage
     ({ mkDerivation, base, hspec, QuickCheck, template-haskell }:
      mkDerivation {
@@ -52550,8 +52456,8 @@ self: {
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.14";
-       sha256 = "1hczhvqqpx8kqg90h5qb2vjindn4crxmq6lwbj8ix45fnkijv4xg";
+       version = "0.4.15";
+       sha256 = "18kr88g4dlzg1ny0v3ql5yc07s0xsgbgszc69hf583d9c196lzib";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -52629,30 +52535,6 @@ self: {
      }:
      mkDerivation {
        pname = "cborg";
-       version = "0.2.4.0";
-       sha256 = "0zrn75jx3lprdagl99r88jfhccalw783fn9jjk9zhy50zypkibil";
-       libraryHaskellDepends = [
-         array base bytestring containers deepseq ghc-prim half integer-gmp
-         primitive text
-       ];
-       testHaskellDepends = [
-         aeson array base base-orphans base16-bytestring base64-bytestring
-         bytestring deepseq half QuickCheck random scientific tasty
-         tasty-hunit tasty-quickcheck text vector
-       ];
-       description = "Concise Binary Object Representation (CBOR)";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "cborg_0_2_5_0" = callPackage
-    ({ mkDerivation, aeson, array, base, base-orphans
-     , base16-bytestring, base64-bytestring, bytestring, containers
-     , deepseq, ghc-prim, half, integer-gmp, primitive, QuickCheck
-     , random, scientific, tasty, tasty-hunit, tasty-quickcheck, text
-     , vector
-     }:
-     mkDerivation {
-       pname = "cborg";
        version = "0.2.5.0";
        sha256 = "08da498bpbnl5c919m45mjm7sr78nn6qs7xyl0smfgd06wwm65xf";
        libraryHaskellDepends = [
@@ -52666,7 +52548,6 @@ self: {
        ];
        description = "Concise Binary Object Representation (CBOR)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cborg-json" = callPackage
@@ -53884,10 +53765,8 @@ self: {
      }:
      mkDerivation {
        pname = "chassis";
-       version = "0.0.4.0";
-       sha256 = "1mvi7h6pp1j3x4yccqy962f8d3gbm4sj5fvnfwxygnxqqhmy1dvk";
-       revision = "1";
-       editedCabalFile = "15pncz2x3llb2sg2x4as4r0wbx528dvlp0gvc2rl9y9dxhv89d9h";
+       version = "0.0.5.0";
+       sha256 = "0f9iipl7l9jhi6754yysk9kkliiab60ds95k8r4gjcch3hh4zbcj";
        libraryHaskellDepends = [
          base bytestring comonad composite-base containers contravariant
          distributive either exceptions extra first-class-families path
@@ -56708,8 +56587,8 @@ self: {
      }:
      mkDerivation {
        pname = "cli-extras";
-       version = "0.1.0.1";
-       sha256 = "1fggrnhdbr2ialdd93d0m81b85izs1gvcs8bkmwm8wdxgw4v7hsi";
+       version = "0.1.0.2";
+       sha256 = "1qcvphbimcclvy7qkqrz9djg4650axwqjfyq6nlbvmpivh14m9vq";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring containers exceptions
          io-streams lens logging-effect monad-logger monad-loops mtl process
@@ -56727,8 +56606,8 @@ self: {
      }:
      mkDerivation {
        pname = "cli-git";
-       version = "0.1.0.1";
-       sha256 = "0jchv1j7dgay6xzny9rinsybavs4ggk93450cka6sp7015z06ysr";
+       version = "0.1.0.2";
+       sha256 = "08gjhg2bc8i9i1clpxp5bzk4sp4izfbhjqmbmfmqqzv6ci0p5fxx";
        libraryHaskellDepends = [
          base cli-extras containers data-default exceptions lens
          logging-effect megaparsec mtl text
@@ -57208,8 +57087,8 @@ self: {
      }:
      mkDerivation {
        pname = "closed-intervals";
-       version = "0.1.0.0";
-       sha256 = "1k8kbqh6w7cj7qkmzvh47v9zrpf5y465lj6fzq7vk71bq0dy59vm";
+       version = "0.1.0.1";
+       sha256 = "19vmiwwzv9g4nl1mzkqc7r9bw67n9y7kk3v0jc2vc8yjzrmqgy7v";
        libraryHaskellDepends = [ base containers time ];
        testHaskellDepends = [
          base containers doctest-exitcode-stdio doctest-lib QuickCheck time
@@ -58427,8 +58306,8 @@ self: {
        pname = "codeworld-api";
        version = "0.7.0";
        sha256 = "1l1w4mrw4b2njz4kmfvd94mlwn776vryy1y9x9cb3r69fw5qy2f3";
-       revision = "1";
-       editedCabalFile = "18npi0idydgzc59a5xvlch8kpkkwn0xfi6f95i3cnzy1h1q52grr";
+       revision = "4";
+       editedCabalFile = "06qa2djbzfdwlvgbr2k8667fipyrkdvp8a1vac75fla99pdwp7yi";
        libraryHaskellDepends = [
          aeson base base64-bytestring blank-canvas bytestring cereal
          cereal-text containers deepseq dependent-sum ghc-prim hashable
@@ -60396,8 +60275,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.7.4.0";
-       sha256 = "1k8m89cff8b3yc1af0l9vd13pav2hjy51gcadahn07zpwv1bszfj";
+       version = "0.7.5.0";
+       sha256 = "0cxsjk3zwkhwb3bgq2ji1mvvapcwxzg333z7zfdv9ba3xgw3ngq0";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -60433,8 +60312,8 @@ self: {
     ({ mkDerivation, base, composite-aeson, path }:
      mkDerivation {
        pname = "composite-aeson-path";
-       version = "0.7.4.0";
-       sha256 = "08p988iq7y76px61dlj5jq35drmnrf4khi27wpqgh3pg9d96yihx";
+       version = "0.7.5.0";
+       sha256 = "0b013jpdansx6fmxq1sf33975vvnajhs870a92i1lwd2k2wsj600";
        libraryHaskellDepends = [ base composite-aeson path ];
        description = "Formatting data for the path library";
        license = lib.licenses.bsd3;
@@ -60446,8 +60325,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.7.4.0";
-       sha256 = "049lrm5iip5y3c9m9x4sjangaigdprj1553sw2vrcvnvn8xfq57s";
+       version = "0.7.5.0";
+       sha256 = "05iakig5cqy4zkfl1kvjf9ck7gw5m7bdlcwwnv0kc5znyj66fbif";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -60491,8 +60370,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.7.4.0";
-       sha256 = "1ml1y1zh8znvaqydwcnv8n69rzmx7zy2bpzr65gy79xbczz3dxwz";
+       version = "0.7.5.0";
+       sha256 = "12qaxm20kn2cf6d19xargxfg8jrvb5ix0glm3ba0641plxlssqrq";
        libraryHaskellDepends = [
          base deepseq exceptions lens monad-control mtl profunctors
          template-haskell text transformers transformers-base unliftio-core
@@ -60511,8 +60390,8 @@ self: {
     ({ mkDerivation, base, binary, composite-base }:
      mkDerivation {
        pname = "composite-binary";
-       version = "0.7.4.0";
-       sha256 = "07d88krkpplprnw57j4bqi71p8bmj0wz28yw41wgl2p5g2h7zccp";
+       version = "0.7.5.0";
+       sha256 = "0pvmmb4m6ysgj468khmggvsgs5c0hjmcn46s0wam353abdw89i7m";
        libraryHaskellDepends = [ base binary composite-base ];
        description = "Orphan binary instances";
        license = lib.licenses.bsd3;
@@ -60523,8 +60402,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.7.4.0";
-       sha256 = "0y8wnp6n1fvqfrkm1lqv8pdfq7a4k7gaxl3i9dh6xfzyamlghg82";
+       version = "0.7.5.0";
+       sha256 = "00a689laq9a2wyq33vvpw7l69wsw9g6d5jzmrsizwqld6a4wdicv";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -60536,8 +60415,8 @@ self: {
     ({ mkDerivation, base, composite-base, hashable }:
      mkDerivation {
        pname = "composite-hashable";
-       version = "0.7.4.0";
-       sha256 = "0zwv6m9nzz0g3ngmfznxh6wmprhcgdbfxrsgylnr6990ppk0bmg1";
+       version = "0.7.5.0";
+       sha256 = "1s4bnlr08fb1sszys1frkxrjrsi61jpcldh126mcwzlf6wlvqvjn";
        libraryHaskellDepends = [ base composite-base hashable ];
        description = "Orphan hashable instances";
        license = lib.licenses.bsd3;
@@ -60550,8 +60429,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.7.4.0";
-       sha256 = "0nzyslqgh7m9ryqw4rajq2m4kfknqzdq0aqnygyz0sblmgixn4hm";
+       version = "0.7.5.0";
+       sha256 = "1qmlhn1lj2l5qpykxdg23axvxwn8l2pvzvwqn261rj21qj90k093";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -60574,8 +60453,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.7.4.0";
-       sha256 = "0a7pcs06m0w0mq60y3hhgn4a36gx5daypc1nh1ndsm6x3q3d99q8";
+       version = "0.7.5.0";
+       sha256 = "1b6bcw7gq2smghp7mnkh9gymn3mh4b1xxkv97zhxjsb91wnmvyml";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -60616,21 +60495,10 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "composition";
-       version = "1.0.2.1";
-       sha256 = "0smdyzcnfwiab1wnazmk4szali1ckh7dqcdp9vn7qnnabq7k08vi";
-       description = "Combinators for unorthodox function composition";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "composition_1_0_2_2" = callPackage
-    ({ mkDerivation }:
-     mkDerivation {
-       pname = "composition";
        version = "1.0.2.2";
        sha256 = "0bnl8kmaqbjnznqgnjj2gr2qygln6y6493prk0anpd8zdylzf2xm";
        description = "Combinators for unorthodox function composition";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "composition-extra" = callPackage
@@ -65270,7 +65138,7 @@ self: {
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) python3;};
+     }) {python3 = null;};
 
   "cql" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, Decimal
@@ -70626,24 +70494,6 @@ self: {
 
   "data-serializer" = callPackage
     ({ mkDerivation, base, binary, bytestring, cereal, data-endian
-     , parsers, semigroups, split, tasty, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "data-serializer";
-       version = "0.3.4.1";
-       sha256 = "1md6zkv1yqxmyca6mljw8y5g3xaqz3g087qd49qpi94w0x1lqgnk";
-       libraryHaskellDepends = [
-         base binary bytestring cereal data-endian parsers semigroups split
-       ];
-       testHaskellDepends = [
-         base binary bytestring cereal tasty tasty-quickcheck
-       ];
-       description = "Common API for serialization libraries";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "data-serializer_0_3_5" = callPackage
-    ({ mkDerivation, base, binary, bytestring, cereal, data-endian
      , parsers, split, tasty, tasty-quickcheck
      }:
      mkDerivation {
@@ -70658,7 +70508,6 @@ self: {
        ];
        description = "Common API for serialization libraries";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "data-size" = callPackage
@@ -72603,6 +72452,29 @@ self: {
        broken = true;
      }) {};
 
+  "deepl" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cmdargs, foldl, lens
+     , lens-aeson, protolude, resourcet, streaming, streaming-bytestring
+     , wreq
+     }:
+     mkDerivation {
+       pname = "deepl";
+       version = "0.1.0.1";
+       sha256 = "042xkvfs3ny0gchk0a1l427hg6sd5dngw43sdwzp6c1k969s4cda";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cmdargs foldl lens lens-aeson protolude
+         resourcet streaming streaming-bytestring wreq
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring cmdargs foldl lens lens-aeson protolude
+         resourcet streaming streaming-bytestring wreq
+       ];
+       description = "Call DeepL to translate you files";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "deeplearning-hs" = callPackage
     ({ mkDerivation, accelerate, base, mtl, QuickCheck, repa
      , repa-algorithms, test-framework, test-framework-quickcheck2
@@ -73319,8 +73191,8 @@ self: {
      }:
      mkDerivation {
        pname = "dependent-monoidal-map";
-       version = "0.1.1.1";
-       sha256 = "0i3zgngcdli6hw09h985ca4n7l9cpsrxalbhg8lbq32hwh7dim89";
+       version = "0.1.1.2";
+       sha256 = "11qcrxji3lvq4blzh1qk9wkhhzjkvz3maxfv63zgby98dpmkxa2x";
        libraryHaskellDepends = [
          aeson base constraints constraints-extras dependent-map
          dependent-sum dependent-sum-aeson-orphans
@@ -73375,8 +73247,8 @@ self: {
      }:
      mkDerivation {
        pname = "dependent-sum-aeson-orphans";
-       version = "0.3.0.0";
-       sha256 = "1wpjrynv9zva3hw1wgmqd5pmhhpa491yh85p1dnbpkj7h0g1pl1a";
+       version = "0.3.1.0";
+       sha256 = "1psjd7va8k53vq9kh4pclsf27798mc1ggk1csjk39c8d97vm41qz";
        libraryHaskellDepends = [
          aeson base constraints constraints-extras dependent-map
          dependent-sum some
@@ -73450,8 +73322,8 @@ self: {
      }:
      mkDerivation {
        pname = "depq";
-       version = "0.4.1.0";
-       sha256 = "1rlbz9x34209zn44pn1xr9hnjv8ig47yq0p940wkblg55fy4lxcy";
+       version = "0.4.2";
+       sha256 = "18q953cr93qwjdblr06w8z4ryijzlz7j48hff4xwrdc3yrqk351l";
        libraryHaskellDepends = [
          base containers deepseq psqueues QuickCheck
        ];
@@ -78044,8 +77916,8 @@ self: {
      }:
      mkDerivation {
        pname = "dl-fedora";
-       version = "0.7.6";
-       sha256 = "03npp2cq1259w590am87v0r4q48pfjq2zb2b04hymlr6hi3a8xw5";
+       version = "0.8";
+       sha256 = "1pd0cslszd9srr9bpcxzrm84cnk5r78xs79ig32528z0anc5ghcr";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -78053,27 +77925,29 @@ self: {
          optparse-applicative regex-posix simple-cmd simple-cmd-args text
          time unix xdg-userdirs
        ];
+       testHaskellDepends = [ base simple-cmd ];
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
-  "dl-fedora_0_8" = callPackage
+  "dl-fedora_0_9" = callPackage
     ({ mkDerivation, base, bytestring, directory, extra, filepath
-     , http-directory, http-types, optparse-applicative, regex-posix
-     , simple-cmd, simple-cmd-args, text, time, unix, xdg-userdirs
+     , http-client, http-client-tls, http-directory, http-types
+     , optparse-applicative, regex-posix, simple-cmd, simple-cmd-args
+     , text, time, unix, xdg-userdirs
      }:
      mkDerivation {
        pname = "dl-fedora";
-       version = "0.8";
-       sha256 = "1pd0cslszd9srr9bpcxzrm84cnk5r78xs79ig32528z0anc5ghcr";
+       version = "0.9";
+       sha256 = "17khlv65irp1bdr7j0njlh1sgvr1nhi5xfvdiklhjr7vm6vhmipd";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring directory extra filepath http-directory http-types
-         optparse-applicative regex-posix simple-cmd simple-cmd-args text
-         time unix xdg-userdirs
+         base bytestring directory extra filepath http-client
+         http-client-tls http-directory http-types optparse-applicative
+         regex-posix simple-cmd simple-cmd-args text time unix xdg-userdirs
        ];
        testHaskellDepends = [ base simple-cmd ];
        description = "Fedora image download tool";
@@ -78601,8 +78475,8 @@ self: {
      }:
      mkDerivation {
        pname = "docker";
-       version = "0.6.0.4";
-       sha256 = "07j1c526gazy0kw98iklac767jhslhx9mcnzjazmwqsgyj8n217f";
+       version = "0.6.0.5";
+       sha256 = "1y7vs9s17gwls8f223b4vkwvwflyxr7spslccr9izlf4cblj216d";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit conduit-combinators
          conduit-extra containers data-default-class directory exceptions
@@ -80663,8 +80537,10 @@ self: {
      }:
      mkDerivation {
        pname = "duckling";
-       version = "0.1.6.1";
-       sha256 = "0lvvp13f5zcnf3cnl40avnfh3mgj304d5qfw08mbnwqz1bqp94xy";
+       version = "0.2.0.0";
+       sha256 = "0hr3dwfksi04is2wqykfx04da40sa85147fnfnmazw5czd20xwya";
+       revision = "1";
+       editedCabalFile = "19ml7s7p79y822b7bk9hlxg3c3p6gsklamzysv6pcdpf917cvgl4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -80681,8 +80557,7 @@ self: {
          aeson base tasty tasty-hunit text time unordered-containers
        ];
        description = "A Haskell library for parsing text into structured data";
-       license = "unknown";
-       hydraPlatforms = lib.platforms.none;
+       license = lib.licenses.bsd3;
      }) {};
 
   "duet" = callPackage
@@ -84996,6 +84871,8 @@ self: {
        pname = "envy";
        version = "2.1.0.0";
        sha256 = "0s6jp2npnp0x5hndnhkjwc9bhdghzlpl0n38804afiwxai9bawy8";
+       revision = "1";
+       editedCabalFile = "1girkgynrr5md1fa892cpg2cyy21hs5g463p5rb0fkhsnvci52xm";
        libraryHaskellDepends = [
          base bytestring containers mtl text time transformers
        ];
@@ -85075,20 +84952,18 @@ self: {
      }) {};
 
   "epi-sim" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cassava, hspec
-     , mwc-random, primitive, statistics, trifecta, vector
+    ({ mkDerivation, aeson, base, bytestring, hspec, mwc-random
+     , primitive, statistics, vector
      }:
      mkDerivation {
        pname = "epi-sim";
-       version = "0.2.2.0";
-       sha256 = "17pri7fynx5zi6hacglv2xww41837nrq0d355pv7rkvmqz5f8y3a";
+       version = "0.4.2";
+       sha256 = "0hwamynf66abhnipjdb292zpsf80hafpjjdv0yfq712qgjb9mgvp";
        libraryHaskellDepends = [
-         aeson base bytestring cassava hspec mwc-random primitive statistics
-         trifecta vector
+         aeson base bytestring hspec mwc-random primitive statistics vector
        ];
        testHaskellDepends = [
-         aeson base bytestring cassava hspec mwc-random primitive statistics
-         trifecta vector
+         aeson base bytestring hspec mwc-random primitive statistics vector
        ];
        description = "A library for simulating epidemics as birth-death processes";
        license = lib.licenses.mit;
@@ -85468,15 +85343,19 @@ self: {
      }) {};
 
   "errata" = callPackage
-    ({ mkDerivation, base, containers, text }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover
+     , hspec-golden, text
+     }:
      mkDerivation {
        pname = "errata";
-       version = "0.2.0.0";
-       sha256 = "14yg0zh7lawjdqpzw7qiwi0c41zqhbvijxxxba319mij5skmmr4k";
+       version = "0.3.0.0";
+       sha256 = "1m83lp3h2lxqkx0d17kplmwp0ngh3yn79k7yza4jkny0c4xv0ijy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers text ];
        executableHaskellDepends = [ base containers text ];
+       testHaskellDepends = [ base containers hspec hspec-golden text ];
+       testToolDepends = [ hspec-discover ];
        description = "Source code error pretty printing";
        license = lib.licenses.mit;
      }) {};
@@ -86021,30 +85900,6 @@ self: {
      }:
      mkDerivation {
        pname = "essence-of-live-coding";
-       version = "0.2.4";
-       sha256 = "04rbbq58ska6qldah0d7s8kdn5hkxka7bap7ca1wksbwbkph6qj1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers foreign-store syb time transformers vector-sized
-       ];
-       executableHaskellDepends = [ base transformers ];
-       testHaskellDepends = [
-         base containers mtl QuickCheck syb test-framework
-         test-framework-quickcheck2 transformers
-       ];
-       description = "General purpose live coding framework";
-       license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
-     }) {};
-
-  "essence-of-live-coding_0_2_5" = callPackage
-    ({ mkDerivation, base, containers, foreign-store, mtl, QuickCheck
-     , syb, test-framework, test-framework-quickcheck2, time
-     , transformers, vector-sized
-     }:
-     mkDerivation {
-       pname = "essence-of-live-coding";
        version = "0.2.5";
        sha256 = "1ggb69h9fx8vdw6ijkisjyg6hbmi2wdvssil81xxapkj1yhgvvzr";
        isLibrary = true;
@@ -86059,7 +85914,6 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
@@ -86069,22 +85923,6 @@ self: {
      }:
      mkDerivation {
        pname = "essence-of-live-coding-gloss";
-       version = "0.2.4";
-       sha256 = "11hnzax39g7yaqwaaxi3niipamd65mcrdi431fxrspkhgcm1nx2y";
-       libraryHaskellDepends = [
-         base essence-of-live-coding foreign-store gloss syb transformers
-       ];
-       description = "General purpose live coding framework - Gloss backend";
-       license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
-     }) {};
-
-  "essence-of-live-coding-gloss_0_2_5" = callPackage
-    ({ mkDerivation, base, essence-of-live-coding, foreign-store, gloss
-     , syb, transformers
-     }:
-     mkDerivation {
-       pname = "essence-of-live-coding-gloss";
        version = "0.2.5";
        sha256 = "1xa1m1ih625614zd1xn2qbz5hmx45gkv2ssksmwck8jxjbslpspv";
        libraryHaskellDepends = [
@@ -86092,7 +85930,6 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
@@ -86120,22 +85957,6 @@ self: {
      }:
      mkDerivation {
        pname = "essence-of-live-coding-pulse";
-       version = "0.2.4";
-       sha256 = "0lhnq85bi22mwnw4fcg9hzr18mdifxlr833pwsc7ch401y2mf1kz";
-       libraryHaskellDepends = [
-         base essence-of-live-coding foreign-store pulse-simple transformers
-       ];
-       description = "General purpose live coding framework - pulse backend";
-       license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
-     }) {};
-
-  "essence-of-live-coding-pulse_0_2_5" = callPackage
-    ({ mkDerivation, base, essence-of-live-coding, foreign-store
-     , pulse-simple, transformers
-     }:
-     mkDerivation {
-       pname = "essence-of-live-coding-pulse";
        version = "0.2.5";
        sha256 = "0m2gjzsc6jw860kj5a1k6qrn0xs1zx4snsnq4d9gx1k3lrfqgh0q";
        libraryHaskellDepends = [
@@ -86143,7 +85964,6 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
@@ -86171,23 +85991,6 @@ self: {
      }:
      mkDerivation {
        pname = "essence-of-live-coding-quickcheck";
-       version = "0.2.4";
-       sha256 = "1ic2wvk4fc7jb6dkfy6fypmyw7hfbn79m51gn4z4c35ddhsfpngd";
-       libraryHaskellDepends = [
-         base boltzmann-samplers essence-of-live-coding QuickCheck syb
-         transformers
-       ];
-       description = "General purpose live coding framework - QuickCheck integration";
-       license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
-     }) {};
-
-  "essence-of-live-coding-quickcheck_0_2_5" = callPackage
-    ({ mkDerivation, base, boltzmann-samplers, essence-of-live-coding
-     , QuickCheck, syb, transformers
-     }:
-     mkDerivation {
-       pname = "essence-of-live-coding-quickcheck";
        version = "0.2.5";
        sha256 = "07qw6jyk1vbr85pj9shp9cgpav4g2bc11rnzav39n79jn1vp826m";
        libraryHaskellDepends = [
@@ -86196,7 +85999,6 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
@@ -88364,8 +88166,8 @@ self: {
     ({ mkDerivation, base, containers, fgl, mtl, transformers }:
      mkDerivation {
        pname = "exploring-interpreters";
-       version = "0.3.0.0";
-       sha256 = "0h39si80s4q4n6599qj95z19jy3yc0101pphm4apvalm6wmppgpz";
+       version = "0.3.1.0";
+       sha256 = "0765nfr65lphp768j3snzpqpz6f4nrmkvsb6ishflhnxnp99xgyz";
        libraryHaskellDepends = [ base containers fgl mtl transformers ];
        description = "A generic exploring interpreter for exploratory programming";
        license = lib.licenses.bsd3;
@@ -88397,8 +88199,8 @@ self: {
     ({ mkDerivation, base, leancheck, template-haskell }:
      mkDerivation {
        pname = "express";
-       version = "0.1.3";
-       sha256 = "09g7i6x553gv5jkhbn5ffsrxznx8g4b3fcn1gibwyh380pbss8x1";
+       version = "0.1.4";
+       sha256 = "0rhrlynb950n2c79s3gz0vyd6b34crlhzlva0w91qbzn9dpfrays";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base leancheck ];
        benchmarkHaskellDepends = [ base leancheck ];
@@ -88557,12 +88359,12 @@ self: {
      }) {};
 
   "extended-containers" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck, transformers, vector }:
+    ({ mkDerivation, base, deepseq, hspec, primitive, QuickCheck }:
      mkDerivation {
        pname = "extended-containers";
-       version = "0.1.0.0";
-       sha256 = "04m3i90iljx36yc528yz6dcgcrfvzkvjvghqjp741mqvmixdjsip";
-       libraryHaskellDepends = [ base transformers vector ];
+       version = "0.1.1.0";
+       sha256 = "1fiwhfnwr8m0fnivfx4vmpdzmmglk82xc0x7djavz48mfsz1x459";
+       libraryHaskellDepends = [ base deepseq primitive ];
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Heap and Vector container types";
        license = lib.licenses.bsd3;
@@ -92208,6 +92010,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "finite-fields" = callPackage
+    ({ mkDerivation, base, Cabal, containers, directory, filepath
+     , QuickCheck, random, tasty, tasty-quickcheck, vector
+     }:
+     mkDerivation {
+       pname = "finite-fields";
+       version = "0.2";
+       sha256 = "158qc6q8ppisjxhipcvfjha8iklg0x6jpf0cb8wgsz2456wzm2s8";
+       setupHaskellDepends = [ base Cabal directory filepath ];
+       libraryHaskellDepends = [ base containers random vector ];
+       testHaskellDepends = [
+         base containers QuickCheck random tasty tasty-quickcheck
+       ];
+       description = "Arithmetic in finite fields";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "finite-typelits" = callPackage
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
@@ -92564,8 +92383,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-length";
-       version = "0.2.2";
-       sha256 = "1bx46n11k9dpr5hhfhxiwdd5npaqf9xwvqvjd0nlbylfmsmgd14y";
+       version = "0.2.2.1";
+       sha256 = "123iyy1id86h0j45jyc9jiz24hvjw7j3l57iv80b57gv4hd8a6q7";
        libraryHaskellDepends = [
          base non-empty storable-record tfp utility-ht
        ];
@@ -93042,22 +92861,6 @@ self: {
      }:
      mkDerivation {
        pname = "flags-applicative";
-       version = "0.1.0.2";
-       sha256 = "192yghdmylynn57l22ahb6dhrbl590dxmv2cdn755r22v7dbhsgf";
-       libraryHaskellDepends = [
-         base casing containers mtl network text
-       ];
-       testHaskellDepends = [ base containers hspec text ];
-       description = "Applicative flag parsing";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "flags-applicative_0_1_0_3" = callPackage
-    ({ mkDerivation, base, casing, containers, hspec, mtl, network
-     , text
-     }:
-     mkDerivation {
-       pname = "flags-applicative";
        version = "0.1.0.3";
        sha256 = "0sgla62999s9g5a2ckl70nbqi678pqq3zqad7jbm9p0kdm9yn5z3";
        libraryHaskellDepends = [
@@ -93066,7 +92869,6 @@ self: {
        testHaskellDepends = [ base containers hspec text ];
        description = "Applicative flag parsing";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "flamethrower" = callPackage
@@ -94857,8 +94659,8 @@ self: {
      }:
      mkDerivation {
        pname = "forex2ledger";
-       version = "1.0.0.0";
-       sha256 = "0rsaw9l3653kfp3hfszdyq7xqfmr38xwvlwk7mdr7sqhqs2xxbaq";
+       version = "1.0.0.1";
+       sha256 = "0v6adrl9c9vjpf4gm8x729qxq7yl84bfbiawmdpks2jzdckxvgdb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97047,17 +96849,21 @@ self: {
      }) {};
 
   "ftdi" = callPackage
-    ({ mkDerivation, base, base-unicode-symbols, bytestring, safe
-     , transformers, usb
+    ({ mkDerivation, async, base, base-unicode-symbols, bytestring
+     , generic-random, QuickCheck, random, tagged, test-framework
+     , test-framework-quickcheck2, transformers, usb, vector
      }:
      mkDerivation {
        pname = "ftdi";
-       version = "0.2.0.1";
-       sha256 = "1gnfbngn3jwva6nvrcrzmi2n2vy4k55yh41zvg0kyb61w7kgm4m8";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.0.0";
+       sha256 = "1yhcpd9jzhmvlmhidyv70s5mvakq6jn9lb3zh132lrqsrirbmpx8";
        libraryHaskellDepends = [
-         base base-unicode-symbols bytestring safe transformers usb
+         async base base-unicode-symbols bytestring transformers usb vector
+       ];
+       testHaskellDepends = [
+         base base-unicode-symbols bytestring generic-random QuickCheck
+         random tagged test-framework test-framework-quickcheck2
+         transformers usb vector
        ];
        description = "A thin layer over USB to communicate with FTDI chips";
        license = lib.licenses.bsd3;
@@ -98054,6 +97860,8 @@ self: {
        pname = "futhark";
        version = "0.19.4";
        sha256 = "1d4704pmknv39yw2bjxkp5n2wl9a14n3pn221m3src5z237lchq7";
+       revision = "1";
+       editedCabalFile = "1d8vwgdvj1dib7l4a3lhn03ri2mbnm57wnd3pki6m7y8sr3xk730";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98264,16 +98072,18 @@ self: {
      }) {};
 
   "fuzzyfind" = callPackage
-    ({ mkDerivation, base, containers, criterion, deepseq, massiv, text
+    ({ mkDerivation, base, containers, criterion, deepseq, hspec
+     , massiv, QuickCheck, text
      }:
      mkDerivation {
        pname = "fuzzyfind";
-       version = "2.1.0";
-       sha256 = "0ah7kdbr2w0l06b28nprndx09fkdh5wk5sgl5gfb1f5iy090b8k1";
+       version = "3.0.0";
+       sha256 = "0vkjqgsa0qv8sz4bwwi49zf17fl23vckwvmr1agsd20rbhw4ivyr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers massiv text ];
        executableHaskellDepends = [ base criterion deepseq ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
        description = "Fuzzy text matching";
        license = lib.licenses.mit;
      }) {};
@@ -98634,8 +98444,8 @@ self: {
      }:
      mkDerivation {
        pname = "gamgee";
-       version = "1.2.1";
-       sha256 = "0kfaqxwnrpp9g6iz6s33b7lngw00l8n9bv9ssvw73dhh3r0rsj2b";
+       version = "1.2.2";
+       sha256 = "13mkdva9mchp48c5rc55c9h2l6iyc6phs46ncvy2053r1p8j31ki";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98896,8 +98706,10 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "gc";
-       version = "0.0.3";
-       sha256 = "0cql0csrwqddpw28qmpr47mcnszmdc2szwvbnardr86pmjhvgwph";
+       version = "0.1";
+       sha256 = "1k8gda9hs0xl19hyl81ysshs32sxp5w50h3kq7id6yqvkfvyii5p";
+       revision = "1";
+       editedCabalFile = "0b5ry13gcrg9lxhn4crv911z6ibfm9ha2y942s455hw1pxkw279i";
        libraryHaskellDepends = [ base ];
        description = "Poor Richard's Memory Manager";
        license = lib.licenses.bsd3;
@@ -99819,24 +99631,6 @@ self: {
      }:
      mkDerivation {
        pname = "generic-lens";
-       version = "2.0.0.0";
-       sha256 = "0fh9095qiqlym0s6w0zkmybn7hyywgy964fhg95x0vprpmfya5mq";
-       libraryHaskellDepends = [
-         base generic-lens-core profunctors text
-       ];
-       testHaskellDepends = [
-         base doctest HUnit inspection-testing lens profunctors
-       ];
-       description = "Generically derive traversals, lenses and prisms";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "generic-lens_2_1_0_0" = callPackage
-    ({ mkDerivation, base, doctest, generic-lens-core, HUnit
-     , inspection-testing, lens, profunctors, text
-     }:
-     mkDerivation {
-       pname = "generic-lens";
        version = "2.1.0.0";
        sha256 = "1qxabrbzgd32i2fv40qw4f44akvfs1impjvcs5pqn409q9zz6kfd";
        libraryHaskellDepends = [
@@ -99847,30 +99641,17 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "generic-lens-core" = callPackage
     ({ mkDerivation, base, indexed-profunctors, text }:
      mkDerivation {
        pname = "generic-lens-core";
-       version = "2.0.0.0";
-       sha256 = "0h7fjh3zk8lkkmdj3w3wg72gbmnr8wz9wfm58ryvx0036l284qji";
-       libraryHaskellDepends = [ base indexed-profunctors text ];
-       description = "Generically derive traversals, lenses and prisms";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "generic-lens-core_2_1_0_0" = callPackage
-    ({ mkDerivation, base, indexed-profunctors, text }:
-     mkDerivation {
-       pname = "generic-lens-core";
        version = "2.1.0.0";
        sha256 = "0ja72rn7f7a24bmgqb6rds1ic78jffy2dzrb7sx8gy3ld5mlg135";
        libraryHaskellDepends = [ base indexed-profunctors text ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "generic-lens-labels" = callPackage
@@ -99964,24 +99745,6 @@ self: {
      }:
      mkDerivation {
        pname = "generic-optics";
-       version = "2.0.0.0";
-       sha256 = "17m72q0cjvagq1khiq8m495jhkpn2rqd6y1h9bxngp6l0k355nmw";
-       libraryHaskellDepends = [
-         base generic-lens-core optics-core text
-       ];
-       testHaskellDepends = [
-         base doctest HUnit inspection-testing optics-core
-       ];
-       description = "Generically derive traversals, lenses and prisms";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "generic-optics_2_1_0_0" = callPackage
-    ({ mkDerivation, base, doctest, generic-lens-core, HUnit
-     , inspection-testing, optics-core, text
-     }:
-     mkDerivation {
-       pname = "generic-optics";
        version = "2.1.0.0";
        sha256 = "04szdpcaxiaw9n1cry020mcrcirypfq3qxwr7h8h34b2mffvnl25";
        libraryHaskellDepends = [
@@ -99992,7 +99755,6 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "generic-optics-lite" = callPackage
@@ -101572,23 +101334,6 @@ self: {
 
   "ghc-check" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
-     , ghc-paths, process, safe-exceptions, template-haskell
-     , transformers
-     }:
-     mkDerivation {
-       pname = "ghc-check";
-       version = "0.5.0.3";
-       sha256 = "0crhlqs296zsz7bhy3zqaqhglxg45i6z7d1iqj9v7nr9crimxyjn";
-       libraryHaskellDepends = [
-         base containers directory filepath ghc ghc-paths process
-         safe-exceptions template-haskell transformers
-       ];
-       description = "detect mismatches between compile-time and run-time versions of the ghc api";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ghc-check_0_5_0_4" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath, ghc
      , ghc-paths, process, safe-exceptions, template-haskell, th-compat
      , transformers
      }:
@@ -101602,7 +101347,6 @@ self: {
        ];
        description = "detect mismatches between compile-time and run-time versions of the ghc api";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-clippy-plugin" = callPackage
@@ -103101,29 +102845,30 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "ghcide_1_1_0_0" = callPackage
-    ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, bytestring-encoding, case-insensitive
-     , containers, cryptohash-sha1, data-default, deepseq, dependent-map
-     , dependent-sum, Diff, directory, dlist, extra, filepath
-     , fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-check
-     , ghc-exactprint, ghc-paths, ghc-typelits-knownnat, gitrev, Glob
-     , haddock-library, hashable, heapsize, hie-bios, hie-compat, hiedb
-     , hls-plugin-api, hp2pretty, hslogger, implicit-hie
-     , implicit-hie-cradle, lens, lsp, lsp-test, lsp-types, mtl
-     , network-uri, opentelemetry, optparse-applicative, parallel
-     , prettyprinter, prettyprinter-ansi-terminal, process, QuickCheck
-     , quickcheck-instances, record-dot-preprocessor, record-hasfield
-     , regex-tdfa, retrie, rope-utf16-splay, safe, safe-exceptions
-     , shake, shake-bench, sorted-list, sqlite-simple, stm, syb, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , tasty-rerun, text, time, transformers, unix, unliftio
-     , unliftio-core, unordered-containers, utf8-string, vector, yaml
+  "ghcide_1_2_0_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, async, base
+     , base16-bytestring, binary, bytestring, bytestring-encoding
+     , case-insensitive, containers, cryptohash-sha1, data-default
+     , deepseq, dependent-map, dependent-sum, Diff, directory, dlist
+     , extra, filepath, fingertree, fuzzy, ghc, ghc-boot, ghc-boot-th
+     , ghc-check, ghc-exactprint, ghc-paths, ghc-trace-events
+     , ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
+     , heapsize, hie-bios, hie-compat, hiedb, hls-plugin-api, hp2pretty
+     , hslogger, implicit-hie, implicit-hie-cradle, lens, lsp, lsp-test
+     , lsp-types, mtl, network-uri, opentelemetry, optparse-applicative
+     , parallel, prettyprinter, prettyprinter-ansi-terminal, process
+     , QuickCheck, quickcheck-instances, record-dot-preprocessor
+     , record-hasfield, regex-tdfa, retrie, rope-utf16-splay, safe
+     , safe-exceptions, shake, shake-bench, sorted-list, sqlite-simple
+     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
+     , unliftio, unliftio-core, unordered-containers, utf8-string
+     , vector, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "1.1.0.0";
-       sha256 = "1i2xyp2n4g4cpz50wpwmzmknrzqzxnv3b551ibmhdy41v2fh6y5l";
+       version = "1.2.0.2";
+       sha256 = "0r3n23i4b51bb92q6pch9knj079a26jbz0q70qfpv66154d00wld";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -103131,27 +102876,29 @@ self: {
          bytestring-encoding case-insensitive containers cryptohash-sha1
          data-default deepseq dependent-map dependent-sum Diff directory
          dlist extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
-         ghc-check ghc-exactprint ghc-paths Glob haddock-library hashable
-         heapsize hie-bios hie-compat hiedb hls-plugin-api hslogger
-         implicit-hie-cradle lens lsp lsp-types mtl network-uri
-         opentelemetry parallel prettyprinter prettyprinter-ansi-terminal
-         regex-tdfa retrie rope-utf16-splay safe safe-exceptions shake
-         sorted-list sqlite-simple stm syb text time transformers unix
-         unliftio unliftio-core unordered-containers utf8-string vector
+         ghc-check ghc-exactprint ghc-paths ghc-trace-events Glob
+         haddock-library hashable heapsize hie-bios hie-compat hiedb
+         hls-plugin-api hslogger implicit-hie-cradle lens lsp lsp-types mtl
+         network-uri opentelemetry optparse-applicative parallel
+         prettyprinter prettyprinter-ansi-terminal regex-tdfa retrie
+         rope-utf16-splay safe safe-exceptions shake sorted-list
+         sqlite-simple stm syb text time transformers unix unliftio
+         unliftio-core unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
-         aeson base bytestring containers data-default directory extra
-         filepath ghc gitrev hashable heapsize hie-bios hiedb hls-plugin-api
-         lens lsp lsp-test lsp-types optparse-applicative process
-         safe-exceptions shake text unordered-containers
+         aeson aeson-pretty base bytestring containers data-default
+         directory extra filepath ghc gitrev hashable heapsize hie-bios
+         hiedb hls-plugin-api lens lsp lsp-test lsp-types
+         optparse-applicative process safe-exceptions shake text
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson base binary bytestring containers data-default directory
-         extra filepath ghc ghc-typelits-knownnat haddock-library
+         aeson async base binary bytestring containers data-default
+         directory extra filepath ghc ghc-typelits-knownnat haddock-library
          hls-plugin-api lens lsp lsp-test lsp-types network-uri
          optparse-applicative process QuickCheck quickcheck-instances
-         record-dot-preprocessor record-hasfield rope-utf16-splay safe
-         safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+         record-dot-preprocessor record-hasfield regex-tdfa rope-utf16-splay
+         safe safe-exceptions shake tasty tasty-expected-failure tasty-hunit
          tasty-quickcheck tasty-rerun text
        ];
        testToolDepends = [ implicit-hie ];
@@ -103468,6 +103215,61 @@ self: {
        broken = true;
      }) {};
 
+  "ghcup" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ascii-string, async, base
+     , base16-bytestring, binary, bytestring, bz2, case-insensitive
+     , casing, concurrent-output, containers, cryptohash-sha256
+     , generic-arbitrary, generics-sop, haskus-utils-types
+     , haskus-utils-variant, hpath, hpath-directory, hpath-filepath
+     , hpath-io, hpath-posix, hspec, hspec-golden-aeson, libarchive
+     , lzma-static, megaparsec, monad-logger, mtl, optics, optics-vl
+     , optparse-applicative, os-release, parsec, pretty, pretty-terminal
+     , QuickCheck, quickcheck-arbitrary-adt, regex-posix, resourcet
+     , safe, safe-exceptions, split, streamly, streamly-bytestring
+     , streamly-posix, strict-base, string-interpolate, template-haskell
+     , text, time, transformers, unix, unix-bytestring
+     , unordered-containers, uri-bytestring, utf8-string, vector
+     , versions, vty, word8, yaml, zlib
+     }:
+     mkDerivation {
+       pname = "ghcup";
+       version = "0.1.14.1";
+       sha256 = "1lx6ahn4mvjzs3x4qm32sdn1n8w4v7jqj2jslvan008zk664d5l2";
+       revision = "1";
+       editedCabalFile = "0a9c2ha61mlz9ci652djy4vmmzi4s1g8rwl1a2miymrw5b36zsmq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ascii-string async base base16-bytestring binary bytestring
+         bz2 case-insensitive casing concurrent-output containers
+         cryptohash-sha256 generics-sop haskus-utils-types
+         haskus-utils-variant hpath hpath-directory hpath-filepath hpath-io
+         hpath-posix libarchive lzma-static megaparsec monad-logger mtl
+         optics optics-vl os-release parsec pretty pretty-terminal
+         regex-posix resourcet safe safe-exceptions split streamly
+         streamly-bytestring streamly-posix strict-base string-interpolate
+         template-haskell text time transformers unix unix-bytestring
+         unordered-containers uri-bytestring utf8-string vector versions vty
+         word8 yaml zlib
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base bytestring containers haskus-utils-variant
+         hpath hpath-filepath hpath-io libarchive megaparsec monad-logger
+         mtl optics optparse-applicative pretty pretty-terminal regex-posix
+         resourcet safe safe-exceptions string-interpolate template-haskell
+         text transformers uri-bytestring utf8-string versions yaml
+       ];
+       testHaskellDepends = [
+         base bytestring containers generic-arbitrary hpath hspec
+         hspec-golden-aeson QuickCheck quickcheck-arbitrary-adt text
+         uri-bytestring versions
+       ];
+       description = "ghc toolchain installer";
+       license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghczdecode" = callPackage
     ({ mkDerivation, base, zenc }:
      mkDerivation {
@@ -103811,21 +103613,21 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gdk-pixbuf;};
 
-  "gi-gdkpixbuf_2_0_25" = callPackage
+  "gi-gdkpixbuf_2_0_26" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gdk-pixbuf
-     , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, text, transformers
+     , gi-gio, gi-glib, gi-gmodule, gi-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
        pname = "gi-gdkpixbuf";
-       version = "2.0.25";
-       sha256 = "18iz6rmqcf5q098hzv8p8hhk6ib8k99phmmnzp64j37c3x71c27b";
+       version = "2.0.26";
+       sha256 = "1g11pyrf1bzn0qrd9w52qhjq6qas4d3ycnprhwrglaffmaf0p9s8";
        setupHaskellDepends = [
-         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+         base Cabal gi-gio gi-glib gi-gmodule gi-gobject haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
-         haskell-gi-base haskell-gi-overloading text transformers
+         base bytestring containers gi-gio gi-glib gi-gmodule gi-gobject
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
        ];
        libraryPkgconfigDepends = [ gdk-pixbuf ];
        description = "GdkPixbuf bindings";
@@ -104038,6 +103840,25 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) glib;};
 
+  "gi-gmodule" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gmodule, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gmodule";
+       version = "2.0.1";
+       sha256 = "16x0gpbs92l250ly9k52z6y85i78ycfsg0zbksfpsym4w45zjpbp";
+       setupHaskellDepends = [ base Cabal gi-glib haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gmodule ];
+       description = "GModule bindings";
+       license = lib.licenses.lgpl21Only;
+     }) {gmodule = null;};
+
   "gi-gobject" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -105022,6 +104843,25 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libsoup;};
 
+  "gi-vips" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers, vips
+     }:
+     mkDerivation {
+       pname = "gi-vips";
+       version = "8.0.1";
+       sha256 = "1iq30mbyw638srpna9db1l039iz30zglxxfjysh0gmkrij4ky7kv";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ vips ];
+       description = "libvips GObject bindings";
+       license = lib.licenses.lgpl21Only;
+     }) {inherit (pkgs) vips;};
+
   "gi-vte" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
@@ -106724,6 +106564,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "gl3w" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "gl3w";
+       version = "0.1.0";
+       sha256 = "14wm8wp4jxi4fq75bvr6sl4xmsxjfw30yq7011v28xqpm9015ns0";
+       libraryHaskellDepends = [ base ];
+       description = "Haskell bindings for the gl3w library";
+       license = lib.licenses.mit;
+     }) {};
+
   "glabrous" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , cereal, cereal-text, directory, either, hspec, text
@@ -106731,8 +106582,8 @@ self: {
      }:
      mkDerivation {
        pname = "glabrous";
-       version = "2.0.2";
-       sha256 = "10aaa3aggn48imhqxkwyp0i0mar7fan29rwr6qkwli63v3m7fvgr";
+       version = "2.0.3";
+       sha256 = "06bpazshc07rg1w06sl171k12mry708512hrdckqw7winwfrwwkh";
        libraryHaskellDepends = [
          aeson aeson-pretty attoparsec base bytestring cereal cereal-text
          either text unordered-containers
@@ -107437,6 +107288,32 @@ self: {
        broken = true;
      }) {inherit (pkgs) glpk;};
 
+  "glsl" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring, containers
+     , directory, fgl, graphviz, hspec, hspec-discover, lens, linear
+     , QuickCheck, scientific, text, time, transformers, vector
+     }:
+     mkDerivation {
+       pname = "glsl";
+       version = "0.0.1.0";
+       sha256 = "1zq1dy6jzd41qz08xhwvbgy2g6zj90akb2145kh2h2906fyzr2wf";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         attoparsec base binary containers fgl graphviz lens linear
+         scientific text transformers
+       ];
+       executableHaskellDepends = [ base text time ];
+       testHaskellDepends = [
+         attoparsec base binary bytestring directory hspec QuickCheck text
+         vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Parser and optimizer for a small subset of GLSL";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "gltf-codec" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
      , directory, filepath, scientific, shower, text
@@ -111975,35 +111852,6 @@ self: {
      }:
      mkDerivation {
        pname = "graphula";
-       version = "2.0.0.3";
-       sha256 = "1hmay1g8j1b8pq98blq1sizc61h7lj782sajlwrllgvxc826rjm2";
-       libraryHaskellDepends = [
-         base containers directory generics-eot HUnit mtl persistent
-         QuickCheck random semigroups temporary text transformers unliftio
-         unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers hspec http-api-data markdown-unlit
-         monad-logger path-pieces persistent persistent-sqlite
-         persistent-template QuickCheck resourcet text transformers
-         unliftio-core uuid
-       ];
-       testToolDepends = [ markdown-unlit ];
-       description = "A declarative library for describing dependencies between data";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "graphula_2_0_0_4" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , generics-eot, hspec, http-api-data, HUnit, markdown-unlit
-     , monad-logger, mtl, path-pieces, persistent, persistent-sqlite
-     , persistent-template, QuickCheck, random, resourcet, semigroups
-     , temporary, text, transformers, unliftio, unliftio-core, uuid
-     }:
-     mkDerivation {
-       pname = "graphula";
        version = "2.0.0.4";
        sha256 = "1jqli2ws2n67cha6qd460h1y5iz688dwi5dn6h0a6jmc03yzgxni";
        libraryHaskellDepends = [
@@ -112035,6 +111883,8 @@ self: {
        pname = "graphula-core";
        version = "2.0.0.1";
        sha256 = "0yl1x5dw70rds9fk7ijsyrksharjm2fhvbihybjbjpj89s1n1zir";
+       revision = "1";
+       editedCabalFile = "0wpbz938vqw60lzgw98pf83i2c09c5633kkh3xhn42zpbnw76ylj";
        libraryHaskellDepends = [
          base containers directory generics-eot HUnit mtl persistent
          QuickCheck random semigroups temporary text transformers unliftio
@@ -112965,8 +112815,8 @@ self: {
      }:
      mkDerivation {
        pname = "grpc-haskell";
-       version = "0.0.1.0";
-       sha256 = "1cl12g88wvml3s5jazcb4gi4zwf6fp28hc9jp1fj25qpbr14il5c";
+       version = "0.1.0";
+       sha256 = "1qqa4qn6ql8zvacaikd1a154ib7bah2h96fjfvd3hz6j79bbfqw4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115731,8 +115581,8 @@ self: {
      }:
      mkDerivation {
        pname = "hadolint";
-       version = "2.1.0";
-       sha256 = "0hvn6kq6pasyh9mvnxn4crhg4fxmw7xrcfxa77wkxni8q1a94xxs";
+       version = "2.3.0";
+       sha256 = "03cz3inkkqbdnwwvsf7dhclp9svi8c0lpjmcp81ff9vxr1v6x73x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116293,8 +116143,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-agda";
-       version = "0.1.12";
-       sha256 = "0fa2pw3zaqrxr2in3bb63w7wmch7345lmn84z25s80z0if9qv2x3";
+       version = "0.1.13";
+       sha256 = "1fylx5h0w774j0wwp3g1mhfyifiyrbclydipg9i8v98br9xcnspb";
        libraryHaskellDepends = [
          Agda base containers directory filepath hakyll mtl pandoc text
          transformers xhtml
@@ -116724,19 +116574,22 @@ self: {
   "hal" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , case-insensitive, conduit, conduit-extra, containers, envy
-     , exceptions, http-client, http-conduit, http-types, mtl, text
-     , time, unordered-containers
+     , exceptions, hspec, http-client, http-types, mtl, text, time
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.6";
-       sha256 = "07xzkb9yavrh17d64gm3pc08jr8cb53lm5fdw6apcn7826ys76vh";
+       version = "0.4.7";
+       sha256 = "1bf2d4djbw8gpkcgrvjm52hsyw8hv20rsk0qdxfi8aml6mp152k5";
        revision = "1";
-       editedCabalFile = "01mx3i40i3xhn9i1bbdppp20df2l305zgzl9r4y02dfzcsy3xff5";
+       editedCabalFile = "19hic5cgxyk2nz8nnrz091hv79al49q7ah9pv9d7fwagjzi027ch";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive conduit
-         conduit-extra containers envy exceptions http-client http-conduit
-         http-types mtl text time unordered-containers
+         conduit-extra containers envy exceptions http-client http-types mtl
+         text time unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base containers hspec http-client http-types time
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = lib.licenses.bsd3;
@@ -119622,32 +119475,35 @@ self: {
      }) {};
 
   "haskell-awk" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, doctest
-     , easy-file, exceptions, filepath, haskell-src-exts, hint, hspec
-     , HUnit, mtl, network, process, stringsearch, temporary
-     , test-framework, test-framework-hunit, time, transformers
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, containers, directory, doctest, easy-file
+     , exceptions, extra, filelock, filepath, ghc, haskell-src-exts
+     , hint, hspec, HUnit, list-t, mtl, process, stringsearch
+     , template-haskell, temporary, test-framework, test-framework-hunit
+     , time, transformers
      }:
      mkDerivation {
        pname = "haskell-awk";
-       version = "1.1.1";
-       sha256 = "0s6vzfsqh2wwsp98l8zpg6cvh7jwz5wha44idz3yavhmy6z08zgd";
-       revision = "2";
-       editedCabalFile = "1nq69vqp5dphhkq3h94c1gw2hpgyn2snnsig6kjwm4z60ww87viw";
+       version = "1.2";
+       sha256 = "14jfw5s3xw7amwasw37mxfinzwvxd6pr64iypmy65z7bkx3l01cj";
+       revision = "1";
+       editedCabalFile = "1d6smaalvf66h0d9d1vq9q8ldxcvg11m05wg70cbsq3s2vh6iz4p";
        isLibrary = true;
        isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base bytestring containers stringsearch
+         base bytestring containers ghc list-t stringsearch
        ];
        executableHaskellDepends = [
-         base bytestring containers directory easy-file exceptions filepath
-         haskell-src-exts hint mtl network process stringsearch time
-         transformers
+         base bytestring containers directory exceptions extra filelock
+         filepath ghc haskell-src-exts hint list-t mtl process stringsearch
+         template-haskell time transformers
        ];
        testHaskellDepends = [
-         base bytestring containers directory doctest easy-file exceptions
-         filepath haskell-src-exts hint hspec HUnit mtl network process
-         stringsearch temporary test-framework test-framework-hunit time
-         transformers
+         aeson attoparsec base bytestring containers directory doctest
+         easy-file exceptions extra filelock filepath ghc haskell-src-exts
+         hint hspec HUnit list-t mtl process stringsearch template-haskell
+         temporary test-framework test-framework-hunit time transformers
        ];
        description = "Transform text from the command-line using Haskell expressions";
        license = lib.licenses.asl20;
@@ -119757,8 +119613,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.12";
-       sha256 = "17ccxpsi483fkiyp98m09nzqds9n78y53naii5x18nvdxv9fssam";
+       version = "0.12.1";
+       sha256 = "0bdb3x2kk5nqm6ly2ycdpx6xw7pspgg67x73cjscqj6pxcx1wjzf";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122606,8 +122462,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.52.4";
-       sha256 = "0qgiskx01rlwdmidv01k4mr9awb4sj6srhcrrsmiqd7fdnlaxb3s";
+       version = "0.52.8";
+       sha256 = "14qwdh0fwyqhb3pgykprgp1vs78y4ixn2dn55bsi9x53cjjvp1qp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122648,22 +122504,23 @@ self: {
     ({ mkDerivation, aeson, base, binary, bytes, bytestring, cereal
      , containers, data-default, deepseq, hashable, haskoin-core, hspec
      , hspec-discover, http-client, http-types, lens, mtl, network
-     , QuickCheck, scotty, string-conversions, text
+     , QuickCheck, scotty, string-conversions, text, time
      , unordered-containers, wreq
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.52.0";
-       sha256 = "0fgjmyps858dvx8i2mzn8kqmms869wamldrdlmy2y27wcmrzzj51";
+       version = "0.52.6";
+       sha256 = "0npiib582rnbk3w9f0m71y84xpk7akzkypfxrd9n1s4h3dh0qsfw";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
-         network scotty string-conversions text unordered-containers wreq
+         network scotty string-conversions text time unordered-containers
+         wreq
        ];
        testHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core hspec http-client http-types lens mtl
-         network QuickCheck scotty string-conversions text
+         network QuickCheck scotty string-conversions text time
          unordered-containers wreq
        ];
        testToolDepends = [ hspec-discover ];
@@ -127084,16 +126941,16 @@ self: {
      , inline-c-cpp, katip, lens, lens-aeson, lifted-async, lifted-base
      , monad-control, mtl, network, network-uri, nix
      , optparse-applicative, process, process-extras, protolude
-     , safe-exceptions, servant, servant-auth-client, servant-client
-     , servant-client-core, stm, temporary, text, time, tomland
-     , transformers, transformers-base, unbounded-delays, unix, unliftio
-     , unliftio-core, unordered-containers, uuid, vector, websockets
-     , wuss
+     , safe-exceptions, scientific, servant, servant-auth-client
+     , servant-client, servant-client-core, stm, temporary, text, time
+     , tomland, transformers, transformers-base, unbounded-delays, unix
+     , unliftio, unliftio-core, unordered-containers, uuid, vector
+     , websockets, wuss
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.8.0";
-       sha256 = "1nwdi442ccm1x2isxdlh3rpcw627wjccdb4y40w2qna6dchx7v9z";
+       version = "0.8.1";
+       sha256 = "0f18mz2chwipjac7dc918hn54frrxqk6bvyjvzqq25agi5zh8h12";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127113,7 +126970,7 @@ self: {
          hostname http-client http-client-tls http-conduit inline-c
          inline-c-cpp katip lens lens-aeson lifted-async lifted-base
          monad-control mtl network network-uri optparse-applicative process
-         process-extras protolude safe-exceptions servant
+         process-extras protolude safe-exceptions scientific servant
          servant-auth-client servant-client servant-client-core stm
          temporary text time tomland transformers transformers-base unix
          unliftio unliftio-core unordered-containers uuid vector websockets
@@ -127142,8 +126999,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-api";
-       version = "0.6.0.0";
-       sha256 = "11ha3jvwg501n9all4v5r057qr9m9qbmbrkiv5l04mrsi5pvhpw7";
+       version = "0.6.0.1";
+       sha256 = "1c9dvj9vv4rm0ndmgfm9s4qfpjbs2ly98r06bl0xv550anik7kqj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127174,8 +127031,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-api-agent";
-       version = "0.3.0.0";
-       sha256 = "161ghlz5n6na4sviwyxxq78hj37yk89kri0367xx9dbsllgfc7g6";
+       version = "0.3.1.0";
+       sha256 = "0p1xlzwhaz6ycjzmadnlmr7fvz9iar9b7qzz867xxvix6p8w2nj6";
        libraryHaskellDepends = [
          aeson base base64-bytestring-type bytestring containers cookie
          deepseq exceptions hashable hercules-ci-api-core http-api-data
@@ -127230,8 +127087,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cli";
-       version = "0.1.0";
-       sha256 = "1fcg1fd2jd0334nhwsipyf468a4kkdhbibyhhjyspqagswaanm9q";
+       version = "0.2.0";
+       sha256 = "0fxsx31b6m9hxcpymixmfpvj1k569kzbxd2jvm8kzda073hljsbm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127283,8 +127140,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.1.0.0";
-       sha256 = "1ni83x2453ii2xgq4ihhr41jbjhgga5dq5q8560f555fwrw10brz";
+       version = "0.1.1.0";
+       sha256 = "1lvlilhfkyx3i4fp0azjx4gm2iwm6hkjrg6kc5faifw7knfivinj";
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
          unliftio-core
@@ -128934,20 +128791,6 @@ self: {
      }) {};
 
   "hi-file-parser" = callPackage
-    ({ mkDerivation, base, binary, bytestring, hspec, rio, vector }:
-     mkDerivation {
-       pname = "hi-file-parser";
-       version = "0.1.1.0";
-       sha256 = "1wb79m6vx7dz4hrvyk2h1iv6q36g9hhywls5ygam7pmw9c4rs3sq";
-       revision = "2";
-       editedCabalFile = "1495j6ky44r660yr5szy2ln96rdhakh0fhnw749g2yyx5l0gwcrs";
-       libraryHaskellDepends = [ base binary bytestring rio vector ];
-       testHaskellDepends = [ base binary bytestring hspec rio vector ];
-       description = "Parser for GHC's hi files";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hi-file-parser_0_1_2_0" = callPackage
     ({ mkDerivation, base, binary, bytestring, hspec, mtl, rio, vector
      }:
      mkDerivation {
@@ -128960,7 +128803,6 @@ self: {
        ];
        description = "Parser for GHC's hi files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hi3status" = callPackage
@@ -129076,22 +128918,6 @@ self: {
      }:
      mkDerivation {
        pname = "hidapi";
-       version = "0.1.6";
-       sha256 = "1dy5sbfh8rkzrjpn5ls5xbr32ja0h6bgigzya512advc4c21af2b";
-       libraryHaskellDepends = [
-         base bytestring deepseq deepseq-generics
-       ];
-       librarySystemDepends = [ systemd ];
-       description = "Haskell bindings to HIDAPI";
-       license = lib.licenses.mit;
-     }) {inherit (pkgs) systemd;};
-
-  "hidapi_0_1_7" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, deepseq-generics
-     , systemd
-     }:
-     mkDerivation {
-       pname = "hidapi";
        version = "0.1.7";
        sha256 = "0mgl2yrx7jgn9zzgbrxa7sa5wflzk1jj932jf0bf7f2vsvas71gf";
        libraryHaskellDepends = [
@@ -129100,7 +128926,6 @@ self: {
        librarySystemDepends = [ systemd ];
        description = "Haskell bindings to HIDAPI";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) systemd;};
 
   "hidden-char" = callPackage
@@ -129277,6 +129102,28 @@ self: {
        broken = true;
      }) {};
 
+  "hierarchical-env" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, method, microlens
+     , microlens-mtl, microlens-th, rio, template-haskell
+     , th-abstraction
+     }:
+     mkDerivation {
+       pname = "hierarchical-env";
+       version = "0.1.0.0";
+       sha256 = "0syx9i9z9j75wbqsrwl8nqhr025df6vmgb4p767sdb7dncpqkph9";
+       libraryHaskellDepends = [
+         base method microlens microlens-mtl microlens-th rio
+         template-haskell th-abstraction
+       ];
+       testHaskellDepends = [
+         base hspec method microlens microlens-mtl microlens-th rio
+         template-haskell th-abstraction
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "hierarchical environments for dependency injection";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "hierarchical-exceptions" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
@@ -131562,6 +131409,8 @@ self: {
        pname = "hlrdb";
        version = "0.3.2.0";
        sha256 = "1k4dsd4h3fv1ag753gwxvirfrj53ra4ik948pyacq31c16mz1l2p";
+       revision = "1";
+       editedCabalFile = "1ypb0197v5x6a5zkj7qqrr7lam3sxvvi3wbgk5imvdppq2rj7hqz";
        libraryHaskellDepends = [
          base base64-bytestring bytestring cryptonite hashable hedis
          hlrdb-core memory random store time unordered-containers zstd
@@ -131578,10 +131427,10 @@ self: {
      }:
      mkDerivation {
        pname = "hlrdb-core";
-       version = "0.1.6.0";
-       sha256 = "13hb0657y5cqhbl2m27v28b6zl9mgcq17r983rds3l3bccn67ayv";
+       version = "0.1.6.1";
+       sha256 = "0sy87qz7v1x4rmqclfz2q8bnca2k7zyc7cgk67s80xhp4jsab90x";
        revision = "1";
-       editedCabalFile = "163scamdjq98zk039qv3r4xqz7hmixa136gfkifx757fy4nigdiy";
+       editedCabalFile = "1nyvgbpvr7l0b9cvnlavmc88aszvxfrdcj57grrs6dcd1d4lv7ss";
        libraryHaskellDepends = [
          base bytestring hashable hedis lens mtl profunctors random time
          unordered-containers
@@ -131606,6 +131455,26 @@ self: {
        broken = true;
      }) {};
 
+  "hls-brittany-plugin" = callPackage
+    ({ mkDerivation, base, brittany, bytestring, filepath, ghc
+     , ghc-boot-th, ghcide, hls-plugin-api, hls-test-utils, lens
+     , lsp-types, text, transformers
+     }:
+     mkDerivation {
+       pname = "hls-brittany-plugin";
+       version = "1.0.0.1";
+       sha256 = "1lfhgvxs0bvs67raxalvj8pr4qln1yvi7i7wlp33gpk2x89bwaqy";
+       libraryHaskellDepends = [
+         base brittany filepath ghc ghc-boot-th ghcide hls-plugin-api lens
+         lsp-types text transformers
+       ];
+       testHaskellDepends = [ base bytestring hls-test-utils text ];
+       description = "Integration with the Brittany code formatter";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {hls-test-utils = null;};
+
   "hls-class-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, ghc, ghc-exactprint
      , ghcide, hls-plugin-api, lens, lsp, shake, text, transformers
@@ -131683,6 +131552,23 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "hls-explicit-imports-plugin_1_0_0_1" = callPackage
+    ({ mkDerivation, aeson, base, containers, deepseq, ghc, ghcide
+     , hls-plugin-api, lsp, lsp-types, shake, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-explicit-imports-plugin";
+       version = "1.0.0.1";
+       sha256 = "1ygs667pkc3zn66yqz6ssrxifhrc906sddmcgjnkprk7zappk2nc";
+       libraryHaskellDepends = [
+         aeson base containers deepseq ghc ghcide hls-plugin-api lsp
+         lsp-types shake text unordered-containers
+       ];
+       description = "Explicit imports plugin for Haskell Language Server";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hls-haddock-comments-plugin" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-exactprint, ghcide
      , hls-plugin-api, lsp-types, text, unordered-containers
@@ -131739,6 +131625,26 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "hls-plugin-api_1_1_0_0" = callPackage
+    ({ mkDerivation, aeson, base, containers, data-default
+     , dependent-map, dependent-sum, Diff, dlist, hashable, hslogger
+     , lens, lsp, opentelemetry, process, regex-tdfa, shake, text, unix
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-plugin-api";
+       version = "1.1.0.0";
+       sha256 = "1i18a5gxa409882zpviy4paldaq43j4z1zmgr9mag2mn64vplrxy";
+       libraryHaskellDepends = [
+         aeson base containers data-default dependent-map dependent-sum Diff
+         dlist hashable hslogger lens lsp opentelemetry process regex-tdfa
+         shake text unix unordered-containers
+       ];
+       description = "Haskell Language Server API for plugin communication";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hls-retrie-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
      , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
@@ -131757,15 +131663,15 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "hls-retrie-plugin_1_0_0_1" = callPackage
+  "hls-retrie-plugin_1_0_0_2" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
      , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
      , safe-exceptions, shake, text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "hls-retrie-plugin";
-       version = "1.0.0.1";
-       sha256 = "0vshnnh8x2n0kn7hh04z00mkdmw3130b3mmfrm3z4ygia852hzmq";
+       version = "1.0.0.2";
+       sha256 = "0jw1q0dk5jl80wbyvi1a6vszj9x3s7d2bnsbnyycbh4zgl33agwb";
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra ghc ghcide hashable
          hls-plugin-api lsp lsp-types retrie safe-exceptions shake text
@@ -134817,27 +134723,6 @@ self: {
 
   "hpc-codecov" = callPackage
     ({ mkDerivation, array, base, bytestring, directory, filepath, hpc
-     , tar, tasty, tasty-hunit
-     }:
-     mkDerivation {
-       pname = "hpc-codecov";
-       version = "0.2.0.2";
-       sha256 = "0x95ikxrymvgakpiycbl027nv23c8c7p369zvbbr2bv67jvb7fzv";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring directory filepath hpc
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base directory filepath tar tasty tasty-hunit
-       ];
-       description = "Generate codecov report from hpc data";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hpc-codecov_0_3_0_0" = callPackage
-    ({ mkDerivation, array, base, bytestring, directory, filepath, hpc
      , process, tasty, tasty-hunit
      }:
      mkDerivation {
@@ -134855,7 +134740,6 @@ self: {
        ];
        description = "Generate codecov report from hpc data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hpc-coveralls" = callPackage
@@ -135799,15 +135683,15 @@ self: {
      }:
      mkDerivation {
        pname = "hs-conllu";
-       version = "0.1.2";
-       sha256 = "1dvayafvf14gbir7cafhzlscqlffaws5ajilm5h520ji449jh2aa";
+       version = "0.1.5";
+       sha256 = "1azh4g5kdng8v729ldgblkmrdqrc501rgm9wwqx6gkqwwzn8w3r4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base containers directory filepath megaparsec void
        ];
        executableHaskellDepends = [
-         base containers directory filepath megaparsec
+         base containers directory filepath megaparsec void
        ];
        description = "Conllu validating parser and utils";
        license = lib.licenses.lgpl3Only;
@@ -137766,20 +137650,22 @@ self: {
 
   "hsendxmpp" = callPackage
     ({ mkDerivation, base, hslogger, pontarius-xmpp
-     , pontarius-xmpp-extras, string-class
+     , pontarius-xmpp-extras, string-class, text
      }:
      mkDerivation {
        pname = "hsendxmpp";
-       version = "0.1.2.4";
-       sha256 = "17dhhjbynr7afjibv6fys45m2al422b6q3z7ncfycpwp6541qifm";
+       version = "0.1.2.5";
+       sha256 = "0wyfcsc0vjyx87r5dv51frfligf4d7v0n1m7967vg4d6jkw2zxd9";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base hslogger pontarius-xmpp pontarius-xmpp-extras string-class
+         text
        ];
        description = "sendxmpp clone, sending XMPP messages via CLI";
-       license = "unknown";
+       license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsenv" = callPackage
@@ -138078,8 +137964,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsinspect";
-       version = "0.0.17";
-       sha256 = "1ib8vxjsrg03i4fmcgwfkxwbr4dwyvk6xvhb0y6xydwjckfs0ldd";
+       version = "0.0.18";
+       sha256 = "1xqrmkr1r3ssv51aqikxhw39rgajswrvl3z0gb0xq2p3shynxi53";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -138803,6 +138689,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec_2_7_10" = callPackage
+    ({ mkDerivation, base, hspec-core, hspec-discover
+     , hspec-expectations, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec";
+       version = "2.7.10";
+       sha256 = "0z0lwrmrqkglr78n6k2c36n4h68142bh785ys0x4jaibjshvs6rw";
+       libraryHaskellDepends = [
+         base hspec-core hspec-discover hspec-expectations QuickCheck
+       ];
+       description = "A Testing Framework for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, hspec
      , hspec-expectations, text
@@ -138885,6 +138787,34 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-core_2_7_10" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
+     , deepseq, directory, filepath, hspec-expectations, hspec-meta
+     , HUnit, process, QuickCheck, quickcheck-io, random, setenv
+     , silently, stm, temporary, tf-random, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-core";
+       version = "2.7.10";
+       sha256 = "12k9yp5gznrda449ir60d5wv3xl7nnyffkb5mhfc0svw9f8lxlv1";
+       libraryHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations HUnit QuickCheck quickcheck-io random
+         setenv stm tf-random transformers
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath hspec-expectations hspec-meta HUnit process QuickCheck
+         quickcheck-io random setenv silently stm temporary tf-random
+         transformers
+       ];
+       testToolDepends = [ hspec-meta ];
+       testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
+       description = "A Testing Framework for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-dirstream" = callPackage
     ({ mkDerivation, base, dirstream, filepath, hspec, hspec-core
      , pipes, pipes-safe, system-filepath, text
@@ -138922,6 +138852,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-discover_2_7_10" = callPackage
+    ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck
+     }:
+     mkDerivation {
+       pname = "hspec-discover";
+       version = "2.7.10";
+       sha256 = "13yzvd3b679skvs1insk4s0wc4zvmz6hs38kc8q0j6vzqq06smqa";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [ base directory filepath ];
+       testHaskellDepends = [
+         base directory filepath hspec-meta QuickCheck
+       ];
+       testToolDepends = [ hspec-meta ];
+       description = "Automatically discover and run Hspec tests";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-expectations" = callPackage
     ({ mkDerivation, base, call-stack, HUnit, nanospec }:
      mkDerivation {
@@ -138940,25 +138890,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-expectations-json";
-       version = "1.0.0.2";
-       sha256 = "1jv0mi0hdbxx75yygd3184kqpi50ysjp82vyr1di7dcz0ffyxhmb";
-       libraryHaskellDepends = [
-         aeson aeson-pretty base Diff HUnit scientific text
-         unordered-containers vector
-       ];
-       testHaskellDepends = [ aeson-qq base hspec ];
-       description = "Hspec expectations for JSON Values";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "hspec-expectations-json_1_0_0_3" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, aeson-qq, base, Diff, hspec
-     , HUnit, scientific, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "hspec-expectations-json";
        version = "1.0.0.3";
        sha256 = "06k2gk289v6xxzj5mp5nsz6ixqlh2z3zx8z1jlxza35pkzkv34x7";
        libraryHaskellDepends = [
@@ -139180,23 +139111,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-junit-formatter";
-       version = "1.0.0.1";
-       sha256 = "146y4y3q047a5g8dif1vdjsn8jz6kafq0yzd7x5wpg7daccbxami";
-       libraryHaskellDepends = [
-         base conduit directory exceptions hashable hspec hspec-core
-         resourcet temporary text xml-conduit xml-types
-       ];
-       description = "A JUnit XML runner/formatter for hspec";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec-junit-formatter_1_0_0_2" = callPackage
-    ({ mkDerivation, base, conduit, directory, exceptions, hashable
-     , hspec, hspec-core, resourcet, temporary, text, xml-conduit
-     , xml-types
-     }:
-     mkDerivation {
-       pname = "hspec-junit-formatter";
        version = "1.0.0.2";
        sha256 = "19mmzzjg041sqv22w66cls0mcypdamsqx43n00hnn2gqk0jkhhll";
        libraryHaskellDepends = [
@@ -139205,7 +139119,6 @@ self: {
        ];
        description = "A JUnit XML runner/formatter for hspec";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-laws" = callPackage
@@ -141303,22 +141216,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "http-client_0_7_6" = callPackage
+  "http-client_0_7_8" = callPackage
     ({ mkDerivation, array, async, base, base64-bytestring
      , blaze-builder, bytestring, case-insensitive, containers, cookie
      , deepseq, directory, exceptions, filepath, ghc-prim, hspec
-     , http-types, mime-types, monad-control, network, network-uri
-     , random, stm, streaming-commons, text, time, transformers, zlib
+     , http-types, iproute, mime-types, monad-control, network
+     , network-uri, random, stm, streaming-commons, text, time
+     , transformers, zlib
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.7.6";
-       sha256 = "1458mq5kh5fjlkhk9cgaz6sc6533l2nm4r2jz80diy8qc6bpiwrk";
+       version = "0.7.8";
+       sha256 = "043ydfakl02cghmphzz9hj08hrfszqw96vjrb4cal7c7801szz0q";
        libraryHaskellDepends = [
          array base base64-bytestring blaze-builder bytestring
          case-insensitive containers cookie deepseq exceptions filepath
-         ghc-prim http-types mime-types network network-uri random stm
-         streaming-commons text time transformers
+         ghc-prim http-types iproute mime-types network network-uri random
+         stm streaming-commons text time transformers
        ];
        testHaskellDepends = [
          async base blaze-builder bytestring case-insensitive containers
@@ -141933,8 +141847,8 @@ self: {
        pname = "http-media";
        version = "0.8.0.0";
        sha256 = "0lww5cxrc9jlvzsysjv99lca33i4rb7cll66p3c0rdpmvz8pk0ir";
-       revision = "4";
-       editedCabalFile = "0qg6x92i3w2q7zarr08kmicychkwskfi04xaxkqkg0cw6jnpnhhh";
+       revision = "5";
+       editedCabalFile = "0wf39pdag8a81ksk5xrgjzzzhav62vw2s77p43y7n3zkz5vynw7n";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers utf8-string
        ];
@@ -142065,19 +141979,23 @@ self: {
     ({ mkDerivation, async, base, blaze-builder, bytestring
      , bytestring-lexing, case-insensitive, conduit, conduit-extra
      , connection, hspec, http-client, http-conduit, http-types, mtl
-     , network, QuickCheck, random, resourcet, streaming-commons, text
-     , tls, transformers, vault, wai, wai-conduit, warp, warp-tls
+     , network, network-uri, QuickCheck, random, resourcet
+     , streaming-commons, text, tls, transformers, vault, wai
+     , wai-conduit, warp, warp-tls
      }:
      mkDerivation {
        pname = "http-proxy";
-       version = "0.1.1.0";
-       sha256 = "1nzihn2qxm066avzgill1nxa0174ggv54bacsn871a0ai7n03079";
+       version = "0.1.2.0";
+       sha256 = "17yn15hd0kn3r495awy5qmrxq8mgrby8h5b9q7vzm583yppi9dmn";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         async base blaze-builder bytestring bytestring-lexing
-         case-insensitive conduit conduit-extra http-client http-conduit
-         http-types mtl network resourcet streaming-commons text tls
-         transformers wai wai-conduit warp warp-tls
+         async base bytestring bytestring-lexing case-insensitive conduit
+         conduit-extra http-client http-conduit http-types mtl network
+         resourcet streaming-commons text tls transformers wai wai-conduit
+         warp warp-tls
        ];
+       executableHaskellDepends = [ base bytestring network-uri wai ];
        testHaskellDepends = [
          async base blaze-builder bytestring bytestring-lexing
          case-insensitive conduit conduit-extra connection hspec http-client
@@ -142353,6 +142271,41 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "http2_3_0_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, async, base
+     , base16-bytestring, bytestring, case-insensitive, containers
+     , cryptonite, directory, filepath, gauge, Glob, heaps, hspec
+     , hspec-discover, http-types, mwc-random, network
+     , network-byte-order, network-run, psqueues, stm, text
+     , time-manager, typed-process, unix-time, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "http2";
+       version = "3.0.1";
+       sha256 = "1c1vhb2x23rlw7ciayz0rx6lpifjwrvpg88nspwa9w5nbjij2258";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bytestring case-insensitive containers http-types
+         network network-byte-order psqueues stm time-manager unix-time
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async base base16-bytestring bytestring
+         cryptonite directory filepath Glob hspec http-types
+         network-byte-order network-run text typed-process
+         unordered-containers vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         array base bytestring case-insensitive containers gauge heaps
+         mwc-random network-byte-order psqueues stm
+       ];
+       description = "HTTP/2 library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "http2-client" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, deepseq
      , http2, lifted-async, lifted-base, mtl, network, stm, time, tls
@@ -145088,8 +145041,8 @@ self: {
     ({ mkDerivation, base, containers, HUnit, random }:
      mkDerivation {
        pname = "hyahtzee";
-       version = "0.2";
-       sha256 = "0zv9ycgf9sii59q86s04m6krjyjgmrqaxz4lyvwa58b7a886wcmv";
+       version = "0.5";
+       sha256 = "0g9y155w072zdwfx241zs7wwi338kyabv6kdk5j180s85ya8ryxp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base containers HUnit random ];
@@ -145774,8 +145727,8 @@ self: {
     ({ mkDerivation, base, containers, QuickCheck, text }:
      mkDerivation {
        pname = "hzenhan";
-       version = "0.0.4";
-       sha256 = "1gbrzjjdihgzj63sp2h4762zybyhd5rxa8rpvsjra21qvvch12mx";
+       version = "0.0.5";
+       sha256 = "1zrxcbazask9dg9rqkdfkm8q055p1wl9834a3yslyxq0h39acc61";
        libraryHaskellDepends = [ base containers text ];
        testHaskellDepends = [ base containers QuickCheck text ];
        description = "Zenhan library for Haskell";
@@ -148337,23 +148290,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "indexed-profunctors";
-       version = "0.1";
-       sha256 = "0rdvj62rapkkj5zv5jyx2ynfwn2iszx1w2q08j9ik17zklqv9pri";
-       libraryHaskellDepends = [ base ];
-       description = "Utilities for indexed profunctors";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "indexed-profunctors_0_1_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "indexed-profunctors";
        version = "0.1.1";
        sha256 = "1cbccbvrx73drr1jf3yyw0rp1mcfv3jc1rvdcby5xxx4ja543fjs";
        libraryHaskellDepends = [ base ];
        description = "Utilities for indexed profunctors";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "indexed-traversable" = callPackage
@@ -148989,8 +148930,6 @@ self: {
        ];
        description = "Seamlessly call R from Haskell and vice versa. No FFI required.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) R;};
 
   "inliterate" = callPackage
@@ -149114,6 +149053,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "inspection-testing_0_4_4_0" = callPackage
+    ({ mkDerivation, base, containers, ghc, mtl, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "inspection-testing";
+       version = "0.4.4.0";
+       sha256 = "1zr7c7xpmnfwn2p84rqw69n1g91rdkh7d20awvj0s56nbdikgiyh";
+       libraryHaskellDepends = [
+         base containers ghc mtl template-haskell transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "GHC plugin to do inspection testing";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "inspector-wrecker" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , connection, data-default, http-client, http-client-tls
@@ -150001,12 +149957,12 @@ self: {
      }) {};
 
   "interval-algebra" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck, time }:
+    ({ mkDerivation, base, hspec, QuickCheck, time, witherable }:
      mkDerivation {
        pname = "interval-algebra";
-       version = "0.1.2";
-       sha256 = "1nhpcrp7r6ba9mqwrfkx0zk7awdw24kh75ggq1wcif6mpir2khkx";
-       libraryHaskellDepends = [ base time ];
+       version = "0.3.3";
+       sha256 = "0njlirr5ymsdw27snixxf3c4dgj8grffqv94a1hz97k801a3axkh";
+       libraryHaskellDepends = [ base QuickCheck time witherable ];
        testHaskellDepends = [ base hspec QuickCheck time ];
        description = "An implementation of Allen's interval algebra for temporal logic";
        license = lib.licenses.bsd3;
@@ -151249,22 +151205,20 @@ self: {
 
   "ircbot" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , irc, mtl, network, parsec, random, SafeSemaphore, stm, time, unix
+     , irc, mtl, network, optparse-applicative, parsec, random
+     , SafeSemaphore, stm, time, unix
      }:
      mkDerivation {
        pname = "ircbot";
-       version = "0.6.6";
-       sha256 = "1nmqgimmmxry4pj1y5mfsp662hkivn0vr9n8rx1yn0aldlzrxdm8";
+       version = "0.6.6.1";
+       sha256 = "00dw9ay5x4hb8p2jvxwgcxqlny7cpm6lk5kqaw9yc9c6m6705fqc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers directory filepath irc mtl network
-         parsec random SafeSemaphore stm time unix
-       ];
-       executableHaskellDepends = [
-         base bytestring containers directory filepath irc mtl network
-         parsec random SafeSemaphore stm time unix
+         optparse-applicative parsec random SafeSemaphore stm time unix
        ];
+       executableHaskellDepends = [ base ];
        description = "A library for writing IRC bots";
        license = lib.licenses.bsd3;
      }) {};
@@ -152514,26 +152468,6 @@ self: {
      }:
      mkDerivation {
        pname = "jack";
-       version = "0.7.1.4";
-       sha256 = "018lsa5mgl7vb0hrd4jswa40d6w7alfq082brax8p832zf0v5bj2";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring enumset event-list explicit-exception midi
-         non-negative semigroups transformers
-       ];
-       libraryPkgconfigDepends = [ libjack2 ];
-       description = "Bindings for the JACK Audio Connection Kit";
-       license = "GPL";
-     }) {inherit (pkgs) libjack2;};
-
-  "jack_0_7_2" = callPackage
-    ({ mkDerivation, array, base, bytestring, enumset, event-list
-     , explicit-exception, libjack2, midi, non-negative, semigroups
-     , transformers
-     }:
-     mkDerivation {
-       pname = "jack";
        version = "0.7.2";
        sha256 = "0aa7nz8ybsw7s0nmf12kxnjm5z1afj88c97b1w17b7lvdwvfs3cx";
        isLibrary = true;
@@ -152545,7 +152479,6 @@ self: {
        libraryPkgconfigDepends = [ libjack2 ];
        description = "Bindings for the JACK Audio Connection Kit";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libjack2;};
 
   "jack-bindings" = callPackage
@@ -154294,7 +154227,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) python;};
+     }) {python = null;};
 
   "json-qq" = callPackage
     ({ mkDerivation, base, haskell-src-meta, parsec, template-haskell
@@ -157652,6 +157585,17 @@ self: {
        broken = true;
      }) {};
 
+  "koji" = callPackage
+    ({ mkDerivation, base, haxr, mtl }:
+     mkDerivation {
+       pname = "koji";
+       version = "0.0.1";
+       sha256 = "0yxx6xk5xld7jf7ph4x0r7k4bqcg02yl7597awbgbq82x97gyfb8";
+       libraryHaskellDepends = [ base haxr mtl ];
+       description = "Koji buildsystem XML-RPC API bindings";
+       license = lib.licenses.gpl2Only;
+     }) {};
+
   "kontra-config" = callPackage
     ({ mkDerivation, base, bytestring, data-default, exceptions, text
      , transformers-base, unjson, utf8-string, yaml
@@ -157821,8 +157765,6 @@ self: {
        ];
        description = "Krank checks your code source comments for important markers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "krapsh" = callPackage
@@ -158093,6 +158035,26 @@ self: {
        broken = true;
      }) {};
 
+  "kvitable" = callPackage
+    ({ mkDerivation, base, containers, html-parse, lucid, microlens
+     , pretty-show, prettyprinter, tasty, tasty-hunit, template-haskell
+     , text
+     }:
+     mkDerivation {
+       pname = "kvitable";
+       version = "1.0.0.0";
+       sha256 = "1p8myw0f32gb1cxzp63l4i7m6gz1l423pl40yp2jl7vfdp4kzjwz";
+       libraryHaskellDepends = [
+         base containers lucid microlens prettyprinter text
+       ];
+       testHaskellDepends = [
+         base html-parse microlens pretty-show tasty tasty-hunit
+         template-haskell text
+       ];
+       description = "Key/Value Indexed Table container and formatting library";
+       license = lib.licenses.isc;
+     }) {};
+
   "kyotocabinet" = callPackage
     ({ mkDerivation, base, bytestring, cereal, kyotocabinet }:
      mkDerivation {
@@ -159606,8 +159568,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "9.1.3";
-       sha256 = "00nr8fb981rkjzy2xhppvg9avsi377ww28d50rldm5wh7ax9s3w2";
+       version = "9.2.0";
+       sha256 = "08nq78091w7dii823fy7bvp2gxn1j1fp1fj151z37hvf423w19ds";
        libraryHaskellDepends = [
          base bytestring containers data-default-class megaparsec
          prettyprinter split text time
@@ -159620,15 +159582,15 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
-  "language-docker_9_2_0" = callPackage
+  "language-docker_9_3_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default-class
      , hspec, HUnit, megaparsec, prettyprinter, QuickCheck, split, text
      , time
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "9.2.0";
-       sha256 = "08nq78091w7dii823fy7bvp2gxn1j1fp1fj151z37hvf423w19ds";
+       version = "9.3.0";
+       sha256 = "1n9v0b6lwr528b6919y11a8d27mhsp0mm870rx0rjg9l5j4mnbvn";
        libraryHaskellDepends = [
          base bytestring containers data-default-class megaparsec
          prettyprinter split text time
@@ -161654,6 +161616,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "leancheck_0_9_4" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "leancheck";
+       version = "0.9.4";
+       sha256 = "0w17ymj7k4sr9jwp9yrgh3l94l3kgjyxxnpxwj2sdqk8fvmjpkny";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base ];
+       description = "Enumerative property-based testing";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "leancheck-enum-instances" = callPackage
     ({ mkDerivation, base, enum-types, leancheck }:
      mkDerivation {
@@ -164232,28 +164207,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "lifted-async" = callPackage
-    ({ mkDerivation, async, base, constraints, deepseq, HUnit
-     , lifted-base, monad-control, mtl, tasty, tasty-bench
-     , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
-     }:
+  "lift-type" = callPackage
+    ({ mkDerivation, base, template-haskell }:
      mkDerivation {
-       pname = "lifted-async";
-       version = "0.10.1.3";
-       sha256 = "1hml672j8sqxhklxif3nwr8v59a596wwwbllq0zvvmlxcjdzlh7k";
-       libraryHaskellDepends = [
-         async base constraints lifted-base monad-control transformers-base
-       ];
-       testHaskellDepends = [
-         async base HUnit lifted-base monad-control mtl tasty
-         tasty-expected-failure tasty-hunit tasty-th
-       ];
-       benchmarkHaskellDepends = [ async base deepseq tasty-bench ];
-       description = "Run lifted IO operations asynchronously and wait for their results";
+       pname = "lift-type";
+       version = "0.1.0.0";
+       sha256 = "0832xn7bfv1kwg02mmh6my11inljb066mci01b7p0xkcip1kmrhy";
+       revision = "1";
+       editedCabalFile = "1m89kzw7zrys8jjg7sbdpfq3bsqdvqr8bcszsnwvx0nmj1c6hciw";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base template-haskell ];
        license = lib.licenses.bsd3;
      }) {};
 
-  "lifted-async_0_10_2" = callPackage
+  "lifted-async" = callPackage
     ({ mkDerivation, async, base, constraints, deepseq, HUnit
      , lifted-base, monad-control, mtl, tasty, tasty-bench
      , tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
@@ -164272,7 +164239,6 @@ self: {
        benchmarkHaskellDepends = [ async base deepseq tasty-bench ];
        description = "Run lifted IO operations asynchronously and wait for their results";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lifted-base" = callPackage
@@ -169882,8 +169848,8 @@ self: {
      }) {};
 
   "lzma" = callPackage
-    ({ mkDerivation, base, bytestring, HUnit, lzma, QuickCheck, tasty
-     , tasty-hunit, tasty-quickcheck
+    ({ mkDerivation, base, bytestring, HUnit, QuickCheck, tasty
+     , tasty-hunit, tasty-quickcheck, xz
      }:
      mkDerivation {
        pname = "lzma";
@@ -169892,13 +169858,13 @@ self: {
        revision = "6";
        editedCabalFile = "1sh2g5wkh0m6646cxnii0k20f0crwdcnprfl9jfg7gxn5875bkip";
        libraryHaskellDepends = [ base bytestring ];
-       librarySystemDepends = [ lzma ];
+       librarySystemDepends = [ xz ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "LZMA/XZ compression and decompression";
        license = lib.licenses.bsd3;
-     }) {inherit (pkgs) lzma;};
+     }) {inherit (pkgs) xz;};
 
   "lzma-clib" = callPackage
     ({ mkDerivation }:
@@ -169934,8 +169900,8 @@ self: {
 
   "lzma-enumerator" = callPackage
     ({ mkDerivation, base, bindings-DSL, bytestring, enumerator, HUnit
-     , lzma, mtl, QuickCheck, test-framework, test-framework-hunit
-     , test-framework-quickcheck2
+     , mtl, QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, xz
      }:
      mkDerivation {
        pname = "lzma-enumerator";
@@ -169944,7 +169910,7 @@ self: {
        libraryHaskellDepends = [
          base bindings-DSL bytestring enumerator mtl
        ];
-       librarySystemDepends = [ lzma ];
+       librarySystemDepends = [ xz ];
        testHaskellDepends = [
          base bytestring enumerator HUnit QuickCheck test-framework
          test-framework-hunit test-framework-quickcheck2
@@ -169953,7 +169919,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) lzma;};
+     }) {inherit (pkgs) xz;};
 
   "lzma-static" = callPackage
     ({ mkDerivation, base, bytestring, HUnit, QuickCheck, tasty
@@ -169961,8 +169927,8 @@ self: {
      }:
      mkDerivation {
        pname = "lzma-static";
-       version = "5.2.5";
-       sha256 = "13xgap430r2hpkwk56ra5ya8fparikpzy50mbyd0xdpvs02imwfp";
+       version = "5.2.5.2";
+       sha256 = "12na1ycwrd7p50g19kgnb6kdgswnkwgzynaf0lyrv30qicpd8a5z";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -171513,6 +171479,27 @@ self: {
        broken = true;
      }) {};
 
+  "mangrove" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, filepath
+     , HUnit, text, transformers, unordered-containers, utility-ht
+     , vector, willow
+     }:
+     mkDerivation {
+       pname = "mangrove";
+       version = "0.1.0.0";
+       sha256 = "0r9gpi79h676zal5r6x6kq8aszi83y035g32j55y0lkqsiww86ah";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers filepath text transformers
+         unordered-containers utility-ht vector willow
+       ];
+       testHaskellDepends = [
+         base bytestring filepath HUnit text utility-ht
+       ];
+       description = "A parser for web documents according to the HTML5 specification";
+       license = lib.licenses.mpl20;
+     }) {};
+
   "manifold-random" = callPackage
     ({ mkDerivation, base, constrained-categories, linearmap-category
      , manifolds, random-fu, semigroups, vector-space
@@ -173258,6 +173245,21 @@ self: {
        broken = true;
      }) {};
 
+  "mcaeson" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "mcaeson";
+       version = "0.0.0.1";
+       sha256 = "0gkwqkyp5apwkzlqwm4h1fy112fy2ywg5qq2ma4s5agz9574h73q";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "An Aeson parsing toolkit";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "mcl" = callPackage
     ({ mkDerivation, base, binary, bytestring, Cabal, criterion
      , deepseq, ghc-prim, gmpxx, groups, integer-gmp, mcl, openssl
@@ -174848,8 +174850,8 @@ self: {
     ({ mkDerivation, base, hspec, hspec-discover, rio, transformers }:
      mkDerivation {
        pname = "method";
-       version = "0.3.0.0";
-       sha256 = "1a5i9sd5zz5kjpjpar3r5ak61x8fz5rrbb1iak1r2dcwlyk6rq25";
+       version = "0.3.1.0";
+       sha256 = "0a96av07vbh3mvyczh2jiziqb098q81jx6q0c5kgn7pmlxijw1ba";
        libraryHaskellDepends = [ base rio transformers ];
        testHaskellDepends = [ base hspec rio transformers ];
        testToolDepends = [ hspec-discover ];
@@ -177605,14 +177607,12 @@ self: {
   "mod" = callPackage
     ({ mkDerivation, base, deepseq, integer-gmp, primitive
      , quickcheck-classes, quickcheck-classes-base, semirings, tasty
-     , tasty-quickcheck, time, vector
+     , tasty-bench, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "mod";
-       version = "0.1.2.1";
-       sha256 = "0fjcjk9jxwc2d1fm3kzamh9gi3lwnl2g6kz3z2hd43dszkay1mn1";
-       revision = "2";
-       editedCabalFile = "0h4dff2r9q5619pfahdm4bb6xmsqvv5b6d0na1i2sg7zq58ac2bq";
+       version = "0.1.2.2";
+       sha256 = "0m92yd323kjjwnphqlima2aj0hh7i1gnpblc8a29ks25gj0sv66v";
        libraryHaskellDepends = [
          base deepseq integer-gmp primitive semirings vector
        ];
@@ -177620,7 +177620,7 @@ self: {
          base primitive quickcheck-classes quickcheck-classes-base semirings
          tasty tasty-quickcheck vector
        ];
-       benchmarkHaskellDepends = [ base time ];
+       benchmarkHaskellDepends = [ base tasty-bench ];
        description = "Fast type-safe modular arithmetic";
        license = lib.licenses.mit;
      }) {};
@@ -179992,8 +179992,8 @@ self: {
        pname = "monoidal-containers";
        version = "0.6.0.1";
        sha256 = "1j5mfs0ysvwk3jsmq4hlj4l3kasfc28lk1b3xaymf9dw48ac5j82";
-       revision = "2";
-       editedCabalFile = "1b98zf8c2mz7qrp24pyq6wqx5ljlckc7hyk62kiyj23svq7sxpzz";
+       revision = "4";
+       editedCabalFile = "1vi30clh5j3zzirbl4wch40vjds4p6sdmf1q1qadm4zzj7zahvpm";
        libraryHaskellDepends = [
          aeson base containers deepseq hashable lens newtype semialign
          semigroups these unordered-containers
@@ -180236,25 +180236,12 @@ self: {
     ({ mkDerivation, base, binary, containers, hspec }:
      mkDerivation {
        pname = "more-containers";
-       version = "0.2.2.0";
-       sha256 = "1i4klvfwgw608sy81mqqvd107b187gkib2rwsz6aqc4rh0vm0a87";
-       libraryHaskellDepends = [ base binary containers ];
-       testHaskellDepends = [ base binary containers hspec ];
-       description = "A few more collections";
-       license = lib.licenses.mit;
-     }) {};
-
-  "more-containers_0_2_2_2" = callPackage
-    ({ mkDerivation, base, binary, containers, hspec }:
-     mkDerivation {
-       pname = "more-containers";
        version = "0.2.2.2";
        sha256 = "0zbwqcn34321z2v0lj1lilzbpa8862cpk5ksmg8m8d8hrxa27szx";
        libraryHaskellDepends = [ base binary containers ];
        testHaskellDepends = [ base binary containers hspec ];
        description = "A few more collections";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "more-extensible-effects" = callPackage
@@ -188525,8 +188512,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-thunk";
-       version = "0.2.0.2";
-       sha256 = "1jxdxb8ri0cd7ni9z80xlb86d81bb83c6ki5wj7jx7sn9inzz8z7";
+       version = "0.3.0.0";
+       sha256 = "11fn65swyj7b3l7xs6rws81nnccr2hcf81igqmna5bwck3g2gklw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -189331,8 +189318,8 @@ self: {
     ({ mkDerivation, base, comonad, deepseq, doctest, Glob, safe }:
      mkDerivation {
        pname = "nonempty-zipper";
-       version = "1.0.0.1";
-       sha256 = "17h070rciwbdk36n68dbin1yv2ybrb2vak9azimfv51z6b6a7b4w";
+       version = "1.0.0.2";
+       sha256 = "10fj56ry851npkhrkw9gb1sckhx764l2s2c5x83cnylxlg7cfijj";
        libraryHaskellDepends = [ base comonad deepseq safe ];
        testHaskellDepends = [ base comonad deepseq doctest Glob safe ];
        description = "A non-empty comonadic list zipper";
@@ -189834,6 +189821,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "nri-env-parser_0_1_0_7" = callPackage
+    ({ mkDerivation, base, modern-uri, network-uri, nri-prelude, text
+     }:
+     mkDerivation {
+       pname = "nri-env-parser";
+       version = "0.1.0.7";
+       sha256 = "1mm879mqpgl040p789wcjm5bhrqia5czn18c5dgni8bwa4y61ank";
+       libraryHaskellDepends = [
+         base modern-uri network-uri nri-prelude text
+       ];
+       description = "Read environment variables as settings to build 12-factor apps";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "nri-observability" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, base, bugsnag-hs
      , bytestring, directory, hostname, http-client, http-client-tls
@@ -189858,6 +189860,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "nri-observability_0_1_0_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bugsnag-hs
+     , bytestring, directory, hostname, http-client, http-client-tls
+     , nri-env-parser, nri-prelude, random, safe-exceptions, stm, text
+     , time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "nri-observability";
+       version = "0.1.0.2";
+       sha256 = "19nil7vyjbvbjlapvrxky8fkxdl3f2xhqdi3a5m5i5lyawm74b6z";
+       libraryHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async base bugsnag-hs bytestring directory
+         hostname http-client http-client-tls nri-env-parser nri-prelude
+         random safe-exceptions stm text time unordered-containers
+       ];
+       description = "Report log spans collected by nri-prelude";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "nri-prelude" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, auto-update, base
      , bytestring, containers, directory, exceptions, filepath, ghc
@@ -189866,8 +189893,34 @@ self: {
      }:
      mkDerivation {
        pname = "nri-prelude";
-       version = "0.5.0.2";
-       sha256 = "1g96nf1nslynqywkqzb4x0k17v0fcw37jidrp7yzkmz16yhqxh1n";
+       version = "0.5.0.3";
+       sha256 = "0k4mhgyazjc74hwf2xgznhhkryqhdmsc2pv1v9d32706qkr796wn";
+       libraryHaskellDepends = [
+         aeson aeson-pretty async auto-update base bytestring containers
+         directory exceptions filepath ghc hedgehog junit-xml pretty-diff
+         pretty-show safe-coloured-text safe-exceptions terminal-size text
+         time vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty async auto-update base bytestring containers
+         directory exceptions filepath ghc hedgehog junit-xml pretty-diff
+         pretty-show safe-coloured-text safe-exceptions terminal-size text
+         time vector
+       ];
+       description = "A Prelude inspired by the Elm programming language";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "nri-prelude_0_6_0_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, auto-update, base
+     , bytestring, containers, directory, exceptions, filepath, ghc
+     , hedgehog, junit-xml, pretty-diff, pretty-show, safe-coloured-text
+     , safe-exceptions, terminal-size, text, time, vector
+     }:
+     mkDerivation {
+       pname = "nri-prelude";
+       version = "0.6.0.0";
+       sha256 = "02v83n08zxz8521skijgrn407a0mlkjc3fjn5q04gn932wf29g5s";
        libraryHaskellDepends = [
          aeson aeson-pretty async auto-update base bytestring containers
          directory exceptions filepath ghc hedgehog junit-xml pretty-diff
@@ -189882,6 +189935,7 @@ self: {
        ];
        description = "A Prelude inspired by the Elm programming language";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "nsis" = callPackage
@@ -192532,6 +192586,43 @@ self: {
        broken = true;
      }) {};
 
+  "openapi3_3_1_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries
+     , bytestring, Cabal, cabal-doctest, containers, cookie, doctest
+     , generics-sop, Glob, hashable, hspec, hspec-discover, http-media
+     , HUnit, insert-ordered-containers, lens, mtl, network, optics-core
+     , optics-th, QuickCheck, quickcheck-instances, scientific
+     , template-haskell, text, time, transformers, unordered-containers
+     , utf8-string, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "openapi3";
+       version = "3.1.0";
+       sha256 = "011754qyxxw5mn06hdmxalvsiff7a4x4k2yb2r6ylzr6zhyz818z";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base-compat-batteries bytestring containers
+         cookie generics-sop hashable http-media insert-ordered-containers
+         lens mtl network optics-core optics-th QuickCheck scientific
+         template-haskell text time transformers unordered-containers
+         uuid-types vector
+       ];
+       executableHaskellDepends = [ aeson base lens text ];
+       testHaskellDepends = [
+         aeson base base-compat-batteries bytestring containers doctest Glob
+         hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
+         quickcheck-instances template-haskell text time
+         unordered-containers utf8-string vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "OpenAPI 3.0 data model";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "openapi3-code-generator" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , filepath, genvalidity, genvalidity-hspec, genvalidity-text
@@ -193371,6 +193462,120 @@ self: {
        broken = true;
      }) {};
 
+  "opentracing" = callPackage
+    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
+     , case-insensitive, clock, containers, http-types, iproute, lens
+     , mtl, mwc-random, network, safe-exceptions, semigroups, stm, text
+     , time, transformers, unordered-containers, uri-bytestring, vinyl
+     }:
+     mkDerivation {
+       pname = "opentracing";
+       version = "0.1.0.0";
+       sha256 = "0j791hv525mcskqmji3f9n8v803pailm8jrl336pxzdh3iacqvsl";
+       libraryHaskellDepends = [
+         aeson async base base64-bytestring bytestring case-insensitive
+         clock containers http-types iproute lens mtl mwc-random network
+         safe-exceptions semigroups stm text time transformers
+         unordered-containers uri-bytestring vinyl
+       ];
+       description = "OpenTracing for Haskell";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "opentracing-http-client" = callPackage
+    ({ mkDerivation, base, http-client, lens, mtl, opentracing, text }:
+     mkDerivation {
+       pname = "opentracing-http-client";
+       version = "0.1.0.0";
+       sha256 = "1jzdnlk2cacmymjkcfx4n569n6gqy6kwzh9dxrgjnagwh3jqk7q3";
+       libraryHaskellDepends = [
+         base http-client lens mtl opentracing text
+       ];
+       description = "OpenTracing instrumentation of http-client";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "opentracing-jaeger" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, hashable
+     , http-client, http-types, lens, mtl, network, opentracing
+     , QuickCheck, safe-exceptions, text, thrift, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "opentracing-jaeger";
+       version = "0.1.0.0";
+       sha256 = "1yr9vhbpqq12hj9blv3v1wc26n9qsp0g7pjngxh0k1zcv759s1k0";
+       libraryHaskellDepends = [
+         base bytestring exceptions hashable http-client http-types lens mtl
+         network opentracing QuickCheck safe-exceptions text thrift
+         unordered-containers vector
+       ];
+       description = "Jaeger backend for OpenTracing";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentracing-wai" = callPackage
+    ({ mkDerivation, base, lens, opentracing, text, wai }:
+     mkDerivation {
+       pname = "opentracing-wai";
+       version = "0.1.0.0";
+       sha256 = "1m68l4gxpyl81yhkd209kdgzydzyg632x8gl2jh3l4k83ysdg545";
+       libraryHaskellDepends = [ base lens opentracing text wai ];
+       description = "Middleware adding OpenTracing tracing for WAI applications";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "opentracing-zipkin-common" = callPackage
+    ({ mkDerivation, aeson, base, opentracing, text }:
+     mkDerivation {
+       pname = "opentracing-zipkin-common";
+       version = "0.1.0.0";
+       sha256 = "00pg2k0v685gc4fmrcb464fapvpz8lw0249n6gmi2zkhpw8frnm0";
+       libraryHaskellDepends = [ aeson base opentracing text ];
+       description = "Zipkin OpenTracing Backend Commons";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "opentracing-zipkin-v1" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, hashable
+     , http-client, http-types, iproute, lens, opentracing
+     , opentracing-zipkin-common, QuickCheck, text, thrift
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "opentracing-zipkin-v1";
+       version = "0.1.0.0";
+       sha256 = "0mw6x9jqh42ymn1a3maq47mw1mbzki5lv1axapqkhkx0w13824pp";
+       libraryHaskellDepends = [
+         base bytestring exceptions hashable http-client http-types iproute
+         lens opentracing opentracing-zipkin-common QuickCheck text thrift
+         unordered-containers vector
+       ];
+       description = "Zipkin V1 backend for OpenTracing";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "opentracing-zipkin-v2" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , exceptions, http-client, http-types, lens, opentracing
+     , opentracing-zipkin-common, text
+     }:
+     mkDerivation {
+       pname = "opentracing-zipkin-v2";
+       version = "0.1.0.0";
+       sha256 = "0rmrlx2g228p4ys95d4zqc0l56a62avsawq320g4n9i2g0hrl5n4";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring exceptions http-client
+         http-types lens opentracing opentracing-zipkin-common text
+       ];
+       description = "Zipkin V2 backend for OpenTracing";
+       license = lib.licenses.asl20;
+     }) {};
+
   "opentype" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, ghc
      , microlens, microlens-th, mtl, pretty-hex, time
@@ -196220,8 +196425,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.3.9";
-       sha256 = "1wl6jxpx181sx5w311c2h5kjpl5hjagbwfn68s6dbsbyp4p9sxjv";
+       version = "0.4.0";
+       sha256 = "0jy41qiqn6xj6ib20klv85jyr8vn633xqhxbx38zxs5dsq885laq";
        description = "A box of patterns and paradigms";
        license = lib.licenses.mit;
      }) {};
@@ -197049,8 +197254,6 @@ self: {
        testHaskellDepends = [ base data-diverse hspec transformers ];
        description = "Parameterized/indexed monoids and monads using only a single parameter type variable";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "parameterized-data" = callPackage
@@ -198318,8 +198521,8 @@ self: {
      }:
      mkDerivation {
        pname = "patch";
-       version = "0.0.3.2";
-       sha256 = "1b819d1iramxb0sf0zm4ry8mrd74y35iffbb6qys3a2xq1d382xa";
+       version = "0.0.4.0";
+       sha256 = "02hdhgk7wwcnq7aahbaqx5zzlha6mq6lj0mw57phj3ykmca0zggc";
        libraryHaskellDepends = [
          base constraints-extras containers dependent-map dependent-sum lens
          monoidal-containers semialign semigroupoids these transformers
@@ -200424,7 +200627,7 @@ self: {
        maintainers = with lib.maintainers; [ psibi ];
      }) {};
 
-  "persistent_2_12_1_0" = callPackage
+  "persistent_2_12_1_1" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, conduit, containers, criterion, deepseq
      , deepseq-generics, fast-logger, file-embed, hspec, http-api-data
@@ -200435,8 +200638,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.12.1.0";
-       sha256 = "06cqrvavjzp2iyvi69j6ga0pqy6265dwsg44h93k4qffhknlms1a";
+       version = "2.12.1.1";
+       sha256 = "00n463mvfnjpi7dz4i3lz379cf4gprsiv57j4jb7wh5a8xr2vfhz";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data monad-logger mtl
@@ -200884,19 +201087,20 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "persistent-postgresql_2_12_1_0" = callPackage
+  "persistent-postgresql_2_12_1_1" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
      , conduit, containers, fast-logger, hspec, hspec-expectations
-     , HUnit, monad-logger, mtl, persistent, persistent-qq
-     , persistent-test, postgresql-libpq, postgresql-simple, QuickCheck
-     , quickcheck-instances, resource-pool, resourcet
-     , string-conversions, text, time, transformers, unliftio
-     , unliftio-core, unordered-containers, vector
+     , hspec-expectations-lifted, HUnit, monad-logger, mtl, persistent
+     , persistent-qq, persistent-test, postgresql-libpq
+     , postgresql-simple, QuickCheck, quickcheck-instances
+     , resource-pool, resourcet, string-conversions, text, time
+     , transformers, unliftio, unliftio-core, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "persistent-postgresql";
-       version = "2.12.1.0";
-       sha256 = "18b4069x4jb7qxmrv0hck7r7v8192bkn4nmhl3wfidwn1vvsa9da";
+       version = "2.12.1.1";
+       sha256 = "1zyh40490r3vjr5qyr8hp2ih1pjqjwbmwm1ashdm1b1n9y5ary53";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -200907,9 +201111,10 @@ self: {
        ];
        testHaskellDepends = [
          aeson base bytestring containers fast-logger hspec
-         hspec-expectations HUnit monad-logger persistent persistent-qq
-         persistent-test QuickCheck quickcheck-instances resourcet text time
-         transformers unliftio unliftio-core unordered-containers vector
+         hspec-expectations hspec-expectations-lifted HUnit monad-logger
+         persistent persistent-qq persistent-test QuickCheck
+         quickcheck-instances resourcet text time transformers unliftio
+         unliftio-core unordered-containers vector
        ];
        description = "Backend for the persistent library using postgresql";
        license = lib.licenses.mit;
@@ -202050,6 +202255,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-phonetics-basics" = callPackage
+    ({ mkDerivation, base, mmsyn2-array, mmsyn5 }:
+     mkDerivation {
+       pname = "phonetic-languages-phonetics-basics";
+       version = "0.3.2.0";
+       sha256 = "0r4f69ky1y45h6fys1821z45ccg30h61yc68x16cf839awfri92l";
+       libraryHaskellDepends = [ base mmsyn2-array mmsyn5 ];
+       description = "A library for working with generalized phonetic languages usage";
+       license = lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-plus" = callPackage
     ({ mkDerivation, base, bytestring, lists-flines, parallel
      , uniqueness-periods-vector-stats
@@ -202142,8 +202358,8 @@ self: {
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-examples-array";
-       version = "0.4.0.0";
-       sha256 = "03vin7gng1sqifyy0s83igmd41bxxwrp7ck9j7bxhnqq0qmg5d7n";
+       version = "0.4.1.0";
+       sha256 = "02z7c3ngcj4dz473j0ha05qh5wviiy4qp1mk3p4gidxrhkgbxhyc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -204396,6 +204612,8 @@ self: {
        pname = "pixiv";
        version = "0.1.0";
        sha256 = "001pfzijh7ibcyinmw0l8yvw0kxsvmniw993qx9b6zlzf689cpp6";
+       revision = "1";
+       editedCabalFile = "03wfjj0a074n02mpa02gncfy35m53qdmij465dk8g6qjnjah8a01";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptohash-md5 directory
          exceptions filepath http-client http-client-tls lens monad-control
@@ -204520,6 +204738,28 @@ self: {
        broken = true;
      }) {};
 
+  "pkgtreediff_0_4_1" = callPackage
+    ({ mkDerivation, async, base, directory, extra, filepath, Glob
+     , http-client, http-client-tls, http-directory, koji, simple-cmd
+     , simple-cmd-args, text
+     }:
+     mkDerivation {
+       pname = "pkgtreediff";
+       version = "0.4.1";
+       sha256 = "0yj0wpwpryavy09264xh82kxi52gc5ipyrgwpxh3m9gv1264gip0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base text ];
+       executableHaskellDepends = [
+         async base directory extra filepath Glob http-client
+         http-client-tls http-directory koji simple-cmd simple-cmd-args text
+       ];
+       description = "Package tree diff tool";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "pktree" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -206140,31 +206380,28 @@ self: {
 
   "polysemy-http" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring
-     , case-insensitive, co-log-core, co-log-polysemy, composition
-     , containers, data-default, either, hedgehog, http-client
-     , http-client-tls, http-types, lens, network, polysemy
-     , polysemy-log, polysemy-plugin, relude, servant, servant-client
-     , servant-server, string-interpolate, tasty, tasty-hedgehog
-     , template-haskell, text, time, warp
+     , case-insensitive, composition, containers, data-default, either
+     , hedgehog, http-client, http-client-tls, http-types, lens, network
+     , polysemy, polysemy-log, polysemy-plugin, relude, servant
+     , servant-client, servant-server, string-interpolate, tasty
+     , tasty-hedgehog, template-haskell, text, time, warp
      }:
      mkDerivation {
        pname = "polysemy-http";
-       version = "0.4.0.2";
-       sha256 = "0xxl33iydycw1n2q9wvbx3jlhzsw9yhbm4v0a8v2ic05nqlmaw4l";
+       version = "0.4.0.3";
+       sha256 = "0sp4s8spf0nzqs8cw9swnsxd2wxa0g4cnz236n7m6z73450ih3c7";
        libraryHaskellDepends = [
-         aeson ansi-terminal base bytestring case-insensitive co-log-core
-         co-log-polysemy composition containers data-default either
-         http-client http-client-tls http-types lens polysemy polysemy-log
-         polysemy-plugin relude string-interpolate template-haskell text
-         time
+         aeson ansi-terminal base bytestring case-insensitive composition
+         containers data-default either http-client http-client-tls
+         http-types lens polysemy polysemy-log polysemy-plugin relude
+         string-interpolate template-haskell text time
        ];
        testHaskellDepends = [
-         aeson ansi-terminal base bytestring case-insensitive co-log-core
-         co-log-polysemy composition containers data-default either hedgehog
-         http-client http-client-tls http-types lens network polysemy
-         polysemy-log polysemy-plugin relude servant servant-client
-         servant-server string-interpolate tasty tasty-hedgehog
-         template-haskell text time warp
+         aeson ansi-terminal base bytestring case-insensitive composition
+         containers data-default either hedgehog http-client http-client-tls
+         http-types lens network polysemy polysemy-log polysemy-plugin
+         relude servant servant-client servant-server string-interpolate
+         tasty tasty-hedgehog template-haskell text time warp
        ];
        description = "Polysemy effect for http-client";
        license = "BSD-2-Clause-Patent";
@@ -206389,8 +206626,9 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-test";
-       version = "0.3.1.1";
-       sha256 = "0xlhw9kf55fn26v068pxwajpl8dw7xcmrlkxk8ci55jans0blx9w";
+       version = "0.3.1.2";
+       sha256 = "1gzngz8mspq0n6hwhvqah8szjrhf65wigadrh3l863j2iswsxq2r";
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base containers either hedgehog path path-io polysemy
          polysemy-plugin relude string-interpolate tasty tasty-hedgehog
@@ -212341,8 +212579,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.4.0.2";
-       sha256 = "0mk1yhpq2q6jv7z3ipdq5dw5sij39y7lv5gaslzxkbvs2kan7d4m";
+       version = "0.4.1";
+       sha256 = "1zzw3kgxa875g0bpqi1zblw3q8h7lw53gcz4c8qjgkr2v1cr5nf3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -212397,6 +212635,31 @@ self: {
        broken = true;
      }) {};
 
+  "proto3-wire_1_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, containers, deepseq
+     , doctest, ghc-prim, hashable, parameterized, primitive, QuickCheck
+     , safe, tasty, tasty-hunit, tasty-quickcheck, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "proto3-wire";
+       version = "1.2.1";
+       sha256 = "0i706y9j5iq5zyi86vkiybznp3b4h2x0flvq3jmr8mgpgahvh94r";
+       libraryHaskellDepends = [
+         base bytestring cereal containers deepseq ghc-prim hashable
+         parameterized primitive QuickCheck safe text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring cereal doctest QuickCheck tasty tasty-hunit
+         tasty-quickcheck text transformers vector
+       ];
+       description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "protobuf" = callPackage
     ({ mkDerivation, base, base-orphans, bytestring, cereal, containers
      , data-binary-ieee754, deepseq, hex, HUnit, mtl, QuickCheck, tagged
@@ -213578,13 +213841,14 @@ self: {
      , ansi-terminal, ansi-wl-pprint, array, base, base-compat
      , blaze-html, bower-json, boxes, bytestring, Cabal, cborg
      , cheapskate, clock, containers, cryptonite, data-ordlist, deepseq
-     , directory, edit-distance, file-embed, filepath, fsnotify, gitrev
-     , Glob, happy, haskeline, hspec, hspec-discover, http-types, HUnit
-     , language-javascript, lifted-async, lifted-base, memory
-     , microlens-platform, monad-control, monad-logger, mtl, network
-     , optparse-applicative, parallel, parsec, pattern-arrows, process
-     , protolude, purescript-ast, purescript-cst, regex-base, regex-tdfa
-     , safe, semialign, semigroups, serialise, sourcemap, split, stm
+     , directory, dlist, edit-distance, exceptions, file-embed, filepath
+     , fsnotify, gitrev, Glob, happy, haskeline, hspec, hspec-discover
+     , http-types, HUnit, language-javascript, lifted-async, lifted-base
+     , memory, microlens, microlens-platform, monad-control
+     , monad-logger, mtl, network, optparse-applicative, parallel
+     , parsec, pattern-arrows, process, protolude, purescript-ast
+     , purescript-cst, regex-base, regex-tdfa, safe, scientific
+     , semialign, semigroups, serialise, sourcemap, split, stm
      , stringsearch, syb, tasty, tasty-golden, tasty-hspec
      , tasty-quickcheck, text, these, time, transformers
      , transformers-base, transformers-compat, unordered-containers
@@ -213592,34 +213856,36 @@ self: {
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.14.0";
-       sha256 = "1bv68y91l6fyjidfp71djiv2lijn5d55j4szlg77yvsw164s6vk0";
+       version = "0.14.1";
+       sha256 = "0cqrasq0my2nsslpvy1mfhc2nqj2bfcilv8acd600bn9f6qgn4yv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
          base-compat blaze-html bower-json boxes bytestring Cabal cborg
          cheapskate clock containers cryptonite data-ordlist deepseq
-         directory edit-distance file-embed filepath fsnotify Glob haskeline
-         language-javascript lifted-async lifted-base memory
-         microlens-platform monad-control monad-logger mtl parallel parsec
-         pattern-arrows process protolude purescript-ast purescript-cst
-         regex-tdfa safe semialign semigroups serialise sourcemap split stm
-         stringsearch syb text these time transformers transformers-base
-         transformers-compat unordered-containers utf8-string vector
+         directory dlist edit-distance file-embed filepath fsnotify Glob
+         haskeline language-javascript lifted-async lifted-base memory
+         microlens microlens-platform monad-control monad-logger mtl
+         parallel parsec pattern-arrows process protolude purescript-ast
+         purescript-cst regex-tdfa safe scientific semialign semigroups
+         serialise sourcemap split stm stringsearch syb text these time
+         transformers transformers-base transformers-compat
+         unordered-containers utf8-string vector
        ];
        libraryToolDepends = [ happy ];
        executableHaskellDepends = [
          aeson aeson-better-errors aeson-pretty ansi-terminal ansi-wl-pprint
          array base base-compat blaze-html bower-json boxes bytestring Cabal
          cborg cheapskate clock containers cryptonite data-ordlist deepseq
-         directory edit-distance file-embed filepath fsnotify gitrev Glob
-         haskeline http-types language-javascript lifted-async lifted-base
-         memory microlens-platform monad-control monad-logger mtl network
-         optparse-applicative parallel parsec pattern-arrows process
-         protolude purescript-ast purescript-cst regex-tdfa safe semialign
-         semigroups serialise sourcemap split stm stringsearch syb text
-         these time transformers transformers-base transformers-compat
+         directory dlist edit-distance exceptions file-embed filepath
+         fsnotify gitrev Glob haskeline http-types language-javascript
+         lifted-async lifted-base memory microlens microlens-platform
+         monad-control monad-logger mtl network optparse-applicative
+         parallel parsec pattern-arrows process protolude purescript-ast
+         purescript-cst regex-tdfa safe scientific semialign semigroups
+         serialise sourcemap split stm stringsearch syb text these time
+         transformers transformers-base transformers-compat
          unordered-containers utf8-string vector wai wai-websockets warp
          websockets
        ];
@@ -213628,15 +213894,15 @@ self: {
          aeson aeson-better-errors aeson-pretty ansi-terminal array base
          base-compat blaze-html bower-json boxes bytestring Cabal cborg
          cheapskate clock containers cryptonite data-ordlist deepseq
-         directory edit-distance file-embed filepath fsnotify Glob haskeline
-         hspec hspec-discover HUnit language-javascript lifted-async
-         lifted-base memory microlens-platform monad-control monad-logger
-         mtl parallel parsec pattern-arrows process protolude purescript-ast
-         purescript-cst regex-base regex-tdfa safe semialign semigroups
-         serialise sourcemap split stm stringsearch syb tasty tasty-golden
-         tasty-hspec tasty-quickcheck text these time transformers
-         transformers-base transformers-compat unordered-containers
-         utf8-string vector
+         directory dlist edit-distance file-embed filepath fsnotify Glob
+         haskeline hspec HUnit language-javascript lifted-async lifted-base
+         memory microlens microlens-platform monad-control monad-logger mtl
+         parallel parsec pattern-arrows process protolude purescript-ast
+         purescript-cst regex-base regex-tdfa safe scientific semialign
+         semigroups serialise sourcemap split stm stringsearch syb tasty
+         tasty-golden tasty-hspec tasty-quickcheck text these time
+         transformers transformers-base transformers-compat
+         unordered-containers utf8-string vector
        ];
        testToolDepends = [ happy hspec-discover ];
        doCheck = false;
@@ -213653,8 +213919,8 @@ self: {
      }:
      mkDerivation {
        pname = "purescript-ast";
-       version = "0.1.0.0";
-       sha256 = "1zwwbdkc5mb3ckc2g15b18j9vp9bksyc1nrlg73w7w0fzqwnqb4g";
+       version = "0.1.1.0";
+       sha256 = "12zkkbpv1xxvx4d3rybng1kxvw6z5gjr45mfy9bpkmb3jqzl1xd2";
        libraryHaskellDepends = [
          aeson base base-compat bytestring containers deepseq filepath
          microlens mtl protolude scientific serialise text vector
@@ -213709,8 +213975,8 @@ self: {
      }:
      mkDerivation {
        pname = "purescript-cst";
-       version = "0.1.0.0";
-       sha256 = "1h4na5k0lz91i1f49axsgs7zqz6dqdxds5dg0g00wd4wmyd619cc";
+       version = "0.1.1.0";
+       sha256 = "05jqf9c0pakbjvr2zvybaxg9rfi87dadsx4srjlrw294r2sz969r";
        libraryHaskellDepends = [
          array base containers dlist purescript-ast scientific semigroups
          text
@@ -214266,7 +214532,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) python;};
+     }) {python = null;};
 
   "pyfi" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, pureMD5
@@ -214284,7 +214550,7 @@ self: {
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) python;};
+     }) {python = null;};
 
   "python-pickle" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cereal, cmdargs
@@ -214554,6 +214820,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "qr" = callPackage
+    ({ mkDerivation, array, base, cairo, gtk, optparse-applicative
+     , transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "qr";
+       version = "0.2.0.0";
+       sha256 = "0mn33p9j87w5fq4ddrwn5nb32gcxzxli55y3jv1aaypsgi6vf3w7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ array base utf8-string ];
+       executableHaskellDepends = [
+         array base cairo gtk optparse-applicative transformers
+       ];
+       description = "Pure Haskell QR encoder library and command line tool";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "qr-imager" = callPackage
     ({ mkDerivation, base, binary, bytestring, cryptonite, directory
      , haskell-qrencode, hspec, jose-jwt, JuicyPixels, microlens
@@ -215254,19 +215538,18 @@ self: {
      }) {};
 
   "quickcheck-classes" = callPackage
-    ({ mkDerivation, aeson, base, base-orphans, bifunctors, containers
-     , contravariant, fail, primitive, primitive-addr, QuickCheck
-     , quickcheck-classes-base, semigroupoids, semigroups, semirings
-     , tagged, tasty, tasty-quickcheck, transformers, vector
+    ({ mkDerivation, aeson, base, base-orphans, containers, primitive
+     , primitive-addr, QuickCheck, quickcheck-classes-base
+     , semigroupoids, semirings, tagged, tasty, tasty-quickcheck
+     , transformers, vector
      }:
      mkDerivation {
        pname = "quickcheck-classes";
-       version = "0.6.4.0";
-       sha256 = "0qcxmkf9ig6jnfpd5slx2imzwmvvyqgvlif2940yzwam63m6anwg";
+       version = "0.6.5.0";
+       sha256 = "19iw15mvb7gws3ljdxqwsbb4pmfc0sfflf8szgmrhiqr3k82mqv2";
        libraryHaskellDepends = [
-         aeson base base-orphans bifunctors containers contravariant fail
-         primitive primitive-addr QuickCheck quickcheck-classes-base
-         semigroupoids semigroups semirings tagged transformers vector
+         aeson base containers primitive primitive-addr QuickCheck
+         quickcheck-classes-base semigroupoids semirings transformers vector
        ];
        testHaskellDepends = [
          aeson base base-orphans containers primitive QuickCheck
@@ -215277,16 +215560,13 @@ self: {
      }) {};
 
   "quickcheck-classes-base" = callPackage
-    ({ mkDerivation, base, base-orphans, bifunctors, containers
-     , contravariant, fail, QuickCheck, tagged, transformers
-     }:
+    ({ mkDerivation, base, containers, QuickCheck, transformers }:
      mkDerivation {
        pname = "quickcheck-classes-base";
-       version = "0.6.1.0";
-       sha256 = "0yzljsy74njmbav90hgraxhjx0l86zggakfw0j3k7maz9376jvax";
+       version = "0.6.2.0";
+       sha256 = "16c6gq4cqpkwnq1pzkhm6r7mrwk4an50ha5w77bmiia2qkhla6ch";
        libraryHaskellDepends = [
-         base base-orphans bifunctors containers contravariant fail
-         QuickCheck tagged transformers
+         base containers QuickCheck transformers
        ];
        description = "QuickCheck common typeclasses from `base`";
        license = lib.licenses.bsd3;
@@ -219455,24 +219735,6 @@ self: {
      }:
      mkDerivation {
        pname = "records-sop";
-       version = "0.1.0.3";
-       sha256 = "120kb6z4si5wqkahbqxqhm3qb8xpc9ivwg293ymz8a4ri1hdr0a5";
-       revision = "1";
-       editedCabalFile = "0492a3cabdl5ccncc7lk7bvh55in4hzm345fl3xpidp9jx6mv1x4";
-       libraryHaskellDepends = [ base deepseq generics-sop ghc-prim ];
-       testHaskellDepends = [
-         base deepseq generics-sop hspec should-not-typecheck
-       ];
-       description = "Record subtyping and record utilities with generics-sop";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "records-sop_0_1_1_0" = callPackage
-    ({ mkDerivation, base, deepseq, generics-sop, ghc-prim, hspec
-     , should-not-typecheck
-     }:
-     mkDerivation {
-       pname = "records-sop";
        version = "0.1.1.0";
        sha256 = "01h6brqrpk5yhddi0cx2a9cv2dvri81xzx5ny616nfgy4fn9pfdl";
        libraryHaskellDepends = [ base deepseq generics-sop ghc-prim ];
@@ -219481,7 +219743,6 @@ self: {
        ];
        description = "Record subtyping and record utilities with generics-sop";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "records-th" = callPackage
@@ -220223,8 +220484,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex";
-       version = "0.8.0.0";
-       sha256 = "14pw033ljs6x5bi5657cm5lpwwj6gkfgskbv5lpdi2hp7svzayql";
+       version = "0.8.1.0";
+       sha256 = "0p27dj7fckkvw9li69whcfrv1cd59kkp6qbvfmndzx8fbh44ggbp";
        libraryHaskellDepends = [
          base bifunctors comonad constraints-extras containers data-default
          dependent-map dependent-sum exception-transformers haskell-src-exts
@@ -220345,6 +220606,8 @@ self: {
        pname = "reflex-dom";
        version = "0.6.1.0";
        sha256 = "190g56y16xvj508qdp3znlbbv4gb3ska38jbjpblvq8cz2d4nkdc";
+       revision = "1";
+       editedCabalFile = "0xi2bn6d4bgbfqngl2y9gva4nxii65v3hzrik74wzdsf17wyrmv9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220407,8 +220670,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-dom-core";
-       version = "0.6.1.0";
-       sha256 = "072bkjjmz6mjw42gchlbswhjhr9xs0vaybf6mvdycs618lb1zhf0";
+       version = "0.6.2.0";
+       sha256 = "067m8ifgkknafy0nxzmns89dqjzpsc983pm3gaq7dg618jp1dzy4";
        libraryHaskellDepends = [
          aeson base bifunctors bimap blaze-builder bytestring
          case-insensitive constraints containers contravariant data-default
@@ -221564,6 +221827,8 @@ self: {
        pname = "regex-tdfa-rc";
        version = "1.1.8.3";
        sha256 = "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3";
+       revision = "2";
+       editedCabalFile = "04w0jdavczf8gilx6cr1cgpqydvrmiksrzc8j30ijwn9hsa149mh";
        libraryHaskellDepends = [
          array base bytestring containers ghc-prim mtl parsec regex-base
        ];
@@ -221906,35 +222171,6 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.2.0.2";
-       sha256 = "1lq8r382xm1m5b7i0jfjaj3f1jr98rdvjpn0h77i4i0i1wy529c1";
-       libraryHaskellDepends = [
-         base containers exceptions hashable mmorph mtl protolude resourcet
-         semigroupoids semigroups template-haskell text transformers-base
-       ];
-       testHaskellDepends = [
-         async base bytestring containers directory exceptions generic-lens
-         hashable hedgehog io-memoize mmorph MonadRandom mtl multimap
-         protolude random resourcet semigroupoids semigroups tasty
-         tasty-discover tasty-hedgehog tasty-th template-haskell text
-         transformers-base universum
-       ];
-       testToolDepends = [ tasty-discover ];
-       description = "data structure for assembling components";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "registry_0_2_0_3" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, directory
-     , exceptions, generic-lens, hashable, hedgehog, io-memoize, mmorph
-     , MonadRandom, mtl, multimap, protolude, random, resourcet
-     , semigroupoids, semigroups, tasty, tasty-discover, tasty-hedgehog
-     , tasty-th, template-haskell, text, transformers-base, universum
-     }:
-     mkDerivation {
-       pname = "registry";
        version = "0.2.0.3";
        sha256 = "1fhqcpbvz16yj93mhf7lx40i8a00mizj51m3nyazg785xhil9xbs";
        libraryHaskellDepends = [
@@ -223492,6 +223728,21 @@ self: {
        broken = true;
      }) {};
 
+  "request" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, http-client
+     , http-client-tls, http-types
+     }:
+     mkDerivation {
+       pname = "request";
+       version = "0.1.3.0";
+       sha256 = "07ypsdmf227m6j8gkl29621z7grbsgr0pmk3dglx9zlrmq0zbn8j";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive http-client http-client-tls
+         http-types
+       ];
+       license = lib.licenses.bsd3;
+     }) {};
+
   "request-monad" = callPackage
     ({ mkDerivation, base, free, mtl, transformers }:
      mkDerivation {
@@ -224373,8 +224624,8 @@ self: {
      }:
      mkDerivation {
        pname = "retrie";
-       version = "0.1.1.1";
-       sha256 = "1l6pcvmf95i4r4b370j8dwqbvj3971xn6097lbw93agyrf704qpi";
+       version = "1.0.0.0";
+       sha256 = "1hrkx7gx7hwgljvx8zm1yhn7xvyif943hvxx5b27ali6grmndy9w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225344,26 +225595,6 @@ self: {
   "rio-orphans" = callPackage
     ({ mkDerivation, base, exceptions, fast-logger, hspec
      , monad-control, monad-logger, resourcet, rio, transformers-base
-     }:
-     mkDerivation {
-       pname = "rio-orphans";
-       version = "0.1.1.0";
-       sha256 = "0klbshdsv3gq3l7g1d6gq2wxdqjlqxbnwk1lbg5dpbz7yrnjr3by";
-       libraryHaskellDepends = [
-         base exceptions fast-logger monad-control monad-logger resourcet
-         rio transformers-base
-       ];
-       testHaskellDepends = [
-         base exceptions fast-logger hspec monad-control monad-logger
-         resourcet rio transformers-base
-       ];
-       description = "Orphan instances for the RIO type in the rio package";
-       license = lib.licenses.mit;
-     }) {};
-
-  "rio-orphans_0_1_2_0" = callPackage
-    ({ mkDerivation, base, exceptions, fast-logger, hspec
-     , monad-control, monad-logger, resourcet, rio, transformers-base
      , unliftio-core
      }:
      mkDerivation {
@@ -225380,7 +225611,6 @@ self: {
        ];
        description = "Orphan instances for the RIO type in the rio package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "rio-prettyprint" = callPackage
@@ -228138,6 +228368,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "safe-numeric" = callPackage
+    ({ mkDerivation, base, containers, doctest, safe, wide-word }:
+     mkDerivation {
+       pname = "safe-numeric";
+       version = "0.1";
+       sha256 = "11y9p20cgfsg676a8jm5w7z2qc2y3hznwhniw054qcdnnf7dalwi";
+       libraryHaskellDepends = [ base safe wide-word ];
+       testHaskellDepends = [ base containers doctest ];
+       description = "Safe arithmetic operations";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "safe-plugins" = callPackage
     ({ mkDerivation, base, directory, filepath, haskell-src-exts
      , plugins, Unixutils
@@ -228199,8 +228443,8 @@ self: {
      }:
      mkDerivation {
        pname = "safecopy";
-       version = "0.10.4.1";
-       sha256 = "1p8kbf9js67zl2wr6y0605acy54xlpsih1zqkdy21cywz1kannbp";
+       version = "0.10.4.2";
+       sha256 = "0r2mf0p82gf8vnldx477b5ykrj1x7hyg13nqfn6gzb50japs6h3i";
        libraryHaskellDepends = [
          array base bytestring cereal containers generic-data old-time
          template-haskell text time transformers vector
@@ -228427,8 +228671,8 @@ self: {
      }:
      mkDerivation {
        pname = "sak";
-       version = "0.1.3.0";
-       sha256 = "1khws0z9v91vz722k6y0b99ffy2vd04myvpww4p1i32396dhczln";
+       version = "0.1.3.1";
+       sha256 = "12vharmp5f0ffxy4j5kjwqnffc87y4wmzvgcfvp6prqyjfh87qfy";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -228879,6 +229123,122 @@ self: {
        broken = true;
      }) {};
 
+  "sandwich" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, brick
+     , bytestring, colour, containers, directory, exceptions, filepath
+     , free, haskell-src-exts, lens, lifted-async, microlens
+     , microlens-th, monad-control, monad-logger, mtl
+     , optparse-applicative, pretty-show, process, safe, safe-exceptions
+     , stm, string-interpolate, template-haskell, text, time
+     , transformers, transformers-base, unix, unliftio-core, vector, vty
+     }:
+     mkDerivation {
+       pname = "sandwich";
+       version = "0.1.0.2";
+       sha256 = "1xcw3mdl85brj6pvynz58aclaf3ya0aq0y038cps9dsz58bqhbka";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal async base brick bytestring colour containers
+         directory exceptions filepath free haskell-src-exts lens
+         lifted-async microlens microlens-th monad-control monad-logger mtl
+         optparse-applicative pretty-show process safe safe-exceptions stm
+         string-interpolate template-haskell text time transformers
+         transformers-base unix unliftio-core vector vty
+       ];
+       description = "Yet another test framework for Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sandwich-slack" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, lens
+     , lens-aeson, monad-logger, mtl, safe, safe-exceptions, sandwich
+     , stm, string-interpolate, text, time, vector, wreq
+     }:
+     mkDerivation {
+       pname = "sandwich-slack";
+       version = "0.1.0.1";
+       sha256 = "1c7csrdfq342733rgrfwx5rc6v14jhfb9wb44gn699pgzzj031kz";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers lens lens-aeson monad-logger mtl
+         safe safe-exceptions sandwich stm string-interpolate text time
+         vector wreq
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring containers lens lens-aeson monad-logger mtl
+         safe safe-exceptions sandwich stm string-interpolate text time
+         vector wreq
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers lens lens-aeson monad-logger mtl
+         safe safe-exceptions sandwich stm string-interpolate text time
+         vector wreq
+       ];
+       description = "Sandwich integration with Slack";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "sandwich-webdriver" = callPackage
+    ({ mkDerivation, aeson, base, containers, convertible, data-default
+     , directory, exceptions, filepath, http-client, http-client-tls
+     , http-conduit, lifted-base, microlens, microlens-aeson
+     , monad-control, monad-logger, mtl, network, process, random, retry
+     , safe, safe-exceptions, sandwich, string-interpolate, temporary
+     , text, time, transformers, unix, unordered-containers, vector
+     , webdriver, X11
+     }:
+     mkDerivation {
+       pname = "sandwich-webdriver";
+       version = "0.1.0.1";
+       sha256 = "10s0zb3al4ii9gm3b6by8czvr8i3s424mlfk81v2hpdv5i7a0yqb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       executableHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       testHaskellDepends = [
+         aeson base containers convertible data-default directory exceptions
+         filepath http-client http-client-tls http-conduit lifted-base
+         microlens microlens-aeson monad-control monad-logger mtl network
+         process random retry safe safe-exceptions sandwich
+         string-interpolate temporary text time transformers unix
+         unordered-containers vector webdriver X11
+       ];
+       description = "Sandwich integration with Selenium WebDriver";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "sarasvati" = callPackage
     ({ mkDerivation, base, deepseq, portaudio }:
      mkDerivation {
@@ -229627,17 +229987,18 @@ self: {
      }) {};
 
   "scenegraph" = callPackage
-    ({ mkDerivation, array, base, containers, fgl, GLUT, haskell98
-     , hmatrix, mtl, old-time, OpenGL, process
+    ({ mkDerivation, base, data-default, fgl, graphviz, hspec
+     , hspec-discover, lens, linear, mtl, QuickCheck, text
      }:
      mkDerivation {
        pname = "scenegraph";
-       version = "0.1.0.2";
-       sha256 = "1l946h6sggg2n8ldx34v2sx4dyjqxd7i34wrsllz88iiy4qd90yw";
+       version = "0.2.0.0";
+       sha256 = "0nwaf1wpr8pqwwkxx0zpbkmvn4ww6v3xcv5w7krk02f985ajaq50";
        libraryHaskellDepends = [
-         array base containers fgl GLUT haskell98 hmatrix mtl old-time
-         OpenGL process
+         base data-default fgl graphviz lens linear mtl text
        ];
+       testHaskellDepends = [ base hspec lens linear QuickCheck ];
+       testToolDepends = [ hspec-discover ];
        description = "Scene Graph";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -233776,8 +234137,6 @@ self: {
        ];
        description = "generate API docs for your servant webservice";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "servant-docs-simple" = callPackage
@@ -233904,6 +234263,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "servant-event-stream" = callPackage
+    ({ mkDerivation, base, binary, http-media, lens, pipes
+     , servant-foreign, servant-js, servant-pipes, servant-server, text
+     , wai-extra
+     }:
+     mkDerivation {
+       pname = "servant-event-stream";
+       version = "0.2.1.0";
+       sha256 = "1bs4gjw7xaai5hxcv0dy7fmvx26ysmcqnaly5vriwkz45k1rhlj9";
+       revision = "2";
+       editedCabalFile = "1s6si9php8im45yh0r9slgw7sz8c0jk2i4c93a5qbjr0mzz9k2va";
+       libraryHaskellDepends = [
+         base binary http-media lens pipes servant-foreign servant-js
+         servant-pipes servant-server text wai-extra
+       ];
+       testHaskellDepends = [ base ];
+       description = "Servant support for Server-Sent events";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "servant-examples" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, either
      , http-types, js-jquery, lucid, random, servant, servant-client
@@ -234531,8 +234912,38 @@ self: {
        pname = "servant-openapi3";
        version = "2.0.1.1";
        sha256 = "1cyzyljmdfr3gigdszcpj1i7l698fnxpc9hr83mzspm6qcmbqmgf";
-       revision = "1";
-       editedCabalFile = "0j2b3zv5qk5xfi17jwwn456pqpf27aqgy6fmbyqvn8df83rcij5j";
+       revision = "2";
+       editedCabalFile = "0y214pgkfkysvdll15inf44psyqj7dmzcwp2vjynwdlywy2j0y16";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base-compat bytestring hspec http-media
+         insert-ordered-containers lens openapi3 QuickCheck servant
+         singleton-bool text unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base base-compat directory doctest filepath hspec lens
+         lens-aeson openapi3 QuickCheck servant template-haskell text time
+         utf8-string vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API.";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "servant-openapi3_2_0_1_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
+     , Cabal, cabal-doctest, directory, doctest, filepath, hspec
+     , hspec-discover, http-media, insert-ordered-containers, lens
+     , lens-aeson, openapi3, QuickCheck, servant, singleton-bool
+     , template-haskell, text, time, unordered-containers, utf8-string
+     , vector
+     }:
+     mkDerivation {
+       pname = "servant-openapi3";
+       version = "2.0.1.2";
+       sha256 = "1lqvycbv49x0i3adbsdlcl49n65wxfjzhiz9pj11hg4k0j952q5p";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -235370,6 +235781,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "servant-swagger-ui_0_3_5_3_47_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, file-embed-lzma, servant
+     , servant-server, servant-swagger-ui-core, text
+     }:
+     mkDerivation {
+       pname = "servant-swagger-ui";
+       version = "0.3.5.3.47.1";
+       sha256 = "00bmkj87rnd9zmg54h3z8k9zgs5d17lcdn9gp006xixa6g494cms";
+       libraryHaskellDepends = [
+         aeson base bytestring file-embed-lzma servant servant-server
+         servant-swagger-ui-core text
+       ];
+       description = "Servant swagger ui";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "servant-swagger-ui-core" = callPackage
     ({ mkDerivation, base, blaze-markup, bytestring, http-media
      , servant, servant-blaze, servant-server, swagger2, text
@@ -235388,37 +235816,51 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "servant-swagger-ui-core_0_3_5" = callPackage
+    ({ mkDerivation, aeson, base, blaze-markup, bytestring, http-media
+     , servant, servant-blaze, servant-server, text, transformers
+     , transformers-compat, wai-app-static
+     }:
+     mkDerivation {
+       pname = "servant-swagger-ui-core";
+       version = "0.3.5";
+       sha256 = "0ckvrwrb3x39hfl2hixcj3fhibh0vqsh6y7n1lsm25yvzfrg02zd";
+       libraryHaskellDepends = [
+         aeson base blaze-markup bytestring http-media servant servant-blaze
+         servant-server text transformers transformers-compat wai-app-static
+       ];
+       description = "Servant swagger ui core components";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "servant-swagger-ui-jensoleg" = callPackage
-    ({ mkDerivation, base, bytestring, file-embed-lzma, servant
-     , servant-server, servant-swagger-ui-core, swagger2, text
+    ({ mkDerivation, aeson, base, bytestring, file-embed-lzma, servant
+     , servant-server, servant-swagger-ui-core, text
      }:
      mkDerivation {
        pname = "servant-swagger-ui-jensoleg";
-       version = "0.3.3";
-       sha256 = "02zwymqxq54xwc8wmzhbcfgx9plvk0n4kp1907sbl98mhh2frwrw";
-       revision = "4";
-       editedCabalFile = "19h7n1g847ly7addv03vzy5915n48xa0y7l88dzamy6ly1jrmdg2";
+       version = "0.3.4";
+       sha256 = "04s4syfmnjwa52xqm29x2sfi1ka6p7fpjff0pxry099rh0d59hkm";
        libraryHaskellDepends = [
-         base bytestring file-embed-lzma servant servant-server
-         servant-swagger-ui-core swagger2 text
+         aeson base bytestring file-embed-lzma servant servant-server
+         servant-swagger-ui-core text
        ];
        description = "Servant swagger ui: Jens-Ole Graulund theme";
        license = lib.licenses.bsd3;
      }) {};
 
   "servant-swagger-ui-redoc" = callPackage
-    ({ mkDerivation, base, bytestring, file-embed-lzma, servant
-     , servant-server, servant-swagger-ui-core, swagger2, text
+    ({ mkDerivation, aeson, base, bytestring, file-embed-lzma, servant
+     , servant-server, servant-swagger-ui-core, text
      }:
      mkDerivation {
        pname = "servant-swagger-ui-redoc";
-       version = "0.3.3.1.22.3";
-       sha256 = "0bzkrh1hf29vfa1r1sgifb9j2zcg6i43fal4abbx4lcqvf155pzv";
-       revision = "3";
-       editedCabalFile = "1csz8gzmrrjbjvr6kx4vmyp419i5vbzk84a01vh5zr6ncrpx5nf3";
+       version = "0.3.4.1.22.3";
+       sha256 = "0ln2sz7ffhddk4dqvczpxb5g8f6bic7sandn5zifpz2jg7lgzy0f";
        libraryHaskellDepends = [
-         base bytestring file-embed-lzma servant servant-server
-         servant-swagger-ui-core swagger2 text
+         aeson base bytestring file-embed-lzma servant servant-server
+         servant-swagger-ui-core text
        ];
        description = "Servant swagger ui: ReDoc theme";
        license = lib.licenses.bsd3;
@@ -235707,33 +236149,6 @@ self: {
   "serverless-haskell" = callPackage
     ({ mkDerivation, aeson, aeson-casing, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
-     , hspec, hspec-discover, http-client, http-types, iproute, lens
-     , raw-strings-qq, safe-exceptions, text, time, transformers, unix
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "serverless-haskell";
-       version = "0.12.5";
-       sha256 = "1p15nzwjbwbjxnqgs6dzz7sb2cp5y3l69hr3n10zmwmgrq4x2nfa";
-       libraryHaskellDepends = [
-         aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive http-client http-types iproute lens
-         safe-exceptions text time unix unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive hspec hspec-discover http-client
-         http-types iproute lens raw-strings-qq safe-exceptions text time
-         transformers unix unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Deploying Haskell code onto AWS Lambda using Serverless";
-       license = lib.licenses.mit;
-     }) {};
-
-  "serverless-haskell_0_12_6" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, amazonka-core
-     , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
      , containers, hspec, hspec-discover, http-client, http-types
      , iproute, lens, raw-strings-qq, safe-exceptions, text, time
      , transformers, unix, unordered-containers
@@ -235756,7 +236171,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "serversession" = callPackage
@@ -240705,8 +241119,8 @@ self: {
     ({ mkDerivation, base, containers, lucid, skylighting-core, text }:
      mkDerivation {
        pname = "skylighting-lucid";
-       version = "1.0.0";
-       sha256 = "09wh0dh8glnb051hdbcf4q4v3nflikgc585acqin8kq7zny7ps72";
+       version = "1.0.1";
+       sha256 = "0igimymq8pcizl4wdmyjafjgdw8xi2059jzmcw64ij18rn6bip8d";
        libraryHaskellDepends = [
          base containers lucid skylighting-core text
        ];
@@ -243103,18 +243517,18 @@ self: {
 
   "snaplet-redis" = callPackage
     ({ mkDerivation, base, bytestring, cereal, clientsession
-     , configurator, hedis, lens, mtl, network, snap, snap-core, text
-     , time, transformers, unordered-containers
+     , configurator, hedis, lens, mtl, snap, snap-core, text, time
+     , unordered-containers
      }:
      mkDerivation {
        pname = "snaplet-redis";
-       version = "0.1.6";
-       sha256 = "09ba0jmbjk121c2cvnd83328w9h2d5rzwvmpxs2pi93x6jqpd9qw";
+       version = "0.1.6.1";
+       sha256 = "07wwh2gpbsg60p0a4qxf4knbchpq7bvh8bdckzw5f39k5xcaibsy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring cereal clientsession configurator hedis lens mtl
-         network snap snap-core text time transformers unordered-containers
+         snap snap-core text time unordered-containers
        ];
        description = "Redis support for Snap Framework";
        license = lib.licenses.bsd3;
@@ -244196,25 +244610,12 @@ self: {
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
        pname = "some";
-       version = "1.0.2";
-       sha256 = "12mv5gzcvl4n5rz685r2nmmiykvnkvrvx7k4cvwscdjjgnqa9y6c";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [ base ];
-       description = "Existential type: Some";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "some_1_0_3" = callPackage
-    ({ mkDerivation, base, deepseq }:
-     mkDerivation {
-       pname = "some";
        version = "1.0.3";
        sha256 = "0w3syapwz9v916zf1i4f8vxymdfg7syc2cpxgnqr018pbswzxrk2";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base ];
        description = "Existential type: Some";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sonic-visualiser" = callPackage
@@ -244363,6 +244764,31 @@ self: {
        broken = true;
      }) {};
 
+  "souffle-dsl" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, hedgehog
+     , hspec, hspec-hedgehog, mtl, neat-interpolation, process
+     , souffle-haskell, template-haskell, temporary, text
+     , type-errors-pretty
+     }:
+     mkDerivation {
+       pname = "souffle-dsl";
+       version = "0.1.0";
+       sha256 = "1j3g4nwl0v5szphvyv0jp7qcmnpfmynr8dbkwwh4lwacldgnhbnr";
+       libraryHaskellDepends = [
+         base containers directory filepath mtl process souffle-haskell
+         template-haskell temporary text type-errors-pretty
+       ];
+       testHaskellDepends = [
+         base containers directory filepath hedgehog hspec hspec-hedgehog
+         mtl neat-interpolation process souffle-haskell template-haskell
+         temporary text type-errors-pretty
+       ];
+       description = "Haskell EDSL for Souffle";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "souffle-haskell" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, directory
      , filepath, hedgehog, hspec, hspec-hedgehog, mtl
@@ -244948,6 +245374,24 @@ self: {
        broken = true;
      }) {};
 
+  "spartacon" = callPackage
+    ({ mkDerivation, base, config-schema, config-value, containers
+     , either, mtl, relation, text, X11
+     }:
+     mkDerivation {
+       pname = "spartacon";
+       version = "0.1.0.0";
+       sha256 = "1mabp5gfwj7zv30rdnr1zwl4fv29128vg08izjcj8sym0hldzj81";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base config-schema config-value containers either mtl relation text
+         X11
+       ];
+       description = "A unix-style (read from stdin, write to stdout) global hotkey daemon";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "spata" = callPackage
     ({ mkDerivation, base, dlist, mps, mtl }:
      mkDerivation {
@@ -245177,8 +245621,8 @@ self: {
     ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
      mkDerivation {
        pname = "speculate";
-       version = "0.4.2";
-       sha256 = "01ahb1g7f19qxf8lz9afxbf2inywrsqkawx784gx3af1wlzj61d9";
+       version = "0.4.4";
+       sha256 = "0vmxi8rapbld7b3llw2v6fz1v6vqyv90rpbnzjdfa29kdza4m5sf";
        libraryHaskellDepends = [
          base cmdargs containers express leancheck
        ];
@@ -246472,6 +246916,8 @@ self: {
        pname = "ssh-known-hosts";
        version = "0.2.0.0";
        sha256 = "1zhhqam6y5ckh6i145mr0irm17dmlam2k730rpqiyw4mwgmcp4qa";
+       revision = "1";
+       editedCabalFile = "09158vd54ybigqxqcimfnmmv256p4ypazwfly7a5q2pxqgzs6nj0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -249434,6 +249880,55 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "store_0_7_11" = callPackage
+    ({ mkDerivation, array, async, base, base-orphans
+     , base64-bytestring, bifunctors, bytestring, cereal, cereal-vector
+     , clock, containers, contravariant, criterion, cryptohash, deepseq
+     , directory, filepath, free, ghc-prim, hashable, hspec
+     , hspec-smallcheck, integer-gmp, lifted-base, monad-control
+     , mono-traversable, nats, network, primitive, resourcet, safe
+     , smallcheck, store-core, syb, template-haskell, text, th-lift
+     , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
+     , transformers, unordered-containers, vector
+     , vector-binary-instances, void, weigh
+     }:
+     mkDerivation {
+       pname = "store";
+       version = "0.7.11";
+       sha256 = "03i9gd18xqbfmj5kmiv4k4sw44gn6mn4faj71r2723abm3qwklwr";
+       libraryHaskellDepends = [
+         array async base base-orphans base64-bytestring bifunctors
+         bytestring containers contravariant cryptohash deepseq directory
+         filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp
+         lifted-base monad-control mono-traversable nats network primitive
+         resourcet safe smallcheck store-core syb template-haskell text
+         th-lift th-lift-instances th-orphans th-reify-many th-utilities
+         time transformers unordered-containers vector void
+       ];
+       testHaskellDepends = [
+         array async base base-orphans base64-bytestring bifunctors
+         bytestring clock containers contravariant cryptohash deepseq
+         directory filepath free ghc-prim hashable hspec hspec-smallcheck
+         integer-gmp lifted-base monad-control mono-traversable nats network
+         primitive resourcet safe smallcheck store-core syb template-haskell
+         text th-lift th-lift-instances th-orphans th-reify-many
+         th-utilities time transformers unordered-containers vector void
+       ];
+       benchmarkHaskellDepends = [
+         array async base base-orphans base64-bytestring bifunctors
+         bytestring cereal cereal-vector containers contravariant criterion
+         cryptohash deepseq directory filepath free ghc-prim hashable hspec
+         hspec-smallcheck integer-gmp lifted-base monad-control
+         mono-traversable nats network primitive resourcet safe smallcheck
+         store-core syb template-haskell text th-lift th-lift-instances
+         th-orphans th-reify-many th-utilities time transformers
+         unordered-containers vector vector-binary-instances void weigh
+       ];
+       description = "Fast binary serialization";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "store-core" = callPackage
     ({ mkDerivation, base, bytestring, ghc-prim, primitive, text
      , transformers
@@ -250592,6 +251087,60 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "strict-containers" = callPackage
+    ({ mkDerivation, array, base, base-orphans, binary, ChasingBottoms
+     , containers, deepseq, hashable, HUnit, indexed-traversable
+     , primitive, QuickCheck, random, strict, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, transformers
+     , unordered-containers, vector, vector-binary-instances
+     }:
+     mkDerivation {
+       pname = "strict-containers";
+       version = "0.1";
+       sha256 = "0rb5mhz1f1g79c7c85q6pnars7qs3qzyl2gsc48p9sd2739q5nzs";
+       libraryHaskellDepends = [
+         array base binary containers deepseq hashable indexed-traversable
+         primitive strict unordered-containers vector
+         vector-binary-instances
+       ];
+       testHaskellDepends = [
+         array base base-orphans ChasingBottoms containers deepseq hashable
+         HUnit primitive QuickCheck random tasty tasty-hunit
+         tasty-quickcheck template-haskell test-framework
+         test-framework-hunit test-framework-quickcheck2 transformers
+         unordered-containers vector
+       ];
+       description = "Strict containers";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "strict-containers-lens" = callPackage
+    ({ mkDerivation, base, hashable, lens, strict-containers }:
+     mkDerivation {
+       pname = "strict-containers-lens";
+       version = "0.1";
+       sha256 = "0162vqkwm9z1pyizvs76fbraw6z43w8j1k7ag25l9lv67gydl4c1";
+       libraryHaskellDepends = [ base hashable lens strict-containers ];
+       description = "Strict containers - Lens instances";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "strict-containers-serialise" = callPackage
+    ({ mkDerivation, base, cborg, hashable, serialise
+     , strict-containers
+     }:
+     mkDerivation {
+       pname = "strict-containers-serialise";
+       version = "0.1";
+       sha256 = "17hsb90awsrgp83nkzjyr51wz7z5v4fii862arqfjkjqm6scb4d3";
+       libraryHaskellDepends = [
+         base cborg hashable serialise strict-containers
+       ];
+       description = "Strict containers - Serialise instances";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "strict-data" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, doctest
      , exceptions, fail, hashable, HTF, monad-control, mtl, pretty
@@ -250969,29 +251518,6 @@ self: {
      }:
      mkDerivation {
        pname = "string-random";
-       version = "0.1.4.0";
-       sha256 = "09xv1jbhsz8hfxc6y54fj4pkhyxfbfh53i6kxy408zm3raa2nmii";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         attoparsec base containers random text transformers
-       ];
-       executableHaskellDepends = [ base optparse-applicative text ];
-       testHaskellDepends = [
-         base bytestring pcre-heavy QuickCheck tasty tasty-hunit
-         tasty-quickcheck text
-       ];
-       description = "A library for generating random string from a regular experession";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "string-random_0_1_4_1" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, containers
-     , optparse-applicative, pcre-heavy, QuickCheck, random, tasty
-     , tasty-hunit, tasty-quickcheck, text, transformers
-     }:
-     mkDerivation {
-       pname = "string-random";
        version = "0.1.4.1";
        sha256 = "1ggz48mzyzch3ga4682jd9y4g1j6px1anv7k8cczjlz9f4lh73nd";
        isLibrary = true;
@@ -251006,7 +251532,6 @@ self: {
        ];
        description = "A library for generating random string from a regular experession";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "string-similarity" = callPackage
@@ -253369,8 +253894,8 @@ self: {
      }:
      mkDerivation {
        pname = "sws";
-       version = "0.5.0.0";
-       sha256 = "04x8jvac8aaifsyll63gwjg2j6y2ap24a92k2dxn8mdbx2i3zjyq";
+       version = "0.5.0.1";
+       sha256 = "1xgyv7mwrf9imx1ja2vwdhj6rv59pz50sf9ijlp5pjckqpacm40p";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -254256,8 +254781,8 @@ self: {
      }:
      mkDerivation {
        pname = "syntactic";
-       version = "3.8.2";
-       sha256 = "04lv8v42bs4qjjcia39grfxmabiv41dipgg5b58xgiv4ay884nfm";
+       version = "3.8.3";
+       sha256 = "1ksznzw5g01xgbr2zs83m0lclbhvhs6lyaszhxykni10lxyxy7v8";
        libraryHaskellDepends = [
          base constraints containers data-hash deepseq mtl syb
          template-haskell tree-view
@@ -255442,6 +255967,8 @@ self: {
        pname = "tagged";
        version = "0.8.6.1";
        sha256 = "00kcc6lmj7v3xm2r3wzw5jja27m4alcw1wi8yiismd0bbzwzrq7m";
+       revision = "1";
+       editedCabalFile = "1rzqfw2pafxbnfpl1lizf9zldpxyy28g92x4jzq49miw9hr1xpsx";
        libraryHaskellDepends = [
          base deepseq template-haskell transformers
        ];
@@ -256489,23 +257016,34 @@ self: {
     ({ mkDerivation, base, containers, deepseq, tasty }:
      mkDerivation {
        pname = "tasty-bench";
-       version = "0.2.4";
-       sha256 = "11hkhlpwxzxxi6ny4jklaz70cd0ca905yxv9idacmwajbrliinna";
+       version = "0.2.5";
+       sha256 = "146i1vkp9008hik7qyi8m9qq3ij5kji84qscsf598rzjmjga7igd";
+       revision = "1";
+       editedCabalFile = "0rcsdiwri52wng5dj30k3c5qrn8qfr14qs53cs1y99mbqfpzs02g";
        libraryHaskellDepends = [ base containers deepseq tasty ];
        description = "Featherlight benchmark framework";
        license = lib.licenses.mit;
      }) {};
 
-  "tasty-bench_0_2_5" = callPackage
-    ({ mkDerivation, base, containers, deepseq, tasty }:
+  "tasty-checklist" = callPackage
+    ({ mkDerivation, base, exceptions, parameterized-utils, tasty
+     , tasty-expected-failure, tasty-hunit, text
+     }:
      mkDerivation {
-       pname = "tasty-bench";
-       version = "0.2.5";
-       sha256 = "146i1vkp9008hik7qyi8m9qq3ij5kji84qscsf598rzjmjga7igd";
-       libraryHaskellDepends = [ base containers deepseq tasty ];
-       description = "Featherlight benchmark framework";
-       license = lib.licenses.mit;
+       pname = "tasty-checklist";
+       version = "1.0.0.0";
+       sha256 = "1ahy4nmkbqpfw38ny6w85q5whsidk3xyy8m6v6ndik2i8jjh8qr4";
+       libraryHaskellDepends = [
+         base exceptions parameterized-utils text
+       ];
+       testHaskellDepends = [
+         base parameterized-utils tasty tasty-expected-failure tasty-hunit
+         text
+       ];
+       description = "Check multiple items during a tasty test";
+       license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-dejafu" = callPackage
@@ -257091,20 +257629,21 @@ self: {
 
   "tasty-sugar" = callPackage
     ({ mkDerivation, base, directory, filemanip, filepath, hedgehog
-     , logict, optparse-applicative, pretty-show, prettyprinter
-     , raw-strings-qq, tagged, tasty, tasty-hedgehog, tasty-hunit
+     , kvitable, logict, microlens, optparse-applicative, pretty-show
+     , prettyprinter, raw-strings-qq, tagged, tasty, tasty-hedgehog
+     , tasty-hunit, text
      }:
      mkDerivation {
        pname = "tasty-sugar";
-       version = "1.1.0.0";
-       sha256 = "1v1ikl4jy02c0jlvm4di8ndm7fbyr8235ydppp953d7qb8yilsyp";
+       version = "1.1.1.0";
+       sha256 = "1x06s47k2rw7a78djzf0i2zxplbazah5c5mjmnmd9nr5yafw0fqv";
        libraryHaskellDepends = [
-         base directory filemanip filepath logict optparse-applicative
-         prettyprinter tagged tasty
+         base directory filemanip filepath kvitable logict microlens
+         optparse-applicative prettyprinter tagged tasty text
        ];
        testHaskellDepends = [
          base filepath hedgehog logict pretty-show prettyprinter
-         raw-strings-qq tasty tasty-hedgehog tasty-hunit
+         raw-strings-qq tasty tasty-hedgehog tasty-hunit text
        ];
        doHaddock = false;
        description = "Tests defined by Search Using Golden Answer References";
@@ -259007,8 +259546,8 @@ self: {
      }:
      mkDerivation {
        pname = "tesla";
-       version = "0.3.1.0";
-       sha256 = "1fwrhmxqpliyq92v1j6jcqxi5iyh7s8rj17mybvgkwh5aprwsdp8";
+       version = "0.4.1.0";
+       sha256 = "0rnzgcwkgwnpjlf2r47a28zwkbnsb75wfmdiwnq4w99i2f519dnd";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring casing containers
          cryptonite exceptions generic-deriving lens lens-aeson memory
@@ -259343,8 +259882,8 @@ self: {
      }:
      mkDerivation {
        pname = "test-lib";
-       version = "0.2.2";
-       sha256 = "0bxrh7j10fadarg1kyrf8f0nmrmdfrgivxvv51xl9ykksrswhx2z";
+       version = "0.3";
+       sha256 = "15b3gsy03z3hqc0d2b7hjk3l79ykkcdhb5mrz453p8s4bgd8l6av";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -259868,6 +260407,8 @@ self: {
        pname = "text-ansi";
        version = "0.1.1";
        sha256 = "1vcrsg7v8n6znh1pd9kbm20bc6dg3zijd3xjdjljadf15vfkd5f6";
+       revision = "1";
+       editedCabalFile = "09s363h3lw4p8f73m7vw0d1cqnwmap9ndrfxd4qbzbra5xf58q38";
        libraryHaskellDepends = [ base text ];
        description = "Text styling for ANSI terminals";
        license = lib.licenses.bsd3;
@@ -260388,8 +260929,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-regex-replace";
-       version = "0.1.1.3";
-       sha256 = "0i0ifjxd24kfiljk3l0slxc8345d0rdb92ixxdzn04brs2fs5h53";
+       version = "0.1.1.4";
+       sha256 = "19n7zwnrm4da8ifhwlqwrx969pni0njj5f69j30gp71fi9ihjgsb";
        libraryHaskellDepends = [ attoparsec base text text-icu ];
        testHaskellDepends = [
          base hspec QuickCheck smallcheck text text-icu
@@ -261525,8 +262066,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-utilities";
-       version = "0.2.4.2";
-       sha256 = "09rbs878gjhyg8n789p2c67lzxr4h1pg0zar47a7j8sg6ff5wcx2";
+       version = "0.2.4.3";
+       sha256 = "1krvn3xp7zicp6wqcgmgbgl2a894n677vxi6vhcna16cx03smic9";
        libraryHaskellDepends = [
          base bytestring containers directory filepath primitive syb
          template-haskell text th-abstraction th-orphans
@@ -262435,16 +262976,16 @@ self: {
   "tidal" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, clock, colour
      , containers, criterion, deepseq, hosc, microspec, network, parsec
-     , primitive, random, text, transformers, vector, weigh
+     , primitive, random, text, transformers, weigh
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.7.2";
-       sha256 = "15shxaazxik1bawgak16xhlvk708kv9al6i3518b3m3iap9sbw9p";
+       version = "1.7.3";
+       sha256 = "0z0brlicisn7xpwag20vdrq6ympczxcyd886pm6am5phmifkmfif";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bifunctors bytestring clock colour containers deepseq hosc
-         network parsec primitive random text transformers vector
+         network parsec primitive random text transformers
        ];
        testHaskellDepends = [
          base containers deepseq hosc microspec parsec
@@ -262454,6 +262995,29 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "tidal_1_7_4" = callPackage
+    ({ mkDerivation, base, bifunctors, bytestring, clock, colour
+     , containers, criterion, deepseq, hosc, microspec, network, parsec
+     , primitive, random, text, transformers, weigh
+     }:
+     mkDerivation {
+       pname = "tidal";
+       version = "1.7.4";
+       sha256 = "080zncw6gp0dzwm9vd82c789v1x00nfzz8r1ldb4hl67v04jf8hi";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bifunctors bytestring clock colour containers deepseq hosc
+         network parsec primitive random text transformers
+       ];
+       testHaskellDepends = [
+         base containers deepseq hosc microspec parsec
+       ];
+       benchmarkHaskellDepends = [ base criterion weigh ];
+       description = "Pattern language for improvised music";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tidal-midi" = callPackage
     ({ mkDerivation, base, containers, PortMidi, tidal, time
      , transformers
@@ -263281,6 +263845,8 @@ self: {
        pname = "timer-wheel";
        version = "0.3.0";
        sha256 = "16v663mcsj0h17x4jriq50dps3m3f8wqcsm19kl48vrs7f4mp07s";
+       revision = "1";
+       editedCabalFile = "03wprm88wl6smfcq6dfr62l4igi8lfg6wkk65rsmyzxxkjzhc6f1";
        libraryHaskellDepends = [ atomic-primops base psqueues vector ];
        testHaskellDepends = [ base ];
        description = "A timer wheel";
@@ -265575,6 +266141,8 @@ self: {
        pname = "trackit";
        version = "0.7.2";
        sha256 = "1ha28wdc4dabr9qxkbpg9fasfnplicb2pyrn9zmija204nigbcdj";
+       revision = "1";
+       editedCabalFile = "0l9hi5f90nixayzahksgxrs4zij76767x64irql890ph6qzsq13c";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -271267,6 +271835,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unicode-collation" = callPackage
+    ({ mkDerivation, base, binary, bytestring, bytestring-lexing
+     , containers, filepath, parsec, QuickCheck, quickcheck-instances
+     , tasty, tasty-bench, tasty-hunit, template-haskell, text, text-icu
+     , th-lift-instances, unicode-transforms
+     }:
+     mkDerivation {
+       pname = "unicode-collation";
+       version = "0.1.2";
+       sha256 = "1q77rd3d2c1r5d35f0z1mhismc3rf8bg1dwfg32wvdd9hpszc52v";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary bytestring bytestring-lexing containers filepath parsec
+         template-haskell text th-lift-instances unicode-transforms
+       ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit text ];
+       benchmarkHaskellDepends = [
+         base QuickCheck quickcheck-instances tasty-bench text text-icu
+       ];
+       description = "Haskell implementation of the Unicode Collation Algorithm";
+       license = lib.licenses.bsd2;
+     }) {};
+
   "unicode-general-category" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , file-embed, hspec, QuickCheck, text
@@ -271372,6 +271964,8 @@ self: {
        pname = "unicode-transforms";
        version = "0.3.7.1";
        sha256 = "1010sahi4mjzqmxqlj3w73rlymbl2370x5vizjqbx7mb86kxzx4f";
+       revision = "1";
+       editedCabalFile = "01kf1hanqcwc7vpkwq2rw5v2mn4nxx58l3v5hpk166jalmwqijaz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring ghc-prim text ];
@@ -272398,6 +272992,19 @@ self: {
        license = "GPL";
      }) {};
 
+  "unlift" = callPackage
+    ({ mkDerivation, base, stm, transformers, transformers-base }:
+     mkDerivation {
+       pname = "unlift";
+       version = "0.0.0.0";
+       sha256 = "0xqn4252ncygmapfciwf6g2nzbavp8dmh4vds985nc0lq78wi7nj";
+       libraryHaskellDepends = [
+         base stm transformers transformers-base
+       ];
+       description = "Typeclass for monads that can be unlifted to arbitrary base monads";
+       license = lib.licenses.mpl20;
+     }) {};
+
   "unlift-stm" = callPackage
     ({ mkDerivation, base, stm, transformers, unliftio, unliftio-core
      }:
@@ -275585,24 +276192,6 @@ self: {
      }:
      mkDerivation {
        pname = "vector";
-       version = "0.12.2.0";
-       sha256 = "0l3bs8zvw1da9gzqkmavj9vrcxv8hdv9zfw1yqzk6nbqr220paqp";
-       libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
-       testHaskellDepends = [
-         base base-orphans HUnit primitive QuickCheck random tasty
-         tasty-hunit tasty-quickcheck template-haskell transformers
-       ];
-       description = "Efficient Arrays";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "vector_0_12_3_0" = callPackage
-    ({ mkDerivation, base, base-orphans, deepseq, ghc-prim, HUnit
-     , primitive, QuickCheck, random, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "vector";
        version = "0.12.3.0";
        sha256 = "00xp86yad3yv4ja4q07gkmmcf7iwpcnzkkaf91zkx9nxb981iy0m";
        libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
@@ -275612,7 +276201,6 @@ self: {
        ];
        description = "Efficient Arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vector-algorithms" = callPackage
@@ -275646,19 +276234,17 @@ self: {
      }) {};
 
   "vector-binary-instances" = callPackage
-    ({ mkDerivation, base, binary, bytestring, deepseq, gauge, tasty
-     , tasty-quickcheck, vector
+    ({ mkDerivation, base, binary, bytestring, deepseq, tasty
+     , tasty-bench, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "vector-binary-instances";
-       version = "0.2.5.1";
-       sha256 = "04n5cqm1v95pw1bp68l9drjkxqiy2vswxdq0fy1rqcgxisgvji9r";
-       revision = "2";
-       editedCabalFile = "0ia9i7q7jrk3ab3nq2368glr69vl6fwvh42zlwvdmxn4xd861qfx";
+       version = "0.2.5.2";
+       sha256 = "0kgmlb4rf89b18d348cf2k06xfhdpamhmvq7iz5pab5014hknbmp";
        libraryHaskellDepends = [ base binary vector ];
        testHaskellDepends = [ base binary tasty tasty-quickcheck vector ];
        benchmarkHaskellDepends = [
-         base binary bytestring deepseq gauge vector
+         base binary bytestring deepseq tasty-bench vector
        ];
        description = "Instances of Data.Binary for vector";
        license = lib.licenses.bsd3;
@@ -276418,6 +277004,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "versions_5_0_0" = callPackage
+    ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens
+     , parser-combinators, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "versions";
+       version = "5.0.0";
+       sha256 = "1rfxjivdsaqc6w7dfqdycy3a81rsajvpfyi5si9ssc0w3ljfsbzr";
+       libraryHaskellDepends = [
+         base deepseq hashable megaparsec parser-combinators text
+       ];
+       testHaskellDepends = [
+         base megaparsec microlens QuickCheck tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       description = "Types and parsers for software version numbers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vflow-types" = callPackage
     ({ mkDerivation, aeson, base, bytestring, ip, json-alt
      , json-autotype, neat-interpolation, QuickCheck, quickcheck-classes
@@ -278101,6 +278708,25 @@ self: {
        broken = true;
      }) {inherit (pkgs) fcgi;};
 
+  "wai-handler-hal" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring
+     , case-insensitive, hal, http-types, network, text
+     , unordered-containers, vault, wai
+     }:
+     mkDerivation {
+       pname = "wai-handler-hal";
+       version = "0.1.0.0";
+       sha256 = "0sjw01k5dyhdi33ld1pd4mf9plpij0spzxf2b228cjyc8x5zx7rj";
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring case-insensitive hal http-types
+         network text unordered-containers vault wai
+       ];
+       description = "Wrap WAI applications to run on AWS Lambda";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "wai-handler-launch" = callPackage
     ({ mkDerivation, async, base, bytestring, http-types, process
      , streaming-commons, transformers, wai, warp
@@ -279388,6 +280014,31 @@ self: {
        broken = true;
      }) {};
 
+  "wai-session-redis" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, data-default, hedis
+     , hspec, http-types, vault, wai, wai-session, warp
+     }:
+     mkDerivation {
+       pname = "wai-session-redis";
+       version = "0.1.0.1";
+       sha256 = "14n5996y8fpq19jfn5ahfliq4gk2ydi5l8zcq8agqqpg875hzzcw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring cereal data-default hedis vault wai wai-session
+       ];
+       executableHaskellDepends = [
+         base bytestring cereal data-default hedis http-types vault wai
+         wai-session warp
+       ];
+       testHaskellDepends = [
+         base bytestring cereal data-default hedis hspec vault wai
+         wai-session
+       ];
+       description = "Simple Redis backed wai-session backend";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "wai-session-tokyocabinet" = callPackage
     ({ mkDerivation, base, bytestring, cereal, errors
      , tokyocabinet-haskell, transformers, wai-session
@@ -279745,6 +280396,40 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "warp_3_3_15" = callPackage
+    ({ mkDerivation, array, async, auto-update, base, bsb-http-chunked
+     , bytestring, case-insensitive, containers, directory, gauge
+     , ghc-prim, hashable, hspec, http-client, http-date, http-types
+     , http2, HUnit, iproute, lifted-base, network, process, QuickCheck
+     , simple-sendfile, stm, streaming-commons, text, time, time-manager
+     , unix, unix-compat, vault, wai, word8, x509
+     }:
+     mkDerivation {
+       pname = "warp";
+       version = "3.3.15";
+       sha256 = "0nj4xxzjcy33hyfdagpc2ij6ga71r1fmc248rjgwsyfflial63bz";
+       libraryHaskellDepends = [
+         array async auto-update base bsb-http-chunked bytestring
+         case-insensitive containers ghc-prim hashable http-date http-types
+         http2 iproute network simple-sendfile stm streaming-commons text
+         time-manager unix unix-compat vault wai word8 x509
+       ];
+       testHaskellDepends = [
+         array async auto-update base bsb-http-chunked bytestring
+         case-insensitive containers directory ghc-prim hashable hspec
+         http-client http-date http-types http2 HUnit iproute lifted-base
+         network process QuickCheck simple-sendfile stm streaming-commons
+         text time time-manager unix unix-compat vault wai word8 x509
+       ];
+       benchmarkHaskellDepends = [
+         auto-update base bytestring containers gauge hashable http-date
+         http-types network time-manager unix unix-compat x509
+       ];
+       description = "A fast, light-weight web server for WAI applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "warp-dynamic" = callPackage
     ({ mkDerivation, base, data-default, dyre, http-types, wai, warp }:
      mkDerivation {
@@ -280197,8 +280882,8 @@ self: {
      }:
      mkDerivation {
        pname = "web-inv-route";
-       version = "0.1.2.3";
-       sha256 = "1xk6f3z7pcn5bmr2259yvv9l9wbfyycb7990dffz4b802ahxf1xv";
+       version = "0.1.3.1";
+       sha256 = "1l10rgrhcqld8znw6akxjlsm1h8z76l9yxa4yik11lk2l0g9anb2";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers happstack-server
          hashable http-types invertible network-uri snap-core text
@@ -281803,6 +282488,19 @@ self: {
        broken = true;
      }) {};
 
+  "wide-word-instances" = callPackage
+    ({ mkDerivation, base, binary, serialise, wide-word }:
+     mkDerivation {
+       pname = "wide-word-instances";
+       version = "0.1";
+       sha256 = "0v4isbpq1b76j755dh412zdgm6njgk6n86kzxd8q5idknk38cj4b";
+       libraryHaskellDepends = [ base binary serialise wide-word ];
+       description = "Instances for wide-word";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "wigner-symbols" = callPackage
     ({ mkDerivation, base, bytestring, criterion, cryptonite, primitive
      , random, vector
@@ -281949,6 +282647,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "willow" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, filepath, hashable
+     , hedgehog, hedgehog-classes, HUnit, mtl, text, transformers
+     , unordered-containers, utility-ht, vector
+     }:
+     mkDerivation {
+       pname = "willow";
+       version = "0.1.0.0";
+       sha256 = "1p47k0dsri76z6vpg59la3jm0smvmbh3qz0i0k0kz8ilc2sa65kn";
+       revision = "1";
+       editedCabalFile = "0lybbskp6y4679qqbmz02w173mvhfry3gzj9cgfvq6dqccmfdndl";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring filepath hashable mtl text transformers
+         unordered-containers utility-ht vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring filepath hedgehog hedgehog-classes HUnit text
+         transformers unordered-containers
+       ];
+       description = "An implementation of the web Document Object Model, and its rendering";
+       license = lib.licenses.mpl20;
+     }) {};
+
   "wilton-ffi" = callPackage
     ({ mkDerivation, aeson, base, bytestring, utf8-string }:
      mkDerivation {
@@ -282171,6 +282893,23 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "witch_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hspec
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "witch";
+       version = "0.2.0.0";
+       sha256 = "03rnpljng4vy913zm3cxnhlq3i8d5p57661wa1cwj46hkhy7rhj7";
+       libraryHaskellDepends = [
+         base bytestring containers template-haskell text
+       ];
+       testHaskellDepends = [ base bytestring containers hspec text ];
+       description = "Convert values from one type into another";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "with-index" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -283753,8 +284492,6 @@ self: {
        ];
        description = "Tunneling program over websocket protocol";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "wtk" = callPackage
@@ -284965,6 +285702,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "xml-conduit_1_9_1_1" = callPackage
+    ({ mkDerivation, attoparsec, base, blaze-html, blaze-markup
+     , bytestring, Cabal, cabal-doctest, conduit, conduit-extra
+     , containers, data-default-class, deepseq, doctest, hspec, HUnit
+     , resourcet, text, transformers, xml-types
+     }:
+     mkDerivation {
+       pname = "xml-conduit";
+       version = "1.9.1.1";
+       sha256 = "1zzh7xnmbm68dab1vqsjkr6ghxqgnla5nik4amrwlmhbdih1gcdx";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         attoparsec base blaze-html blaze-markup bytestring conduit
+         conduit-extra containers data-default-class deepseq resourcet text
+         transformers xml-types
+       ];
+       testHaskellDepends = [
+         base blaze-markup bytestring conduit conduit-extra containers
+         doctest hspec HUnit resourcet text transformers xml-types
+       ];
+       description = "Pure-Haskell utilities for dealing with XML with the conduit package";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "xml-conduit-decode" = callPackage
     ({ mkDerivation, base, bifunctors, data-default, lens, semigroups
      , tasty, tasty-hunit, text, time, xml-conduit, xml-types
@@ -287842,6 +288604,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod_1_6_1_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit
+     , data-default-class, directory, fast-logger, file-embed
+     , monad-logger, shakespeare, streaming-commons, template-haskell
+     , text, unix, unordered-containers, wai, wai-extra, wai-logger
+     , warp, yaml, yesod-core, yesod-form, yesod-persistent
+     }:
+     mkDerivation {
+       pname = "yesod";
+       version = "1.6.1.1";
+       sha256 = "1iiaixd1xrqjcvknl9g3yvr26nbpfa2amh2ayfxmnpjlxvdhfnyn";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit data-default-class directory
+         fast-logger file-embed monad-logger shakespeare streaming-commons
+         template-haskell text unix unordered-containers wai wai-extra
+         wai-logger warp yaml yesod-core yesod-form yesod-persistent
+       ];
+       description = "Creation of type-safe, RESTful web applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-alerts" = callPackage
     ({ mkDerivation, alerts, base, blaze-html, blaze-markup, safe, text
      , yesod-core
@@ -287948,6 +288732,35 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-auth_1_6_10_3" = callPackage
+    ({ mkDerivation, aeson, authenticate, base, base16-bytestring
+     , base64-bytestring, binary, blaze-builder, blaze-html
+     , blaze-markup, bytestring, conduit, conduit-extra, containers
+     , cryptonite, data-default, email-validate, file-embed, http-client
+     , http-client-tls, http-conduit, http-types, memory, network-uri
+     , nonce, persistent, random, safe, shakespeare, template-haskell
+     , text, time, transformers, unliftio, unliftio-core
+     , unordered-containers, wai, yesod-core, yesod-form
+     , yesod-persistent
+     }:
+     mkDerivation {
+       pname = "yesod-auth";
+       version = "1.6.10.3";
+       sha256 = "00a7gbp2czg6ixxx62k2nmrj5g1la6cjh697y8vg9xhxq7vpyshg";
+       libraryHaskellDepends = [
+         aeson authenticate base base16-bytestring base64-bytestring binary
+         blaze-builder blaze-html blaze-markup bytestring conduit
+         conduit-extra containers cryptonite data-default email-validate
+         file-embed http-client http-client-tls http-conduit http-types
+         memory network-uri nonce persistent random safe shakespeare
+         template-haskell text time transformers unliftio unliftio-core
+         unordered-containers wai yesod-core yesod-form yesod-persistent
+       ];
+       description = "Authentication for Yesod";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-auth-account" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, hspec, monad-logger
      , mtl, nonce, persistent, persistent-sqlite, pwstore-fast
@@ -288116,6 +288929,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-auth-hashdb_1_7_1_6" = callPackage
+    ({ mkDerivation, aeson, base, basic-prelude, bytestring, containers
+     , hspec, http-conduit, http-types, monad-logger, network-uri
+     , persistent, persistent-sqlite, resourcet, text
+     , unordered-containers, wai-extra, yesod, yesod-auth, yesod-core
+     , yesod-form, yesod-persistent, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-auth-hashdb";
+       version = "1.7.1.6";
+       sha256 = "062f2fv4ixr5bd5xcs208xfg2i18z25g3imf86qrziv0yxxg5qpc";
+       libraryHaskellDepends = [
+         aeson base bytestring persistent text yesod-auth yesod-core
+         yesod-form yesod-persistent
+       ];
+       testHaskellDepends = [
+         aeson base basic-prelude bytestring containers hspec http-conduit
+         http-types monad-logger network-uri persistent-sqlite resourcet
+         text unordered-containers wai-extra yesod yesod-auth yesod-core
+         yesod-test
+       ];
+       description = "Authentication plugin for Yesod";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-auth-hmac-keccak" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cryptonite, mtl
      , persistent, random, shakespeare, text, yesod-auth, yesod-core
@@ -288257,8 +289096,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth";
-       version = "1.6.0.2";
-       sha256 = "1rr21vclcvy4lrv6r3v6f6sslmwg49jr7jiad63snn81nz854da1";
+       version = "1.6.0.3";
+       sha256 = "0y57d5y0l0fzmk6zxrpf2xf8y00hp2i0lk3xh5sqlb77a57r109s";
        libraryHaskellDepends = [
          authenticate-oauth base bytestring text unliftio yesod-auth
          yesod-core yesod-form
@@ -288270,30 +289109,6 @@ self: {
   "yesod-auth-oauth2" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cryptonite, errors
      , hoauth2, hspec, http-client, http-conduit, http-types, memory
-     , microlens, safe-exceptions, text, uri-bytestring, yesod-auth
-     , yesod-core
-     }:
-     mkDerivation {
-       pname = "yesod-auth-oauth2";
-       version = "0.6.2.3";
-       sha256 = "1vf4cfbqg4zx3rdihj1iajk6kmj9c8xk4s4n2n40yvz2rmbjy0yb";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring cryptonite errors hoauth2 http-client
-         http-conduit http-types memory microlens safe-exceptions text
-         uri-bytestring yesod-auth yesod-core
-       ];
-       testHaskellDepends = [ base hspec uri-bytestring ];
-       description = "OAuth 2.0 authentication plugins";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "yesod-auth-oauth2_0_6_3_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cryptonite, errors
-     , hoauth2, hspec, http-client, http-conduit, http-types, memory
      , microlens, mtl, safe-exceptions, text, unliftio, uri-bytestring
      , yesod-auth, yesod-core
      }:
@@ -288511,43 +289326,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.6.18.8";
-       sha256 = "1phqb74z5nqnx1xnbhnpimcdcrzm5dd474svzc5hp0ji3kp2xkri";
-       libraryHaskellDepends = [
-         aeson auto-update base blaze-html blaze-markup bytestring
-         case-insensitive cereal clientsession conduit conduit-extra
-         containers cookie deepseq fast-logger http-types memory
-         monad-logger mtl parsec path-pieces primitive random resourcet
-         shakespeare template-haskell text time transformers unix-compat
-         unliftio unordered-containers vector wai wai-extra wai-logger warp
-         word8
-       ];
-       testHaskellDepends = [
-         async base bytestring clientsession conduit conduit-extra
-         containers cookie hspec hspec-expectations http-types HUnit network
-         path-pieces random resourcet shakespeare streaming-commons
-         template-haskell text transformers unliftio wai wai-extra warp
-       ];
-       benchmarkHaskellDepends = [
-         base blaze-html bytestring gauge shakespeare text
-       ];
-       description = "Creation of type-safe, RESTful web applications";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-core_1_6_19_0" = callPackage
-    ({ mkDerivation, aeson, async, auto-update, base, blaze-html
-     , blaze-markup, bytestring, case-insensitive, cereal, clientsession
-     , conduit, conduit-extra, containers, cookie, deepseq, fast-logger
-     , gauge, hspec, hspec-expectations, http-types, HUnit, memory
-     , monad-logger, mtl, network, parsec, path-pieces, primitive
-     , random, resourcet, shakespeare, streaming-commons
-     , template-haskell, text, time, transformers, unix-compat, unliftio
-     , unordered-containers, vector, wai, wai-extra, wai-logger, warp
-     , word8
-     }:
-     mkDerivation {
-       pname = "yesod-core";
        version = "1.6.19.0";
        sha256 = "00mqvq47jf4ljqwj20jn5326hrap5gbm5bqq2xkijfs4ymmyw6vd";
        libraryHaskellDepends = [
@@ -288570,7 +289348,6 @@ self: {
        ];
        description = "Creation of type-safe, RESTful web applications";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-crud" = callPackage
@@ -288858,6 +289635,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-form_1_7_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html
+     , blaze-markup, byteable, bytestring, containers, data-default
+     , email-validate, hspec, network-uri, persistent, resourcet
+     , shakespeare, text, time, transformers, wai, xss-sanitize
+     , yesod-core, yesod-persistent
+     }:
+     mkDerivation {
+       pname = "yesod-form";
+       version = "1.7.0";
+       sha256 = "170gby381h5pg9njn908cyx2931yiv79x3rc5npg2rd74kif06vi";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-builder blaze-html blaze-markup
+         byteable bytestring containers data-default email-validate
+         network-uri persistent resourcet shakespeare text time transformers
+         wai xss-sanitize yesod-core yesod-persistent
+       ];
+       testHaskellDepends = [ base hspec text time ];
+       description = "Form handling support for Yesod Web Framework";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yesod-form-bootstrap4" = callPackage
     ({ mkDerivation, base, blaze-html, blaze-markup, shakespeare, text
      , yesod-core, yesod-form
@@ -288918,8 +289718,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-form-multi";
-       version = "1.7.0.1";
-       sha256 = "0dpcyq6l28zbm12rzjp18bhjaghf38jhjzj6qp40qyvb5f8yx9dp";
+       version = "1.7.0.2";
+       sha256 = "1kx27680mgplmqnfjygbcf6a2bv0i9rcxbys986aaa3x785dfj02";
        libraryHaskellDepends = [
          base containers network-uri shakespeare text transformers
          yesod-core yesod-form
@@ -289135,6 +289935,26 @@ self: {
        broken = true;
      }) {};
 
+  "yesod-markdown_0_12_6_9" = callPackage
+    ({ mkDerivation, base, blaze-html, blaze-markup, bytestring
+     , directory, hspec, pandoc, persistent, shakespeare, text
+     , xss-sanitize, yesod-core, yesod-form
+     }:
+     mkDerivation {
+       pname = "yesod-markdown";
+       version = "0.12.6.9";
+       sha256 = "05s63nx27f823b47yy70p9kqxi1cvfk226zgb0qhs5a2q70nxj7z";
+       libraryHaskellDepends = [
+         base blaze-html blaze-markup bytestring directory pandoc persistent
+         shakespeare text xss-sanitize yesod-core yesod-form
+       ];
+       testHaskellDepends = [ base blaze-html hspec text ];
+       description = "Tools for using markdown in a yesod application";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "yesod-media-simple" = callPackage
     ({ mkDerivation, base, bytestring, diagrams-cairo, diagrams-core
      , diagrams-lib, directory, JuicyPixels, vector, yesod
@@ -289178,8 +289998,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-page-cursor";
-       version = "2.0.0.5";
-       sha256 = "0jz5dhmvfggbyjkcxs7v4pc4jpcd759jfv77avzwr64xx2glk1yw";
+       version = "2.0.0.6";
+       sha256 = "0if4pwpzpr48cz1vixk234fdl4lj3895ma9ak8x917sc3cgp2kv1";
        libraryHaskellDepends = [
          aeson base bytestring containers http-link-header network-uri text
          unliftio yesod-core
@@ -289924,22 +290744,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-websockets";
-       version = "0.3.0.2";
-       sha256 = "1k206l84g25xml8yg4q7i62x5aydxq2hni2fk2cc36dlvl0rgih1";
-       libraryHaskellDepends = [
-         base conduit mtl transformers unliftio wai-websockets websockets
-         yesod-core
-       ];
-       description = "WebSockets support for Yesod";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yesod-websockets_0_3_0_3" = callPackage
-    ({ mkDerivation, base, conduit, mtl, transformers, unliftio
-     , wai-websockets, websockets, yesod-core
-     }:
-     mkDerivation {
-       pname = "yesod-websockets";
        version = "0.3.0.3";
        sha256 = "0hm4qzn0kqwl7mfvhgc1h1xbpj80fnkfbh5r3k9c52n5dmcapy6n";
        libraryHaskellDepends = [
@@ -289948,7 +290752,6 @@ self: {
        ];
        description = "WebSockets support for Yesod";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-websockets-extra" = callPackage
diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix
index 8fee25b104c..774bcbe11b2 100644
--- a/pkgs/development/interpreters/clojure/babashka.nix
+++ b/pkgs/development/interpreters/clojure/babashka.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "babashka";
-  version = "0.3.1";
+  version = "0.3.5";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
-    url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json";
-    sha256 = "0ar2ry07axgrmdb6nsc0786v1a1nwlyvapgxncaaympvn38qk8qf";
+    url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-reflection.json";
+    sha256 = "sha256-TVFdGFXclJE9GpolKzTGSmeianBdb2Yp3kbNUWlddPw=";
   };
 
   src = fetchurl {
-    url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "1fapkyq7fcgydy8sls6jzxagfkhgxhwp1rdvjqxdmqk4d82jwrh2";
+    url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
+    sha256 = "sha256-tOLT5W5kK38fb9XL9jOQpw0LjHPjbn+BarckbCuwQAc=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index a96fb03aab2..a18a51aa621 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.3.814";
+  version = "1.10.3.822";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "sha256-+jpnhuKPvxKJA8xDo9GiRKpFJdPYRJTssmZtafadEn4=";
+    sha256 = "14vl2lycbcihashs8443rgwi4llkjkrfwls9sfr7dq3mi2g7fidb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/interpreters/erlang/R23.nix b/pkgs/development/interpreters/erlang/R23.nix
index 0e8e402ab3b..5334429fbba 100644
--- a/pkgs/development/interpreters/erlang/R23.nix
+++ b/pkgs/development/interpreters/erlang/R23.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "23.3.1";
-  sha256 = "1nx9yv3l8hf37js7pqs536ywy786mxhkqba1jsmy1b3yc6xki1mq";
+  version = "23.3.2";
+  sha256 = "eU3BmBJqrcg3FmkuAIfB3UoSNfQQfvGNyC2jBffwm/w=";
 }
diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix
index 163c255c522..b55c4b613a2 100644
--- a/pkgs/development/interpreters/janet/default.nix
+++ b/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.15.4";
+  version = "1.15.5";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lE2BAwiwvewydIpVYoN+zrfpzQbMbe5Nb1r0mzdxMao=";
+    sha256 = "sha256-szqH2Qqc+AKTuoZjYHhTmiHcFQ+PMsljh0RSD/q4gD4=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index a8e73339ee1..8a2130050bf 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-ckbKxWzcISo9yOXuwgOiSfR2hs+5od0Ru0Ku2I52Gu8=";
+    sha256 = "sha256-3OimYXcQ3KPav44sClbC60220/YK4Jhq+l5UfRFYoJI=";
   };
 
   vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix
index a0e23614ebc..d9b52af9254 100644
--- a/pkgs/development/interpreters/mujs/default.nix
+++ b/pkgs/development/interpreters/mujs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mujs";
-  version = "1.0.9";
+  version = "1.1.1";
 
   src = fetchurl {
     url = "https://mujs.com/downloads/mujs-${version}.tar.xz";
-    sha256 = "sha256-zKjWafQtO2OEPelF370s5KkArbT+gQv3lQQpYdGw6HY=";
+    sha256 = "sha256-meYfyWGfHVULVjVyA7NJ2Ih9CjbffblWc1yijU/3e7A=";
   };
 
   buildInputs = [ readline ];
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight, embeddable Javascript interpreter";
     platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
-    license = licenses.gpl3;
+    license = licenses.isc;
   };
 }
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index ad53e755835..13fd811c4ea 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -192,7 +192,7 @@ let
               "--with-libxml-dir=${libxml2.dev}"
             ]
             ++ lib.optional pharSupport   "--enable-phar"
-            ++ lib.optional phpdbgSupport "--enable-phpdbg"
+            ++ lib.optional (!phpdbgSupport) "--disable-phpdbg"
 
 
             # Misc flags
diff --git a/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-23336.patch b/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-23336.patch
new file mode 100644
index 00000000000..760d0e7eed8
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/2.7/CVE-2021-23336.patch
@@ -0,0 +1,390 @@
+From e7b005c05dbdbce967a409abd71641281a8604bf Mon Sep 17 00:00:00 2001
+From: Senthil Kumaran <senthil@uthcode.com>
+Date: Mon, 15 Feb 2021 11:16:43 -0800
+Subject: [PATCH 24/26] [3.6] bpo-42967: only use '&' as a query string
+ separator (GH-24297)  (GH-24532)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+bpo-42967: [security] Address a web cache-poisoning issue reported in
+urllib.parse.parse_qsl().
+
+urllib.parse will only us "&" as query string separator by default
+instead of both ";" and "&" as allowed in earlier versions. An optional
+argument seperator with default value "&" is added to specify the
+separator.
+
+Co-authored-by: Éric Araujo <merwok@netwok.org>
+Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com>
+Co-authored-by: Adam Goldschmidt <adamgold7@gmail.com>
+
+Rebased for Python 2.7 by Michał Górny
+---
+ Doc/library/cgi.rst                           |  7 +++-
+ Doc/library/urlparse.rst                      | 23 ++++++++++-
+ Lib/cgi.py                                    | 20 +++++++---
+ Lib/test/test_cgi.py                          | 29 +++++++++++---
+ Lib/test/test_urlparse.py                     | 38 +++++++++----------
+ Lib/urlparse.py                               | 22 ++++++++---
+ .../2021-02-14-15-59-16.bpo-42967.YApqDS.rst  |  1 +
+ 7 files changed, 100 insertions(+), 40 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Security/2021-02-14-15-59-16.bpo-42967.YApqDS.rst
+
+diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
+index ecd62c8c01..b85cdd8b61 100644
+--- a/Doc/library/cgi.rst
++++ b/Doc/library/cgi.rst
+@@ -285,10 +285,10 @@ These are useful if you want more control, or if you want to employ some of the
+ algorithms implemented in this module in other circumstances.
+ 
+ 
+-.. function:: parse(fp[, environ[, keep_blank_values[, strict_parsing]]])
++.. function:: parse(fp[, environ[, keep_blank_values[, strict_parsing]]], separator="&")
+ 
+    Parse a query in the environment or from a file (the file defaults to
+-   ``sys.stdin`` and environment defaults to ``os.environ``).  The *keep_blank_values* and *strict_parsing* parameters are
++   ``sys.stdin`` and environment defaults to ``os.environ``).  The *keep_blank_values*, *strict_parsing* and *separator* parameters are
+    passed to :func:`urlparse.parse_qs` unchanged.
+ 
+ 
+@@ -316,6 +316,9 @@ algorithms implemented in this module in other circumstances.
+    Note that this does not parse nested multipart parts --- use
+    :class:`FieldStorage` for that.
+ 
++   .. versionchanged:: 3.6.13
++      Added the *separator* parameter.
++
+ 
+ .. function:: parse_header(string)
+ 
+diff --git a/Doc/library/urlparse.rst b/Doc/library/urlparse.rst
+index 0989c88c30..2f8e4c5a44 100644
+--- a/Doc/library/urlparse.rst
++++ b/Doc/library/urlparse.rst
+@@ -136,7 +136,7 @@ The :mod:`urlparse` module defines the following functions:
+       now raise :exc:`ValueError`.
+ 
+ 
+-.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
++.. function:: parse_qs(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]], separator='&')
+ 
+    Parse a query string given as a string argument (data of type
+    :mimetype:`application/x-www-form-urlencoded`).  Data are returned as a
+@@ -157,6 +157,9 @@ The :mod:`urlparse` module defines the following functions:
+    read. If set, then throws a :exc:`ValueError` if there are more than
+    *max_num_fields* fields read.
+ 
++   The optional argument *separator* is the symbol to use for separating the
++   query arguments. It defaults to ``&``.
++
+    Use the :func:`urllib.urlencode` function to convert such dictionaries into
+    query strings.
+ 
+@@ -166,7 +169,14 @@ The :mod:`urlparse` module defines the following functions:
+    .. versionchanged:: 2.7.16
+       Added *max_num_fields* parameter.
+ 
+-.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]])
++   .. versionchanged:: 2.7.18-gentoo
++      Added *separator* parameter with the default value of ``&``. Earlier
++      Python versions allowed using both ``;`` and ``&`` as query parameter
++      separator. This has been changed to allow only a single separator key,
++      with ``&`` as the default separator.
++
++
++.. function:: parse_qsl(qs[, keep_blank_values[, strict_parsing[, max_num_fields]]], separator='&')
+ 
+    Parse a query string given as a string argument (data of type
+    :mimetype:`application/x-www-form-urlencoded`).  Data are returned as a list of
+@@ -186,6 +196,9 @@ The :mod:`urlparse` module defines the following functions:
+    read. If set, then throws a :exc:`ValueError` if there are more than
+    *max_num_fields* fields read.
+ 
++   The optional argument *separator* is the symbol to use for separating the
++   query arguments. It defaults to ``&``.
++
+    Use the :func:`urllib.urlencode` function to convert such lists of pairs into
+    query strings.
+ 
+@@ -195,6 +208,12 @@ The :mod:`urlparse` module defines the following functions:
+    .. versionchanged:: 2.7.16
+       Added *max_num_fields* parameter.
+ 
++   .. versionchanged:: 2.7.18-gentoo
++      Added *separator* parameter with the default value of ``&``. Earlier
++      Python versions allowed using both ``;`` and ``&`` as query parameter
++      separator. This has been changed to allow only a single separator key,
++      with ``&`` as the default separator.
++
+ .. function:: urlunparse(parts)
+ 
+    Construct a URL from a tuple as returned by ``urlparse()``. The *parts* argument
+diff --git a/Lib/cgi.py b/Lib/cgi.py
+index 5b903e0347..9d0848b6b1 100755
+--- a/Lib/cgi.py
++++ b/Lib/cgi.py
+@@ -121,7 +121,8 @@ log = initlog           # The current logging function
+ # 0 ==> unlimited input
+ maxlen = 0
+ 
+-def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
++def parse(fp=None, environ=os.environ, keep_blank_values=0,
++          strict_parsing=0, separator='&'):
+     """Parse a query in the environment or from a file (default stdin)
+ 
+         Arguments, all optional:
+@@ -140,6 +141,9 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
+         strict_parsing: flag indicating what to do with parsing errors.
+             If false (the default), errors are silently ignored.
+             If true, errors raise a ValueError exception.
++
++        separator: str. The symbol to use for separating the query arguments.
++            Defaults to &.
+     """
+     if fp is None:
+         fp = sys.stdin
+@@ -171,7 +175,8 @@ def parse(fp=None, environ=os.environ, keep_blank_values=0, strict_parsing=0):
+         else:
+             qs = ""
+         environ['QUERY_STRING'] = qs    # XXX Shouldn't, really
+-    return urlparse.parse_qs(qs, keep_blank_values, strict_parsing)
++    return urlparse.parse_qs(qs, keep_blank_values, strict_parsing,
++                             separator=separator)
+ 
+ 
+ # parse query string function called from urlparse,
+@@ -395,7 +400,7 @@ class FieldStorage:
+ 
+     def __init__(self, fp=None, headers=None, outerboundary="",
+                  environ=os.environ, keep_blank_values=0, strict_parsing=0,
+-                 max_num_fields=None):
++                 max_num_fields=None, separator='&'):
+         """Constructor.  Read multipart/* until last part.
+ 
+         Arguments, all optional:
+@@ -430,6 +435,7 @@ class FieldStorage:
+         self.keep_blank_values = keep_blank_values
+         self.strict_parsing = strict_parsing
+         self.max_num_fields = max_num_fields
++        self.separator = separator
+         if 'REQUEST_METHOD' in environ:
+             method = environ['REQUEST_METHOD'].upper()
+         self.qs_on_post = None
+@@ -613,7 +619,8 @@ class FieldStorage:
+         if self.qs_on_post:
+             qs += '&' + self.qs_on_post
+         query = urlparse.parse_qsl(qs, self.keep_blank_values,
+-                                   self.strict_parsing, self.max_num_fields)
++                                   self.strict_parsing, self.max_num_fields,
++                                   separator=self.separator)
+         self.list = [MiniFieldStorage(key, value) for key, value in query]
+         self.skip_lines()
+ 
+@@ -629,7 +636,8 @@ class FieldStorage:
+             query = urlparse.parse_qsl(self.qs_on_post,
+                                        self.keep_blank_values,
+                                        self.strict_parsing,
+-                                       self.max_num_fields)
++                                       self.max_num_fields,
++                                       separator=self.separator)
+             self.list.extend(MiniFieldStorage(key, value)
+                              for key, value in query)
+             FieldStorageClass = None
+@@ -649,7 +657,7 @@ class FieldStorage:
+             headers = rfc822.Message(self.fp)
+             part = klass(self.fp, headers, ib,
+                          environ, keep_blank_values, strict_parsing,
+-                         max_num_fields)
++                         max_num_fields, separator=self.separator)
+ 
+             if max_num_fields is not None:
+                 max_num_fields -= 1
+diff --git a/Lib/test/test_cgi.py b/Lib/test/test_cgi.py
+index 743c2afbd4..f414faa23b 100644
+--- a/Lib/test/test_cgi.py
++++ b/Lib/test/test_cgi.py
+@@ -61,12 +61,9 @@ parse_strict_test_cases = [
+     ("", ValueError("bad query field: ''")),
+     ("&", ValueError("bad query field: ''")),
+     ("&&", ValueError("bad query field: ''")),
+-    (";", ValueError("bad query field: ''")),
+-    (";&;", ValueError("bad query field: ''")),
+     # Should the next few really be valid?
+     ("=", {}),
+     ("=&=", {}),
+-    ("=;=", {}),
+     # This rest seem to make sense
+     ("=a", {'': ['a']}),
+     ("&=a", ValueError("bad query field: ''")),
+@@ -81,8 +78,6 @@ parse_strict_test_cases = [
+     ("a=a+b&b=b+c", {'a': ['a b'], 'b': ['b c']}),
+     ("a=a+b&a=b+a", {'a': ['a b', 'b a']}),
+     ("x=1&y=2.0&z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
+-    ("x=1;y=2.0&z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
+-    ("x=1;y=2.0;z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
+     ("Hbc5161168c542333633315dee1182227:key_store_seqid=400006&cuyer=r&view=bustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&ss=env",
+      {'Hbc5161168c542333633315dee1182227:key_store_seqid': ['400006'],
+       'cuyer': ['r'],
+@@ -188,6 +183,30 @@ class CgiTests(unittest.TestCase):
+             self.assertEqual(expect[k], v)
+         self.assertItemsEqual(expect.values(), d.values())
+ 
++    def test_separator(self):
++        parse_semicolon = [
++            ("x=1;y=2.0", {'x': ['1'], 'y': ['2.0']}),
++            ("x=1;y=2.0;z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
++            (";", ValueError("bad query field: ''")),
++            (";;", ValueError("bad query field: ''")),
++            ("=;a", ValueError("bad query field: 'a'")),
++            (";b=a", ValueError("bad query field: ''")),
++            ("b;=a", ValueError("bad query field: 'b'")),
++            ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}),
++            ("a=a+b;a=b+a", {'a': ['a b', 'b a']}),
++        ]
++        for orig, expect in parse_semicolon:
++            env = {'QUERY_STRING': orig}
++            fs = cgi.FieldStorage(separator=';', environ=env)
++            if isinstance(expect, dict):
++                for key in expect.keys():
++                    expect_val = expect[key]
++                    self.assertIn(key, fs)
++                    if len(expect_val) > 1:
++                        self.assertEqual(fs.getvalue(key), expect_val)
++                    else:
++                        self.assertEqual(fs.getvalue(key), expect_val[0])
++
+     def test_log(self):
+         cgi.log("Testing")
+ 
+diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
+index 86c4a0595c..0b2107339a 100644
+--- a/Lib/test/test_urlparse.py
++++ b/Lib/test/test_urlparse.py
+@@ -24,16 +24,20 @@ parse_qsl_test_cases = [
+     ("&a=b", [('a', 'b')]),
+     ("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]),
+     ("a=1&a=2", [('a', '1'), ('a', '2')]),
+-    (";", []),
+-    (";;", []),
+-    (";a=b", [('a', 'b')]),
+-    ("a=a+b;b=b+c", [('a', 'a b'), ('b', 'b c')]),
+-    ("a=1;a=2", [('a', '1'), ('a', '2')]),
+-    (b";", []),
+-    (b";;", []),
+-    (b";a=b", [(b'a', b'b')]),
+-    (b"a=a+b;b=b+c", [(b'a', b'a b'), (b'b', b'b c')]),
+-    (b"a=1;a=2", [(b'a', b'1'), (b'a', b'2')]),
++    (b"", []),
++    (b"&", []),
++    (b"&&", []),
++    (b"=", [(b'', b'')]),
++    (b"=a", [(b'', b'a')]),
++    (b"a", [(b'a', b'')]),
++    (b"a=", [(b'a', b'')]),
++    (b"&a=b", [(b'a', b'b')]),
++    (b"a=a+b&b=b+c", [(b'a', b'a b'), (b'b', b'b c')]),
++    (b"a=1&a=2", [(b'a', b'1'), (b'a', b'2')]),
++    (";a=b", [(';a', 'b')]),
++    ("a=a+b;b=b+c", [('a', 'a b;b=b c')]),
++    (b";a=b", [(b';a', b'b')]),
++    (b"a=a+b;b=b+c", [(b'a', b'a b;b=b c')]),
+ ]
+ 
+ parse_qs_test_cases = [
+@@ -57,16 +61,10 @@ parse_qs_test_cases = [
+     (b"&a=b", {b'a': [b'b']}),
+     (b"a=a+b&b=b+c", {b'a': [b'a b'], b'b': [b'b c']}),
+     (b"a=1&a=2", {b'a': [b'1', b'2']}),
+-    (";", {}),
+-    (";;", {}),
+-    (";a=b", {'a': ['b']}),
+-    ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}),
+-    ("a=1;a=2", {'a': ['1', '2']}),
+-    (b";", {}),
+-    (b";;", {}),
+-    (b";a=b", {b'a': [b'b']}),
+-    (b"a=a+b;b=b+c", {b'a': [b'a b'], b'b': [b'b c']}),
+-    (b"a=1;a=2", {b'a': [b'1', b'2']}),
++    (";a=b", {';a': ['b']}),
++    ("a=a+b;b=b+c", {'a': ['a b;b=b c']}),
++    (b";a=b", {b';a': [b'b']}),
++    (b"a=a+b;b=b+c", {b'a':[ b'a b;b=b c']}),
+ ]
+ 
+ class UrlParseTestCase(unittest.TestCase):
+diff --git a/Lib/urlparse.py b/Lib/urlparse.py
+index 798b467b60..6c32727fce 100644
+--- a/Lib/urlparse.py
++++ b/Lib/urlparse.py
+@@ -382,7 +382,8 @@ def unquote(s):
+             append(item)
+     return ''.join(res)
+ 
+-def parse_qs(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
++def parse_qs(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None,
++             separator='&'):
+     """Parse a query given as a string argument.
+ 
+         Arguments:
+@@ -402,17 +403,22 @@ def parse_qs(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
+ 
+         max_num_fields: int. If set, then throws a ValueError if there
+             are more than n fields read by parse_qsl().
++
++        separator: str. The symbol to use for separating the query arguments.
++            Defaults to &.
++
+     """
+     dict = {}
+     for name, value in parse_qsl(qs, keep_blank_values, strict_parsing,
+-                                 max_num_fields):
++                                 max_num_fields, separator=separator):
+         if name in dict:
+             dict[name].append(value)
+         else:
+             dict[name] = [value]
+     return dict
+ 
+-def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
++def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None,
++              separator='&'):
+     """Parse a query given as a string argument.
+ 
+     Arguments:
+@@ -432,17 +438,23 @@ def parse_qsl(qs, keep_blank_values=0, strict_parsing=0, max_num_fields=None):
+     max_num_fields: int. If set, then throws a ValueError if there
+         are more than n fields read by parse_qsl().
+ 
++        separator: str. The symbol to use for separating the query arguments.
++            Defaults to &.
++
+     Returns a list, as G-d intended.
+     """
++    if not separator or (not isinstance(separator, (str, bytes))):
++        raise ValueError("Separator must be of type string or bytes.")
++
+     # If max_num_fields is defined then check that the number of fields
+     # is less than max_num_fields. This prevents a memory exhaustion DOS
+     # attack via post bodies with many fields.
+     if max_num_fields is not None:
+-        num_fields = 1 + qs.count('&') + qs.count(';')
++        num_fields = 1 + qs.count(separator)
+         if max_num_fields < num_fields:
+             raise ValueError('Max number of fields exceeded')
+ 
+-    pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
++    pairs = [s1 for s1 in qs.split(separator)]
+     r = []
+     for name_value in pairs:
+         if not name_value and not strict_parsing:
+diff --git a/Misc/NEWS.d/next/Security/2021-02-14-15-59-16.bpo-42967.YApqDS.rst b/Misc/NEWS.d/next/Security/2021-02-14-15-59-16.bpo-42967.YApqDS.rst
+new file mode 100644
+index 0000000000..f08489b414
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2021-02-14-15-59-16.bpo-42967.YApqDS.rst
+@@ -0,0 +1 @@
++Fix web cache poisoning vulnerability by defaulting the query args separator to ``&``, and allowing the user to choose a custom separator.
+-- 
+2.31.1
+
diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index f905612d022..d6ba795d20a 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -123,6 +123,8 @@ let
 
       ./CVE-2021-3177.patch
 
+      ./CVE-2021-23336.patch
+
       # The workaround is for unittests on Win64, which we don't support.
       # It does break aarch64-darwin, which we do support. See:
       # * https://bugs.python.org/issue35523
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 39e27ec9944..d74e017d830 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -69,12 +69,15 @@ with pkgs;
               recursivePthLoader
             ;
           };
+          optionalExtensions = cond: as: if cond then as else [];
+          python2Extension = import ../../../top-level/python2-packages.nix;
+          extensions = lib.composeManyExtensions ((optionalExtensions (!self.isPy3k) [python2Extension]) ++ [ overrides ]);
         in lib.makeScopeWithSplicing
           pkgs.splicePackages
           pkgs.newScope
           otherSplices
           keep
-          (lib.extends overrides pythonPackagesFun))
+          (lib.extends extensions pythonPackagesFun))
         {
           overrides = packageOverrides;
         };
@@ -114,10 +117,10 @@ with pkgs;
       sourceVersion = {
         major = "3";
         minor = "8";
-        patch = "8";
+        patch = "9";
         suffix = "";
       };
-      sha256 = "fGZCSf935EPW6g5M8OWH6ukYyjxI0IHRkV/iofG8xcw=";
+      sha256 = "XjkfPsRdopVEGcqwvq79i+OIlepc4zV3w+wUlAxLlXI=";
     };
   };
 
@@ -173,10 +176,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "9";
-      patch = "2";
+      patch = "4";
       suffix = "";
     };
-    sha256 = "PCA0xU+BFEj1FmaNzgnSQAigcWw6eU3YY5tTiMveJH0=";
+    sha256 = "Sw5mRKdvjfhkriSsUApRu/aL0Jj2oXPifTthzcqaoTQ=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix
index 175454ea055..e9c769821d6 100644
--- a/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -104,11 +104,13 @@ else
 let
   inherit (python) stdenv;
 
+  name_ = name;
+
   self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [
     "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format"
   ]) // {
 
-    name = namePrefix + name;
+    name = namePrefix + name_;
 
     nativeBuildInputs = [
       python
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 0522f6f397b..4b185f038a1 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -249,18 +249,18 @@ let
 
 in {
   ruby_2_6 = generic {
-    version = rubyVersion "2" "6" "6" "";
+    version = rubyVersion "2" "6" "7" "";
     sha256 = {
-      src = "1492x795qzgp3zhpl580kd1sdp50n5hfsmpbfhdsq2rnxwyi8jrn";
-      git = "1jr9v99a7awssqmw7531afbx4a8i9x5yfqyffha545g7r4s7kj50";
+      src = "17m9qxalwhk95dw1qhgxbvr3kkcxs3h86yirfg5mwj35gy5pw8p4";
+      git = "08gvknanwdfsaj3lmcv1bdqjf9lldphzi7gmlv3cfa8ligx2vbap";
     };
   };
 
   ruby_2_7 = generic {
-    version = rubyVersion "2" "7" "2" "";
+    version = rubyVersion "2" "7" "3" "";
     sha256 = {
-      src = "1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf";
-      git = "0kbgznf1yprfp9645k31ra5f4757b7fichzi0hdg6nxkj90853s0";
+      src = "0f2kwn98n9h9hy1fd547s7d0a7ga8jjm4nh294bwiwnq65gaj9c9";
+      git = "0vxg9w4dgpw2ig5snxmkahvzdp2yh71w8qm49g35d5hqdsql7yrx";
     };
   };
 
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index dcd0a653836..964e0a4e28a 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -1,12 +1,12 @@
 { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
 
 {
-  "2.6.6" = ops useRailsExpress [
+  "2.6.7" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "2.7.2" = ops useRailsExpress [
+  "2.7.3" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 92bd85b1e8c..f70a46e2f8e 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -2,7 +2,7 @@
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , openglSupport ? libGLSupported, libGL
 , alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsaLib
-, x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
+, x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid
 , libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
 , libXinerama, libXext, libXxf86vm, libXrandr
 , waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
     "--disable-oss"
   ] ++ optional (!x11Support) "--without-x"
     ++ optional alsaSupport "--with-alsa-prefix=${alsaLib.out}/lib"
+    ++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
     ++ optional stdenv.isDarwin "--disable-sdltest";
 
   # We remove libtool .la files when static libs are requested,
diff --git a/pkgs/development/libraries/ace/default.nix b/pkgs/development/libraries/ace/default.nix
index 85df0b43353..8210bdb4425 100644
--- a/pkgs/development/libraries/ace/default.nix
+++ b/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ace";
-  version = "6.5.11";
+  version = "7.0.1";
 
   src = fetchurl {
-    url = "http://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
-    sha256 = "0fbbysy6aymys30zh5m2bygs84dwwjnbsdl9ipj1rvfrhq8jbylb";
+    url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
+    sha256 = "sha256-5nH5a0tBOcGfA07eeh9EjH0vgT3gTRWYHXoeO+QFQjQ=";
   };
 
   enableParallelBuilding = true;
@@ -18,8 +18,9 @@ stdenv.mkDerivation rec {
     "-Wno-error=format-security"
   ];
 
-  patchPhase = ''substituteInPlace ./MPC/prj_install.pl \
-    --replace /usr/bin/perl "${perl}/bin/perl"'';
+  postPatch = ''
+    patchShebangs ./MPC/prj_install.pl
+  '';
 
   preConfigure = ''
     export INSTALL_PREFIX=$out
@@ -31,10 +32,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
+    homepage = "https://www.dre.vanderbilt.edu/~schmidt/ACE.html";
     description = "ADAPTIVE Communication Environment";
-    homepage = "http://www.dre.vanderbilt.edu/~schmidt/ACE.html";
     license = licenses.doc;
+    maintainers = with maintainers; [ nico202 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.nico202 ];
   };
 }
diff --git a/pkgs/development/libraries/afflib/default.nix b/pkgs/development/libraries/afflib/default.nix
index b89683ac053..94970c5a308 100644
--- a/pkgs/development/libraries/afflib/default.nix
+++ b/pkgs/development/libraries/afflib/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, zlib, curl, expat, fuse, openssl
-, autoreconfHook, python3
+, autoreconfHook, python3, libiconv
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ zlib curl expat openssl python3 ]
-    ++ lib.optionals stdenv.isLinux [ fuse ];
+    ++ lib.optionals (with stdenv; isLinux || isDarwin) [ fuse ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = {
     homepage = "http://afflib.sourceforge.net/";
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 1aca24ac8ea..3121edccfe4 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -1,14 +1,14 @@
 { lib, mkDerivation, fetchFromGitHub, standard-library }:
 
 mkDerivation rec {
-  version = "0.1.5";
+  version = "0.1.6";
   pname = "agda-categories";
 
   src = fetchFromGitHub {
     owner = "agda";
     repo = "agda-categories";
     rev = "v${version}";
-    sha256 = "1b5gj0r2z5fhh7k8b9s2kx4rjv8gi5y8ijgrbcvsa06n3acap3lm";
+    sha256 = "1s75yqcjwj13s1m3fg29krnn05lws6143ccfdygc6c4iynvvznsh";
   };
 
   buildInputs = [ standard-library ];
diff --git a/pkgs/development/libraries/agda/functional-linear-algebra/default.nix b/pkgs/development/libraries/agda/functional-linear-algebra/default.nix
index 15603f293b4..1e5c0ae28d3 100644
--- a/pkgs/development/libraries/agda/functional-linear-algebra/default.nix
+++ b/pkgs/development/libraries/agda/functional-linear-algebra/default.nix
@@ -1,7 +1,7 @@
 { fetchFromGitHub, lib, mkDerivation, standard-library }:
 
 mkDerivation rec {
-  version = "0.2";
+  version = "0.3";
   pname = "functional-linear-algebra";
 
   buildInputs = [ standard-library ];
@@ -10,7 +10,7 @@ mkDerivation rec {
     repo = "functional-linear-algebra";
     owner = "ryanorendorff";
     rev = "v${version}";
-    sha256 = "1dz7kh92df23scl1pkhn70n1f2v3d0x84liphn9kpsd6wlsxccxc";
+    sha256 = "032gl35x1qzaigc3hbg9dc40zr0nyjld175cb9m8b15rlz9xzjn2";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/agda/standard-library/default.nix b/pkgs/development/libraries/agda/standard-library/default.nix
index fd20a0d9a97..b77c9044834 100644
--- a/pkgs/development/libraries/agda/standard-library/default.nix
+++ b/pkgs/development/libraries/agda/standard-library/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "standard-library";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     repo = "agda-stdlib";
     owner = "agda";
     rev = "v${version}";
-    sha256 = "16fcb7ssj6kj687a042afaa2gq48rc8abihpm14k684ncihb2k4w";
+    sha256 = "1smvnid7r1mc4lp34pfrbzgzrcl0gmw0dlkga8z0r3g2zhj98lz1";
   };
 
   nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index cdcf4b7b8a4..cbfec4dd46a 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.16";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "1vmhwjhppjv8m0ysk2qz0wl47cbl8i40bjjq5l4jmmp1ysvlbknf";
+    sha256 = "sha256-c4SN3kNY8415+O/2AYuHNQFEmuTBtLaWj5fsj0yJ2vs=";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 1d0256f3b27..5693a5968b6 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -21,13 +21,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q1.6";
+  version = "2021.Q2.2";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "FSQ/bYlvdw0Ih3Yl329o8Gizw0YcZTLtiI222Ju4M8w=";
+    sha256 = "4k9ZkBxJGuNUO44F9D+u54eUREl5/8zxjxhaShhzGv0=";
   };
 
   buildInputs = [
@@ -70,12 +70,8 @@ in stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm755 -t $out/lib icd/amdvlk${suffix}.so
-    install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd${suffix}.json
-
-    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
-      "/usr/lib64" "$out/lib"
-    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
-      "/usr/lib" "$out/lib"
+    install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json
+    install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json
 
     patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so
   '';
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 22264fe01f3..b286c7efbd8 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.3.0";
+  version = "10.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-qx7/+lr5AAChGhmjkwL9+8XEq/b6tXipvQ6clc+B5Mc=";
+    sha256 = "sha256-5aRR4FXeX4sEhKzVyrLsXbrW3ihze1zHJRDYkuxppYA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix
index b7c9287b68b..b81afc24ee9 100644
--- a/pkgs/development/libraries/attr/default.nix
+++ b/pkgs/development/libraries/attr/default.nix
@@ -31,7 +31,15 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://savannah.nongnu.org/projects/attr/";
     description = "Library and tools for manipulating extended attributes";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.gpl2Plus;
+
+    # The build failure on Darwin will likely be solved after upgrading the
+    # macOS SDK in nixpkgs. Check the current SDK version in
+    # ../../../../os-specific/darwin/apple-sdk/default.nix to see if it has
+    # been updated to 10.13 or later. Once the requirements are met, building
+    # it should be straightforward as Homebrew was able to build it without
+    # patching.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/avro-c/default.nix b/pkgs/development/libraries/avro-c/default.nix
index a5acd7c7898..95e3053b534 100644
--- a/pkgs/development/libraries/avro-c/default.nix
+++ b/pkgs/development/libraries/avro-c/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, cmake, fetchurl, pkg-config, jansson, zlib }:
 
 let
-  version = "1.9.1";
+  version = "1.10.2";
 in stdenv.mkDerivation {
   pname = "avro-c";
   inherit version;
 
   src = fetchurl {
     url = "mirror://apache/avro/avro-${version}/c/avro-c-${version}.tar.gz";
-    sha256 = "0hj6w1w5mqkhnhkvjc0zz5njnnrbcjv5ml4f8gq80wff2cgbrxvx";
+    sha256 = "sha256-rj+zK+xKBon1Rn4JIBGS7cbo80ITTvBq1FLKhw9Wt+I=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index d6fbb97014d..7fd7b2fbbdd 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -63,6 +63,9 @@ stdenv.mkDerivation rec {
     ./cmake-dirs.patch
   ];
 
+  # Builds in 2+h with 2 cores, and ~10m with a big-parallel builder.
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = with lib; {
     description = "A C++ interface for Amazon Web Services";
     homepage = "https://github.com/awslabs/aws-sdk-cpp";
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index 5a9bbd5a49d..1d8f35cd01c 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.5.1";
+  version = "4.5.7";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1mm3v01jz2mp8vajsl45s23gw90zafbgg3br5n5yz03aan08f395";
+    sha256 = "sha256-JQ2HgFVqgO+LLXmN95ZTHyT+htCFUC3VRreKLwPYo9Y=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/belcard/default.nix b/pkgs/development/libraries/belcard/default.nix
index 36af06dfc55..dbc85992ba4 100644
--- a/pkgs/development/libraries/belcard/default.nix
+++ b/pkgs/development/libraries/belcard/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belcard";
-  version = "4.5.1";
+  version = "4.5.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14hkgwr2a9zw44v1s8xscqxa2mwin06jsxpwb3hflh9mp16ymfzv";
+    sha256 = "sha256-+7vqTbg1QergWPx2LQ2wkVehOma6Ix02IfwnJTJ/E5I=";
   };
 
   buildInputs = [ bctoolbox belr ];
diff --git a/pkgs/development/libraries/belr/default.nix b/pkgs/development/libraries/belr/default.nix
index 252ac3e80ed..90e27a6a9dc 100644
--- a/pkgs/development/libraries/belr/default.nix
+++ b/pkgs/development/libraries/belr/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belr";
-  version = "4.5.1";
+  version = "4.5.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0m0s7g8d25nbnafbl76w9v3x7q4jhsypxmz1gg80pj7j34xc2dsd";
+    sha256 = "sha256-TTfBOhnyyAvQe+HXfr2GkuDTx07cHLqcsssW0dA7GlQ=";
   };
 
   buildInputs = [ bctoolbox ];
diff --git a/pkgs/development/libraries/bootil/default.nix b/pkgs/development/libraries/bootil/default.nix
index 20ca175d7b8..a2045e38143 100644
--- a/pkgs/development/libraries/bootil/default.nix
+++ b/pkgs/development/libraries/bootil/default.nix
@@ -1,24 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, premake4 }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, premake4
+}:
 
 stdenv.mkDerivation {
   pname = "bootil";
-  version = "unstable-2015-12-17";
+  version = "unstable-2019-11-18";
 
   src = fetchFromGitHub {
     owner = "garrynewman";
     repo = "bootil";
-    rev = "1d3e321fc2be359e2350205b8c7f1cad2164ee0b";
-    sha256 = "03wq526r80l2px797hd0n5m224a6jibwipcbsvps6l9h740xabzg";
+    rev = "beb4cec8ad29533965491b767b177dc549e62d23";
+    sha256 = "1njdj6nvmwf7j2fwqbyvd1cf5l52797vk2wnsliylqdzqcjmfpij";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/garrynewman/bootil/pull/22.patch";
-      name = "github-pull-request-22.patch";
-      sha256 = "1qf8wkv00pb9w1aa0dl89c8gm4rmzkxfl7hidj4gz0wpy7a24qa2";
-    })
-  ];
-
   # Avoid guessing where files end up. Just use current directory.
   postPatch = ''
     substituteInPlace projects/premake4.lua \
@@ -28,6 +24,7 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [ premake4 ];
+
   premakefile = "projects/premake4.lua";
 
   installPhase = ''
@@ -40,8 +37,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/garrynewman/bootil";
     # License unsure - see https://github.com/garrynewman/bootil/issues/21
     license = licenses.free;
-    maintainers = [ maintainers.abigailbuccaneer ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ abigailbuccaneer ];
     # Build uses `-msse` and `-mfpmath=sse`
     badPlatforms = [ "aarch64-linux" ];
   };
diff --git a/pkgs/development/libraries/boringssl/default.nix b/pkgs/development/libraries/boringssl/default.nix
index aa3eeef48a5..d51cf159598 100644
--- a/pkgs/development/libraries/boringssl/default.nix
+++ b/pkgs/development/libraries/boringssl/default.nix
@@ -1,22 +1,39 @@
-{ lib, stdenv, fetchgit, cmake, perl, go }:
+{ lib
+, stdenv
+, fetchgit
+, cmake
+, ninja
+, perl
+, buildGoModule
+}:
 
 # reference: https://boringssl.googlesource.com/boringssl/+/2661/BUILDING.md
-stdenv.mkDerivation {
+buildGoModule {
   pname = "boringssl";
-  version = "2019-12-04";
+  version = "2021-04-18";
 
   src = fetchgit {
     url    = "https://boringssl.googlesource.com/boringssl";
-    rev    = "243b5cc9e33979ae2afa79eaa4e4c8d59db161d4";
-    sha256 = "1ak27dln0zqy2vj4llqsb99g03sk0sg25wlp09b58cymrh3gccvl";
+    rev    = "468cde90ca58421d63f4dfeaebcf8bb3fccb4127";
+    sha256 = "0gaqcbvp6r5fq265mckmg0i0rjab0bhxkxcvfxp3ar5dm7q88w39";
   };
 
-  nativeBuildInputs = [ cmake perl go ];
+  nativeBuildInputs = [ cmake ninja perl ];
 
-  makeFlags = [ "GOCACHE=$(TMPDIR)/go-cache" ];
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  # hack to get both go and cmake configure phase
+  # (if we use postConfigure then cmake will loop runHook postConfigure)
+  preBuild = ''
+    cmakeConfigurePhase
+  '';
+
+  buildPhase = ''
+    ninjaBuildPhase
+  '';
 
   # CMAKE_OSX_ARCHITECTURES is set to x86_64 by Nix, but it confuses boringssl on aarch64-linux.
-  cmakeFlags = lib.optionals (stdenv.isLinux) [ "-DCMAKE_OSX_ARCHITECTURES=" ];
+  cmakeFlags = [ "-GNinja" ] ++ lib.optionals (stdenv.isLinux) [ "-DCMAKE_OSX_ARCHITECTURES=" ];
 
   installPhase = ''
     mkdir -p $bin/bin $out/include $out/lib
@@ -35,7 +52,6 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Free TLS/SSL implementation";
     homepage    = "https://boringssl.googlesource.com";
-    platforms   = platforms.all;
     maintainers = [ maintainers.thoughtpolice ];
     license = with licenses; [ openssl isc mit bsd3 ];
   };
diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix
index cb40e535b0c..a486ba49820 100644
--- a/pkgs/development/libraries/botan/2.0.nix
+++ b/pkgs/development/libraries/botan/2.0.nix
@@ -1,9 +1,9 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  baseVersion = "2.17";
-  revision = "3";
-  sha256 = "121vn1aryk36cpks70kk4c4cfic5g0qs82bf92xap9258ijkn4kr";
+  baseVersion = "2.18";
+  revision = "0";
+  sha256 = "09z3fy31q1pvnvpy4fswrsl2aq8ksl94lbh5rl7b6nqc3qp8ar6c";
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
diff --git a/pkgs/development/libraries/botan/default.nix b/pkgs/development/libraries/botan/default.nix
index 8bcc6aaa8ef..c494fa25f77 100644
--- a/pkgs/development/libraries/botan/default.nix
+++ b/pkgs/development/libraries/botan/default.nix
@@ -9,4 +9,8 @@ callPackage ./generic.nix (args // {
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
+  knownVulnerabilities = [
+    # https://botan.randombit.net/security.html#id1
+    "2020-03-24: Side channel during CBC padding"
+  ];
 })
diff --git a/pkgs/development/libraries/botan/generic.nix b/pkgs/development/libraries/botan/generic.nix
index 33f9daf7b50..2fc5abc2928 100644
--- a/pkgs/development/libraries/botan/generic.nix
+++ b/pkgs/development/libraries/botan/generic.nix
@@ -4,6 +4,7 @@
 , sourceExtension ? "tar.xz"
 , extraConfigureFlags ? ""
 , postPatch ? null
+, knownVulnerabilities ? [ ]
 , CoreServices
 , Security
 , ...
@@ -49,6 +50,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
     license = licenses.bsd2;
+    inherit knownVulnerabilities;
   };
   passthru.updateInfo.downloadPage = "http://files.randombit.net/botan/";
 }
diff --git a/pkgs/development/libraries/caf/default.nix b/pkgs/development/libraries/caf/default.nix
index 944b5276c5a..a5baef8af1e 100644
--- a/pkgs/development/libraries/caf/default.nix
+++ b/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.18.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "1c3spd6vm1h9qhlk5c4fdwi6nbqx5vwz2zvv6qp0rj1hx6xpq3cx";
+    sha256 = "sha256-tRR+YFI/Ikf4rov4dzt59nDqaooALNspKEQehHP6sKU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index 9c89279cd51..f70513e0cd0 100644
--- a/pkgs/development/libraries/cimg/default.nix
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -1,28 +1,33 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitHub
+}:
 
 stdenv.mkDerivation rec {
   pname = "cimg";
-  version = "2.9.6";
+  version = "2.9.7";
 
   src = fetchFromGitHub {
     owner = "dtschump";
     repo = "CImg";
     rev = "v.${version}";
-    sha256 = "sha256-RdOfog5FOw5XESyDFX68Lb2MUyCeUuPaq/0UVNTjNKo=";
+    sha256 = "sha256-cR2wvGtomT1cZh8wKMCfYDNuP3d1gKhHJavVnvuQ8Mc=";
   };
 
   installPhase = ''
+    runHook preInstall
     install -dm 755 $out/include/CImg/plugins $doc/share/doc/cimg/examples
-
     install -m 644 CImg.h $out/include/
     cp -dr --no-preserve=ownership examples/* $doc/share/doc/cimg/examples/
     cp -dr --no-preserve=ownership plugins/* $out/include/CImg/plugins/
     cp README.txt $doc/share/doc/cimg/
+    runHook postInstall
   '';
 
   outputs = [ "out" "doc" ];
 
   meta = with lib; {
+    homepage = "http://cimg.eu/";
     description = "A small, open source, C++ toolkit for image processing";
     longDescription = ''
       CImg stands for Cool Image. It is easy to use, efficient and is intended
@@ -30,7 +35,6 @@ stdenv.mkDerivation rec {
       C++. Due to its generic conception, it can cover a wide range of image
       processing applications.
     '';
-    homepage = "http://cimg.eu/";
     license = licenses.cecill-c;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cosmopolitan/default.nix b/pkgs/development/libraries/cosmopolitan/default.nix
new file mode 100644
index 00000000000..629e5465a04
--- /dev/null
+++ b/pkgs/development/libraries/cosmopolitan/default.nix
@@ -0,0 +1,80 @@
+{ lib, gcc9Stdenv, fetchFromGitHub, runCommand, cosmopolitan }:
+
+gcc9Stdenv.mkDerivation rec {
+  pname = "cosmopolitan";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "jart";
+    repo = "cosmopolitan";
+    rev = version;
+    sha256 = "sha256-OVdOObO82W6JN63OWKHaERS7y0uvgxt+WLp6Y0LsmJk=";
+  };
+
+  postPatch = ''
+    patchShebangs build/
+    rm -r third_party/gcc
+  '';
+
+  dontConfigure = true;
+  dontFixup = true;
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    makeFlagsArray=(
+      SHELL=/bin/sh
+      AS=${gcc9Stdenv.cc.targetPrefix}as
+      CC=${gcc9Stdenv.cc.targetPrefix}gcc
+      GCC=${gcc9Stdenv.cc.targetPrefix}gcc
+      CXX=${gcc9Stdenv.cc.targetPrefix}g++
+      LD=${gcc9Stdenv.cc.targetPrefix}ld
+      OBJCOPY=${gcc9Stdenv.cc.targetPrefix}objcopy
+      "MKDIR=mkdir -p"
+      )
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,lib/include}
+    install o/cosmopolitan.h $out/lib/include
+    install o/cosmopolitan.a o/libc/crt/crt.o o/ape/ape.{o,lds} $out/lib
+    cat > $out/bin/cosmoc <<EOF
+    #!${gcc9Stdenv.shell}
+    exec ${gcc9Stdenv.cc}/bin/${gcc9Stdenv.cc.targetPrefix}gcc \
+      -O -static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zone \
+      "\$@" \
+      -Wl,--oformat=binary -Wl,--gc-sections -Wl,-z,max-page-size=0x1000 \
+      -fuse-ld=bfd -Wl,-T,$out/lib/ape.lds \
+      -include $out/lib/{include/cosmopolitan.h,crt.o,ape.o,cosmopolitan.a}
+    EOF
+    chmod +x $out/bin/cosmoc
+    runHook postInstall
+  '';
+
+  passthru.tests = lib.optional (gcc9Stdenv.buildPlatform == gcc9Stdenv.hostPlatform) {
+    hello = runCommand "hello-world" { } ''
+      printf 'main() { printf("hello world\\n"); }\n' >hello.c
+      ${gcc9Stdenv.cc}/bin/gcc -g -O -static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zone -o hello.com.dbg hello.c \
+        -fuse-ld=bfd -Wl,-T,${cosmopolitan}/lib/ape.lds \
+        -include ${cosmopolitan}/lib/{include/cosmopolitan.h,crt.o,ape.o,cosmopolitan.a}
+      ${gcc9Stdenv.cc.bintools.bintools_bin}/bin/objcopy -S -O binary hello.com.dbg hello.com
+      ./hello.com
+      printf "test successful" > $out
+    '';
+    cosmoc = runCommand "cosmoc-hello" { } ''
+      printf 'main() { printf("hello world\\n"); }\n' >hello.c
+      ${cosmopolitan}/bin/cosmoc hello.c
+      ./a.out
+      printf "test successful" > $out
+    '';
+  };
+
+  meta = with lib; {
+    homepage = "https://justine.lol/cosmopolitan/";
+    description = "Your build-once run-anywhere c library";
+    platforms = platforms.x86_64;
+    badPlatforms = platforms.darwin;
+    license = licenses.isc;
+    maintainers = with maintainers; [ lourkeur tomberek ];
+  };
+}
diff --git a/pkgs/development/libraries/cxxopts/default.nix b/pkgs/development/libraries/cxxopts/default.nix
index ddbc845e3b4..1df570d7d29 100644
--- a/pkgs/development/libraries/cxxopts/default.nix
+++ b/pkgs/development/libraries/cxxopts/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "cxxopts";
-  version = "2.2.1";
+  version = "unstable-2020-12-14";
 
   src = fetchFromGitHub {
     owner = "jarro2783";
     repo = name;
-    rev = "v${version}";
-    sha256 = "0d3y747lsh1wkalc39nxd088rbypxigm991lk3j91zpn56whrpha";
+    rev = "2d8e17c4f88efce80e274cb03eeb902e055a91d3";
+    sha256 = "0pwrac81zfqjs17g3hx8r3ds2xf04npb6mz111qjy4bx17314ib7";
   };
 
   buildInputs = lib.optional enableUnicodeHelp [ icu.dev ];
diff --git a/pkgs/development/libraries/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index 233e01e0380..c8e31d43e95 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.4.4";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "onqtam";
     repo = "doctest";
     rev = version;
-    hash = "sha256-NqXC5948prTCi4gsaR8bJPBTrmH+rJbHsGvwkJlpjXY=";
+    sha256 = "14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/drumstick/default.nix b/pkgs/development/libraries/drumstick/default.nix
index 21572e52e23..e101da35224 100644
--- a/pkgs/development/libraries/drumstick/default.nix
+++ b/pkgs/development/libraries/drumstick/default.nix
@@ -1,19 +1,18 @@
 { lib, stdenv, fetchurl
-, cmake, docbook_xml_dtd_45, docbook_xsl, doxygen, pkg-config, wrapQtAppsHook
+, cmake, docbook_xml_dtd_45, docbook_xsl, doxygen, graphviz-nox, pkg-config, qttools, wrapQtAppsHook
 , alsaLib, fluidsynth, qtbase, qtsvg, libpulseaudio
 }:
 
 stdenv.mkDerivation rec {
   pname = "drumstick";
-  version = "1.1.3";
+  version = "2.1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumstick/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1n9wvg79yvkygrkc8xd8pgrd3d7hqmr7gh24dccf0px23lla9b3m";
+    sha256 = "06lz4kzpgg5lalcjb14pi35jxca5f4j6ckqf6mdxs1k42dfhjpjp";
   };
 
   patches = [
-    ./drumstick-fluidsynth.patch
     ./drumstick-plugins.patch
   ];
 
@@ -24,13 +23,17 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "man" ];
 
   nativeBuildInputs = [
-    cmake docbook_xml_dtd_45 docbook_xml_dtd_45 docbook_xsl doxygen pkg-config wrapQtAppsHook
+    cmake docbook_xml_dtd_45 docbook_xml_dtd_45 docbook_xsl doxygen graphviz-nox pkg-config qttools wrapQtAppsHook
   ];
 
   buildInputs = [
     alsaLib fluidsynth libpulseaudio qtbase qtsvg
   ];
 
+  cmakeFlags = [
+    "-DUSE_DBUS=ON"
+  ];
+
   meta = with lib; {
     maintainers = with maintainers; [ solson ];
     description = "MIDI libraries for Qt5/C++";
diff --git a/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch b/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch
deleted file mode 100644
index b8cdf63fb64..00000000000
--- a/pkgs/development/libraries/drumstick/drumstick-fluidsynth.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-It works with fluidsynth 2.
-
-Backported from r400: https://sourceforge.net/p/drumstick/code/400/
-
---- a/library/rt-backends/CMakeLists.txt
-+++ b/library/rt-backends/CMakeLists.txt
-@@ -54,1 +54,1 @@ if (PKG_CONFIG_FOUND)
--    pkg_check_modules(FLUIDSYNTH fluidsynth>=1.1.1 fluidsynth<=1.1.11)
-+    pkg_check_modules(FLUIDSYNTH fluidsynth>=1.1.1)
diff --git a/pkgs/development/libraries/drumstick/drumstick-plugins.patch b/pkgs/development/libraries/drumstick/drumstick-plugins.patch
index cbb0a0e3489..59711120a8e 100644
--- a/pkgs/development/libraries/drumstick/drumstick-plugins.patch
+++ b/pkgs/development/libraries/drumstick/drumstick-plugins.patch
@@ -1,12 +1,14 @@
 Make it look for its plugin in its own installation directory.
 
+Without this vmpk fails to start with "Unable to initialize all MIDI drivers".
+
 --- a/library/rt/backendmanager.cpp
 +++ b/library/rt/backendmanager.cpp
 @@ -159,6 +159,7 @@ namespace rt {
          foreach(const QString& path, QCoreApplication::libraryPaths()) {
              d->appendDir( path + QDir::separator() + QSTR_DRUMSTICK, result );
          }
-+        d->appendDir( "@out@/lib/drumstick", result );
++        d->appendDir( "@out@/lib/" + QSTR_DRUMSTICK, result );
          return result;
      }
  
diff --git a/pkgs/development/libraries/eclib/default.nix b/pkgs/development/libraries/eclib/default.nix
index a8697207ed1..4709441a101 100644
--- a/pkgs/development/libraries/eclib/default.nix
+++ b/pkgs/development/libraries/eclib/default.nix
@@ -14,7 +14,7 @@ assert withFlint -> flint != null;
 
 stdenv.mkDerivation rec {
   pname = "eclib";
-  version = "20210223"; # upgrade might break the sage interface
+  version = "20190909"; # upgrade might break the sage interface
   # sage tests to run:
   # src/sage/interfaces/mwrank.py
   # src/sage/libs/eclib
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "JohnCremona";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xnSw5cdg4PLa0GT/blCYDz/IG5aj+HG2NHSlyCiH9g0=";
+    sha256 = "0y1vdi4120gdw56gg2dn3wh625yr9wpyk3wpbsd25w4lv83qq5da";
   };
   buildInputs = [
     pari
diff --git a/pkgs/development/libraries/eigen/2.0.nix b/pkgs/development/libraries/eigen/2.0.nix
index a2b1ba47e2d..a1633594636 100644
--- a/pkgs/development/libraries/eigen/2.0.nix
+++ b/pkgs/development/libraries/eigen/2.0.nix
@@ -6,19 +6,18 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitLab {
     owner = "libeigen";
-    repo = "eigen";
+    repo = pname;
     rev = version;
-    sha256 = "0d4knrcz04pxmxaqs5r3wv092950kl1z9wsw87vdzi9kgvc6wl0b";
+    hash = "sha256-C1Bu2H4zxd/2QVzz9AOdoCSRwOYjF41Vr/0S8Fm2kzQ=";
   };
 
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
+    homepage = "https://eigen.tuxfamily.org";
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = licenses.lgpl3Plus;
-    homepage = "https://eigen.tuxfamily.org";
-    maintainers = with lib.maintainers; [ sander raskin ];
-    branch = "2";
-    platforms = with lib.platforms; unix;
+    maintainers = with maintainers; [ sander raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 079269521c7..a16cb628008 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitLab, cmake }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, cmake
+}:
 
 stdenv.mkDerivation rec {
   pname = "eigen";
@@ -6,9 +10,9 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitLab {
     owner = "libeigen";
-    repo = "eigen";
+    repo = pname;
     rev = version;
-    sha256 = "1i3cvg8d70dk99fl3lrv3wqhfpdnm5kx01fl7r2bz46sk9bphwm1";
+    hash = "sha256-oXJ4V5rakL9EPtQF0Geptl0HMR8700FdSrOB09DbbMQ=";
   };
 
   patches = [
@@ -18,11 +22,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
+    homepage = "https://eigen.tuxfamily.org";
     description = "C++ template library for linear algebra: vectors, matrices, and related algorithms";
     license = licenses.lgpl3Plus;
-    homepage = "https://eigen.tuxfamily.org";
+    maintainers = with maintainers; [ sander raskin ];
     platforms = platforms.unix;
-    maintainers = with lib.maintainers; [ sander raskin ];
-    inherit version;
   };
 }
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 8efc9c05ca3..34a4f93bb86 100644
--- a/pkgs/development/libraries/entt/default.nix
+++ b/pkgs/development/libraries/entt/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "entt";
-  version = "3.7.0";
+  version = "3.7.1";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "sha256-qDjt74nijZhXW7F7GW0CSv6JWOc/kXN7ndbkwSO0+1s=";
+    sha256 = "sha256-t1QRqasb82W277XEV2FG5JrsQWIWZ0G5V7wLI+p4MpQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/fcft/default.nix b/pkgs/development/libraries/fcft/default.nix
index fd6f26c9789..e9cd3571c76 100644
--- a/pkgs/development/libraries/fcft/default.nix
+++ b/pkgs/development/libraries/fcft/default.nix
@@ -6,12 +6,12 @@
 
 stdenv.mkDerivation rec {
   pname = "fcft";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchgit {
     url = "https://codeberg.org/dnkl/fcft.git";
     rev = version;
-    sha256 = "0k2i57rakm4g86f7hbhkby8af0vv7v63a70lk3m58mkycpy5q2rm";
+    sha256 = "0314r038jl17hrhc9nrbx30jk0pz8ckbdnizws4r46b1rf4h0b1f";
   };
 
   nativeBuildInputs = [ pkg-config meson ninja scdoc ];
@@ -29,7 +29,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://codeberg.org/dnkl/fcft";
     description = "Simple library for font loading and glyph rasterization";
-    maintainers = with maintainers; [ fionera ];
+    maintainers = with maintainers; [
+      fionera
+      sternenseemann
+    ];
     license = licenses.mit;
     platforms = with platforms; linux;
   };
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index 2e68dbb1d12..dfdbf8eb2f8 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, lib, stdenv, ffmpeg_3, cmake, libpng, pkg-config, libjpeg
+{ fetchFromGitHub, lib, stdenv, ffmpeg, cmake, libpng, pkg-config, libjpeg
 }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ ffmpeg_3 libpng libjpeg ];
+  buildInputs = [ ffmpeg libpng libjpeg ];
   cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ];
 
   meta = with lib;  {
diff --git a/pkgs/development/libraries/ffms/default.nix b/pkgs/development/libraries/ffms/default.nix
index 7fa96cff7f8..283942df63f 100644
--- a/pkgs/development/libraries/ffms/default.nix
+++ b/pkgs/development/libraries/ffms/default.nix
@@ -1,20 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, zlib, ffmpeg_3, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, ffmpeg
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "ffms";
-  version = "2.23";
+  version = "2.40";
 
   src = fetchFromGitHub {
     owner = "FFMS";
     repo = "ffms2";
     rev = version;
-    sha256 = "0dkz5b3gxq5p4xz0qqg6l2sigszrlsinz3skyf0ln4wf3zrvf8m5";
+    sha256 = "sha256-3bPxt911T0bGpAIS2RxBjo+VV84xW06eKcCj3ZAcmvw=";
   };
 
   NIX_CFLAGS_COMPILE = "-fPIC";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ zlib ffmpeg_3 ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  preAutoreconf = ''
+    mkdir src/config
+  '';
+
+  buildInputs = [
+    ffmpeg
+    zlib
+  ];
 
   # ffms includes a built-in vapoursynth plugin, see:
   # https://github.com/FFMS/ffms2#avisynth-and-vapoursynth-plugin
@@ -25,9 +43,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/FFMS/ffms2/";
-    description = "Libav/ffmpeg based source library for easy frame accurate access";
+    description = "FFmpeg based source library for easy frame accurate access";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ tadeokondrak ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/flint/default.nix b/pkgs/development/libraries/flint/default.nix
index 2c540d13008..0adaa2fe5e7 100644
--- a/pkgs/development/libraries/flint/default.nix
+++ b/pkgs/development/libraries/flint/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     inherit version;
     description = "Fast Library for Number Theory";
     license = lib.licenses.gpl2Plus;
-    maintainers = [lib.maintainers.raskin];
+    maintainers = lib.teams.sage.members;
     platforms = lib.platforms.unix;
     homepage = "http://www.flintlib.org/";
     downloadPage = "http://www.flintlib.org/downloads.html";
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index 5714131416d..b50783e2719 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -29,6 +29,10 @@ stdenv.mkDerivation {
 
   preInstall = ''
     mkdir -p $INCDIR $INSTALLDIR
+  ''
+  # Workaround for Makefiles.osx not using ?=
+  + lib.optionalString stdenv.isDarwin ''
+    makeFlagsArray+=( "INCDIR=$INCDIR" "INSTALLDIR=$INSTALLDIR" )
   '';
 
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
diff --git a/pkgs/development/libraries/ftgl/default.nix b/pkgs/development/libraries/ftgl/default.nix
index 5588e27356f..466ffcbb73a 100644
--- a/pkgs/development/libraries/ftgl/default.nix
+++ b/pkgs/development/libraries/ftgl/default.nix
@@ -1,28 +1,42 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
+, autoreconfHook
+, doxygen
+, freeglut
 , freetype
+, GLUT
 , libGL
 , libGLU
 , OpenGL
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "ftgl";
-  version = "2.1.3-rc5";
+  version = "2.4.0";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/${pname}-${version}.tar.gz";
-    hash = "sha256-VFjWISJFSGlXLTn4qoV0X8BdVRgAG876Y71su40mVls=";
+  src = fetchFromGitHub {
+    owner = "frankheckenbach";
+    repo = "ftgl";
+    rev = "v${version}";
+    hash = "sha256-6TDNGoMeBLnucmHRgEDIVWcjlJb7N0sTluqBwRMMWn4=";
   };
 
+  nativeBuildInputs = [
+    autoreconfHook
+    doxygen
+    pkg-config
+  ];
   buildInputs = [
     freetype
   ] ++ (if stdenv.isDarwin then [
     OpenGL
+    GLUT
   ] else [
     libGL
     libGLU
+    freeglut
   ]);
 
   configureFlags = [
@@ -31,8 +45,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    install -Dm644 src/FTSize.h -t ${placeholder "out"}/include/FTGL
+    install -Dm644 src/FTFace.h -t ${placeholder "out"}/include/FTGL
+  '';
+
   meta = with lib; {
-    homepage = "https://sourceforge.net/apps/mediawiki/ftgl/";
+    homepage = "https://github.com/frankheckenbach/ftgl";
     description = "Font rendering library for OpenGL applications";
     longDescription = ''
       FTGL is a free cross-platform Open Source C++ library that uses Freetype2
@@ -40,7 +59,7 @@ stdenv.mkDerivation rec {
       pixmaps, texture maps, outlines, polygon mesh, and extruded polygon
       rendering modes.
     '';
-    license = licenses.gpl3Plus;
+    license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index e97630871a9..bec366b8e16 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -34,10 +34,7 @@ stdenv.mkDerivation {
 
   patches = [ ./nix-ssl-cert-file.patch ]
     # Disable native add_system_trust.
-    ++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch
-    # fix gnulib tests on 32-bit ARM. Included on gnutls master.
-    # https://lists.gnu.org/r/bug-gnulib/2020-08/msg00225.html
-    ++ lib.optional stdenv.hostPlatform.isAarch32 ./fix-gnulib-tests-arm.patch;
+    ++ lib.optional (isDarwin && !withSecurity) ./no-security-framework.patch;
 
   # Skip some tests:
   #  - pkg-config: building against the result won't work before installing (3.5.11)
@@ -50,7 +47,7 @@ stdenv.mkDerivation {
     sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c
     sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
   '' + lib.optionalString stdenv.hostPlatform.isMusl '' # See https://gitlab.com/gnutls/gnutls/-/issues/945
-    sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool
+    sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool.sh
   '';
 
   preConfigure = "patchShebangs .";
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index d1e478ded26..0d4bec5f344 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -36,7 +36,7 @@
 , tracker
 , x11Support ? stdenv.isLinux
 , waylandSupport ? stdenv.isLinux
-, mesa
+, libGL
 , wayland
 , wayland-protocols
 , xineramaSupport ? stdenv.isLinux
@@ -143,7 +143,7 @@ stdenv.mkDerivation rec {
     # explicitly propagated, always needed
     Cocoa
   ] ++ lib.optionals waylandSupport [
-    mesa
+    libGL
     wayland
     wayland-protocols
   ] ++ lib.optionals xineramaSupport [
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 28247d6c972..b64b8bc36fd 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -38,7 +38,7 @@
 , tracker
 , x11Support ? stdenv.isLinux
 , waylandSupport ? stdenv.isLinux
-, mesa
+, libGL
 , vulkan-loader
 , vulkan-headers
 , wayland
@@ -124,7 +124,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals trackerSupport [
     tracker
   ] ++ lib.optionals waylandSupport [
-    mesa
+    libGL
     wayland
     wayland-protocols
   ] ++ lib.optionals xineramaSupport [
diff --git a/pkgs/development/libraries/gupnp-igd/default.nix b/pkgs/development/libraries/gupnp-igd/default.nix
index 09fae015b50..233eb7e3c85 100644
--- a/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/pkgs/development/libraries/gupnp-igd/default.nix
@@ -44,7 +44,9 @@ stdenv.mkDerivation rec {
     "-Dgtk_doc=true"
   ];
 
-  doCheck = true;
+  # Seems to get stuck sometimes.
+  # https://github.com/NixOS/nixpkgs/issues/119288
+  #doCheck = true;
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index bcd0fcee92c..86b8b7130ff 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , arpack
 , bison
 , blas
@@ -22,23 +21,15 @@
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "sha256-i6Zg6bfHZ9NHwqCouX9m9YqD0VtiWW8DEkxS0hdUyIE=";
+    sha256 = "sha256-Ylw02Mz9H4wIWfq59za/X7xfhgW9o0DNU55nLFqeUeo=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "pkg-config-paths.patch";
-      url = "https://github.com/igraph/igraph/commit/980521cc948777df471893f7b6de8f3e3916a3c0.patch";
-      sha256 = "0mbq8v5h90c3dhgmyjazjvva3rn57qhnv7pkc9hlbqdln9gpqg0g";
-    })
-  ];
-
   # Normally, igraph wants us to call bootstrap.sh, which will call
   # tools/getversion.sh. Instead, we're going to put the version directly
   # where igraph wants, and then let autoreconfHook do the rest of the
@@ -55,7 +46,9 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "doc" ];
 
   nativeBuildInputs = [
+    bison
     cmake
+    flex
     fop
     libxml2
     libxslt
@@ -67,9 +60,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     arpack
-    bison
     blas
-    flex
     glpk
     gmp
     lapack
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index fa100f34607..651a42da0b1 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "21.1.1";
+  version = "21.1.2";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0cdyrfyn05fadva8k02kp4nk14k274xfmhzwc0v7jijm1dw8v8rf";
+    sha256 = "0zs8l0q1q7xps3kxlch6jddxjiny8n8avdg1ghiwbkvgf76gb3as";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index c60b00552b5..b983e01aa0a 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "21.1.3";
+  version = "21.2.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "1y6y6dia2y3b798f668q26pzwb1xai5d5jpmllpcxs9qikhkkx8p";
+    sha256 = "101wbg5j00amdbfz4p6mpg90wi549dl78jd34mac5g6zhcpwqbh9";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index dd605aaae5c..715e5621458 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "20.4.1";
+  version = "20.5.1";
 
   src = fetchFromGitHub {
     owner = "Intel-Media-SDK";
     repo = "MediaSDK";
     rev = "intel-mediasdk-${version}";
-    sha256 = "0qnq43qjcmzkn6v2aymzi3kycndk9xw6m5f5g5sz5x53nz556bp0";
+    sha256 = "0l5m7r8585ycifbbi5i0bs63c9sb8rsmk43ik97mhfl1ivswf1mv";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/iodash/0001-Add-cmake-install-directives.patch b/pkgs/development/libraries/iodash/0001-Add-cmake-install-directives.patch
new file mode 100644
index 00000000000..1868a741920
--- /dev/null
+++ b/pkgs/development/libraries/iodash/0001-Add-cmake-install-directives.patch
@@ -0,0 +1,44 @@
+From 89c7c160f897f64e17fb74efffccfd1fc16f8b7d Mon Sep 17 00:00:00 2001
+From: Jappie Klooster <jappieklooster@hotmail.com>
+Date: Fri, 2 Apr 2021 14:22:02 -0400
+Subject: [PATCH] Add cmake install directives.
+
+To make nix builds work, it expect a `make install` command to
+be available.
+Adding these directives seems to fix the build.
+
+If it's no trouble to you, please add them.
+
+Maybe don't need endian
+---
+ CMakeLists.txt | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 06e416f..8d6f489 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ set(CMAKE_CXX_STANDARD 17)
+ add_library(IODash INTERFACE)
+ target_include_directories(IODash INTERFACE .)
+ 
++include(GNUInstallDirs)
++
+ add_executable(IODash_Test test.cpp)
+ target_link_libraries(IODash_Test IODash)
+ 
+@@ -20,3 +22,11 @@ if (DEFINED BUILD_BENCHMARKS AND (${BUILD_BENCHMARKS}))
+     target_link_libraries(boost_Benchmark_HTTP boost_system pthread)
+ endif()
+ 
++install(TARGETS IODash
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(FILES IODash.hpp
++        DESTINATION include/)
++
++install(FILES
++        IODash/Buffer.hpp IODash/SocketAddress.hpp IODash/File.hpp IODash/Socket.hpp IODash/EventLoop.hpp IODash/Serial.hpp IODash/Timer.hpp
++        DESTINATION include/IODash)
+-- 
+2.29.2
+
diff --git a/pkgs/development/libraries/iodash/default.nix b/pkgs/development/libraries/iodash/default.nix
new file mode 100644
index 00000000000..d8982f0f8c0
--- /dev/null
+++ b/pkgs/development/libraries/iodash/default.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "iodash";
+  version = "0.1.7";
+
+  src  = fetchFromGitHub {
+    owner  = "YukiWorkshop";
+    repo   = "IODash";
+    rev    = "9dcb26621a9c17dbab704b5bab0c3a5fc72624cb";
+    sha256 = "0db5y2206fwh3h1pzjm9hy3m76inm0xpm1c5gvrladz6hiqfp7bx";
+    fetchSubmodules = true;
+  };
+  # adds missing cmake install directives
+  # https://github.com/YukiWorkshop/IODash/pull/2
+  patches = [ ./0001-Add-cmake-install-directives.patch];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  meta = with lib; {
+    homepage = "https://github.com/YukiWorkshop/IODash";
+    description = "Lightweight C++ I/O library for POSIX operation systems";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jappie ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/libraries/isl/0.20.0.nix b/pkgs/development/libraries/isl/0.20.0.nix
index c35588555a7..c40b3d7be0b 100644
--- a/pkgs/development/libraries/isl/0.20.0.nix
+++ b/pkgs/development/libraries/isl/0.20.0.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gmp ];
 
+  configureFlags = [
+    "--with-gcc-arch=generic" # don't guess -march=/mtune=
+  ];
+
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index fac8a40bb24..2df3e554c9b 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jasper";
-  version = "2.0.28";
+  version = "2.0.32";
 
   src = fetchFromGitHub {
     owner = "jasper-software";
     repo = pname;
     rev = "version-${version}";
-    hash = "sha256-f3UG5w8GbwZcsFBaQN6v8kdEkKIGgizcAgaVZtKwS78=";
+    hash = "sha256-Uwgtex0MWC/pOmEr8itHMIa4wxd97c/tsTzcLgV8D0I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/attica.nix b/pkgs/development/libraries/kde-frameworks/attica.nix
index 4cb2e8e958a..8c71afd5dcf 100644
--- a/pkgs/development/libraries/kde-frameworks/attica.nix
+++ b/pkgs/development/libraries/kde-frameworks/attica.nix
@@ -1,11 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, qtbase }:
+{ mkDerivation, extra-cmake-modules, qtbase }:
 
 mkDerivation {
   name = "attica";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index d5da9f5af17..8497ec73a3a 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kauth, kconfig, kcoreaddons, kcrash, kdbusaddons, kfilemetadata, ki18n,
   kidletime, kio, lmdb, qtbase, qtdeclarative, solid,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "baloo";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kauth kconfig kcrash kdbusaddons ki18n kio kidletime lmdb qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
index 9717e770ed5..c5764b4915e 100644
--- a/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/bluez-qt.nix
@@ -1,14 +1,10 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , qtbase, qtdeclarative
 }:
 
 mkDerivation {
   name = "bluez-qt";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtdeclarative ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
index d9192b94036..6e79a45ea92 100644
--- a/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
+++ b/pkgs/development/libraries/kde-frameworks/breeze-icons.nix
@@ -1,8 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, gtk3, qtsvg, hicolor-icon-theme }:
+{ mkDerivation, extra-cmake-modules, gtk3, qtsvg, hicolor-icon-theme }:
 
 mkDerivation {
   name = "breeze-icons";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules gtk3 ];
   buildInputs = [ qtsvg ];
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/default.nix b/pkgs/development/libraries/kde-frameworks/default.nix
index 02e25692ef1..94d403b9e34 100644
--- a/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/default.nix
@@ -28,6 +28,13 @@ existing packages here and modify it as necessary.
 
 let
 
+  minQtVersion = "5.14";
+  broken = lib.versionOlder libsForQt5.qtbase.version minQtVersion;
+  maintainers = with lib.maintainers; [ ttuegel nyanloutre ];
+  license = with lib.licenses; [
+    lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
+  ];
+
   srcs = import ./srcs.nix {
     inherit fetchurl;
     mirror = "mirror://kde";
@@ -72,14 +79,15 @@ let
             defaultSetupHook = if hasSeparateDev then propagateBin else null;
             setupHook = args.setupHook or defaultSetupHook;
 
-            meta = {
-              homepage = "http://www.kde.org";
-              license = with lib.licenses; [
-                lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
-              ];
-              maintainers = with lib.maintainers; [ ttuegel nyanloutre ];
-              platforms = lib.platforms.linux;
-            } // (args.meta or {});
+            meta =
+              let meta = args.meta or {}; in
+              meta // {
+                homepage = meta.homepage or "http://www.kde.org";
+                license = meta.license or license;
+                maintainers = (meta.maintainers or []) ++ maintainers;
+                platforms = meta.platforms or lib.platforms.linux;
+                broken = meta.broken or broken;
+              };
 
           in mkDerivation (args // {
             name = "${name}-${version}";
@@ -158,7 +166,7 @@ let
       kiconthemes = callPackage ./kiconthemes {};
       kinit = callPackage ./kinit {};
       kio = callPackage ./kio {};
-      knewstuff = callPackage ./knewstuff.nix {};
+      knewstuff = callPackage ./knewstuff {};
       knotifyconfig = callPackage ./knotifyconfig.nix {};
       kparts = callPackage ./kparts.nix {};
       kpeople = callPackage ./kpeople.nix {};
diff --git a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
index 0aa400c644d..b74fb29e5f2 100644
--- a/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -17,6 +17,5 @@ mkDerivation {
     platforms = platforms.linux ++ platforms.darwin;
     homepage = "http://www.kde.org";
     license = licenses.bsd2;
-    maintainers = [ maintainers.ttuegel ];
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index 3ce0ca063ca..05506b19385 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.79/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.80/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
index 58b064806e5..c49eab2763c 100644
--- a/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
+++ b/pkgs/development/libraries/kde-frameworks/frameworkintegration.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kbookmarks, kcompletion, kconfig, kconfigwidgets, ki18n, kiconthemes, kio,
   knewstuff, knotifications, kpackage, kwidgetsaddons, libXcursor, qtx11extras
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "frameworkintegration";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kbookmarks kcompletion kconfig ki18n kio knewstuff knotifications kpackage
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
index b558306248a..88fde8c5fd6 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities-stats.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   boost, kactivities, kconfig, qtbase,
 }:
 
 mkDerivation {
   name = "kactivities-stats";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ boost kactivities kconfig ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kactivities.nix b/pkgs/development/libraries/kde-frameworks/kactivities.nix
index eabac6aadd7..b53de41455a 100644
--- a/pkgs/development/libraries/kde-frameworks/kactivities.nix
+++ b/pkgs/development/libraries/kde-frameworks/kactivities.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   boost, kconfig, kcoreaddons, kio, kwindowsystem, qtbase, qtdeclarative,
 }:
 
 mkDerivation {
   name = "kactivities";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     boost kconfig kcoreaddons kio kwindowsystem qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/kapidox.nix b/pkgs/development/libraries/kde-frameworks/kapidox.nix
index 4395f3cd0dd..381dacaf496 100644
--- a/pkgs/development/libraries/kde-frameworks/kapidox.nix
+++ b/pkgs/development/libraries/kde-frameworks/kapidox.nix
@@ -2,7 +2,6 @@
 
 mkDerivation {
   name = "kapidox";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules python3 python3.pkgs.setuptools ];
   postFixup = ''
     moveToOutput bin $bin
diff --git a/pkgs/development/libraries/kde-frameworks/karchive.nix b/pkgs/development/libraries/kde-frameworks/karchive.nix
index 7a9ea86bbb5..3602cb7b061 100644
--- a/pkgs/development/libraries/kde-frameworks/karchive.nix
+++ b/pkgs/development/libraries/kde-frameworks/karchive.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   bzip2, xz, qtbase, zlib,
 }:
 
 mkDerivation {
   name = "karchive";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ bzip2 xz zlib ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index 0a513d6eed9..630b51bf46b 100644
--- a/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -1,11 +1,10 @@
 {
-  mkDerivation, lib, propagate,
+  mkDerivation, propagate,
   extra-cmake-modules, kcoreaddons, polkit-qt, qttools
 }:
 
 mkDerivation {
   name = "kauth";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ polkit-qt qttools ];
   propagatedBuildInputs = [ kcoreaddons ];
diff --git a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
index dc2339632e4..4d68c3694bd 100644
--- a/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
+++ b/pkgs/development/libraries/kde-frameworks/kbookmarks.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, qttools,
   kcodecs, kconfig, kconfigwidgets, kcoreaddons, kiconthemes, kwidgetsaddons,
   kxmlgui, qtbase,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kbookmarks";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     kcodecs kconfig kconfigwidgets kcoreaddons kiconthemes kxmlgui
diff --git a/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix b/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
index e0b6c5313bb..f4f2b05ad73 100644
--- a/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcalendarcore.nix
@@ -1,15 +1,12 @@
 {
   mkDerivation,
-  lib,
   extra-cmake-modules,
-  libical
+  libical,
+  qtbase
 }:
 
 mkDerivation {
   name = "kcalendarcore";
-  meta = {
-    maintainers = [ lib.maintainers.nyanloutre ];
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ libical ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index ab14529be01..22e2929ae0c 100644
--- a/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kconfigwidgets, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews,
   kpackage, kservice, kxmlgui, qtdeclarative,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kcmutils";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons kdeclarative ki18n kiconthemes kitemviews kpackage kxmlgui
diff --git a/pkgs/development/libraries/kde-frameworks/kcodecs.nix b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
index 357c0e1d11c..a62135150a0 100644
--- a/pkgs/development/libraries/kde-frameworks/kcodecs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcodecs.nix
@@ -1,11 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, qtbase, qttools, gperf }:
+{ mkDerivation, extra-cmake-modules, qtbase, qttools, gperf }:
 
 mkDerivation {
   name = "kcodecs";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools gperf ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcompletion.nix b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
index fdfe28db6c0..ffa612ffaa1 100644
--- a/pkgs/development/libraries/kde-frameworks/kcompletion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcompletion.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kwidgetsaddons, qtbase, qttools
 }:
 
 mkDerivation {
   name = "kcompletion";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kconfig kwidgetsaddons qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kconfig.nix b/pkgs/development/libraries/kde-frameworks/kconfig.nix
index 94f4cb04807..ba16e97ef3a 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfig.nix
@@ -1,11 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, qtbase, qttools }:
+{ mkDerivation, extra-cmake-modules, qtbase, qttools }:
 
 mkDerivation {
   name = "kconfig";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-QDirIterator-follow-symlinks.patch
index 3b6ea27d41e..30cfafafab9 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-qdiriterator-follow-symlinks.patch
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/0001-QDirIterator-follow-symlinks.patch
@@ -1,8 +1,17 @@
+From 05c0eb5d803ac52c0dd97a98f6d2821650c3c14c Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 06:09:47 -0500
+Subject: [PATCH] QDirIterator follow symlinks
+
+---
+ src/khelpclient.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 diff --git a/src/khelpclient.cpp b/src/khelpclient.cpp
-index fbbc0fa..cb78741 100644
+index a053cd7..787d375 100644
 --- a/src/khelpclient.cpp
 +++ b/src/khelpclient.cpp
-@@ -48,7 +48,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
+@@ -34,7 +34,7 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
      QString docPath;
      const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
      for (const QString &dir : desktopDirs) {
@@ -11,8 +20,6 @@ index fbbc0fa..cb78741 100644
          while (it.hasNext()) {
              const QString desktopPath(it.next());
              KDesktopFile desktopFile(desktopPath);
-@@ -75,4 +75,3 @@ void KHelpClient::invokeHelp(const QString &anchor, const QString &_appname)
-     // launch khelpcenter, or a browser for URIs not handled by khelpcenter
-     QDesktopServices::openUrl(url);
- }
--
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
index dcbdf6eb5f6..fc10f3070b6 100644
--- a/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kconfigwidgets/default.nix
@@ -1,15 +1,14 @@
 {
-  mkDerivation, lib, extra-cmake-modules,
+  mkDerivation, extra-cmake-modules,
   kauth, kcodecs, kconfig, kdoctools, kguiaddons, ki18n, kwidgetsaddons, qttools, qtbase,
 }:
 
 mkDerivation {
   name = "kconfigwidgets";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kguiaddons ki18n qtbase qttools ];
   propagatedBuildInputs = [ kauth kcodecs kconfig kwidgetsaddons ];
-  patches = [ ./0001-qdiriterator-follow-symlinks.patch ];
+  patches = [ ./0001-QDirIterator-follow-symlinks.patch ];
   outputs = [ "out" "dev" ];
   outputBin = "dev";
   postInstall = ''
diff --git a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
index 6f2e3f92387..a2102c7d732 100644
--- a/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcoreaddons.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase, qttools, shared-mime-info
 }:
 
 mkDerivation {
   name = "kcoreaddons";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools shared-mime-info ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kcrash.nix b/pkgs/development/libraries/kde-frameworks/kcrash.nix
index d45d73d33e4..27dc6d65edf 100644
--- a/pkgs/development/libraries/kde-frameworks/kcrash.nix
+++ b/pkgs/development/libraries/kde-frameworks/kcrash.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kcoreaddons, kwindowsystem, qtbase, qtx11extras,
 }:
 
 mkDerivation {
   name = "kcrash";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons kwindowsystem qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
index b497ebe1c80..5c435b44541 100644
--- a/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdbusaddons.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase, qttools, qtx11extras
 }:
 
 mkDerivation {
   name = "kdbusaddons";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
index 34e01b4c1b6..cc4e2699821 100644
--- a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib, extra-cmake-modules,
+  mkDerivation, extra-cmake-modules,
   epoxy, kconfig, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage,
   kwidgetsaddons, kwindowsystem, qtdeclarative
 }:
 
 mkDerivation {
   name = "kdeclarative";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     epoxy kglobalaccel kguiaddons ki18n kiconthemes kio kwidgetsaddons
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
index 1b326e51de9..936119ab7f5 100644
--- a/pkgs/development/libraries/kde-frameworks/kded.nix
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, propagate, wrapGAppsHook,
+  mkDerivation, propagate, wrapGAppsHook,
   extra-cmake-modules, kdoctools,
   gsettings-desktop-schemas, kconfig, kcoreaddons, kcrash, kdbusaddons, kinit,
   kservice, qtbase,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kded";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
   buildInputs = [
     gsettings-desktop-schemas kconfig kcoreaddons kcrash kdbusaddons kinit
diff --git a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index 5eced883287..392aa9ea902 100644
--- a/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   docbook_xml_dtd_45, extra-cmake-modules, kdoctools,
   kauth, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
   kdbusaddons, kded, kdesignerplugin, kemoticons, kglobalaccel, kguiaddons,
@@ -10,7 +10,6 @@
 
 mkDerivation {
   name = "kdelibs4support";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   patches = [
     ./nix-kde-include-dir.patch
   ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
index 8418863eabb..f1305274070 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesignerplugin.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   kcompletion, kconfig, kconfigwidgets, kcoreaddons, kiconthemes, kio,
   kitemviews, kplotting, ktextwidgets, kwidgetsaddons, kxmlgui, qttools, sonnet,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kdesignerplugin";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcompletion kconfig kconfigwidgets kcoreaddons kiconthemes kio kitemviews
diff --git a/pkgs/development/libraries/kde-frameworks/kdesu/default.nix b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
index cd7055c4ea8..9a5f5a6942a 100644
--- a/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kcoreaddons, ki18n, kpty, kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kdesu";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons ki18n kpty kservice qtbase ];
   propagatedBuildInputs = [ kpty ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdnssd.nix b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
index b4dabba624a..8bb59bb36db 100644
--- a/pkgs/development/libraries/kde-frameworks/kdnssd.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdnssd.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   avahi, qtbase, qttools,
 }:
 
 mkDerivation {
   name = "kdnssd";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ avahi qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
index 68b5c08aa09..a87bef40b1e 100644
--- a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, docbook_xml_dtd_45, docbook_xsl_ns,
   karchive, ki18n, qtbase,
   perl, perlPackages
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kdoctools";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [
     extra-cmake-modules
     # The build system insists on having native Perl.
diff --git a/pkgs/development/libraries/kde-frameworks/kemoticons.nix b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
index b7f4f036db5..66a0889b13d 100644
--- a/pkgs/development/libraries/kde-frameworks/kemoticons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kemoticons.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   karchive, kcoreaddons, kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kemoticons";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive kcoreaddons ];
   propagatedBuildInputs = [ kservice qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 47831f0f5d9..7c16dcf4650 100644
--- a/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,15 +1,33 @@
-{
-  mkDerivation, lib,
-  extra-cmake-modules,
-  attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, attr
+, ebook_tools
+, exiv2
+, ffmpeg
+, karchive
+, kcoreaddons
+, ki18n
+, poppler
+, qtbase
+, qtmultimedia
+, taglib
 }:
 
 mkDerivation {
   name = "kfilemetadata";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
+    attr
+    ebook_tools
+    exiv2
+    ffmpeg
+    karchive
+    kcoreaddons
+    ki18n
+    poppler
+    qtbase
+    qtmultimedia
     taglib
   ];
   patches = [
diff --git a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
index 483ab16dcc3..7001c98ee00 100644
--- a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
+++ b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kservice, kwindowsystem,
   qtbase, qttools, qtx11extras, libXdmcp,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kglobalaccel";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcoreaddons kcrash kdbusaddons kservice kwindowsystem qttools
diff --git a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
index 6c7365fd27e..bcd18ab614b 100644
--- a/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kguiaddons.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , qtbase, qtx11extras, wayland
 }:
@@ -11,9 +11,4 @@ mkDerivation {
   propagatedBuildInputs = [ qtbase ];
 
   outputs = [ "out" "dev" ];
-
-  meta = with lib; {
-    maintainers = [ maintainers.ttuegel ];
-    broken = versionOlder qtbase.version "5.14.0";
-  };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/khtml.nix b/pkgs/development/libraries/kde-frameworks/khtml.nix
index 5bb3078ea86..3ef3a043c4e 100644
--- a/pkgs/development/libraries/kde-frameworks/khtml.nix
+++ b/pkgs/development/libraries/kde-frameworks/khtml.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, perl,
   giflib, karchive, kcodecs, kglobalaccel, ki18n, kiconthemes, kio, kjs,
   knotifications, kparts, ktextwidgets, kwallet, kwidgetsaddons, kwindowsystem,
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "khtml";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [
     giflib karchive kcodecs kglobalaccel ki18n kiconthemes kio knotifications
diff --git a/pkgs/development/libraries/kde-frameworks/ki18n.nix b/pkgs/development/libraries/kde-frameworks/ki18n.nix
index 0733abc8692..46f502d06bb 100644
--- a/pkgs/development/libraries/kde-frameworks/ki18n.nix
+++ b/pkgs/development/libraries/kde-frameworks/ki18n.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, gettext, python3,
   qtbase, qtdeclarative, qtscript,
 }:
 
 mkDerivation {
   name = "ki18n";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedNativeBuildInputs = [ gettext python3 ];
   buildInputs = [ qtdeclarative qtscript ];
diff --git a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index 76bf0fd0537..122f3108da4 100644
--- a/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   breeze-icons, karchive, kcoreaddons, kconfigwidgets, ki18n, kitemviews,
   qtbase, qtsvg, qttools,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kiconthemes";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   patches = [
     ./default-theme-breeze.patch
   ];
diff --git a/pkgs/development/libraries/kde-frameworks/kidletime.nix b/pkgs/development/libraries/kde-frameworks/kidletime.nix
index 883ef2862e4..2678cf0804e 100644
--- a/pkgs/development/libraries/kde-frameworks/kidletime.nix
+++ b/pkgs/development/libraries/kde-frameworks/kidletime.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase, qtx11extras
 }:
 
 mkDerivation {
   name = "kidletime";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kimageformats.nix b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
index 29748a5f7f4..3d9c5851f24 100644
--- a/pkgs/development/libraries/kde-frameworks/kimageformats.nix
+++ b/pkgs/development/libraries/kde-frameworks/kimageformats.nix
@@ -8,7 +8,6 @@ let inherit (lib) getDev; in
 
 mkDerivation {
   name = "kimageformats";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive openexr qtbase ];
   outputs = [ "out" ]; # plugins only
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index 654f6e20604..2a3a3dd5d1f 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -8,7 +8,6 @@ let inherit (lib) getLib; in
 
 mkDerivation {
   name = "kinit";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/kio/0001-Remove-impure-smbd-search-path.patch b/pkgs/development/libraries/kde-frameworks/kio/0001-Remove-impure-smbd-search-path.patch
new file mode 100644
index 00000000000..e541f7a05e8
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kio/0001-Remove-impure-smbd-search-path.patch
@@ -0,0 +1,25 @@
+From af54a2a37655df26a33bc6783cb472c38f65322f Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 10:31:12 -0500
+Subject: [PATCH 1/2] Remove impure smbd search path
+
+---
+ src/core/ksambashare.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
+index e810ce4..7cfb4e6 100644
+--- a/src/core/ksambashare.cpp
++++ b/src/core/ksambashare.cpp
+@@ -61,7 +61,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
+ bool KSambaSharePrivate::isSambaInstalled()
+ {
+     const bool daemonExists =
+-        !QStandardPaths::findExecutable(QStringLiteral("smbd"), {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
++        !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
+     if (!daemonExists) {
+         qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
+     }
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/kio/0002-Debug-module-loader.patch b/pkgs/development/libraries/kde-frameworks/kio/0002-Debug-module-loader.patch
new file mode 100644
index 00000000000..d0bad0caf4a
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kio/0002-Debug-module-loader.patch
@@ -0,0 +1,25 @@
+From 59d26b68704373d405b70806f890ddd545cc976a Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 10:31:48 -0500
+Subject: [PATCH 2/2] Debug module loader
+
+---
+ src/kiod/kiod_main.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kiod/kiod_main.cpp b/src/kiod/kiod_main.cpp
+index 1976ee1..eb402bf 100644
+--- a/src/kiod/kiod_main.cpp
++++ b/src/kiod/kiod_main.cpp
+@@ -50,7 +50,7 @@ void KIOD::loadModule(const QString &name)
+         module = factory->create<KDEDModule>();
+     }
+     if (!module) {
+-        qCWarning(KIOD_CATEGORY) << "Error loading plugin:" << loader.errorString();
++        qCWarning(KIOD_CATEGORY) << "Error loading plugin" << name << loader.errorString();
+         return;
+     }
+     module->setModuleName(name); // makes it register to DBus
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/kio/default.nix b/pkgs/development/libraries/kde-frameworks/kio/default.nix
index f4d771ab75f..47b958ea0b3 100644
--- a/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, fetchpatch,
+  mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools, qttools,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
@@ -9,7 +9,6 @@
 
 mkDerivation {
   name = "kio";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     karchive kconfigwidgets kdbusaddons ki18n kiconthemes knotifications
@@ -22,7 +21,7 @@ mkDerivation {
   ];
   outputs = [ "out" "dev" ];
   patches = [
-    ./samba-search-path.patch
-    ./kio-debug-module-loader.patch
+    ./0001-Remove-impure-smbd-search-path.patch
+    ./0002-Debug-module-loader.patch
  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kio/kio-debug-module-loader.patch b/pkgs/development/libraries/kde-frameworks/kio/kio-debug-module-loader.patch
deleted file mode 100644
index d26af49e5eb..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kio/kio-debug-module-loader.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kio-5.33.0/src/kiod/kiod_main.cpp
-===================================================================
---- kio-5.33.0.orig/src/kiod/kiod_main.cpp
-+++ kio-5.33.0/src/kiod/kiod_main.cpp
-@@ -60,7 +60,7 @@ void KIOD::loadModule(const QString &nam
-         module = factory->create<KDEDModule>();
-     }
-     if (!module) {
--        qCWarning(KIOD_CATEGORY) << "Error loading plugin:" << loader.errorString();
-+        qCWarning(KIOD_CATEGORY) << "Error loading plugin" << name << loader.errorString();
-         return;
-     }
-     module->setModuleName(name); // makes it register to DBus
diff --git a/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch b/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
deleted file mode 100644
index d39ffbfde64..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
-index 1895783..9fe7286 100644
---- a/src/core/ksambashare.cpp
-+++ b/src/core/ksambashare.cpp
-@@ -73,8 +73,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
- bool KSambaSharePrivate::isSambaInstalled()
- {
-     const bool daemonExists =
--        !QStandardPaths::findExecutable(QStringLiteral("smbd"),
--                                       {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
-+        !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
-     if (!daemonExists) {
-         qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
-     }
diff --git a/pkgs/development/libraries/kde-frameworks/kirigami2.nix b/pkgs/development/libraries/kde-frameworks/kirigami2.nix
index 60cef704865..bb5a5a3fc80 100644
--- a/pkgs/development/libraries/kde-frameworks/kirigami2.nix
+++ b/pkgs/development/libraries/kde-frameworks/kirigami2.nix
@@ -2,9 +2,6 @@
 
 mkDerivation {
   name = "kirigami2";
-  meta = {
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase qtquickcontrols2 qttranslations qtgraphicaleffects ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
index c3266a21c06..0f398b0f57d 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemmodels.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase
 }:
 
 mkDerivation {
   name = "kitemmodels";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kitemviews.nix b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
index eeed5c703a2..0e772978e19 100644
--- a/pkgs/development/libraries/kde-frameworks/kitemviews.nix
+++ b/pkgs/development/libraries/kde-frameworks/kitemviews.nix
@@ -6,10 +6,6 @@
 
 mkDerivation {
   name = "kitemviews";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
index 810e2bf8c84..2e116b7bb79 100644
--- a/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjobwidgets.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, qttools,
   kcoreaddons, kwidgetsaddons, qtx11extras
 }:
 
 mkDerivation {
   name = "kjobwidgets";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [ kcoreaddons kwidgetsaddons qtx11extras ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjs.nix b/pkgs/development/libraries/kde-frameworks/kjs.nix
index 311f07241d6..33aeb284e16 100644
--- a/pkgs/development/libraries/kde-frameworks/kjs.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjs.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   pcre, qtbase,
 }:
 
 mkDerivation {
   name = "kjs";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ pcre qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kjsembed.nix b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
index e8cd5070ae5..f552f963513 100644
--- a/pkgs/development/libraries/kde-frameworks/kjsembed.nix
+++ b/pkgs/development/libraries/kde-frameworks/kjsembed.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools, qttools,
   ki18n, kjs, qtsvg,
 }:
 
 mkDerivation {
   name = "kjsembed";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
   buildInputs = [ ki18n qtsvg ];
   propagatedBuildInputs = [ kjs ];
diff --git a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
index a4714c9e4ad..5de26e0c8dc 100644
--- a/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
+++ b/pkgs/development/libraries/kde-frameworks/kmediaplayer.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , kparts
 , kxmlgui
@@ -6,7 +6,6 @@
 
 mkDerivation {
   name = "kmediaplayer";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kparts kxmlgui ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/0001-Delay-resolving-knsrcdir.patch b/pkgs/development/libraries/kde-frameworks/knewstuff/0001-Delay-resolving-knsrcdir.patch
new file mode 100644
index 00000000000..b42e75267f9
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/0001-Delay-resolving-knsrcdir.patch
@@ -0,0 +1,25 @@
+From 09b5063e115c36b75e291230175b449a0f6d0c29 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 13:34:33 -0500
+Subject: [PATCH] Delay resolving knsrcdir
+
+---
+ KF5NewStuffCoreConfig.cmake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/KF5NewStuffCoreConfig.cmake.in b/KF5NewStuffCoreConfig.cmake.in
+index c65c7c4..3275627 100644
+--- a/KF5NewStuffCoreConfig.cmake.in
++++ b/KF5NewStuffCoreConfig.cmake.in
+@@ -3,7 +3,7 @@
+ include(CMakeFindDependencyMacro)
+ find_dependency(KF5Attica "@KF_DEP_VERSION@")
+ 
+-set(KDE_INSTALL_KNSRCDIR "@KDE_INSTALL_DATADIR@/knsrcfiles")
++set(KDE_INSTALL_KNSRCDIR "${KDE_INSTALL_DATADIR}/knsrcfiles")
+ 
+ include("${CMAKE_CURRENT_LIST_DIR}/KF5NewStuffCoreTargets.cmake")
+ @PACKAGE_INCLUDE_CORE_QCHTARGETS@
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index a6b811c0ad6..b775fcbef8f 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, fetchpatch,
+  mkDerivation, fetchpatch,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
   kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "knewstuff";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
@@ -16,10 +15,7 @@ mkDerivation {
     ktextwidgets kwidgetsaddons qtbase qtdeclarative kirigami2
   ];
   propagatedBuildInputs = [ attica kservice kxmlgui ];
-
-  patches = [ (fetchpatch {
-    url = "https://github.com/KDE/knewstuff/commit/dbf788c10130eaa3f5ea37a7f22eb4569471aa04.patch";
-    sha256 = "1225rgqg1j120nvhgsahvsq2xlkg91lr37zp14x19krixxgx521j";
-    revert = true;
-  }) ];
+  patches = [
+    ./0001-Delay-resolving-knsrcdir.patch
+  ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/knotifications.nix b/pkgs/development/libraries/kde-frameworks/knotifications.nix
index 964e1b44115..d1a809d9f51 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifications.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifications.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , kcodecs, kconfig, kcoreaddons, kwindowsystem
 , libdbusmenu
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "knotifications";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     kcodecs kconfig kcoreaddons kwindowsystem libdbusmenu phonon qtx11extras
diff --git a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
index 6739f96183c..1971e3e8039 100644
--- a/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
+++ b/pkgs/development/libraries/kde-frameworks/knotifyconfig.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kcompletion, kconfig, ki18n, kio, phonon, qtbase,
 }:
 
 mkDerivation {
   name = "knotifyconfig";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcompletion kconfig ki18n kio phonon ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/0001-Allow-external-paths-default.patch b/pkgs/development/libraries/kde-frameworks/kpackage/0001-Allow-external-paths-default.patch
new file mode 100644
index 00000000000..dbcdac463c9
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/0001-Allow-external-paths-default.patch
@@ -0,0 +1,25 @@
+From c134a83d226fc6b92412ee714bb6c7ab7e3a800f Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 10:25:18 -0500
+Subject: [PATCH 1/2] Allow external paths default
+
+---
+ src/kpackage/package.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp
+index 36f5600..881f176 100644
+--- a/src/kpackage/package.cpp
++++ b/src/kpackage/package.cpp
+@@ -858,7 +858,7 @@ PackagePrivate::PackagePrivate()
+     : QSharedData()
+     , fallbackPackage(nullptr)
+     , metadata(nullptr)
+-    , externalPaths(false)
++    , externalPaths(true)
+     , valid(false)
+     , checkedValid(false)
+ {
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/0002-QDirIterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kpackage/0002-QDirIterator-follow-symlinks.patch
new file mode 100644
index 00000000000..5967bdaccf5
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/0002-QDirIterator-follow-symlinks.patch
@@ -0,0 +1,39 @@
+From b1c0d2542234247a5051df015d70347597dfe8d8 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Sun, 28 Mar 2021 10:26:40 -0500
+Subject: [PATCH 2/2] QDirIterator follow symlinks
+
+---
+ src/kpackage/packageloader.cpp            | 2 +-
+ src/kpackage/private/packagejobthread.cpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/kpackage/packageloader.cpp b/src/kpackage/packageloader.cpp
+index f03d882..d5aee56 100644
+--- a/src/kpackage/packageloader.cpp
++++ b/src/kpackage/packageloader.cpp
+@@ -234,7 +234,7 @@ QList<KPluginMetaData> PackageLoader::listPackages(const QString &packageFormat,
+         } else {
+             qCDebug(KPACKAGE_LOG) << "kpluginindex: Not cached" << plugindir;
+             // If there's no cache file, fall back to listing the directory
+-            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories;
++            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks;
+             const QStringList nameFilters = {QStringLiteral("metadata.json"), QStringLiteral("metadata.desktop")};
+ 
+             QDirIterator it(plugindir, nameFilters, QDir::Files, flags);
+diff --git a/src/kpackage/private/packagejobthread.cpp b/src/kpackage/private/packagejobthread.cpp
+index 3eed307..dd6ca6e 100644
+--- a/src/kpackage/private/packagejobthread.cpp
++++ b/src/kpackage/private/packagejobthread.cpp
+@@ -108,7 +108,7 @@ bool indexDirectory(const QString &dir, const QString &dest)
+ 
+     QJsonArray plugins;
+ 
+-    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories);
++    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
+     while (it.hasNext()) {
+         it.next();
+         const QString path = it.fileInfo().absoluteFilePath();
+-- 
+2.30.1
+
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch b/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch
deleted file mode 100644
index c1c9efde7f7..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kpackage/allow-external-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp
-index 5aec9fd..b15c933 100644
---- a/src/kpackage/package.cpp
-+++ b/src/kpackage/package.cpp
-@@ -820,7 +820,7 @@ PackagePrivate::PackagePrivate()
-     : QSharedData(),
-       fallbackPackage(nullptr),
-       metadata(nullptr),
--      externalPaths(false),
-+      externalPaths(true),
-       valid(false),
-       checkedValid(false)
- {
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index 6bd42420b85..d4edc09b2f0 100644
--- a/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -1,16 +1,15 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   karchive, kconfig, kcoreaddons, ki18n, qtbase,
 }:
 
 mkDerivation {
   name = "kpackage";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
   patches = [
-    ./allow-external-paths.patch
-    ./qdiriterator-follow-symlinks.patch
+    ./0001-Allow-external-paths-default.patch
+    ./0002-QDirIterator-follow-symlinks.patch
   ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch b/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch
deleted file mode 100644
index cab334838ee..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kpackage/qdiriterator-follow-symlinks.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: kpackage-5.30.0/src/kpackage/packageloader.cpp
-===================================================================
---- kpackage-5.30.0.orig/src/kpackage/packageloader.cpp
-+++ kpackage-5.30.0/src/kpackage/packageloader.cpp
-@@ -238,7 +238,7 @@ QList<KPluginMetaData> PackageLoader::li
-         } else {
-             //qDebug() << "Not cached";
-             // If there's no cache file, fall back to listing the directory
--            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories;
-+            const QDirIterator::IteratorFlags flags = QDirIterator::Subdirectories | QDirIterator::FollowSymlinks;
-             const QStringList nameFilters = { QStringLiteral("metadata.json"), QStringLiteral("metadata.desktop") };
- 
-             QDirIterator it(plugindir, nameFilters, QDir::Files, flags);
-Index: kpackage-5.30.0/src/kpackage/private/packagejobthread.cpp
-===================================================================
---- kpackage-5.30.0.orig/src/kpackage/private/packagejobthread.cpp
-+++ kpackage-5.30.0/src/kpackage/private/packagejobthread.cpp
-@@ -121,7 +121,7 @@ bool indexDirectory(const QString& dir,
- 
-     QJsonArray plugins;
- 
--    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories);
-+    QDirIterator it(dir, *metaDataFiles, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-     while (it.hasNext()) {
-         it.next();
-         const QString path = it.fileInfo().absoluteFilePath();
diff --git a/pkgs/development/libraries/kde-frameworks/kparts.nix b/pkgs/development/libraries/kde-frameworks/kparts.nix
index f657569277a..e1d2a156160 100644
--- a/pkgs/development/libraries/kde-frameworks/kparts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kparts.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kiconthemes, kio, kjobwidgets, knotifications,
   kservice, ktextwidgets, kwidgetsaddons, kxmlgui
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kparts";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcoreaddons ki18n kiconthemes kjobwidgets knotifications kservice
diff --git a/pkgs/development/libraries/kde-frameworks/kpeople.nix b/pkgs/development/libraries/kde-frameworks/kpeople.nix
index 04181fd3e13..52c16ea2b9c 100644
--- a/pkgs/development/libraries/kde-frameworks/kpeople.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpeople.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   kcoreaddons, ki18n, kitemviews, kservice, kwidgetsaddons, qtbase,
   qtdeclarative,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kpeople";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons ki18n kitemviews kservice kwidgetsaddons qtdeclarative
diff --git a/pkgs/development/libraries/kde-frameworks/kplotting.nix b/pkgs/development/libraries/kde-frameworks/kplotting.nix
index f1c99e0c93b..68df24d0087 100644
--- a/pkgs/development/libraries/kde-frameworks/kplotting.nix
+++ b/pkgs/development/libraries/kde-frameworks/kplotting.nix
@@ -1,13 +1,9 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules, qttools, qtbase
 }:
 
 mkDerivation {
   name = "kplotting";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase qttools ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kpty.nix b/pkgs/development/libraries/kde-frameworks/kpty.nix
index 150c5b3d2b2..2456f4e22fa 100644
--- a/pkgs/development/libraries/kde-frameworks/kpty.nix
+++ b/pkgs/development/libraries/kde-frameworks/kpty.nix
@@ -1,8 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, kcoreaddons, ki18n, qtbase, }:
+{ mkDerivation, extra-cmake-modules, kcoreaddons, ki18n, qtbase, }:
 
 mkDerivation {
   name = "kpty";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons ki18n qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
index 5a06d4c1cad..0ae30be653d 100644
--- a/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
+++ b/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
@@ -1,14 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
-  qtquickcontrols2,
+  qtquickcontrols2, qtbase,
 }:
 
 mkDerivation {
   name = "kquickcharts";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtquickcontrols2 ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kross.nix b/pkgs/development/libraries/kde-frameworks/kross.nix
index f45fb5ecd1d..189e100aa70 100644
--- a/pkgs/development/libraries/kde-frameworks/kross.nix
+++ b/pkgs/development/libraries/kde-frameworks/kross.nix
@@ -1,11 +1,10 @@
-{ mkDerivation, lib, extra-cmake-modules, kcompletion, kcoreaddons
+{ mkDerivation, extra-cmake-modules, kcompletion, kcoreaddons
 , kdoctools, ki18n, kiconthemes, kio, kparts, kwidgetsaddons
 , kxmlgui, qtbase, qtscript, qtxmlpatterns,
 }:
 
 mkDerivation {
   name = "kross";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcompletion kcoreaddons kxmlgui ];
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index 990c3c4fdf9..7db7c61db46 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, fetchpatch,
+  mkDerivation, fetchpatch,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
@@ -8,7 +8,6 @@
 let
   self = mkDerivation {
     name = "krunner";
-    meta = { maintainers = [ lib.maintainers.ttuegel ]; };
     nativeBuildInputs = [ extra-cmake-modules ];
     buildInputs = [
       kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
diff --git a/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index 630582ecf76..c1488f728dd 100644
--- a/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   bison, extra-cmake-modules, flex,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem,
   qtbase, shared-mime-info,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kservice";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedNativeBuildInputs = [ bison flex ];
   buildInputs = [
diff --git a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
index 98f9b3f82ca..6a74dca7b4b 100644
--- a/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktexteditor.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, perl,
   karchive, kconfig, kguiaddons, ki18n, kiconthemes, kio, kparts, libgit2,
   qtscript, qtxmlpatterns, sonnet, syntax-highlighting, qtquickcontrols,
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "ktexteditor";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [
     karchive kconfig kguiaddons ki18n kiconthemes kio libgit2 qtscript
diff --git a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
index 604066b9639..653d0ac8899 100644
--- a/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
+++ b/pkgs/development/libraries/kde-frameworks/ktextwidgets.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, qttools,
   kcompletion, kconfig, kconfigwidgets, ki18n, kiconthemes, kservice,
   kwindowsystem, qtbase, sonnet,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "ktextwidgets";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcompletion kconfig kconfigwidgets kiconthemes kservice kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
index d6c079fd83b..de0d9aab922 100644
--- a/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
+++ b/pkgs/development/libraries/kde-frameworks/kunitconversion.nix
@@ -1,8 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, ki18n, qtbase, }:
+{ mkDerivation, extra-cmake-modules, ki18n, qtbase, }:
 
 mkDerivation {
   name = "kunitconversion";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ ki18n qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwallet.nix b/pkgs/development/libraries/kde-frameworks/kwallet.nix
index fca0dedd083..f93f0437dbd 100644
--- a/pkgs/development/libraries/kde-frameworks/kwallet.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwallet.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   kconfig, kconfigwidgets, kcoreaddons , kdbusaddons, ki18n,
   kiconthemes, knotifications, kservice, kwidgetsaddons, kwindowsystem,
@@ -8,7 +8,6 @@
 
 mkDerivation {
   name = "kwallet";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
diff --git a/pkgs/development/libraries/kde-frameworks/kwayland.nix b/pkgs/development/libraries/kde-frameworks/kwayland.nix
index 5b73cc7fcea..749735c4ad5 100644
--- a/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib, propagateBin,
+  mkDerivation, propagateBin,
   extra-cmake-modules,
   plasma-wayland-protocols, qtbase, wayland, wayland-protocols
 }:
 
 mkDerivation {
   name = "kwayland";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ plasma-wayland-protocols wayland wayland-protocols ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
index 821c703a589..ee347df18ab 100644
--- a/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwidgetsaddons.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase, qttools
 }:
 
 mkDerivation {
   name = "kwidgetsaddons";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index c418ca39433..40929309338 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   libpthreadstubs, libXdmcp,
   qtbase, qttools, qtx11extras
@@ -7,10 +7,6 @@
 
 mkDerivation {
   name = "kwindowsystem";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = lib.versionOlder qtbase.version "5.14.0";
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
index 5adcf281e62..0b29158e4b0 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlgui.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, qttools,
   attica, kconfig, kconfigwidgets, kglobalaccel, ki18n, kiconthemes, kitemviews,
   ktextwidgets, kwindowsystem, qtbase, sonnet,
@@ -7,7 +7,6 @@
 
 mkDerivation {
   name = "kxmlgui";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     attica kglobalaccel ki18n kiconthemes kitemviews ktextwidgets kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
index acffde6a7cf..aa334d69ef1 100644
--- a/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
+++ b/pkgs/development/libraries/kde-frameworks/kxmlrpcclient.nix
@@ -1,8 +1,7 @@
-{ mkDerivation, lib, extra-cmake-modules, ki18n, kio }:
+{ mkDerivation, extra-cmake-modules, ki18n, kio }:
 
 mkDerivation {
   name = "kxmlrpcclient";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ ki18n ];
   propagatedBuildInputs = [ kio ];
diff --git a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
index 195e90feef6..5ecb5317cfc 100644
--- a/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/modemmanager-qt.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   modemmanager, qtbase
 }:
 
 mkDerivation {
   name = "modemmanager-qt";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ modemmanager qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
index 4ded321674f..2ff4b2c2b40 100644
--- a/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
+++ b/pkgs/development/libraries/kde-frameworks/networkmanager-qt.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   networkmanager, qtbase,
 }:
 
 mkDerivation {
   name = "networkmanager-qt";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ networkmanager qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
index 2d795bfc50c..32b219ab7e1 100644
--- a/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
+++ b/pkgs/development/libraries/kde-frameworks/oxygen-icons5.nix
@@ -1,14 +1,12 @@
 { mkDerivation
 , lib
-, extra-cmake-modules, qtbase
+, extra-cmake-modules
+, qtbase
 }:
 
 mkDerivation {
   name = "oxygen-icons5";
-  meta = {
-    license = lib.licenses.lgpl3Plus;
-    maintainers = [ lib.maintainers.ttuegel ];
-  };
+  meta.license = lib.licenses.lgpl3Plus;
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ];
   outputs = [ "out" ]; # only runtime outputs
diff --git a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
index 44005ec7d28..12540b07007 100644
--- a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
+++ b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   kactivities, karchive, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
   kdeclarative, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio,
@@ -9,7 +9,6 @@
 
 mkDerivation {
   name = "plasma-framework";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
diff --git a/pkgs/development/libraries/kde-frameworks/prison.nix b/pkgs/development/libraries/kde-frameworks/prison.nix
index cf74ee20c2d..670fd02d616 100644
--- a/pkgs/development/libraries/kde-frameworks/prison.nix
+++ b/pkgs/development/libraries/kde-frameworks/prison.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   libdmtx, qrencode, qtbase,
 }:
 
 mkDerivation {
   name = "prison";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libdmtx qrencode ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index 6f1527da778..7e4d002e2a1 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,12 +1,11 @@
 {
-  mkDerivation, lib, extra-cmake-modules, qtbase
+  mkDerivation, extra-cmake-modules, qtbase
 , qtdeclarative, kconfig, kcoreaddons, ki18n, kio, kirigami2
 , fetchpatch
 }:
 
 mkDerivation {
   name = "purpose";
-  meta = { maintainers = [ lib.maintainers.bkchr ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     qtbase qtdeclarative kconfig kcoreaddons
diff --git a/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
index ed372e01aeb..e400967407c 100644
--- a/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
+++ b/pkgs/development/libraries/kde-frameworks/qqc2-desktop-style.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , qtquickcontrols2
 , qtx11extras
@@ -9,7 +9,6 @@
 
 mkDerivation {
   name = "qqc2-desktop-style";
-  meta = { maintainers = with lib.maintainers; [ ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtx11extras qtquickcontrols2 kconfig kiconthemes kirigami2 ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/solid.nix b/pkgs/development/libraries/kde-frameworks/solid.nix
index f769f76854a..aa1b1ebe345 100644
--- a/pkgs/development/libraries/kde-frameworks/solid.nix
+++ b/pkgs/development/libraries/kde-frameworks/solid.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   bison, extra-cmake-modules, flex,
   media-player-info, qtbase, qtdeclarative, qttools
 }:
 
 mkDerivation {
   name = "solid";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ bison extra-cmake-modules flex media-player-info ];
   buildInputs = [ qtdeclarative qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/sonnet.nix b/pkgs/development/libraries/kde-frameworks/sonnet.nix
index 431e4b81058..2eff7bad240 100644
--- a/pkgs/development/libraries/kde-frameworks/sonnet.nix
+++ b/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -1,14 +1,10 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules
 , aspell, qtbase, qttools
 }:
 
 mkDerivation {
   name = "sonnet";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ aspell qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 871c15d6c1a..91d53f4df87 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/attica-5.79.0.tar.xz";
-      sha256 = "1p6rcpfq3ifz8c8ws5k085mzg7fya2dpv7ryd6iqwi083ys49wla";
-      name = "attica-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/attica-5.80.0.tar.xz";
+      sha256 = "0wffjjrk6rka25kgfq05j9fzxawysimpzi8jj3sw3kfz05mqdap3";
+      name = "attica-5.80.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/baloo-5.79.0.tar.xz";
-      sha256 = "0l7z7260pjw6gmcnzp0v57dsypl2yxnm8dxfcdiln8gw2fisryc0";
-      name = "baloo-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/baloo-5.80.0.tar.xz";
+      sha256 = "0wdm03x1zm31nivf04qxih6gg18c97diff7ddaqqbz8c7jlhppzc";
+      name = "baloo-5.80.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/bluez-qt-5.79.0.tar.xz";
-      sha256 = "0snips4ak77zpz6x9bzr5lmal712lz64xns1bwlz80svzcikznpj";
-      name = "bluez-qt-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/bluez-qt-5.80.0.tar.xz";
+      sha256 = "08g56gnh0gkh7n92wqama9lbqk6pfdby9xbh8f2vgmnkzy07zrwn";
+      name = "bluez-qt-5.80.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/breeze-icons-5.79.0.tar.xz";
-      sha256 = "06sd7grh7r6wnx8p8mhp7vfhsg3bnyafy94fj6jz6gg9m0308cn6";
-      name = "breeze-icons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/breeze-icons-5.80.0.tar.xz";
+      sha256 = "11353lgy2fh1d2fgbhg20fapsjzrpsxlf5zilrfkw8y0my690rm2";
+      name = "breeze-icons-5.80.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/extra-cmake-modules-5.79.0.tar.xz";
-      sha256 = "1n5yd3ggz5pq4qs7f86aqvzvfmxx2khsn1i1m67xhrn5k7dh55mj";
-      name = "extra-cmake-modules-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/extra-cmake-modules-5.80.0.tar.xz";
+      sha256 = "0r3gr6qrgljiq7bsks54xc68x9pf7i2gm9pgjq5kslw5ys0gsw13";
+      name = "extra-cmake-modules-5.80.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/frameworkintegration-5.79.0.tar.xz";
-      sha256 = "0c0i8hqqvi65bh1ghb6ql1a8vqihxck6xhpki4g0ryipilvqmj21";
-      name = "frameworkintegration-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/frameworkintegration-5.80.0.tar.xz";
+      sha256 = "0sk9p4wk4hsr5sg0z24rc7fxrsdbxcpm5fw66v30lhncrlf9c7c7";
+      name = "frameworkintegration-5.80.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kactivities-5.79.0.tar.xz";
-      sha256 = "0d3ds43iqqlbii9xwp7f20nz338xqmq70a4v84zb5ks1mnhkz47l";
-      name = "kactivities-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kactivities-5.80.0.tar.xz";
+      sha256 = "14im60ig074axryhgz3qw1zjqhfai1gg0hq88spabvz22r5f340s";
+      name = "kactivities-5.80.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kactivities-stats-5.79.0.tar.xz";
-      sha256 = "0s5r8891flkmrwga15ihqrmj4i12khxwp97kaa84j4mqva6zdx93";
-      name = "kactivities-stats-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kactivities-stats-5.80.0.tar.xz";
+      sha256 = "1w3khp8p2a1v85s5hay3s0nznjsajaavrjx4iw2cxssxnzlvg2fn";
+      name = "kactivities-stats-5.80.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kapidox-5.79.0.tar.xz";
-      sha256 = "0qk4ksxdaiphlpd51mgwdddxq5vq8n55dd80s2a5q93jkcywhli7";
-      name = "kapidox-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kapidox-5.80.0.tar.xz";
+      sha256 = "010jigqkw3rs04irf942cwgd9wvi7j9b5lisdcrc3w65a19q053z";
+      name = "kapidox-5.80.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/karchive-5.79.0.tar.xz";
-      sha256 = "01qf46k7gp11fh53afcpmbfx0w5bi0k8jflb2db8nss7ri3bzlhc";
-      name = "karchive-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/karchive-5.80.0.tar.xz";
+      sha256 = "1xaxbhbx562ybd9rqna1bh3bpbyxh02c9x9xyisw84akiibqvq7w";
+      name = "karchive-5.80.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kauth-5.79.0.tar.xz";
-      sha256 = "18bqfn47iyhf1zfkw3mgdxz154f9gqbkn41c3ca94qjm91mb40da";
-      name = "kauth-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kauth-5.80.0.tar.xz";
+      sha256 = "1pcnk34b912hhhpx606ajvz9hcz6xr37g7bl002zkar9fzh7vw16";
+      name = "kauth-5.80.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kbookmarks-5.79.0.tar.xz";
-      sha256 = "109rjikqxv7mbhv22p41rbfz43510y6k7p0ahggynv0x5y5xzkqd";
-      name = "kbookmarks-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kbookmarks-5.80.0.tar.xz";
+      sha256 = "11imylvhw3pc46qiqz72q8rwa9igvgvd9gdchiivcrg4494k502q";
+      name = "kbookmarks-5.80.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcalendarcore-5.79.0.tar.xz";
-      sha256 = "19vc1ji0jlk899rmr6i53l51diadn67mh6z6j787bp29jlcmnciv";
-      name = "kcalendarcore-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcalendarcore-5.80.0.tar.xz";
+      sha256 = "1z8js2b5zb862ngwsdd2hwi6wqhkvkhsx5akbn7f1gmjs0pfrkg5";
+      name = "kcalendarcore-5.80.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcmutils-5.79.0.tar.xz";
-      sha256 = "1wry88rikj7mz460m3c7gr6fwcdpdlx9jrxna2ikybnk9aw8dlkk";
-      name = "kcmutils-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcmutils-5.80.0.tar.xz";
+      sha256 = "0ncyffl60wv5awbfazknqpysaji11xxrpicabfl0mzmwcnlb34wc";
+      name = "kcmutils-5.80.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcodecs-5.79.0.tar.xz";
-      sha256 = "1ab4dz6nvmd6fzsl7wbrvjlz0c0fk0bjb0jcklrj205pkhiaf7y8";
-      name = "kcodecs-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcodecs-5.80.0.tar.xz";
+      sha256 = "06l8c3jwx5z43cyv7vl6yfs91a7zmy0j089x826nn2a7jr678mjg";
+      name = "kcodecs-5.80.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcompletion-5.79.0.tar.xz";
-      sha256 = "1znp6h4pggkl1hcbbw47vjkgmpc1rj6mx01p05x0ad143mwqpzwv";
-      name = "kcompletion-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcompletion-5.80.0.tar.xz";
+      sha256 = "14v0d1w01lric532vks9akh7v7z7nf9hgpf866qyhmb236k52hpg";
+      name = "kcompletion-5.80.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kconfig-5.79.0.tar.xz";
-      sha256 = "02jirbphrg6dyxd444ghzhy053s85pq4lgpppca3nmvzr2572j7r";
-      name = "kconfig-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kconfig-5.80.0.tar.xz";
+      sha256 = "1chrvpfr72bdgv6fdgrkbfbiz76jgvzsncxsc6gjvkvcdag48016";
+      name = "kconfig-5.80.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kconfigwidgets-5.79.0.tar.xz";
-      sha256 = "1lrh2dis3invj9vclpa1mca8hrks1b82c5hkf0g0lilg69lir83y";
-      name = "kconfigwidgets-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kconfigwidgets-5.80.0.tar.xz";
+      sha256 = "12rc3l91h2snkxni70brdp8f21g19c0gabpxy7ssv614ci0fz7j7";
+      name = "kconfigwidgets-5.80.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcontacts-5.79.0.tar.xz";
-      sha256 = "0jflvfkyd7llv54dxyd1a4h1l4xgrqggxadiqv0c6ijn4dvlsmy9";
-      name = "kcontacts-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcontacts-5.80.0.tar.xz";
+      sha256 = "173vpxncdr9mwpksizflvipsf18pnwn500b2xzpkaaz5w84vk1yk";
+      name = "kcontacts-5.80.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcoreaddons-5.79.0.tar.xz";
-      sha256 = "0n9nh4vkk19crp30dac3x9mzgzl4kv38jw6dcg4fwfp77gcin8kg";
-      name = "kcoreaddons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcoreaddons-5.80.0.tar.xz";
+      sha256 = "1l9ydyvbmn2ih07jsy12snxavss7cyxyig0n65sz6gwbcxqr5qzc";
+      name = "kcoreaddons-5.80.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kcrash-5.79.0.tar.xz";
-      sha256 = "0w74d0j1ckbcd8q8lc57g3y7g50v222mgsvli77ql29imzx79apc";
-      name = "kcrash-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kcrash-5.80.0.tar.xz";
+      sha256 = "1c2b8i9qay0mdr0i16jp2167vb18r792dd88nz0in77lzccfk8v4";
+      name = "kcrash-5.80.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdav-5.79.0.tar.xz";
-      sha256 = "1573qan4xz8k33zfghwdmlr7pgbd4sfj0pshwv6bkx78kprd3xfl";
-      name = "kdav-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdav-5.80.0.tar.xz";
+      sha256 = "1cab4pppqyfqm53dhp5lm4ghijbhym77ndb0pr6crvi70kz4s101";
+      name = "kdav-5.80.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdbusaddons-5.79.0.tar.xz";
-      sha256 = "17sklakn9nsrjajb3nwg8ibhx64c4m86pr6ln567rdr6cahcaw90";
-      name = "kdbusaddons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdbusaddons-5.80.0.tar.xz";
+      sha256 = "1w0vpjzi37z8jaq97p9bxjdl8x4288idm4vvpzxs8lc9hwcl74hl";
+      name = "kdbusaddons-5.80.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdeclarative-5.79.0.tar.xz";
-      sha256 = "05b1apviqy3dn2isqxf0bxj86r9q40pjlcqq8y15s36d6ykijyzh";
-      name = "kdeclarative-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdeclarative-5.80.0.tar.xz";
+      sha256 = "0gcx6pqyc0izw2cdvdcscxxl4wvksb74kjiq5zimjd2z8wrblmdz";
+      name = "kdeclarative-5.80.0.tar.xz";
     };
   };
   kded = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kded-5.79.0.tar.xz";
-      sha256 = "1gyb864rqbdi64mjc165fhcvnsw06z2zi8dg728428nzmw0dysbm";
-      name = "kded-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kded-5.80.0.tar.xz";
+      sha256 = "0skk3zf3b6rlbvdq0fyd8swfrx3fqmppqxrglh6n5imcv5jxwms1";
+      name = "kded-5.80.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kdelibs4support-5.79.0.tar.xz";
-      sha256 = "049l0mlf71xan8ls4hkp8s6lrnhn2i22jcnki1d5wci01dgffhm5";
-      name = "kdelibs4support-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kdelibs4support-5.80.0.tar.xz";
+      sha256 = "01bd188iss14qmzm55dmsgdcs9wnwbdj0kh371achp9zqg55iqj3";
+      name = "kdelibs4support-5.80.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kdesignerplugin-5.79.0.tar.xz";
-      sha256 = "1jgqr76sx6d3jmqc350k49lqym5jkixnl3dq66430pvlrfv47w2n";
-      name = "kdesignerplugin-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kdesignerplugin-5.80.0.tar.xz";
+      sha256 = "1d79qg3y7ndrh6yd9sygyz5yd5ig6gp8k71mw96xijdhlf5nxqs3";
+      name = "kdesignerplugin-5.80.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdesu-5.79.0.tar.xz";
-      sha256 = "1hlz5pr72qk64gwp30qx92jhlszri5qjsisvl4cxs01ylnrqy0c1";
-      name = "kdesu-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdesu-5.80.0.tar.xz";
+      sha256 = "1ksad8wcnjcrb8h73klrs2601482a32x3ycpr17k9fsi8mkylicd";
+      name = "kdesu-5.80.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kdewebkit-5.79.0.tar.xz";
-      sha256 = "0d81p49n2ryig9xp5id1dx4rpjjd2spl78m0xlq6rczyk7yf73pz";
-      name = "kdewebkit-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kdewebkit-5.80.0.tar.xz";
+      sha256 = "11q6x9w2majzh6wva4b824dxrpz53xpb3vfsi65pwh199fhfyzci";
+      name = "kdewebkit-5.80.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.79.1";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdnssd-5.79.1.tar.xz";
-      sha256 = "160qyll887wblrw0lhax749lzwhlp92sckj4g259955p8gnsw5lp";
-      name = "kdnssd-5.79.1.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdnssd-5.80.0.tar.xz";
+      sha256 = "0k8lk3h65ar07l54cmxhpakz1why9vbm5wg58nh16x69dkdhr8dg";
+      name = "kdnssd-5.80.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kdoctools-5.79.0.tar.xz";
-      sha256 = "03bvj3grjw6a56shdy8c3mdp11pwmc72ccp3ia00bz310ahpphzb";
-      name = "kdoctools-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kdoctools-5.80.0.tar.xz";
+      sha256 = "10xcq0pk1sqw293f2kw52sjj6dgphv17fdax4w0yy1hjch711bhy";
+      name = "kdoctools-5.80.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kemoticons-5.79.0.tar.xz";
-      sha256 = "04x1yfdcyvx3x4aqha69rsaa78j4iw6qam3hp5a4di0yf653mphp";
-      name = "kemoticons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kemoticons-5.80.0.tar.xz";
+      sha256 = "0jg5z6dbfprkypj35prlixgc93x65nn7zcw2fmxcqvshrnqzz2hb";
+      name = "kemoticons-5.80.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kfilemetadata-5.79.0.tar.xz";
-      sha256 = "0yxjapq88pfcma82mc9gz03x1bb81xl6xzrinr6jgz09206ra395";
-      name = "kfilemetadata-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kfilemetadata-5.80.0.tar.xz";
+      sha256 = "02k0yyksyl5nn373l25m6ybxhpdyrz8g0mr16zmk12pdxh24vkbm";
+      name = "kfilemetadata-5.80.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kglobalaccel-5.79.0.tar.xz";
-      sha256 = "0qqxvv3m7b44makgdcsxdhzamm4ahm1pn94rn6cpsrqsyci8axy8";
-      name = "kglobalaccel-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kglobalaccel-5.80.0.tar.xz";
+      sha256 = "015x173b57vdd16mmd4asz6l6bxw94k1hbkxr09v5cb463cspw1n";
+      name = "kglobalaccel-5.80.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kguiaddons-5.79.0.tar.xz";
-      sha256 = "118wiy3pbmbazfivmh0w2g5l10qcp10b34r3d02pj7rs2a74h05w";
-      name = "kguiaddons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kguiaddons-5.80.0.tar.xz";
+      sha256 = "1iadzp794q9qhs1kcvfp2g2w6rv2ifqcb3n8sv460fhv4qrg4qz5";
+      name = "kguiaddons-5.80.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kholidays-5.79.0.tar.xz";
-      sha256 = "1lbbq6y1xkffh9qma7hr5hi712kl85kv51gij0mj69ssv1iq2a8n";
-      name = "kholidays-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kholidays-5.80.0.tar.xz";
+      sha256 = "1knmsz1rzhz5a56q9s0i4747633dq9bhs4j8j6rnk49ccl5hz72z";
+      name = "kholidays-5.80.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/khtml-5.79.0.tar.xz";
-      sha256 = "1916kpb3kr0d7lbf0b65lrwkxnlgickm7vrmlc3qwlmf3fyqvkhy";
-      name = "khtml-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/khtml-5.80.0.tar.xz";
+      sha256 = "188j1ssw9qlylqgj06iy2r2jbibzshxcxh9qbn1bgz6d2dq2c6mx";
+      name = "khtml-5.80.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/ki18n-5.79.0.tar.xz";
-      sha256 = "12sa7ycxc7m7nrsm6x7f822c8p586hy0syny5ya8vpmhwk1j3gik";
-      name = "ki18n-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/ki18n-5.80.0.tar.xz";
+      sha256 = "0yksjrcq5zip17kq1r97z2145qzzz6k48vz71y6195f7wvbpjfl8";
+      name = "ki18n-5.80.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kiconthemes-5.79.0.tar.xz";
-      sha256 = "0bbs8q0dpz4qyxsd1qk5jxazn600m5j2axzccxyrr21r9plbs4nx";
-      name = "kiconthemes-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kiconthemes-5.80.0.tar.xz";
+      sha256 = "133nv4zgqg6pkkvh1nyqcra847vgn3ai6w0xvynbgrmq7wvdrwlj";
+      name = "kiconthemes-5.80.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kidletime-5.79.0.tar.xz";
-      sha256 = "0pp2ii4cvxygz40ai0b3rpqdjgpq4nya2hrms9c3yxb5hizrrrak";
-      name = "kidletime-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kidletime-5.80.0.tar.xz";
+      sha256 = "1yjjhpkql8s7b4ddzirpyq5p0yicpsbkgbq15257k60xs66qgf83";
+      name = "kidletime-5.80.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kimageformats-5.79.0.tar.xz";
-      sha256 = "09ffc44vzcin2ikyhm0awba7ag7pbnam4cilvfr3lwnj022y7j7c";
-      name = "kimageformats-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kimageformats-5.80.0.tar.xz";
+      sha256 = "0q3i6jkx6kahgdzfycygki50f22zjbspx3f9ibg2ak74hcan8r8x";
+      name = "kimageformats-5.80.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kinit-5.79.0.tar.xz";
-      sha256 = "0ppri3gaiwawydjfw8ji6accrpwc8ms0sb1s5pn59wqiyv52f5rv";
-      name = "kinit-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kinit-5.80.0.tar.xz";
+      sha256 = "101lvky2j6bxk3q36040kczchc21d5rb664ddxd89pl2n0f6s9fz";
+      name = "kinit-5.80.0.tar.xz";
     };
   };
   kio = {
-    version = "5.79.0";
+    version = "5.80.1";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kio-5.79.0.tar.xz";
-      sha256 = "1ri5dv8lc4ywc7jknlszri812y91mgggjx5z5qfkv971njm6fz3n";
-      name = "kio-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kio-5.80.1.tar.xz";
+      sha256 = "0a2srmj8w80f2m8s359747xx0wg2gf8nd75ysv9f9y92l1hwwwfr";
+      name = "kio-5.80.1.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kirigami2-5.79.0.tar.xz";
-      sha256 = "01rb678qz1avzi7393wylwnc13ndzx2pgqnz3bd0zki0pjfrrlzp";
-      name = "kirigami2-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kirigami2-5.80.0.tar.xz";
+      sha256 = "0wljcyr0g4i5nsc6szy9yd976l180lxfjjzhz24py7czlrpzg3i2";
+      name = "kirigami2-5.80.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kitemmodels-5.79.0.tar.xz";
-      sha256 = "1g9xa0h3kq0m5v1yvwgr8f6lrq8n2x1qzqqjbbbbyg8ayavv4abs";
-      name = "kitemmodels-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kitemmodels-5.80.0.tar.xz";
+      sha256 = "1bvghm4accgf273aacjng86rxiazmk05pbrnqkldda9958dqv54k";
+      name = "kitemmodels-5.80.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kitemviews-5.79.0.tar.xz";
-      sha256 = "0p21hyxhain2mr19lzfml23ilpgqwr2i27p1qg39jnwyb74jw0nl";
-      name = "kitemviews-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kitemviews-5.80.0.tar.xz";
+      sha256 = "1j9m4qcmy83dj3k3v4y4skl5lgb8n3z4x9pa1f0rjpwwg4qsa0lp";
+      name = "kitemviews-5.80.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kjobwidgets-5.79.0.tar.xz";
-      sha256 = "059a58hp0npip07w7idjrl5sjjgl4i3bdqzv1k22hlvzdsyibggr";
-      name = "kjobwidgets-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kjobwidgets-5.80.0.tar.xz";
+      sha256 = "1yy5n9jnj1sdh51n3n1bqzmaml44799kiqdpp3b7mq55fmj9najp";
+      name = "kjobwidgets-5.80.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kjs-5.79.0.tar.xz";
-      sha256 = "1v51xjmwxi1x85b4hlj8m12zxl5w0d160kjjbrrxqfn64i4302ga";
-      name = "kjs-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kjs-5.80.0.tar.xz";
+      sha256 = "1v3jiywzzi20c0pd67pgnwwnz0vg209a0wzzdhrpiz5v7qgji1ij";
+      name = "kjs-5.80.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kjsembed-5.79.0.tar.xz";
-      sha256 = "18kjq5mim7b1a5mlhkwpwvnszjqxilhi4laqladh97wkmvsr85py";
-      name = "kjsembed-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kjsembed-5.80.0.tar.xz";
+      sha256 = "083gp9ks7yha90vnk0z4bkb9i4rphz90di8m8z19xgn575a6li57";
+      name = "kjsembed-5.80.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kmediaplayer-5.79.0.tar.xz";
-      sha256 = "1lgrcib9acbzgs1kv44bqfisrayiir2r1iygrrncp117fj9cqx8b";
-      name = "kmediaplayer-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kmediaplayer-5.80.0.tar.xz";
+      sha256 = "0a16rzyjy7j5pn66ahpj3kxpp5c2zmjxg3cmrm14gcm6gzysv56b";
+      name = "kmediaplayer-5.80.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/knewstuff-5.79.0.tar.xz";
-      sha256 = "0bsg0r0s12ck2cafkvnmjldr32ykivcpqjs1zfzqqbvy5w05a81y";
-      name = "knewstuff-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/knewstuff-5.80.0.tar.xz";
+      sha256 = "0pbk4j823zs2xikgdhaxqilb5b6f0a8k8hylq1vyhkwlzvvp9s6z";
+      name = "knewstuff-5.80.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/knotifications-5.79.0.tar.xz";
-      sha256 = "11g4xsa0z9680k4blxb1axn874p6s2vd5p9h376ln3blhjmy17hj";
-      name = "knotifications-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/knotifications-5.80.0.tar.xz";
+      sha256 = "1sfn61vhdqg3mxfvb802wx0l0k59b312fbh6w9bqv0b8z0a9jz2s";
+      name = "knotifications-5.80.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/knotifyconfig-5.79.0.tar.xz";
-      sha256 = "0c6d95bf8876czjd39cla7pd3li8sm684h04f77czf6sh1mil49d";
-      name = "knotifyconfig-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/knotifyconfig-5.80.0.tar.xz";
+      sha256 = "0b41ppif2qp7lkqmb7nv1r68hvavdl1lcgs4w50v2c0k4fflwizx";
+      name = "knotifyconfig-5.80.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kpackage-5.79.0.tar.xz";
-      sha256 = "1xkkw4lk9hx2irni5d2k7873bffgd2w41qvvp25d786dz612fy27";
-      name = "kpackage-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kpackage-5.80.0.tar.xz";
+      sha256 = "104qwyai3ivdw0jqgn6m59bajy07snas51rp75xgvb65hpllv2ch";
+      name = "kpackage-5.80.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kparts-5.79.0.tar.xz";
-      sha256 = "0d9dsgf6q44gqril6h9w5jfsavk0m5gclbmjdxjkcvrz3xfbjhd9";
-      name = "kparts-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kparts-5.80.0.tar.xz";
+      sha256 = "1fkfjazr7bwh5nniylh403qp0g4bgiv01ckv4djf46gjf7qn9d4y";
+      name = "kparts-5.80.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kpeople-5.79.0.tar.xz";
-      sha256 = "0dj8hcjl0r673j7m2k83mxy2787jfi9pz6cvmfqfczbzpw20ycf4";
-      name = "kpeople-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kpeople-5.80.0.tar.xz";
+      sha256 = "1cn9jqiah3j0qi7sg1j9c10yq97pcisvxhm9jjzzzxna39zz16cw";
+      name = "kpeople-5.80.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kplotting-5.79.0.tar.xz";
-      sha256 = "0lawpg7i36wppm95jxhhc7ghc88kb1s34px6w8p7n6cm2gxkhwn6";
-      name = "kplotting-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kplotting-5.80.0.tar.xz";
+      sha256 = "073icgz0cgg7wis3rf1hlsmxklp9vk8swgihfdlks1jds90s4nxw";
+      name = "kplotting-5.80.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kpty-5.79.0.tar.xz";
-      sha256 = "1qd09r17nmsnqxggmsdw0j6l0620f11ya6mx7bc9zs2y08mgvjka";
-      name = "kpty-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kpty-5.80.0.tar.xz";
+      sha256 = "13blnrzni3n9p3xnn2kyd6g2hlpvvg0aqagknk64kchbvdkd5l4k";
+      name = "kpty-5.80.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kquickcharts-5.79.0.tar.xz";
-      sha256 = "1p9a3mq7xxyavzmgjmz47vrv0hm1h9g8fsligi3r3n5az7klra6f";
-      name = "kquickcharts-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kquickcharts-5.80.0.tar.xz";
+      sha256 = "0kf72i9pkifcwg9njn296fw4d9gy3rc43g17128axj6a5jrd4bln";
+      name = "kquickcharts-5.80.0.tar.xz";
     };
   };
   kross = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kross-5.79.0.tar.xz";
-      sha256 = "00hpyxcn2fwaz32gggqjcmx4blbcdxj3yvhldnmmkmi3k0r68dfc";
-      name = "kross-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kross-5.80.0.tar.xz";
+      sha256 = "06dyqmhxbr9ykca1bskkgxmsd86jpxnk4adygcw1j84xsl6jiki9";
+      name = "kross-5.80.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/krunner-5.79.0.tar.xz";
-      sha256 = "0v7faai6ar06cw7gikhccsa92aii085dk81g4xpyskmxlpvrraci";
-      name = "krunner-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/krunner-5.80.0.tar.xz";
+      sha256 = "0bid6h0wmvmxfz664hmfhs4zp35mlk3n1p553rspfs55wh2f9xpw";
+      name = "krunner-5.80.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kservice-5.79.0.tar.xz";
-      sha256 = "1drzj4s1zbh5pffnh3r1wjsk7g1vr0np2h28mlfm4hy3bywxzrnp";
-      name = "kservice-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kservice-5.80.0.tar.xz";
+      sha256 = "06bk46l3qg7dh57zsg9vwx8vq31ikjmbmy4nqn65mq786yiz4s78";
+      name = "kservice-5.80.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/ktexteditor-5.79.0.tar.xz";
-      sha256 = "1csms6cl8pp9slzwzdgsxhah1b218maakkxmiqk0ngx2sf4lbfc3";
-      name = "ktexteditor-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/ktexteditor-5.80.0.tar.xz";
+      sha256 = "0g073m18bpzhxdwzhqcyclsclwi91cqsjqq3fjz1hy56ird6b0d0";
+      name = "ktexteditor-5.80.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/ktextwidgets-5.79.0.tar.xz";
-      sha256 = "1bnhq4jpybckdlw5518n2hbfilbpadafvchnxigg9p7671pkp85l";
-      name = "ktextwidgets-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/ktextwidgets-5.80.0.tar.xz";
+      sha256 = "1292knr3wblbk5j3qfzr1lqyiaa09pkhvkmh3jnlb0jvhc8xvmg8";
+      name = "ktextwidgets-5.80.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kunitconversion-5.79.0.tar.xz";
-      sha256 = "19snm2mvvbs2aqpq7k9b3g1fbg40kpmbjmqn38g6m065mpw3372l";
-      name = "kunitconversion-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kunitconversion-5.80.0.tar.xz";
+      sha256 = "1hckj3k3jjsc4y89zvi5l9h6px6ns9kdqjrfkxbax459wha55b4l";
+      name = "kunitconversion-5.80.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kwallet-5.79.0.tar.xz";
-      sha256 = "1qickn20ry8qccirdc7rvdf40dxgb13y4n0wi80qz87xzmps3f3p";
-      name = "kwallet-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kwallet-5.80.0.tar.xz";
+      sha256 = "1pwrxhjxxdx7hl4456dk4x8z36ddw932cv08010fmz9m4w0yvjg1";
+      name = "kwallet-5.80.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kwayland-5.79.0.tar.xz";
-      sha256 = "14grhcav772zfdjmwnjms819by2djm8dnv71cj4ps45iq0gba6ck";
-      name = "kwayland-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kwayland-5.80.0.tar.xz";
+      sha256 = "1avr7ckyhw158wi5mlknzkcphn8vlf8dpb96gyizvsvg8b4gffs0";
+      name = "kwayland-5.80.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kwidgetsaddons-5.79.0.tar.xz";
-      sha256 = "0jpfwxa397cvqr1q92b2nva7wy2ngv08kz5l94xrz0wzkagxfixc";
-      name = "kwidgetsaddons-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kwidgetsaddons-5.80.0.tar.xz";
+      sha256 = "1wgwl08cxwzcd0nikvp2ph2dbj5fij6a5l65p9amvi6ladbgv6qs";
+      name = "kwidgetsaddons-5.80.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kwindowsystem-5.79.0.tar.xz";
-      sha256 = "15pi2vnvdchj9f3yp1p7hqxmnwd606a6fwq4h7li4pvb4w3gibmq";
-      name = "kwindowsystem-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kwindowsystem-5.80.0.tar.xz";
+      sha256 = "1ch44w27ilh994if3icskyqg6nhnbd5j430jxfj6fzfia9vvclmk";
+      name = "kwindowsystem-5.80.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/kxmlgui-5.79.0.tar.xz";
-      sha256 = "1j8fb5i1v7pqs5as1h43nc0s2pm3i9cwks2h5388yld325ysx0v9";
-      name = "kxmlgui-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/kxmlgui-5.80.0.tar.xz";
+      sha256 = "17dpcv2igkg1pk238bd396mn83nqp325sscx7qsf8cbj15dp7bw1";
+      name = "kxmlgui-5.80.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/portingAids/kxmlrpcclient-5.79.0.tar.xz";
-      sha256 = "1cwvglsfv5m3mb5bjl7rfas1samyw703qjfiz1pf6vxgmpxdcr4a";
-      name = "kxmlrpcclient-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/portingAids/kxmlrpcclient-5.80.0.tar.xz";
+      sha256 = "0aas26kjxsbgrrrazjvsvjqdr9993v2hyxci62mfpi7xsp5js4h4";
+      name = "kxmlrpcclient-5.80.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/modemmanager-qt-5.79.0.tar.xz";
-      sha256 = "0xfbchyaaqxjj66zb19k4vxi9azijf0llbql6fzxln687s3z65wd";
-      name = "modemmanager-qt-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/modemmanager-qt-5.80.0.tar.xz";
+      sha256 = "1q14hx2228xhlggw14r9mhmnn2q3qvy3nc9hq5ynb9mwldns6nl6";
+      name = "modemmanager-qt-5.80.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/networkmanager-qt-5.79.0.tar.xz";
-      sha256 = "04iaqa2q73zvscx300bah6mnl79dai9yrmq11d1vyil99af36m6s";
-      name = "networkmanager-qt-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/networkmanager-qt-5.80.0.tar.xz";
+      sha256 = "1wdzn2n4m7nz6skjc37p70zaq42ighk5f1wg1hjx3yf3rlpprnp0";
+      name = "networkmanager-qt-5.80.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/oxygen-icons5-5.79.0.tar.xz";
-      sha256 = "1j6l9r4l82gp5qcpn3xw4dzfbhsawbpk8mypnfckk73x1bjcaqss";
-      name = "oxygen-icons5-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/oxygen-icons5-5.80.0.tar.xz";
+      sha256 = "0kmq993vd6011qny949z13lli4qymprk616kl1628dazniapka9m";
+      name = "oxygen-icons5-5.80.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/plasma-framework-5.79.0.tar.xz";
-      sha256 = "15hbfqdyas27kj6rd24n6d80r1dcsiiv0zgjkp12x8dnjyd3vz4x";
-      name = "plasma-framework-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/plasma-framework-5.80.0.tar.xz";
+      sha256 = "1nckb1801fy64hvm127r5fz14vgw81szw7w7miilqh6651v0zbyk";
+      name = "plasma-framework-5.80.0.tar.xz";
     };
   };
   prison = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/prison-5.79.0.tar.xz";
-      sha256 = "1rn66n67g914w1klgsirqff62qv4p2l64ahzsxnbixfwy1dwlpa2";
-      name = "prison-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/prison-5.80.0.tar.xz";
+      sha256 = "1fcsvww08f7ihxq6x84jd2klp29m8hrbzp7rxqi7x9ghxxgysbpz";
+      name = "prison-5.80.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/purpose-5.79.0.tar.xz";
-      sha256 = "1mlph5mzwfqwlkvm3df3in3r3airnx4hxhy0p56ri3k3m9k2rqpz";
-      name = "purpose-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/purpose-5.80.0.tar.xz";
+      sha256 = "107xmhbjcw5mk068484gwqrzl2gkgy495737f4vj5q22m9rpal5d";
+      name = "purpose-5.80.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/qqc2-desktop-style-5.79.0.tar.xz";
-      sha256 = "1cykbdbzxkblwp0dmgc4r3csml9l81zhfsqcjamfai6srl10vbij";
-      name = "qqc2-desktop-style-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/qqc2-desktop-style-5.80.0.tar.xz";
+      sha256 = "14dy7n6m9vdq6v7h3r0w71vw86yxyza40wyxp0hhj44nb63fvczg";
+      name = "qqc2-desktop-style-5.80.0.tar.xz";
     };
   };
   solid = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/solid-5.79.0.tar.xz";
-      sha256 = "033ss326q450phf918a5py3z6ajnjj6f1nws8ngp05zi028nkhrl";
-      name = "solid-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/solid-5.80.0.tar.xz";
+      sha256 = "023zk7la6ycd7h2j62z7b409w94sq2r9k0c020ywry6psjydqkx5";
+      name = "solid-5.80.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/sonnet-5.79.0.tar.xz";
-      sha256 = "09b1rb88ck50g67nmki06ixxsfnz3x3jd0f334qaz147h2jklvyq";
-      name = "sonnet-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/sonnet-5.80.0.tar.xz";
+      sha256 = "13kqdfy6bgmqjfw82d2zh0bq4r53awa1f1cbshci6inwdslyvlmh";
+      name = "sonnet-5.80.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/syndication-5.79.0.tar.xz";
-      sha256 = "1jyz0c67zscgspvisn43wrdgk4pxs4i3r9pyknm8nvxwiff2p1ji";
-      name = "syndication-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/syndication-5.80.0.tar.xz";
+      sha256 = "1j22yx2i2qxck6gy4jypjvmar4y93j5nmrmf7fkjx7z8hwxjgwhh";
+      name = "syndication-5.80.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.79.1";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/syntax-highlighting-5.79.1.tar.xz";
-      sha256 = "143ra8j0x1biijclnjhp6b69v04m65avp2nic9jzj9y5wjz5x0mj";
-      name = "syntax-highlighting-5.79.1.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/syntax-highlighting-5.80.0.tar.xz";
+      sha256 = "060jnfri24rzkryyvxadpr3yn5xn0856j01ba5l38w0khs8mix4i";
+      name = "syntax-highlighting-5.80.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.79.0";
+    version = "5.80.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.79/threadweaver-5.79.0.tar.xz";
-      sha256 = "062r9nhggw3dlvgpb2l6fqyyzqv35a9lgvikh2pjdicx9r2s8z19";
-      name = "threadweaver-5.79.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.80/threadweaver-5.80.0.tar.xz";
+      sha256 = "1j5m8gfjpi9cajhja77lhkrl3shq618wpza1k27azvi7r6jj4dva";
+      name = "threadweaver-5.80.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/syndication.nix b/pkgs/development/libraries/kde-frameworks/syndication.nix
index 71ee520995c..fd5a9b9db84 100644
--- a/pkgs/development/libraries/kde-frameworks/syndication.nix
+++ b/pkgs/development/libraries/kde-frameworks/syndication.nix
@@ -5,9 +5,7 @@
 
 mkDerivation {
   name = "syndication";
-  meta = {
-    maintainers = [ lib.maintainers.bkchr ];
-  };
+  meta.maintainers = [ lib.maintainers.bkchr ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcodecs ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
index 4b3f8440c56..a295b23f321 100644
--- a/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
+++ b/pkgs/development/libraries/kde-frameworks/syntax-highlighting.nix
@@ -1,13 +1,9 @@
-{ mkDerivation, lib
+{ mkDerivation
 , extra-cmake-modules, perl, qtbase, qttools
 }:
 
 mkDerivation {
   name = "syntax-highlighting";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules perl ];
   buildInputs = [ qttools ];
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/kde-frameworks/threadweaver.nix b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
index 70e948afda9..bfa529c9267 100644
--- a/pkgs/development/libraries/kde-frameworks/threadweaver.nix
+++ b/pkgs/development/libraries/kde-frameworks/threadweaver.nix
@@ -1,15 +1,11 @@
 {
-  mkDerivation, lib,
+  mkDerivation,
   extra-cmake-modules,
   qtbase
 }:
 
 mkDerivation {
   name = "threadweaver";
-  meta = {
-    maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.14.0" < 0;
-  };
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/kissfft/0001-pkgconfig-darwin.patch b/pkgs/development/libraries/kissfft/0001-pkgconfig-darwin.patch
new file mode 100644
index 00000000000..534d46f0c8b
--- /dev/null
+++ b/pkgs/development/libraries/kissfft/0001-pkgconfig-darwin.patch
@@ -0,0 +1,48 @@
+From c0dc376be9154d143574a818417ceed23308b5f2 Mon Sep 17 00:00:00 2001
+From: OPNA2608 <christoph.neidahl@gmail.com>
+Date: Sun, 18 Apr 2021 01:45:20 +0200
+Subject: [PATCH] pkgconfig darwin
+
+---
+ Makefile | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 971c6d6..0f4be0c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -153,7 +153,6 @@ endif
+ # -DKISS_FFT_BUILD to TYPEFLAGS
+ #
+ 
+-ifneq ($(shell uname -s),Darwin)
+ 	PKGCONFIG_KISSFFT_VERSION = $(KFVER_MAJOR).$(KFVER_MINOR).$(KFVER_PATCH)
+ 	PKGCONFIG_KISSFFT_OUTPUT_NAME = $(KISSFFTLIB_SHORTNAME)
+ 	PKGCONFIG_PKG_KISSFFT_DEFS = $(TYPEFLAGS)
+@@ -170,7 +169,6 @@ ifneq ($(shell uname -s),Darwin)
+ 	PKGCONFIG_KISSFFT_LIBDIR = $(ABS_LIBDIR)
+   endif
+ 	PKGCONFIG_KISSFFT_PKGINCLUDEDIR = $${includedir}/kissfft
+-endif
+ 
+ export TYPEFLAGS
+ 
+@@ -226,7 +224,6 @@ ifneq ($(KISSFFT_STATIC), 1)
+ 	ln -sf $(KISSFFTLIB_NAME) $(KISSFFTLIB_SODEVELNAME)
+   endif
+ endif
+-ifneq ($(shell uname -s),Darwin)
+ 	mkdir "$(ABS_LIBDIR)/pkgconfig"
+ 	sed \
+ 		-e 's+@PKGCONFIG_KISSFFT_VERSION@+$(PKGCONFIG_KISSFFT_VERSION)+' \
+@@ -238,7 +235,6 @@ ifneq ($(shell uname -s),Darwin)
+ 		-e 's+@PKGCONFIG_KISSFFT_LIBDIR@+$(PKGCONFIG_KISSFFT_LIBDIR)+' \
+ 		-e 's+@PKGCONFIG_KISSFFT_PKGINCLUDEDIR@+$(PKGCONFIG_KISSFFT_PKGINCLUDEDIR)+' \
+ 		kissfft.pc.in 1>"$(ABS_LIBDIR)/pkgconfig/$(KISSFFT_PKGCONFIG)"
+-endif
+ ifneq ($(KISSFFT_TOOLS), 0)
+ 	make -C tools install
+ endif
+-- 
+2.29.3
+
diff --git a/pkgs/development/libraries/kissfft/default.nix b/pkgs/development/libraries/kissfft/default.nix
index fe52adfa20d..abc96a40a97 100644
--- a/pkgs/development/libraries/kissfft/default.nix
+++ b/pkgs/development/libraries/kissfft/default.nix
@@ -1,45 +1,80 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchpatch
+, fftw
+, fftwFloat
+, python3
+, datatype ? "double"
+, withTools ? false
+, libpng
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableOpenmp ? false
+, llvmPackages
 }:
-
+let
+  py = python3.withPackages (ps: with ps; [ numpy ]);
+  option = cond: if cond then "1" else "0";
+in
 stdenv.mkDerivation rec {
-  pname = "kissfft";
-  version = "131";
+  pname = "kissfft-${datatype}${lib.optionalString enableOpenmp "-openmp"}";
+  version = "131.1.0";
 
   src = fetchFromGitHub {
     owner = "mborgerding";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0axmqav2rclw02mix55cch9xl5py540ac15xbmq7xq6n3k492ng2";
+    repo = "kissfft";
+    rev = version;
+    sha256 = "1yfws5bn4kh62yk6hdyp9h9775l6iz7wsfisbn58jap6b56s8j5s";
   };
 
   patches = [
-    # Allow installation into our prefix
-    # Fix installation on Darwin
-    # Create necessary directories
-    # Make datatype configurable
-    (fetchpatch {
-      url = "https://github.com/mborgerding/kissfft/pull/38.patch";
-      sha256 = "0cp1awl7lr2vqmcwm9lfjs4b4dv9da8mg4hfd821r5ryadpyijj6";
-    })
-    # Install headers as well
-    (fetchpatch {
-      url = "https://github.com/mborgerding/kissfft/commit/71df949992d2dbbe15ce707cf56c3fa1e43b1080.patch";
-      sha256 = "13h4kzsj388mxxv6napp4gx2ymavz9xk646mnyp1i852dijpmapm";
-    })
+    ./0001-pkgconfig-darwin.patch
   ];
 
-  postPatch = ''
-    substituteInPlace Makefile \
-      --replace "gcc" "${stdenv.cc.targetPrefix}cc" \
-      --replace "ar" "${stdenv.cc.targetPrefix}ar"
+  # https://bugs.llvm.org/show_bug.cgi?id=45034
+  postPatch = lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.cc.isClang && lib.versionOlder stdenv.cc.version "10") ''
+    substituteInPlace test/Makefile \
+      --replace "-ffast-math" ""
+  ''
+  + lib.optionalString (stdenv.hostPlatform.isDarwin) ''
+    substituteInPlace test/Makefile \
+      --replace "LD_LIBRARY_PATH" "DYLD_LIBRARY_PATH"
+    # Don't know how to make math.h's double long constants available
+    substituteInPlace test/testcpp.cc \
+      --replace "M_PIl" "M_PI"
   '';
+
   makeFlags = [
     "PREFIX=${placeholder "out"}"
-    "DATATYPE=double"
+    "KISSFFT_DATATYPE=${datatype}"
+    "KISSFFT_TOOLS=${option withTools}"
+    "KISSFFT_STATIC=${option enableStatic}"
+    "KISSFFT_OPENMP=${option enableOpenmp}"
+  ];
+
+  buildInputs = lib.optionals (withTools && datatype != "simd") [ libpng ]
+    # TODO: This may mismatch the LLVM version in the stdenv, see #79818.
+    ++ lib.optional (enableOpenmp && stdenv.cc.isClang) llvmPackages.openmp;
+
+  doCheck = true;
+
+  checkInputs = [
+    py
+    (if datatype == "float" then fftwFloat else fftw)
   ];
 
+  checkFlags = [ "testsingle" ];
+
+  postInstall = ''
+    ln -s ${pname}.pc $out/lib/pkgconfig/kissfft.pc
+  '';
+
+  # Tools can't find kissfft libs on Darwin
+  postFixup = lib.optionalString (withTools && stdenv.hostPlatform.isDarwin) ''
+    for bin in $out/bin/*; do
+      install_name_tool -change lib${pname}.dylib $out/lib/lib${pname}.dylib $bin
+    done
+  '';
+
   meta = with lib; {
     description = "A mixed-radix Fast Fourier Transform based up on the KISS principle";
     homepage = "https://github.com/mborgerding/kissfft";
diff --git a/pkgs/development/libraries/kronosnet/default.nix b/pkgs/development/libraries/kronosnet/default.nix
new file mode 100644
index 00000000000..c74ff6716fe
--- /dev/null
+++ b/pkgs/development/libraries/kronosnet/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook, pkg-config
+, libqb, libxml2, libnl, lksctp-tools
+, nss, openssl, bzip2, lzo, lz4, xz, zlib, zstd
+, doxygen
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kronosnet";
+  version = "1.20";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lP5W+4b9McU2Uqibh2SucIu2y4KluO3B1RpAJKgYq/M=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
+
+  buildInputs = [
+    libqb libxml2 libnl lksctp-tools
+    nss openssl
+    bzip2 lzo lz4 xz zlib zstd
+  ];
+
+  meta = with lib; {
+    description = "VPN on steroids";
+    homepage = "https://kronosnet.org/";
+    license = with licenses; [ lgpl21Plus gpl2Plus ];
+    maintainers = with maintainers; [ ryantm ];
+  };
+}
diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix
index 778b61d8315..8754dd5f65d 100644
--- a/pkgs/development/libraries/libbsd/default.nix
+++ b/pkgs/development/libraries/libbsd/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "11x8q45jvjvf2dvgclds64mscyg10lva33qinf2hwgc84v3svf1l";
   };
 
+  outputs = [ "out" "dev" "man" ];
+
   # darwin changes configure.ac which means we need to regenerate
   # the configure scripts
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix
index ca879a60c7a..f12409f271f 100644
--- a/pkgs/development/libraries/libcaca/default.nix
+++ b/pkgs/development/libraries/libcaca/default.nix
@@ -1,40 +1,75 @@
-{ lib, stdenv, fetchurl, ncurses, zlib, pkg-config, imlib2
-, x11Support ? !stdenv.isDarwin, libX11, libXext
+{ lib
+, stdenv
+, fetchurl
+, imlib2
+, libX11
+, libXext
+, ncurses
+, pkg-config
+, x11Support ? !stdenv.isDarwin
+, zlib
 }:
 
 stdenv.mkDerivation rec {
-  name = "libcaca-0.99.beta19";
+  pname = "libcaca";
+  version = "0.99.beta19";
 
   src = fetchurl {
     urls = [
-      "http://fossies.org/linux/privat/${name}.tar.gz"
-      "http://caca.zoy.org/files/libcaca/${name}.tar.gz"
+      "http://fossies.org/linux/privat/${pname}-${version}.tar.gz"
+      "http://caca.zoy.org/files/libcaca/${pname}-${version}.tar.gz"
     ];
-    sha256 = "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj";
+    hash = "sha256-EotGfE7QMmTBh0BRcqToMEk0LMjML2VfU6LQ7p03cvQ=";
   };
 
   outputs = [ "bin" "dev" "out" "man" ];
 
   configureFlags = [
     (if x11Support then "--enable-x11" else "--disable-x11")
-    ];
+  ];
 
   NIX_CFLAGS_COMPILE = lib.optionalString (!x11Support) "-DX_DISPLAY_MISSING";
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [ ncurses zlib pkg-config (imlib2.override { inherit x11Support; }) ]
-    ++ lib.optionals x11Support [ libX11 libXext ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [
+    ncurses
+    zlib
+    (imlib2.override { inherit x11Support; })
+  ] ++ lib.optionals x11Support [
+    libX11
+    libXext
+  ];
 
   postInstall = ''
     mkdir -p $dev/bin
     mv $bin/bin/caca-config $dev/bin/caca-config
   '';
 
-  meta = {
-    homepage = "http://libcaca.zoy.org/";
+  meta = with lib; {
+    homepage = "http://caca.zoy.org/wiki/libcaca";
     description = "A graphics library that outputs text instead of pixels";
-    license = lib.licenses.wtfpl;
-    platforms = lib.platforms.unix;
+    longDescription = ''
+      libcaca is a graphics library that outputs text instead of pixels, so that
+      it can work on older video cards or text terminals. It is not unlike the
+      famous ​AAlib library, with the following improvements:
+
+      - Unicode support
+      - 2048 available colours (some devices can only handle 16)
+      - dithering of colour images
+      - advanced text canvas operations (blitting, rotations)
+
+      Libcaca works in a text terminal (and should thus work on all Unix systems
+      including Mac OS X) using the S-Lang or ncurses libraries. It also works
+      natively on DOS and Windows.
+
+      Libcaca was written by Sam Hocevar and Jean-Yves Lamoureux.
+    '';
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libchewing/default.nix b/pkgs/development/libraries/libchewing/default.nix
index 1436d4bd59d..c6b7841ca40 100644
--- a/pkgs/development/libraries/libchewing/default.nix
+++ b/pkgs/development/libraries/libchewing/default.nix
@@ -1,20 +1,24 @@
-{ lib, stdenv, fetchurl, sqlite }:
+{ lib, stdenv, fetchFromGitHub, sqlite, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "libchewing";
-  version = "0.5.1";
+  version = "unstable-2020-06-27";
 
-  src = fetchurl {
-    url = "https://github.com/chewing/libchewing/releases/download/v${version}/libchewing-${version}.tar.bz2";
-    sha256 = "0aqp2vqgxczydpn7pxi7r6xf3l1hgl710f0gbi1k8q7s2lscc24p";
+  src = fetchFromGitHub {
+    owner = "chewing";
+    repo = "libchewing";
+    rev = "452f6221fbad90c0706a3963b17e226216e40dd7";
+    sha256 = "sha256-w3/K2O/CU+XVzqzVCYJyq1vLgToN6iIUhJ9J7ia4p9E=";
   };
 
   buildInputs = [ sqlite ];
 
+  nativeBuildInputs = [ cmake ];
+
   meta = with lib; {
     description = "Intelligent Chinese phonetic input method";
     homepage = "http://chewing.im/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     maintainers = [ maintainers.ericsagnes ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index d0fc8c3c4a2..b864c279d37 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "4.1.1";
+  version = "4.3.0";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "sha256-HBZ/VMuTLAYpqcIPzQ4JbsMSXsI/sKc14ZFpbVhQF/g=";
+    hash = "sha256-vJ4OyU9HYQvF1SWmniNGAuHQ7K/TfiK8C4celK5hjiA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libconfig/default.nix b/pkgs/development/libraries/libconfig/default.nix
index ae5f1176463..7387e9edc5b 100644
--- a/pkgs/development/libraries/libconfig/default.nix
+++ b/pkgs/development/libraries/libconfig/default.nix
@@ -11,11 +11,13 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  configureFlags = lib.optional stdenv.targetPlatform.isWindows "--disable-examples";
+
   meta = with lib; {
     homepage = "http://www.hyperrealm.com/libconfig";
     description = "A simple library for processing structured configuration files";
     license = licenses.lgpl3;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = with platforms; linux ++ darwin ++ windows;
   };
 }
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index b4ba311165a..b7fd94f9f12 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdrm";
-  version = "2.4.104";
+  version = "2.4.105";
 
   src = fetchurl {
     url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1jqvx9c23hgwhq109zqj6vg3ng40pcvh3r1k2fn1a424qasxhsnn";
+    sha256 = "0iiamypwdfiz250ki120nh598r48yyacmnndb4mkximdgi5h478x";
   };
 
   outputs = [ "out" "dev" "bin" ];
@@ -20,12 +20,6 @@ stdenv.mkDerivation rec {
 
   patches = [ ./cross-build-nm-path.patch ];
 
-  postPatch = ''
-    for a in */*-symbol-check ; do
-      patchShebangs $a
-    done
-  '';
-
   mesonFlags = [
     "-Dnm-path=${stdenv.cc.targetPrefix}nm"
     "-Dinstall-test-programs=true"
diff --git a/pkgs/development/libraries/libevdevplus/0001-Add-cmake-install-directives.patch b/pkgs/development/libraries/libevdevplus/0001-Add-cmake-install-directives.patch
new file mode 100644
index 00000000000..2635d6ab829
--- /dev/null
+++ b/pkgs/development/libraries/libevdevplus/0001-Add-cmake-install-directives.patch
@@ -0,0 +1,41 @@
+From 7f208aaf21aa468013fc41e67c32f6a6c8c08249 Mon Sep 17 00:00:00 2001
+From: Jappie Klooster <jappieklooster@hotmail.com>
+Date: Fri, 2 Apr 2021 16:01:05 -0400
+Subject: [PATCH] Add cmake install directives
+
+To make nix builds work, it expect a make install command to
+be available.
+Adding these directives seems to fix the build.
+
+If it's no trouble to you, please add them.
+---
+ CMakeLists.txt | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f9db618..425d391 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -4,10 +4,17 @@ project(libevdevPlus)
+ set(SOURCE_FILES
+         evdevPlus.cpp evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp Resource.cpp)
+ 
++include(GNUInstallDirs)
++
+ add_library(evdevPlus ${SOURCE_FILES})
+ target_include_directories(evdevPlus PUBLIC .)
+ 
+ add_executable(evdevPlus_test test.cpp)
+ target_link_libraries(evdevPlus_test evdevPlus)
+ 
+-configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY)
+\ No newline at end of file
++configure_file(evdevPlus.pc.in evdevPlus.pc @ONLY)
++
++install(TARGETS evdevPlus
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(FILES evdevPlus.hpp CommonIncludes.hpp InputEvent.hpp
++        DESTINATION include/)
+-- 
+2.29.2
+
diff --git a/pkgs/development/libraries/libevdevplus/default.nix b/pkgs/development/libraries/libevdevplus/default.nix
index 66c5f1b0696..11d644cd90d 100644
--- a/pkgs/development/libraries/libevdevplus/default.nix
+++ b/pkgs/development/libraries/libevdevplus/default.nix
@@ -2,13 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdevplus";
-  version = "unstable-2019-10-01";
+  version = "unstable-2021-04-02";
+
+  # adds missing cmake install directives
+  # https://github.com/YukiWorkshop/libevdevPlus/pull/10
+  patches = [ ./0001-Add-cmake-install-directives.patch];
 
   src  = fetchFromGitHub {
     owner  = "YukiWorkshop";
     repo   = "libevdevPlus";
-    rev    = "e863df2ade43e2c7d7748cc33ca27fb3eed325ca";
-    sha256 = "18z6pn4j7fhmwwh0q22ip5nn7sc1hfgwvkdzqhkja60i8cw2cvvj";
+    rev    = "b4d4b3143056424a3da9f0516ca02a47209ef757";
+    sha256 = "09y65s16gch0w7fy1s9yjk9gz3bjzxix36h5wmwww6lkj2i1z3rj";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/libexsid/default.nix b/pkgs/development/libraries/libexsid/default.nix
new file mode 100644
index 00000000000..38cdfc84d4e
--- /dev/null
+++ b/pkgs/development/libraries/libexsid/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, docSupport ? true
+, doxygen
+, libftdi1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libexsid";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "libsidplayfp";
+    repo = "exsid-driver";
+    rev = version;
+    sha256 = "1qbiri549fma8c72nmj3cpz3sn1vc256kfafnygkmkzg7wdmgi7r";
+  };
+
+  outputs = [ "out" ]
+    ++ lib.optional docSupport "doc";
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ]
+    ++ lib.optional docSupport doxygen;
+
+  buildInputs = [ libftdi1 ];
+
+  enableParallelBuilding = true;
+
+  installTargets = [ "install" ]
+    ++ lib.optional docSupport "doc";
+
+  postInstall = lib.optionalString docSupport ''
+    mkdir -p $doc/share/libexsid/doc
+    cp -r docs/html $doc/share/libexsid/doc/
+  '';
+
+  meta = with lib; {
+    description = "Driver for exSID USB";
+    homepage = "http://hacks.slashdirt.org/hw/exsid/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
index 3fa68353969..e4121bc9e90 100644
--- a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
+++ b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix";
-    rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 20202-11-25
+    rev = "882735c6366fbe30149eea5cfd6d0ddff880f0e4"; # droped-lp1880058 on 2020-11-25
     sha256 = "sha256-Uv+Rr4V31DyaZFOj79Lpyfl3G6zVWShh20roI0AvMPU=";
   };
 
@@ -18,13 +18,15 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    mkdir -p "$out/usr/lib/libfprint-2/tod-1/"
-    mkdir -p "$out/usr/lib/udev/rules.d/"
+    mkdir -p "$out/lib/libfprint-2/tod-1/"
+    mkdir -p "$out/lib/udev/rules.d/"
 
-    cp usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-$version.so "$out/usr/lib/libfprint-2/tod-1/"
-    cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/usr/lib/udev/rules.d/"
+    cp usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-tod-goodix-53xc-$version.so "$out/lib/libfprint-2/tod-1/"
+    cp lib/udev/rules.d/60-libfprint-2-tod1-goodix.rules "$out/lib/udev/rules.d/"
   '';
 
+  passthru.driverPath = "/lib/libfprint-2/tod-1";
+
   meta = with lib; {
     description = "Goodix driver module for libfprint-2-tod Touch OEM Driver";
     homepage = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/";
diff --git a/pkgs/development/libraries/libfsm/default.nix b/pkgs/development/libraries/libfsm/default.nix
index 5e3c40da82c..f1e704448de 100644
--- a/pkgs/development/libraries/libfsm/default.nix
+++ b/pkgs/development/libraries/libfsm/default.nix
@@ -22,11 +22,7 @@ stdenv.mkDerivation rec {
   # if we use stdenv vs clangStdenv, we don't know which, and CC=cc in all
   # cases.) it's unclear exactly what should be done if we want those flags,
   # but the defaults work fine.
-  buildPhase = "PREFIX=$out bmake -r -j$NIX_BUILD_CORES";
-  installPhase = ''
-    PREFIX=$out bmake -r install
-    runHook postInstall
-  '';
+  makeFlags = [ "-r" "PREFIX=$(out)" ];
 
   # fix up multi-output install. we also have to fix the pkg-config libdir
   # file; it uses prefix=$out; libdir=${prefix}/lib, which is wrong in
diff --git a/pkgs/development/libraries/libgpiod/default.nix b/pkgs/development/libraries/libgpiod/default.nix
index 8f6d9fcab5e..ccf1c470364 100644
--- a/pkgs/development/libraries/libgpiod/default.nix
+++ b/pkgs/development/libraries/libgpiod/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgpiod";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
-    sha256 = "1k8mxkzvd6y9aawxghddrjkldzskhb6607qhbwjfl9f945ns87qa";
+    sha256 = "sha256-60RgcL4URP19MtMrvKU8Lzu7CiEZPbhhmM9gULeihEE=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix
index 0f56f8c97f3..47f6ffe2c52 100644
--- a/pkgs/development/libraries/libguestfs/default.nix
+++ b/pkgs/development/libraries/libguestfs/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   '';
   configureFlags = [ "--disable-appliance" "--disable-daemon" "--with-distro=NixOS" ]
     ++ lib.optionals (!javaSupport) [ "--disable-java" "--without-java" ];
-  patches = [ ./libguestfs-syms.patch ];
+  patches = [ ./libguestfs-syms.patch ./ocaml-4.12.patch ];
   NIX_CFLAGS_COMPILE="-I${libxml2.dev}/include/libxml2/";
   installFlags = [ "REALLY_INSTALL=yes" ];
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libguestfs/ocaml-4.12.patch b/pkgs/development/libraries/libguestfs/ocaml-4.12.patch
new file mode 100644
index 00000000000..032527d5713
--- /dev/null
+++ b/pkgs/development/libraries/libguestfs/ocaml-4.12.patch
@@ -0,0 +1,11 @@
+--- a/common/mlstdutils/std_utils.ml	2019-02-07 15:45:56.516955598 +0100
++++ b/common/mlstdutils/std_utils.ml	2019-02-07 15:45:56.516955598 +0100
+@@ -305,7 +305,7 @@
+       | x::xs, y::ys, z::zs -> (x, y, z) :: combine3 xs ys zs
+       | _ -> invalid_arg "combine3"
+ 
+-    let rec assoc_lbl ?(cmp = compare) ~default x = function
++    let rec assoc_lbl ?(cmp = Pervasives.compare) ~default x = function
+       | [] -> default
+       | (y, y') :: _ when cmp x y = 0 -> y'
+       | _ :: ys -> assoc_lbl ~cmp ~default x ys
diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix
index 17e20e3d399..1b8c30f9a8f 100644
--- a/pkgs/development/libraries/libmwaw/default.nix
+++ b/pkgs/development/libraries/libmwaw/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="libmwaw";
-    version="0.3.17";
+    version="0.3.18";
     name="${baseName}-${version}";
-    hash="074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf";
-    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.17/libmwaw-0.3.17.tar.xz";
-    sha256="074ipcq9w7jbd5x316dzclddgia2ydw098ph9d7p3d713pmkf5cf";
+    hash="sha256-/F0FFoD4AAvmT/68CwxYcWscm/BgA+w5k4exCdHtHg8=";
+    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.18/libmwaw-0.3.18.tar.xz";
+    sha256="sha256-/F0FFoD4AAvmT/68CwxYcWscm/BgA+w5k4exCdHtHg8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/libnbd/default.nix b/pkgs/development/libraries/libnbd/default.nix
index 2cd634325b2..2254c824154 100644
--- a/pkgs/development/libraries/libnbd/default.nix
+++ b/pkgs/development/libraries/libnbd/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libnbd";
-  version = "1.7.5";
+  version = "1.7.7";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-development/${pname}-${version}.tar.gz";
-    sha256 = "sha256-UxQx/wnKnCB3uC9xEfq1F0l3kHAJjp9GzbeRugKyFsk=";
+    hash = "sha256-fNeu1qx+EbKitv2I8nJAmGMF5jxN2RZGPR/LJYnOjG8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
index 51179ecb9a0..8172bd38e10 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation {
     description = "Open, royalty-free, highly versatile audio codec";
     license = lib.licenses.bsd3;
     homepage = "https://www.opus-codec.org/";
-    platforms = platforms.unix;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libosmium/default.nix b/pkgs/development/libraries/libosmium/default.nix
index c5b801f5d47..976c39a9ef1 100644
--- a/pkgs/development/libraries/libosmium/default.nix
+++ b/pkgs/development/libraries/libosmium/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "1na51g6xfm1bx0d0izbg99cwmqn0grp0g41znn93xnhs202qnb2h";
+    sha256 = "sha256-q938WA+vJDqGVutVzWdEP7ujDAmfj3vluliomVd0om0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index c04d4a001a1..a44fde01860 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -17,10 +17,7 @@ stdenv.mkDerivation rec {
   # We need to force the autodetection because detection doesn't
   # work in pure build environments.
   configureFlags = [
-    ("--with-pcap=" + {
-      linux = "linux";
-      darwin = "bpf";
-    }.${stdenv.hostPlatform.parsed.kernel.name})
+    "--with-pcap=${if stdenv.isLinux then "linux" else "bpf"}"
   ] ++ optionals stdenv.isDarwin [
     "--disable-universal"
   ] ++ optionals (stdenv.hostPlatform == stdenv.buildPlatform)
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 210542e0c98..478e01f3575 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "3.120.1";
+  version = "3.120.2";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x7jyzsdf884jrky4yci151pk4nzsz1w88wz8sk0cqing7bpaq16";
+    sha256 = "0wh5w7bx789ynnzr27xi0csql4jaxq80csawg6znabw3ld54wb86";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index 5405391a1e6..f4fe894eaf4 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -16,7 +16,7 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A Qt5 library to write cross-platfrom clients for Matrix";
+    description = "A Qt5 library to write cross-platform clients for Matrix";
     homepage = "https://matrix.org/docs/projects/sdk/quotient";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ colemickens ];
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index d4d69ed6aff..8ffe8f488b2 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/raspberrypi/userland";
     license = licenses.bsd3;
     platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" "x86_64-linux" ];
-    maintainers = with maintainers; [ dezgeg tavyc tkerber ];
+    maintainers = with maintainers; [ dezgeg tkerber ];
   };
 }
diff --git a/pkgs/development/libraries/librtlsdr/default.nix b/pkgs/development/libraries/librtlsdr/default.nix
new file mode 100644
index 00000000000..61f4045b785
--- /dev/null
+++ b/pkgs/development/libraries/librtlsdr/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "librtlsdr";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "librtlsdr";
+    repo = "librtlsdr";
+    rev = "v${version}";
+    sha256 = "sha256-s03h+3EfC5c7yRYBM6aCRWtmstwRJWuBywuyVt+k/bk=";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d"
+
+    substituteInPlace rtl-sdr.rules \
+      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
+  '';
+
+  nativeBuildInputs = [ pkg-config cmake ];
+
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
+    homepage = "https://github.com/librtlsdr/librtlsdr";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ bjornfor ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/libraries/libsearpc/default.nix b/pkgs/development/libraries/libsearpc/default.nix
index 1ac5cef7c5f..199ae0b685c 100644
--- a/pkgs/development/libraries/libsearpc/default.nix
+++ b/pkgs/development/libraries/libsearpc/default.nix
@@ -1,4 +1,5 @@
-{lib, stdenv, fetchFromGitHub, automake, autoconf, pkg-config, libtool, python2Packages, glib, jansson}:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, python3Packages
+, glib, jansson }:
 
 stdenv.mkDerivation rec {
   version = "3.2.0";
@@ -11,21 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "18i5zvrp6dv6vygxx5nc93mai2p2x786n5lnf5avrin6xiz2j6hd";
   };
 
-  patches = [ ./libsearpc.pc.patch ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ automake autoconf libtool python2Packages.python python2Packages.simplejson ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = with python3Packages; [ python simplejson ];
   propagatedBuildInputs = [ glib jansson ];
 
-  postPatch = "patchShebangs autogen.sh";
-
-  preConfigure = "./autogen.sh";
-
   meta = with lib; {
     homepage = "https://github.com/haiwen/libsearpc";
-    description = "A simple and easy-to-use C language RPC framework (including both server side & client side) based on GObject System";
+    description = "A simple and easy-to-use C language RPC framework based on GObject System";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ greizgh ];
   };
 }
diff --git a/pkgs/development/libraries/libsearpc/libsearpc.pc.patch b/pkgs/development/libraries/libsearpc/libsearpc.pc.patch
deleted file mode 100644
index 6f30932ba6d..00000000000
--- a/pkgs/development/libraries/libsearpc/libsearpc.pc.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-From: Aaron Lindsay <aaron@aclindsay.com>
-
---- a/libsearpc.pc.in	2013-01-10 01:35:24.000000000 -0500
-+++ b/libsearpc.pc.in	2013-01-19 11:31:50.479301798 -0500
-@@ -1,4 +1,4 @@
--prefix=(DESTDIR)@prefix@
-+prefix=@prefix@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
- includedir=@includedir@
diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix
index d5f8dd6e573..97991a0cffb 100644
--- a/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/pkgs/development/libraries/libsidplayfp/default.nix
@@ -1,45 +1,88 @@
 { stdenv
 , lib
-, fetchurl
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
 , pkg-config
+, perl
+, unittest-cpp
+, xa
+, libgcrypt
+, libexsid
 , docSupport ? true
-, doxygen ? null
-, graphviz ? null
+, doxygen
+, graphviz
 }:
 
-assert docSupport -> doxygen != null && graphviz != null;
-let
-  inherit (lib) optionals optionalString;
-  inherit (lib.versions) majorMinor;
-in
 stdenv.mkDerivation rec {
   pname = "libsidplayfp";
-  version = "2.0.5";
+  version = "2.1.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/${pname}/${majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "04vdrrkh5y9x9rrmj6gdp242ah70b4sslwqfby8wp2riis4hr9z0";
+  src = fetchFromGitHub {
+    owner = "libsidplayfp";
+    repo = "libsidplayfp";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0487gap2b0ypikyra74lk1qwqwr0vncldamk5xb1db2x97v504fd";
   };
 
-  nativeBuildInputs = [ pkg-config ]
-    ++ optionals docSupport [ doxygen graphviz ];
+  # https://github.com/libsidplayfp/libsidplayfp/issues/13
+  # Remove on next version bump
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/libsidplayfp/libsidplayfp/commit/84f5498f5653261ed84328e1b5676c31e3ba9e6e.patch";
+      sha256 = "1vysbl4fkdzm11k40msng2ag6i6mb6z9jsw32vyj9calcfha5957";
+    })
+    (fetchpatch {
+      url = "https://github.com/libsidplayfp/libsidplayfp/commit/c1a1b732cc2e791d910522d58f47c6d094493c6d.patch";
+      sha256 = "1d3sgdly0q9dysgkx5afxbwfas6p0m8n3lw1hmj4n6wm3j9sdz4g";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkg-config perl xa ]
+    ++ lib.optionals docSupport [ doxygen graphviz ];
+
+  buildInputs = [ libgcrypt libexsid ];
+
+  doCheck = true;
+
+  checkInputs = [ unittest-cpp ];
+
+  enableParallelBuilding = true;
 
   installTargets = [ "install" ]
-    ++ optionals docSupport [ "doc" ];
+    ++ lib.optionals docSupport [ "doc" ];
 
   outputs = [ "out" ]
-    ++ optionals docSupport [ "doc" ];
+    ++ lib.optionals docSupport [ "doc" ];
+
+  configureFlags = [
+    "--enable-hardsid"
+    "--with-gcrypt"
+    "--with-exsid"
+  ]
+  ++ lib.optional doCheck "--enable-tests";
 
-  postInstall = optionalString docSupport ''
+  postInstall = lib.optionalString docSupport ''
     mkdir -p $doc/share/doc/libsidplayfp
     mv docs/html $doc/share/doc/libsidplayfp/
   '';
 
   meta = with lib; {
     description = "A library to play Commodore 64 music derived from libsidplay2";
-    homepage = "https://sourceforge.net/projects/sidplay-residfp/";
+    longDescription = ''
+      libsidplayfp is a C64 music player library which integrates
+      the reSID SID chip emulation into a cycle-based emulator
+      environment, constantly aiming to improve emulation of the
+      C64 system and the SID chips.
+    '';
+    homepage = "https://github.com/libsidplayfp/libsidplayfp";
     license = with licenses; [ gpl2Plus ];
-    maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; unix;
+    maintainers = with maintainers; [ ramkromberg OPNA2608 ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libspectrum/default.nix b/pkgs/development/libraries/libspectrum/default.nix
index 011531b1a23..09aa03e6f67 100644
--- a/pkgs/development/libraries/libspectrum/default.nix
+++ b/pkgs/development/libraries/libspectrum/default.nix
@@ -13,12 +13,13 @@ stdenv.mkDerivation rec {
   buildInputs = [ audiofile bzip2 glib libgcrypt zlib ];
 
   enableParallelBuilding = true;
+  doCheck = true;
 
   meta = with lib; {
     homepage = "http://fuse-emulator.sourceforge.net/libspectrum.php";
     description = "ZX Spectrum input and output support library";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
   };
 }
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index d17303bbb0e..90c14c6fdf9 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -41,7 +41,6 @@ in stdenv.mkDerivation {
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
     maintainers = [ maintainers.phreedom ];
-    broken = stdenv.isDarwin;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libuinputplus/0001-Add-cmake-install-directives.patch b/pkgs/development/libraries/libuinputplus/0001-Add-cmake-install-directives.patch
new file mode 100644
index 00000000000..cd6f43d3770
--- /dev/null
+++ b/pkgs/development/libraries/libuinputplus/0001-Add-cmake-install-directives.patch
@@ -0,0 +1,40 @@
+From 265e406e254c8d84016b12b344d8df71d1765dd1 Mon Sep 17 00:00:00 2001
+From: Jappie Klooster <jappieklooster@hotmail.com>
+Date: Fri, 2 Apr 2021 16:33:18 -0400
+Subject: [PATCH] Add cmake install directives
+
+To make nix builds work, it expect a make install command to
+be available.
+Adding these directives seems to fix the build.
+
+If it's no trouble to you, please consider adding them.
+---
+ CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cbfc9c1..948c432 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -7,6 +7,8 @@ set(SOURCE_FILES
+         uInput.cpp uInputSetup.cpp uInputResource.cpp
+         uInput.hpp CommonIncludes.hpp uInputSetup.hpp)
+ 
++include(GNUInstallDirs)
++
+ add_library(uInputPlus ${SOURCE_FILES})
+ target_include_directories(uInputPlus PUBLIC .)
+ 
+@@ -15,3 +17,9 @@ target_link_libraries(uInputPlus_test uInputPlus)
+ 
+ configure_file(uInputPlus.pc.in uInputPlus.pc @ONLY)
+ 
++
++install(TARGETS uInputPlus
++        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(FILES uInput.hpp CommonIncludes.hpp uInputSetup.hpp
++        DESTINATION include/)
++
+-- 
+2.29.2
+
diff --git a/pkgs/development/libraries/libuinputplus/default.nix b/pkgs/development/libraries/libuinputplus/default.nix
index 9085b861078..28110b57704 100644
--- a/pkgs/development/libraries/libuinputplus/default.nix
+++ b/pkgs/development/libraries/libuinputplus/default.nix
@@ -1,14 +1,17 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config }:
-
 stdenv.mkDerivation rec {
   pname = "libuinputplus";
-  version = "2019-10-01";
+  version = "2021-04-02";
+
+  # adds missing cmake install directives
+  # https://github.com/YukiWorkshop/libuInputPlus/pull/7
+  patches = [ ./0001-Add-cmake-install-directives.patch];
 
   src  = fetchFromGitHub {
     owner  = "YukiWorkshop";
     repo   = "libuInputPlus";
-    rev    = "962f180b4cc670e1f5cc73c2e4d5d196ae52d630";
-    sha256 = "0jy5i7bmjad7hw1qcyjl4swqribp2027s9g3609zwj7lj8z5x0bg";
+    rev    = "f7f18eb339bba61a43f2cad481a9b1a453a66957";
+    sha256 = "0sind2ghhy4h9kfkr5hsmhcq0di4ifwqyv4gac96rgj5mwvs33lp";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/liburing/default.nix b/pkgs/development/libraries/liburing/default.nix
index 10554cb528e..ddd7c7b207d 100644
--- a/pkgs/development/libraries/liburing/default.nix
+++ b/pkgs/development/libraries/liburing/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "0has1yd1ns5q5jgcmhrbgwhbwq0wix3p7xv3dyrwdf784p56izkn";
   };
 
+  patches = [
+    # Fix build on 32-bit ARM
+    (fetchpatch {
+      url = "https://github.com/axboe/liburing/commit/808b6c72ab753bda0c300b5683cfd31750d1d49b.patch";
+      sha256 = "1x7a9c5a6rwhfsbjqmhbnwh2aiin6yylckrqdjbzljrprzf11wrd";
+    })
+  ];
+
   separateDebugInfo = true;
   enableParallelBuilding = true;
   # Upstream's configure script is not autoconf generated, but a hand written one.
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index 5aa8cf70491..f1918396616 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -56,13 +56,13 @@ assert isCygwin -> unitTestsSupport && webmIOSupport && libyuvSupport;
 
 stdenv.mkDerivation rec {
   pname = "libvpx";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "webmproject";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16xv6ambc82g14h1y0q1vyy57wp6j9fbp0nk0wd5csnrw407rhry";
+    sha256 = "sha256-EZP33U10fchyqy7Jr26vHgUUfWR6xtG3fcMWUII0m9w=";
   };
 
   postPatch = "patchShebangs .";
diff --git a/pkgs/development/libraries/libxc/default.nix b/pkgs/development/libraries/libxc/default.nix
index f78cd09c0ae..d4f6391fe6f 100644
--- a/pkgs/development/libraries/libxc/default.nix
+++ b/pkgs/development/libraries/libxc/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitLab, cmake, gfortran, perl }:
 
 let
-  version = "5.1.2";
+  version = "5.1.3";
 
 in stdenv.mkDerivation {
   pname = "libxc";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     owner = "libxc";
     repo = "libxc";
     rev = version;
-    sha256 = "1bcj7x0kaal62m41v9hxb4h1d2cxs2ynvsfqqg7c5yi7829nvapb";
+    sha256 = "14czspifznsmvvix5hcm1rk18iy590qk8p5m00p0y032gmn9i2zj";
   };
 
   buildInputs = [ gfortran ];
@@ -28,7 +28,6 @@ in stdenv.mkDerivation {
   '';
 
   doCheck = true;
-  enableParallelBuilding = true;
 
   meta = with lib; {
     description = "Library of exchange-correlation functionals for density-functional theory";
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index d6e8b3958e4..8c37bb0c173 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -8,19 +8,16 @@
 
 stdenv.mkDerivation rec {
   pname = "libxkbcommon";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
-    sha256 = "0in2fq2x4yhyjmcn9n5n43zsawsdh12d4sm6l57934kgb75gqb21";
+    sha256 = "1cqzd4vd5jw3ghibmdqvy90mb1h8vvazc81bxgavk6sc0b9sfcz8";
   };
 
-  patches = [
-    ./fix-cross-compilation.patch
-  ];
-
   outputs = [ "out" "dev" "doc" ];
 
+  depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config bison doxygen ]
     ++ lib.optional withWaylandSupport wayland;
   buildInputs = [ xkeyboard_config libxcb libxml2 ]
diff --git a/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch b/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch
deleted file mode 100644
index 55730554a90..00000000000
--- a/pkgs/development/libraries/libxkbcommon/fix-cross-compilation.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 47c436f..536c60b 100644
---- a/meson.build
-+++ b/meson.build
-@@ -440,13 +440,12 @@ if build_tools
-     if get_option('enable-wayland')
-         wayland_client_dep = dependency('wayland-client', version: '>=1.2.0', required: false)
-         wayland_protocols_dep = dependency('wayland-protocols', version: '>=1.12', required: false)
--        wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true)
--        if not wayland_client_dep.found() or not wayland_protocols_dep.found() or not wayland_scanner_dep.found()
-+        if not wayland_client_dep.found() or not wayland_protocols_dep.found()
-             error('''The Wayland xkbcli programs require wayland-client >= 1.2.0, wayland-protocols >= 1.7 which were not found.
- You can disable the Wayland xkbcli programs with -Denable-wayland=false.''')
-         endif
- 
--        wayland_scanner = find_program(wayland_scanner_dep.get_pkgconfig_variable('wayland_scanner'))
-+        wayland_scanner = find_program('wayland-scanner', native: true)
-         wayland_scanner_code_gen = generator(
-             wayland_scanner,
-             output: '@BASENAME@-protocol.c',
diff --git a/pkgs/development/libraries/libxlsxwriter/default.nix b/pkgs/development/libraries/libxlsxwriter/default.nix
new file mode 100644
index 00000000000..849ebcf3c86
--- /dev/null
+++ b/pkgs/development/libraries/libxlsxwriter/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, minizip
+, python3
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libxlsxwriter";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "jmcnamara";
+    repo = "libxlsxwriter";
+    rev = "RELEASE_${version}";
+    sha256 = "14c5rgx87nhzasr0j7mcfr1w7ifz0gmdiqy2xq59di5xvcdrpxpv";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.pytest
+  ];
+
+  buildInputs = [
+    minizip
+    zlib
+  ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "USE_SYSTEM_MINIZIP=1"
+  ];
+
+  doCheck = true;
+
+  checkTarget = "test";
+
+  meta = with lib; {
+    description = "C library for creating Excel XLSX files";
+    homepage = "https://libxlsxwriter.github.io/";
+    changelog = "https://github.com/jmcnamara/libxlsxwriter/blob/${src.rev}/Changes.txt";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index ddefa16c2c1..a3f7f3ef5f6 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -4,6 +4,13 @@
 , fetchurl
 , perl
 , zlib
+, groff
+, withBzip2 ? false
+, bzip2
+, withLZMA ? false
+, xz
+, withOpenssl ? false
+, openssl
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +18,7 @@ stdenv.mkDerivation rec {
   version = "1.7.3";
 
   src = fetchurl {
-    url = "https://www.nih.at/libzip/${pname}-${version}.tar.gz";
+    url = "https://libzip.org/download/${pname}-${version}.tar.gz";
     sha256 = "1k5rihiz7m1ahhjzcbq759hb9crzqkgw78pkxga118y5a32pc8hf";
   };
 
@@ -23,10 +30,13 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "man" ];
 
-  nativeBuildInputs = [ cmake perl ];
+  nativeBuildInputs = [ cmake perl groff ];
   propagatedBuildInputs = [ zlib ];
+  buildInputs = lib.optionals withLZMA [ xz ]
+    ++ lib.optionals withBzip2 [ bzip2 ]
+    ++ lib.optionals withOpenssl [ openssl ];
 
   preCheck = ''
     # regress/runtest is a generated file
@@ -34,9 +44,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://www.nih.at/libzip";
+    homepage = "https://libzip.org/";
     description = "A C library for reading, creating and modifying zip archives";
     license = licenses.bsd3;
     platforms = platforms.unix;
+    changelog = "https://github.com/nih-at/libzip/blob/v${version}/NEWS.md";
   };
 }
diff --git a/pkgs/development/libraries/lief/default.nix b/pkgs/development/libraries/lief/default.nix
index 953eee3b8bd..872327ed4b8 100644
--- a/pkgs/development/libraries/lief/default.nix
+++ b/pkgs/development/libraries/lief/default.nix
@@ -1,8 +1,64 @@
-{ lib, fetchzip }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, python
+, cmake
+}:
 
-fetchzip {
-  url = "https://github.com/lief-project/LIEF/releases/download/0.9.0/LIEF-0.9.0-Linux.tar.gz";
-  sha256 = "1c47hwd00bp4mqd4p5b6xjfl89c3wwk9ccyc3a2gk658250g2la6";
+let
+  pyEnv = python.withPackages (ps: [ ps.setuptools ]);
+in
+stdenv.mkDerivation rec {
+  pname = "lief";
+  version = "0.11.4";
+
+  src = fetchFromGitHub {
+    owner = "lief-project";
+    repo = "LIEF";
+    rev = version;
+    sha256 = "DgsTrJ2+zdXJK6CdDOan7roakaaxQiwrVeiQnzJnk0A=";
+  };
+
+  outputs = [ "out" "py" ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  # Not a propagatedBuildInput because only the $py output needs it; $out is
+  # just the library itself (e.g. C/C++ headers).
+  buildInputs = [
+    python
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildPhase = ''
+    runHook preBuild
+
+    substituteInPlace setup.py \
+      --replace 'cmake_args = []' "cmake_args = [ \"-DCMAKE_INSTALL_PREFIX=$prefix\" ]"
+    ${pyEnv.interpreter} setup.py --sdk build --parallel=$NIX_BUILD_CORES
+
+    runHook postBuild
+  '';
+
+  # I was unable to find a way to build the library itself and have it install
+  # to $out, while also installing the Python bindings to $py without building
+  # the project twice (using cmake), so this is the best we've got. It uses
+  # something called CPack to create the tarball, but it's not obvious to me
+  # *how* that happens, or how to intercept it to just get the structured
+  # library output.
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out $py/nix-support
+    echo "${python}" >> $py/nix-support/propagated-build-inputs
+    tar xf build/*.tar.gz --directory $out --strip-components 1
+    ${pyEnv.interpreter} setup.py install --skip-build --root=/ --prefix=$py
+
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Library to Instrument Executable Formats";
diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 229e82c323a..d1a68cc66c6 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -1,13 +1,15 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchFromGitLab }:
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.28";
+  version = "0.9.29";
 
-  src = fetchgit {
-    url = "https://git.openldap.org/openldap/openldap.git";
+  src = fetchFromGitLab {
+    domain = "git.openldap.org";
+    owner = "openldap";
+    repo = "openldap";
     rev = "LMDB_${version}";
-    sha256 = "012a8bs49cswsnzw7k4piis5b6dn4by85w7a7mai9i04xcjyy9as";
+    sha256 = "19zq5s1amrv1fhw1aszcn2w2xjrk080l6jj5hc9f46yiqf98jjg3";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
@@ -52,7 +54,7 @@ stdenv.mkDerivation rec {
       offering the persistence of standard disk-based databases, and is only
       limited to the size of the virtual address space.
     '';
-    homepage = "http://symas.com/mdb/";
+    homepage = "https://symas.com/lmdb/";
     maintainers = with maintainers; [ jb55 vcunat ];
     license = licenses.openldap;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/lmdbxx/default.nix b/pkgs/development/libraries/lmdbxx/default.nix
index 9b1d320678a..2d037afbe21 100644
--- a/pkgs/development/libraries/lmdbxx/default.nix
+++ b/pkgs/development/libraries/lmdbxx/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lmdbxx";
-  version = "0.9.14.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
-    owner = "drycpp";
+    owner = "hoytech";
     repo = "lmdbxx";
     rev = version;
-    sha256 = "1jmb9wg2iqag6ps3z71bh72ymbcjrb6clwlkgrqf1sy80qwvlsn6";
+    sha256 = "sha256-7CxQZdgHVvmof6wVR9Mzic6tg89XJT3Z1ICGRs7PZYo=";
   };
 
   buildInputs = [ lmdb ];
diff --git a/pkgs/development/libraries/matio/default.nix b/pkgs/development/libraries/matio/default.nix
index b6330f69e30..0b8143b6911 100644
--- a/pkgs/development/libraries/matio/default.nix
+++ b/pkgs/development/libraries/matio/default.nix
@@ -1,9 +1,9 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
-  name = "matio-1.5.19";
+  name = "matio-1.5.20";
   src = fetchurl {
     url = "mirror://sourceforge/matio/${name}.tar.gz";
-    sha256 = "0vr8c1mz1k6mz0sgh6n3scl5c3a71iqmy5fnydrgq504icj4vym4";
+    sha256 = "sha256-XR9yofUav2qc0j6qgS+xe4YQlwWQlfSMdoxINcWqJZg=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix
index 2e25399d979..90e2c9bd9a7 100644
--- a/pkgs/development/libraries/mbedtls/default.nix
+++ b/pkgs/development/libraries/mbedtls/default.nix
@@ -11,13 +11,17 @@
 
 stdenv.mkDerivation rec {
   pname = "mbedtls";
-  version = "2.16.9"; # nixpkgs-update: no auto update
+  # Auto updates are disabled due to repology listing dev releases as release
+  # versions. See
+  #  * https://github.com/NixOS/nixpkgs/pull/119838#issuecomment-822100428
+  #  * https://github.com/NixOS/nixpkgs/commit/0ee02a9d42b5fe1825b0f7cee7a9986bb4ba975d
+  version = "2.26.0"; # nixpkgs-update: no auto update
 
   src = fetchFromGitHub {
     owner = "ARMmbed";
     repo = "mbedtls";
     rev = "${pname}-${version}";
-    sha256 = "0mz7n373b8d287crwi6kq2hb8ryyi228j38h25744lqai23qj5cf";
+    sha256 = "0scwpmrgvg6q7rvqkc352d2fqlsx0aylcbyibcp1f1rsn8iiif2m";
   };
 
   nativeBuildInputs = [ cmake ninja perl python3 ];
@@ -30,6 +34,10 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [ "-DUSE_SHARED_MBEDTLS_LIBRARY=on" ];
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [
+    "-Wno-error=format"
+    "-Wno-error=format-truncation"
+  ];
 
   meta = with lib; {
     homepage = "https://tls.mbed.org/";
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 397ae4227fe..3be50b5dbd9 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -34,9 +34,8 @@ let
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
   version = "21.0.1";
   branch  = versions.major version;
-in
 
-stdenv.mkDerivation {
+self = stdenv.mkDerivation {
   pname = "mesa";
   inherit version;
 
@@ -88,7 +87,9 @@ stdenv.mkDerivation {
       "find_program('${stdenv.cc.targetPrefix}nm')"
   '';
 
-  outputs = [ "out" "dev" "drivers" ] ++ lib.optional enableOSMesa "osmesa";
+  outputs = [ "out" "dev" "drivers" ]
+    ++ lib.optional enableOSMesa "osmesa"
+    ++ lib.optional stdenv.isLinux "driversdev";
 
   # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   mesonFlags = [
@@ -181,20 +182,22 @@ stdenv.mkDerivation {
     mv -t $osmesa/lib/ $out/lib/libOSMesa*
   '';
 
-  # TODO:
-  #  check $out doesn't depend on llvm: builder failures are ignored
-  #  for some reason grep -qv '${llvmPackages.llvm}' -R "$out";
   postFixup = optionalString stdenv.isLinux ''
     # set the default search path for DRI drivers; used e.g. by X server
     substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace "$drivers" "${libglvnd.driverLink}"
+    [ -f "$dev/lib/pkgconfig/d3d.pc" ] && substituteInPlace "$dev/lib/pkgconfig/d3d.pc" --replace "$drivers" "${libglvnd.driverLink}"
 
     # remove pkgconfig files for GL/EGL; they are provided by libGL.
     rm -f $dev/lib/pkgconfig/{gl,egl}.pc
 
-    # Update search path used by pkg-config
-    for pc in $dev/lib/pkgconfig/{d3d,dri,xatracker}.pc; do
-      if [ -f "$pc" ]; then
-        substituteInPlace "$pc" --replace $out $drivers
+    # Move development files for libraries in $drivers to $driversdev
+    mkdir -p $driversdev/include
+    mv $dev/include/xa_* $dev/include/d3d* -t $driversdev/include || true
+    mkdir -p $driversdev/lib/pkgconfig
+    for pc in lib/pkgconfig/{xatracker,d3d}.pc; do
+      if [ -f "$dev/$pc" ]; then
+        substituteInPlace "$dev/$pc" --replace $out $drivers
+        mv $dev/$pc $driversdev/$pc
       fi
     done
 
@@ -212,6 +215,14 @@ stdenv.mkDerivation {
   passthru = {
     inherit libdrm;
     inherit (libglvnd) driverLink;
+
+    tests.devDoesNotDependOnLLVM = stdenv.mkDerivation {
+      name = "mesa-dev-does-not-depend-on-llvm";
+      buildCommand = ''
+        echo ${self.dev} >>$out
+      '';
+      disallowedRequisites = [ llvmPackages.llvm self.drivers ];
+    };
   };
 
   meta = {
@@ -231,4 +242,6 @@ stdenv.mkDerivation {
     platforms = platforms.mesaPlatforms;
     maintainers = with maintainers; [ primeos vcunat ]; # Help is welcome :)
   };
-}
+};
+
+in self
diff --git a/pkgs/development/libraries/mesa/stubs.nix b/pkgs/development/libraries/mesa/stubs.nix
index a53f2dc28e7..753ad1b9196 100644
--- a/pkgs/development/libraries/mesa/stubs.nix
+++ b/pkgs/development/libraries/mesa/stubs.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
 
     mkdir -p $dev/{,lib/pkgconfig,nix-support}
     echo "$out ${libglvnd} ${libglvnd.dev}" > $dev/nix-support/propagated-build-inputs
-    ln -s ${mesa.dev}/include $dev/include
+    ln -s ${libglvnd.dev}/include $dev/include
 
     genPkgConfig() {
       local name="$1"
@@ -61,9 +61,9 @@ stdenv.mkDerivation {
       cat <<EOF >$dev/lib/pkgconfig/$name.pc
     Name: $name
     Description: $lib library
-    Version: ${mesa.version}
+    Version: ${libglvnd.version}
     Libs: -L${libglvnd.out}/lib -l$lib
-    Cflags: -I${mesa.dev}/include -I${libglvnd.dev}/include
+    Cflags: -I${libglvnd.dev}/include
     EOF
     }
 
diff --git a/pkgs/development/libraries/mpfi/default.nix b/pkgs/development/libraries/mpfi/default.nix
index 399c5416d78..5ff0dcd29e7 100644
--- a/pkgs/development/libraries/mpfi/default.nix
+++ b/pkgs/development/libraries/mpfi/default.nix
@@ -1,16 +1,20 @@
-{lib, stdenv, fetchurl, mpfr}:
+{lib, stdenv, fetchurl, autoreconfHook, texinfo, mpfr}:
 stdenv.mkDerivation rec {
   pname = "mpfi";
   version = "1.5.4";
-  file_nr = "37331";
+  file_nr = "38111";
+
   src = fetchurl {
     # NOTE: the file_nr is whats important here. The actual package name (including the version)
     # is ignored. To find out the correct file_nr, go to https://gforge.inria.fr/projects/mpfi/
     # and click on Download in the section "Latest File Releases".
-    url = "https://gforge.inria.fr/frs/download.php/file/${file_nr}/mpfi-${version}.tar.bz2";
-    sha256 = "sha256-I4PUV7IIxs088uZracTOR0d7Kg2zH77AzUseuqJHGS8=";
+    url = "https://gforge.inria.fr/frs/download.php/file/${file_nr}/mpfi-${version}.tgz";
+    sha256 = "sha256-Ozk4WV1yCvF5c96vcnz8DdQcixbCCtwQOpcPSkOuOlY=";
   };
-  buildInputs = [mpfr];
+
+  nativeBuildInputs = [ autoreconfHook texinfo ];
+  buildInputs = [ mpfr ];
+
   meta = {
     inherit version;
     description = "A multiple precision interval arithmetic library based on MPFR";
diff --git a/pkgs/development/libraries/mpir/default.nix b/pkgs/development/libraries/mpir/default.nix
index 7f7df407e4e..5e68ad80fc2 100644
--- a/pkgs/development/libraries/mpir/default.nix
+++ b/pkgs/development/libraries/mpir/default.nix
@@ -7,11 +7,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ m4 which yasm ];
 
   src = fetchurl {
-    url = "http://mpir.org/mpir-${version}.tar.bz2";
+    url = "https://mpir.org/mpir-${version}.tar.bz2";
     sha256 = "1fvmhrqdjs925hzr2i8bszm50h00gwsh17p2kn2pi51zrxck9xjj";
   };
 
-  configureFlags = [ "--enable-cxx" ];
+  configureFlags = [ "--enable-cxx" "--enable-fat" ];
 
   meta = {
     inherit version;
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
     license = lib.licenses.lgpl3Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
-    downloadPage = "http://mpir.org/downloads.html";
-    homepage = "http://mpir.org/";
+    downloadPage = "https://mpir.org/downloads.html";
+    homepage = "https://mpir.org/";
     updateWalker = true;
   };
 }
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 761026440f7..05950bc6865 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.4.1";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    sha256 = "1044zil3izhb3whhfjah7w0kg5mr3hys32cjffky681d3mb3wi5n";
+    sha256 = "sha256-UKroV1p7jYuNzCAFMsuUsYC/C9AZ1D4rhwpwuER39vc=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/nanopb/default.nix b/pkgs/development/libraries/nanopb/default.nix
index e71d1c6a54c..ca078a3f9d2 100644
--- a/pkgs/development/libraries/nanopb/default.nix
+++ b/pkgs/development/libraries/nanopb/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nanopb";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0nqfi1b0szjmm1z8wd3ks64h10jblv9ip01kfggxgz6qjjfwgvq7";
+    sha256 = "0cjfkwwzi018kc0b7lia7z2jdfgibqc99mf8rvj2xq2pfapp9kf1";
   };
 
   nativeBuildInputs = [ cmake python3 python3.pkgs.wrapPython ];
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 6464679b948..86edacc6166 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -27,11 +27,11 @@ let inherit (lib) optional optionals optionalString; in
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
-  version = "1.41.0";
+  version = "1.43.0";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0h12wz72paxnj8l9vv2qfgfbmj20c6pz6xbilb7ns9zcwxwa0p34";
+    sha256 = "0qhgyphzdv72dgdfxin2xbk9623za3jwbcvhhaxixiwp6djj8vsm";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ]
diff --git a/pkgs/development/libraries/opencascade-occt/default.nix b/pkgs/development/libraries/opencascade-occt/default.nix
index 59c1f0ef7db..f2a9833d77d 100644
--- a/pkgs/development/libraries/opencascade-occt/default.nix
+++ b/pkgs/development/libraries/opencascade-occt/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencascade-occt";
-  version = "7.5.0";
+  version = "7.5.1";
   commit = "V${builtins.replaceStrings ["."] ["_"] version}";
 
   src = fetchurl {
     name = "occt-${commit}.tar.gz";
     url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
-    sha256 = "0bpzpaqki3k6i7xmhan0f1c1fr05smpcmgrp4vh572j61lwpq1r3";
+    sha256 = "sha256-1whKU+7AMVYabfs15x8MabohKonn5oM54ZEtxF93wAo=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index c9ac76b6554..15c8d46b613 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -1,54 +1,91 @@
-{ lib, stdenv
-, fetchurl, fetchFromGitHub, fetchpatch
-, cmake, pkg-config, unzip, zlib, pcre, hdf5
-, glog, boost, gflags, protobuf
+{ lib
+, stdenv
+, fetchurl
+, fetchFromGitHub
+, cmake
+, pkg-config
+, unzip
+, zlib
+, pcre
+, hdf5
+, boost
+, gflags
+, protobuf
 , config
 
-, enableJPEG      ? true, libjpeg
-, enablePNG       ? true, libpng
-, enableTIFF      ? true, libtiff
-, enableWebP      ? true, libwebp
-, enableEXR ?     !stdenv.isDarwin, openexr, ilmbase
-, enableEigen     ? true, eigen
-, enableOpenblas  ? true, openblas, blas, lapack
-, enableContrib   ? true
-
-, enableCuda      ? (config.cudaSupport or false) &&
-                    stdenv.hostPlatform.isx86_64, cudatoolkit, nvidia-optical-flow-sdk
-
-, enableUnfree    ? false
-, enableIpp       ? false
-, enablePython    ? false, pythonPackages
-, enableGtk2      ? false, gtk2
-, enableGtk3      ? false, gtk3
-, enableVtk       ? false, vtk
-, enableFfmpeg    ? false, ffmpeg_3
-, enableGStreamer ? false, gst_all_1
-, enableTesseract ? false, tesseract, leptonica
-, enableTbb       ? false, tbb
-, enableOvis      ? false, ogre
-, enableGPhoto2   ? false, libgphoto2
-, enableDC1394    ? false, libdc1394
-, enableDocs      ? false, doxygen, graphviz-nox
-
-, AVFoundation, Cocoa, VideoDecodeAcceleration, CoreMedia, MediaToolbox, bzip2
+, enableJPEG ? true
+, libjpeg
+, enablePNG ? true
+, libpng
+, enableTIFF ? true
+, libtiff
+, enableWebP ? true
+, libwebp
+, enableEXR ? !stdenv.isDarwin
+, openexr
+, ilmbase
+, enableEigen ? true
+, eigen
+, enableOpenblas ? true
+, openblas
+, enableContrib ? true
+
+, enableCuda ? (config.cudaSupport or false) && stdenv.hostPlatform.isx86_64
+, cudatoolkit
+, nvidia-optical-flow-sdk
+
+, enableUnfree ? false
+, enableIpp ? false
+, enablePython ? false
+, pythonPackages
+, enableGtk2 ? false
+, gtk2
+, enableGtk3 ? false
+, gtk3
+, enableVtk ? false
+, vtk
+, enableFfmpeg ? true
+, ffmpeg_3
+, enableGStreamer ? true
+, gst_all_1
+, enableTesseract ? false
+, tesseract
+, leptonica
+, enableTbb ? false
+, tbb
+, enableOvis ? false
+, ogre
+, enableGPhoto2 ? false
+, libgphoto2
+, enableDC1394 ? false
+, libdc1394
+, enableDocs ? false
+, doxygen
+, graphviz-nox
+
+, AVFoundation
+, Cocoa
+, VideoDecodeAcceleration
+, CoreMedia
+, MediaToolbox
+, bzip2
 }:
 
 let
-  version = "4.3.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
-    owner  = "opencv";
-    repo   = "opencv";
-    rev    = version;
-    sha256 = "1r9bq9p1x99g2y8jvj9428sgqvljz75dm5vrfsma7hh5wjhz9775";
+    owner = "opencv";
+    repo = "opencv";
+    rev = version;
+    sha256 = "sha256-pxi1VBF4txvRqspdqvCsAQ3XKzl633/o3wyOgD9wid4=";
   };
 
   contribSrc = fetchFromGitHub {
-    owner  = "opencv";
-    repo   = "opencv_contrib";
-    rev    = version;
-    sha256 = "068b4f95rlryab3mffxs2w6dnbmbhrnpsdgl007rxk4bwnz29y49";
+    owner = "opencv";
+    repo = "opencv_contrib";
+    rev = version;
+    sha256 = "sha256-iMenRTY+qeL7WRgnRuQbsHflYDakE7pWWSHeIjrg0Iw=";
   };
 
   # Contrib must be built in order to enable Tesseract support:
@@ -57,35 +94,35 @@ let
   # See opencv/3rdparty/ippicv/ippicv.cmake
   ippicv = {
     src = fetchFromGitHub {
-      owner  = "opencv";
-      repo   = "opencv_3rdparty";
-      rev    = "a56b6ac6f030c312b2dce17430eef13aed9af274";
+      owner = "opencv";
+      repo = "opencv_3rdparty";
+      rev = "a56b6ac6f030c312b2dce17430eef13aed9af274";
       sha256 = "1msbkc3zixx61rcg6a04i1bcfhw1phgsrh93glq1n80hgsk3nbjq";
     } + "/ippicv";
-    files = let name = platform : "ippicv_2019_${platform}_general_20180723.tgz"; in
+    files = let name = platform: "ippicv_2019_${platform}_general_20180723.tgz"; in
       if stdenv.hostPlatform.system == "x86_64-linux" then
-      { ${name "lnx_intel64"} = "c0bd78adb4156bbf552c1dfe90599607"; }
+        { ${name "lnx_intel64"} = "c0bd78adb4156bbf552c1dfe90599607"; }
       else if stdenv.hostPlatform.system == "i686-linux" then
-      { ${name "lnx_ia32"}    = "4f38432c30bfd6423164b7a24bbc98a0"; }
+        { ${name "lnx_ia32"} = "4f38432c30bfd6423164b7a24bbc98a0"; }
       else if stdenv.hostPlatform.system == "x86_64-darwin" then
-      { ${name "mac_intel64"} = "fe6b2bb75ae0e3f19ad3ae1a31dfa4a2"; }
+        { ${name "mac_intel64"} = "fe6b2bb75ae0e3f19ad3ae1a31dfa4a2"; }
       else
-      throw "ICV is not available for this platform (or not yet supported by this package)";
+        throw "ICV is not available for this platform (or not yet supported by this package)";
     dst = ".cache/ippicv";
   };
 
   # See opencv_contrib/modules/xfeatures2d/cmake/download_vgg.cmake
   vgg = {
     src = fetchFromGitHub {
-      owner  = "opencv";
-      repo   = "opencv_3rdparty";
-      rev    = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d";
+      owner = "opencv";
+      repo = "opencv_3rdparty";
+      rev = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d";
       sha256 = "0r9fam8dplyqqsd3qgpnnfgf9l7lj44di19rxwbm8mxiw0rlcdvy";
     };
     files = {
-      "vgg_generated_48.i"  = "e8d0dcd54d1bcfdc29203d011a797179";
-      "vgg_generated_64.i"  = "7126a5d9a8884ebca5aea5d63d677225";
-      "vgg_generated_80.i"  = "7cd47228edec52b6d82f46511af325c5";
+      "vgg_generated_48.i" = "e8d0dcd54d1bcfdc29203d011a797179";
+      "vgg_generated_64.i" = "7126a5d9a8884ebca5aea5d63d677225";
+      "vgg_generated_80.i" = "7cd47228edec52b6d82f46511af325c5";
       "vgg_generated_120.i" = "151805e03568c9f490a5e3a872777b75";
     };
     dst = ".cache/xfeatures2d/vgg";
@@ -94,19 +131,19 @@ let
   # See opencv_contrib/modules/xfeatures2d/cmake/download_boostdesc.cmake
   boostdesc = {
     src = fetchFromGitHub {
-      owner  = "opencv";
-      repo   = "opencv_3rdparty";
-      rev    = "34e4206aef44d50e6bbcd0ab06354b52e7466d26";
+      owner = "opencv";
+      repo = "opencv_3rdparty";
+      rev = "34e4206aef44d50e6bbcd0ab06354b52e7466d26";
       sha256 = "13yig1xhvgghvxspxmdidss5lqiikpjr0ddm83jsi0k85j92sn62";
     };
     files = {
-      "boostdesc_bgm.i"          = "0ea90e7a8f3f7876d450e4149c97c74f";
-      "boostdesc_bgm_bi.i"       = "232c966b13651bd0e46a1497b0852191";
-      "boostdesc_bgm_hd.i"       = "324426a24fa56ad9c5b8e3e0b3e5303e";
+      "boostdesc_bgm.i" = "0ea90e7a8f3f7876d450e4149c97c74f";
+      "boostdesc_bgm_bi.i" = "232c966b13651bd0e46a1497b0852191";
+      "boostdesc_bgm_hd.i" = "324426a24fa56ad9c5b8e3e0b3e5303e";
       "boostdesc_binboost_064.i" = "202e1b3e9fec871b04da31f7f016679f";
       "boostdesc_binboost_128.i" = "98ea99d399965c03d555cef3ea502a0b";
       "boostdesc_binboost_256.i" = "e6dcfa9f647779eb1ce446a8d759b6ea";
-      "boostdesc_lbgm.i"         = "0ae0675534aa318d9668f2a179c2a052";
+      "boostdesc_lbgm.i" = "0ae0675534aa318d9668f2a179c2a052";
     };
     dst = ".cache/xfeatures2d/boostdesc";
   };
@@ -114,9 +151,9 @@ let
   # See opencv_contrib/modules/face/CMakeLists.txt
   face = {
     src = fetchFromGitHub {
-      owner  = "opencv";
-      repo   = "opencv_3rdparty";
-      rev    = "8afa57abc8229d611c4937165d20e2a2d9fc5a12";
+      owner = "opencv";
+      repo = "opencv_3rdparty";
+      rev = "8afa57abc8229d611c4937165d20e2a2d9fc5a12";
       sha256 = "061lsvqdidq9xa2hwrcvwi9ixflr2c2lfpc8drr159g68zi8bp4v";
     };
     files = {
@@ -136,10 +173,27 @@ let
     dst = ".cache/ade";
   };
 
+  # See opencv/modules/wechat_qrcode/CMakeLists.txt
+  wechat_qrcode = {
+    src = fetchFromGitHub {
+      owner = "opencv";
+      repo = "opencv_3rdparty";
+      rev = "a8b69ccc738421293254aec5ddb38bd523503252";
+      sha256 = "sha256-/n6zHwf0Rdc4v9o4rmETzow/HTv+81DnHP+nL56XiTY=";
+    };
+    files = {
+      "detect.caffemodel" = "238e2b2d6f3c18d6c3a30de0c31e23cf";
+      "detect.prototxt" = "6fb4976b32695f9f5c6305c19f12537d";
+      "sr.caffemodel" = "cbfcd60361a73beb8c583eea7e8e6664";
+      "sr.prototxt" = "69db99927a70df953b471daaba03fbef";
+    };
+    dst = ".cache/wechat_qrcode";
+  };
+
   # See opencv/cmake/OpenCVDownload.cmake
-  installExtraFiles = extra : with lib; ''
+  installExtraFiles = extra: with lib; ''
     mkdir -p "${extra.dst}"
-  '' + concatStrings (flip mapAttrsToList extra.files (name : md5 : ''
+  '' + concatStrings (flip mapAttrsToList extra.files (name: md5: ''
     ln -s "${extra.src}/${name}" "${extra.dst}/${md5}-${name}"
   ''));
   installExtraFile = extra: ''
@@ -149,7 +203,7 @@ let
 
   opencvFlag = name: enabled: "-DWITH_${name}=${printEnabled enabled}";
 
-  printEnabled = enabled : if enabled then "ON" else "OFF";
+  printEnabled = enabled: if enabled then "ON" else "OFF";
 in
 
 stdenv.mkDerivation {
@@ -172,13 +226,15 @@ stdenv.mkDerivation {
   preConfigure =
     installExtraFile ade +
     lib.optionalString enableIpp (installExtraFiles ippicv) + (
-    lib.optionalString buildContrib ''
-      cmakeFlagsArray+=("-DOPENCV_EXTRA_MODULES_PATH=$NIX_BUILD_TOP/source/opencv_contrib")
+      lib.optionalString buildContrib ''
+        cmakeFlagsArray+=("-DOPENCV_EXTRA_MODULES_PATH=$NIX_BUILD_TOP/source/opencv_contrib")
 
-      ${installExtraFiles vgg}
-      ${installExtraFiles boostdesc}
-      ${installExtraFiles face}
-    '');
+        ${installExtraFiles vgg}
+        ${installExtraFiles boostdesc}
+        ${installExtraFiles face}
+        ${installExtraFiles wechat_qrcode}
+      ''
+    );
 
   postConfigure = ''
     [ -e modules/core/version_string.inc ]
@@ -186,7 +242,7 @@ stdenv.mkDerivation {
   '';
 
   buildInputs =
-       [ zlib pcre hdf5 glog boost gflags protobuf ]
+    [ zlib pcre hdf5 boost gflags protobuf ]
     ++ lib.optional enablePython pythonPackages.python
     ++ lib.optional enableGtk2 gtk2
     ++ lib.optional enableGtk3 gtk3
@@ -198,7 +254,7 @@ stdenv.mkDerivation {
     ++ lib.optionals enableEXR [ openexr ilmbase ]
     ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
-                     [ VideoDecodeAcceleration bzip2 ]
+      [ VideoDecodeAcceleration bzip2 ]
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
     ++ lib.optional enableOvis ogre
     ++ lib.optional enableGPhoto2 libgphoto2
@@ -274,15 +330,13 @@ stdenv.mkDerivation {
       "$out/lib/pkgconfig/opencv4.pc"
   '';
 
-  hardeningDisable = [ "bindnow" "relro" ];
-
-  passthru = lib.optionalAttrs enablePython { pythonPath = []; };
+  passthru = lib.optionalAttrs enablePython { pythonPath = [ ]; };
 
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
     license = with licenses; if enableUnfree then unfree else bsd3;
-    maintainers = with maintainers; [mdaiter basvandijk];
+    maintainers = with maintainers; [ mdaiter basvandijk ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/libraries/opencv/cmake-don-t-use-OpenCVFindOpenEXR.patch b/pkgs/development/libraries/opencv/cmake-don-t-use-OpenCVFindOpenEXR.patch
index dc80b09b646..bb398f7546b 100644
--- a/pkgs/development/libraries/opencv/cmake-don-t-use-OpenCVFindOpenEXR.patch
+++ b/pkgs/development/libraries/opencv/cmake-don-t-use-OpenCVFindOpenEXR.patch
@@ -1,40 +1,17 @@
-From 6d988c08e852379a163ecd20df8639196d84d014 Mon Sep 17 00:00:00 2001
-From: Bernardo Meurer <meurerbernardo@gmail.com>
-Date: Sun, 26 Apr 2020 14:50:25 -0700
-Subject: [PATCH] cmake: don't use OpenCVFindOpenEXR
-
-Use find_package for this.
----
- CMakeLists.txt                  |  2 ++
- cmake/OpenCVFindLibsGrfmt.cmake | 15 +++------------
- 2 files changed, 5 insertions(+), 12 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4c0b3880fc..0360469350 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -14,6 +14,8 @@ FATAL: In-source builds are not allowed.
- ")
- endif()
- 
-+# the future!
-+include(FindPkgConfig)
- 
- include(cmake/OpenCVMinDepVersions.cmake)
- 
 diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake
-index 0beaf19317..4c5e46e615 100644
+index 23a6ca6959..27e121943a 100644
 --- a/cmake/OpenCVFindLibsGrfmt.cmake
 +++ b/cmake/OpenCVFindLibsGrfmt.cmake
-@@ -227,20 +227,11 @@ endif()
+@@ -255,21 +255,12 @@ endif()
  # --- OpenEXR (optional) ---
  if(WITH_OPENEXR)
    ocv_clear_vars(HAVE_OPENEXR)
 -  if(NOT BUILD_OPENEXR)
+-    ocv_clear_internal_cache_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
 -    include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
 -  endif()
--
 +  pkg_check_modules(OPENEXR OpenEXR)
+ 
    if(OPENEXR_FOUND)
      set(HAVE_OPENEXR YES)
 -  else()
@@ -50,6 +27,3 @@ index 0beaf19317..4c5e46e615 100644
    endif()
  endif()
  
--- 
-2.26.1
-
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 46b2748cad9..2df08426368 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
+{ lib, stdenv, fetchurl, gfortran, perl, libnl
 , rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
 , libpsm2, libfabric, pmix, ucx
 
@@ -18,7 +18,7 @@
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.1.0";
+  version = "4.1.1";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = with lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-c4Zvt3CQgZtqjIXLhTljjTfWh3RVglt04onWR6Of1bU=";
+    sha256 = "1nkwq123vvmggcay48snm9qqmrh0bdzpln0l1jnp26niidvplkz2";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index fda0c71655a..13cac47793e 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -6,7 +6,7 @@
 # Used to avoid cross compiling perl, for example, in darwin bootstrap tools.
 # This will cause c_rehash to refer to perl via the environment, but otherwise
 # will produce a perfectly functional openssl binary and library.
-, withPerl ? true
+, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
 }:
 
 assert (
@@ -42,8 +42,10 @@ let
         substituteInPlace "$a" \
           --replace /bin/rm rm
       done
-    '' + optionalString (versionAtLeast version "1.1.1") ''
-      substituteInPlace config --replace '/usr/bin/env' '${coreutils}/bin/env'
+    ''
+    # config is a configure script which is not installed.
+    + optionalString (versionAtLeast version "1.1.1") ''
+      substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env'
     '' + optionalString (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isMusl) ''
       substituteInPlace crypto/async/arch/async_posix.h \
         --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \
@@ -72,14 +74,18 @@ let
       }.${stdenv.hostPlatform.system} or (
         if stdenv.hostPlatform == stdenv.buildPlatform
           then "./config"
+        else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_64
+          then "./Configure BSD-x86_64"
+        else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_32
+          then "./Configure BSD-x86" + lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") "-elf"
+        else if stdenv.hostPlatform.isBSD
+          then "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
         else if stdenv.hostPlatform.isMinGW
           then "./Configure mingw${optionalString
                                      (stdenv.hostPlatform.parsed.cpu.bits != 32)
                                      (toString stdenv.hostPlatform.parsed.cpu.bits)}"
         else if stdenv.hostPlatform.isLinux
-          then (if stdenv.hostPlatform.isx86_64
-            then "./Configure linux-x86_64"
-            else "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}")
+          then "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
         else if stdenv.hostPlatform.isiOS
           then "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross"
         else
diff --git a/pkgs/development/libraries/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index 0e5d705a1ce..331284021e3 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -1,18 +1,18 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config, doxygen, libGL, glew
-, xorg , ffmpeg_3, python3 , libjpeg, libpng, libtiff, eigen
+, xorg, ffmpeg, libjpeg, libpng, libtiff, eigen
 , Carbon ? null, Cocoa ? null
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "pangolin";
 
-  version = "2017-08-02";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "stevenlovegrove";
     repo = "Pangolin";
-    rev = "f05a8cdc4f0e32cc1664a430f1f85e60e233c407";
-    sha256 = "0pfbaarlsw7f7cmsppm7m13nz0k530wwwyczy2l9k448p3v7x9j0";
+    rev = "v${version}";
+    sha256 = "0abjajxj7lc2yajshimar4w8kf8115prsjnhy83s6jc7cbz63wj8";
   };
 
   nativeBuildInputs = [ cmake pkg-config doxygen ];
@@ -21,8 +21,7 @@ stdenv.mkDerivation {
     libGL
     glew
     xorg.libX11
-    ffmpeg_3
-    python3
+    ffmpeg
     libjpeg
     libpng
     libtiff
diff --git a/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch b/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
index c657d12f7d0..fab89c4ffd9 100644
--- a/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
+++ b/pkgs/development/libraries/pipewire/0040-alsa-profiles-use-libdir.patch
@@ -1,13 +1,13 @@
 diff --git a/meson.build b/meson.build
-index ffee41b4..f3e4ec74 100644
+index 99a4b2d1..d4a4cda7 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -53,7 +53,7 @@ endif
+@@ -55,7 +55,7 @@ endif
  
- spa_plugindir = join_paths(pipewire_libdir, spa_name)
+ spa_plugindir = pipewire_libdir / spa_name
  
--alsadatadir = join_paths(pipewire_datadir, 'alsa-card-profile', 'mixer')
-+alsadatadir = join_paths(pipewire_libdir, '..', 'share', 'alsa-card-profile', 'mixer')
+-alsadatadir = pipewire_datadir / 'alsa-card-profile' / 'mixer'
++alsadatadir = pipewire_libdir / '..' / 'share' / 'alsa-card-profile' / 'mixer'
  
- pipewire_headers_dir = join_paths(pipewire_name, 'pipewire')
+ pipewire_headers_dir = pipewire_name / 'pipewire'
  
diff --git a/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch b/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
index 4a6b21dd431..fd7d031ee0f 100644
--- a/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
+++ b/pkgs/development/libraries/pipewire/0050-pipewire-pulse-path.patch
@@ -1,8 +1,8 @@
 diff --git a/meson_options.txt b/meson_options.txt
-index ce364d93..a6c8af72 100644
+index 66791f3a..93b5e2a9 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -152,6 +152,9 @@ option('udev',
+@@ -172,6 +172,9 @@ option('udev',
  option('udevrulesdir',
         type : 'string',
         description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
@@ -13,15 +13,15 @@ index ce364d93..a6c8af72 100644
         type : 'string',
         description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)')
 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-index 0a5e5042..4a70b0b0 100644
+index aa30a86f..1edebb2d 100644
 --- a/src/daemon/systemd/user/meson.build
 +++ b/src/daemon/systemd/user/meson.build
 @@ -9,7 +9,7 @@ install_data(
  
  systemd_config = configuration_data()
- systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
--systemd_config.set('PW_PULSE_BINARY', join_paths(pipewire_bindir, 'pipewire-pulse'))
-+systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
- systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
+ systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
+-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse')
++systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
+ systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
  
  configure_file(input : 'pipewire.service.in',
diff --git a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
index a4fb8b41e7a..be6683c3e7b 100644
--- a/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
+++ b/pkgs/development/libraries/pipewire/0055-pipewire-media-session-path.patch
@@ -1,8 +1,8 @@
 diff --git a/meson_options.txt b/meson_options.txt
-index e2a1e028..310029f2 100644
+index 93b5e2a9..1b915ac3 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -10,6 +10,9 @@ option('media-session',
+@@ -13,6 +13,9 @@ option('media-session',
         description: 'Build and install pipewire-media-session',
         type: 'feature',
         value: 'auto')
@@ -13,15 +13,15 @@ index e2a1e028..310029f2 100644
         description: 'Build manpages',
         type: 'feature',
 diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
-index 5c4d1af0..7296220f 100644
+index 1edebb2d..251270eb 100644
 --- a/src/daemon/systemd/user/meson.build
 +++ b/src/daemon/systemd/user/meson.build
 @@ -10,7 +10,7 @@ install_data(
  systemd_config = configuration_data()
- systemd_config.set('PW_BINARY', join_paths(pipewire_bindir, 'pipewire'))
- systemd_config.set('PW_PULSE_BINARY', join_paths(get_option('pipewire_pulse_prefix'), 'bin/pipewire-pulse'))
--systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(pipewire_bindir, 'pipewire-media-session'))
-+systemd_config.set('PW_MEDIA_SESSION_BINARY', join_paths(get_option('media-session-prefix'), 'bin/pipewire-media-session'))
-
+ systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
+ systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
+-systemd_config.set('PW_MEDIA_SESSION_BINARY', pipewire_bindir / 'pipewire-media-session')
++systemd_config.set('PW_MEDIA_SESSION_BINARY', get_option('media-session-prefix') / 'bin/pipewire-media-session')
+ 
  configure_file(input : 'pipewire.service.in',
                 output : 'pipewire.service',
diff --git a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
index cb695fa398c..926de306254 100644
--- a/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
+++ b/pkgs/development/libraries/pipewire/0070-installed-tests-path.patch
@@ -1,23 +1,23 @@
 diff --git a/meson.build b/meson.build
-index 97d4d939..b17358e5 100644
+index d4a4cda7..a27569bd 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -353,8 +353,8 @@ libinotify_dep = (build_machine.system() == 'freebsd'
-
+ 
  alsa_dep = dependency('alsa', version : '>=1.1.7', required: get_option('pipewire-alsa'))
-
--installed_tests_metadir = join_paths(pipewire_datadir, 'installed-tests', pipewire_name)
--installed_tests_execdir = join_paths(pipewire_libexecdir, 'installed-tests', pipewire_name)
-+installed_tests_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', pipewire_name)
-+installed_tests_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', pipewire_name)
+ 
+-installed_tests_metadir = pipewire_datadir / 'installed-tests' / pipewire_name
+-installed_tests_execdir = pipewire_libexecdir / 'installed-tests' / pipewire_name
++installed_tests_metadir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / pipewire_name
++installed_tests_execdir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / pipewire_name
  installed_tests_enabled = not get_option('installed_tests').disabled()
  installed_tests_template = files('template.test.in')
-
+ 
 diff --git a/meson_options.txt b/meson_options.txt
-index fba0d647..8c6106cd 100644
+index 1b915ac3..85beb86a 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -26,6 +26,9 @@ option('installed_tests',
+@@ -29,6 +29,9 @@ option('installed_tests',
         description: 'Install manual and automated test executables',
         type: 'feature',
         value: 'disabled')
diff --git a/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch b/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
index ad1ae93684b..b92e2818ea0 100644
--- a/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
+++ b/pkgs/development/libraries/pipewire/0080-pipewire-config-dir.patch
@@ -1,30 +1,30 @@
 diff --git a/meson.build b/meson.build
-index 0073eb13..0ffc6863 100644
+index a27569bd..fcf18344 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -34,7 +34,10 @@ pipewire_libexecdir = join_paths(prefix, get_option('libexecdir'))
- pipewire_localedir = join_paths(prefix, get_option('localedir'))
- pipewire_sysconfdir = join_paths(prefix, get_option('sysconfdir'))
+@@ -36,7 +36,10 @@ pipewire_libexecdir = prefix / get_option('libexecdir')
+ pipewire_localedir = prefix / get_option('localedir')
+ pipewire_sysconfdir = prefix / get_option('sysconfdir')
  
--pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
+-pipewire_configdir = pipewire_sysconfdir / 'pipewire'
 +pipewire_configdir = get_option('pipewire_config_dir')
 +if pipewire_configdir == ''
-+  pipewire_configdir = join_paths(pipewire_sysconfdir, 'pipewire')
++  pipewire_configdir = pipewire_sysconfdir / 'pipewire'
 +endif
- modules_install_dir = join_paths(pipewire_libdir, pipewire_name)
+ modules_install_dir = pipewire_libdir / pipewire_name
  
  if host_machine.system() == 'linux'
 diff --git a/meson_options.txt b/meson_options.txt
-index 4b9e46b8..8c301459 100644
+index 85beb86a..372e8faa 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -56,6 +56,9 @@ option('pipewire-pulseaudio',
- option('libpulse-path',
-        description: 'Where to install the libpulse.so library',
+@@ -67,6 +67,9 @@ option('jack-devel',
+ option('libjack-path',
+        description: 'Where to install the libjack.so library',
         type: 'string')
 +option('pipewire_config_dir',
 +       type : 'string',
 +       description : 'Directory for pipewire configuration (defaults to /etc/pipewire)')
  option('spa-plugins',
         description: 'Enable spa plugins integration',
-        type: 'boolean',
+        type: 'feature',
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 47a85c36c23..133853e2362 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -42,7 +42,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.25";
+    version = "0.3.26";
 
     outputs = [
       "out"
@@ -60,7 +60,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U=";
+      sha256 = "sha256-s9+70XXMN4K3yDVwIu+L15gL6rFlpRNVQpeekZQOEec=";
     };
 
     patches = [
@@ -146,29 +146,31 @@ let
       moveToOutput "bin/pipewire-pulse" "$pulse"
     '';
 
-    passthru.tests = {
-      installedTests = nixosTests.installed-tests.pipewire;
-
-      # This ensures that all the paths used by the NixOS module are found.
-      test-paths = callPackage ./test-paths.nix {
-        paths-out = [
-          "share/alsa/alsa.conf.d/50-pipewire.conf"
-          "nix-support/etc/pipewire/client.conf.json"
-          "nix-support/etc/pipewire/client-rt.conf.json"
-          "nix-support/etc/pipewire/jack.conf.json"
-          "nix-support/etc/pipewire/pipewire.conf.json"
-          "nix-support/etc/pipewire/pipewire-pulse.conf.json"
-        ];
-        paths-out-media-session = [
-          "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
-          "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
-          "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
-          "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
-        ];
-        paths-lib = [
-          "lib/alsa-lib/libasound_module_pcm_pipewire.so"
-          "share/alsa-card-profile/mixer"
-        ];
+    passthru = {
+      updateScript = ./update.sh;
+      tests = {
+        installedTests = nixosTests.installed-tests.pipewire;
+
+        # This ensures that all the paths used by the NixOS module are found.
+        test-paths = callPackage ./test-paths.nix {
+          paths-out = [
+            "share/alsa/alsa.conf.d/50-pipewire.conf"
+            "nix-support/etc/pipewire/client.conf.json"
+            "nix-support/etc/pipewire/jack.conf.json"
+            "nix-support/etc/pipewire/pipewire.conf.json"
+            "nix-support/etc/pipewire/pipewire-pulse.conf.json"
+          ];
+          paths-out-media-session = [
+            "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
+            "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
+            "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
+            "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
+          ];
+          paths-lib = [
+            "lib/alsa-lib/libasound_module_pcm_pipewire.so"
+            "share/alsa-card-profile/mixer"
+          ];
+        };
       };
     };
 
diff --git a/pkgs/development/libraries/pipewire/test-paths.nix b/pkgs/development/libraries/pipewire/test-paths.nix
index 11d00e7c2ca..939b79686e3 100644
--- a/pkgs/development/libraries/pipewire/test-paths.nix
+++ b/pkgs/development/libraries/pipewire/test-paths.nix
@@ -1,4 +1,4 @@
-{ lib, runCommand, pipewire, paths-out, paths-lib }:
+{ lib, runCommand, pipewire, paths-out, paths-lib, paths-out-media-session }:
 
 let
   check-path = output: path: ''
diff --git a/pkgs/development/libraries/pipewire/update.sh b/pkgs/development/libraries/pipewire/update.sh
new file mode 100755
index 00000000000..6d0088c206c
--- /dev/null
+++ b/pkgs/development/libraries/pipewire/update.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix-update -i bash
+# shellcheck shell=bash
+
+set -o errexit -o pipefail -o nounset -o errtrace
+shopt -s inherit_errexit
+shopt -s nullglob
+IFS=$'\n'
+
+NIXPKGS_ROOT="$(git rev-parse --show-toplevel)"
+
+cd "$NIXPKGS_ROOT"
+nix-update pipewire
+outputs=$(nix-build . -A pipewire -A pipewire.mediaSession)
+for p in $outputs; do
+    conf_files=$(find "$p/nix-support/etc/pipewire/" -name '*.conf.json')
+    for c in $conf_files; do
+        file_name=$(basename "$c")
+        if [[ ! -e "nixos/modules/services/desktops/pipewire/$file_name" ]]; then
+            echo "New file $file_name found! Add it to the module config and passthru tests!"
+        fi
+        install -m 0644 "$c" "nixos/modules/services/desktops/pipewire/"
+    done
+done
diff --git a/pkgs/development/libraries/protobuf/3.15.nix b/pkgs/development/libraries/protobuf/3.15.nix
index 63e175d9803..661a552882e 100644
--- a/pkgs/development/libraries/protobuf/3.15.nix
+++ b/pkgs/development/libraries/protobuf/3.15.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }:
 
 callPackage ./generic-v3.nix {
-  version = "3.15.5";
-  sha256 = "1znxzy4illsr4a08642h6s83jawzrq40m6pzkp05q0cpm8hcpvda";
+  version = "3.15.7";
+  sha256 = "03fx96rwxfbmr47f1nrflvaq5kk5p3a9wms4688nbnmymyghyml0";
 }
diff --git a/pkgs/development/libraries/pupnp/default.nix b/pkgs/development/libraries/pupnp/default.nix
index de62bde1877..4b80b7ba5a7 100644
--- a/pkgs/development/libraries/pupnp/default.nix
+++ b/pkgs/development/libraries/pupnp/default.nix
@@ -6,15 +6,15 @@
 
 stdenv.mkDerivation rec {
   pname = "libupnp";
-  version = "1.14.4";
+  version = "1.14.6";
 
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
-    owner = "mrjimenez";
+    owner = "pupnp";
     repo = "pupnp";
     rev = "release-${version}";
-    sha256 = "sha256-4VuTbcEjr9Ffrowb3eOtXFU8zPNu1NXS531EOZpI07A=";
+    sha256 = "1f9861q5dicp6rx3jnp1j788xfjfaf3k4620p9r0b0k0lj2gk38c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/py3c/default.nix b/pkgs/development/libraries/py3c/default.nix
new file mode 100644
index 00000000000..2a89161ef38
--- /dev/null
+++ b/pkgs/development/libraries/py3c/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, python2, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "py3c";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "encukou";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04i2z7hrig78clc59q3i1z2hh24g7z1bfvxznlzxv00d4s57nhpi";
+  };
+
+  makeFlags = [
+    "prefix=${placeholder "out"}"
+  ];
+
+  doCheck = true;
+
+  checkInputs = [
+    python2
+    python3
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/encukou/py3c";
+    description = "Python 2/3 compatibility layer for C extensions";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ajs124 ];
+  };
+}
diff --git a/pkgs/development/libraries/qhull/default.nix b/pkgs/development/libraries/qhull/default.nix
index 78e11135311..0a6f39e672c 100644
--- a/pkgs/development/libraries/qhull/default.nix
+++ b/pkgs/development/libraries/qhull/default.nix
@@ -1,13 +1,14 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 
-stdenv.mkDerivation {
-  name = "qhull-2016.1";
+stdenv.mkDerivation rec {
+  pname = "qhull";
+  version = "2020.2";
 
   src = fetchFromGitHub {
     owner = "qhull";
     repo = "qhull";
-    rev = "5bbc75608c817b50383a0c24c3977cc09d0bbfde";
-    sha256 = "0wrgqc2mih7h8fs9v5jcn9dr56afqi9bgh2w9dcvzvzvxizr9kjj";
+    rev = version;
+    sha256 = "sha256-djUO3qzY8ch29AuhY3Bn1ajxWZ4/W70icWVrxWRAxRc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index 45cf6209ea0..3e3790ed1a4 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -118,6 +118,7 @@ let
       ./qtwebkit-darwin-no-qos-classes.patch
     ];
     qttools = [ ./qttools.patch ];
+    qtwayland = [ ./qtwayland-libdrm-build.patch ];
   };
 
   qtModule =
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch b/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch
new file mode 100644
index 00000000000..fb3d6327e45
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtwayland-libdrm-build.patch
@@ -0,0 +1,56 @@
+commit 7217ea9cf297e664be876eb82b66a1b4f157ca80
+Author: Peter Seiderer <ps.report@gmx.net>
+Date:   Fri Apr 3 21:52:30 2020 +0200
+
+    fix libdrm related configure test failure
+    
+    Fixes:
+    
+      Project ERROR: Test config.qtwayland_client.tests.dmabuf-server-buffer tries to use undeclared library 'drm'
+      Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-server-buffer tries to use undeclared library 'drm'
+      Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-client-buffer tries to use undeclared library 'drm'
+    
+    Task-number: QTBUG-83303
+    Change-Id: I3970f4e3855fcfa760493631a14adb6a16950aa9
+    Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
+    Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
+    Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+    (cherry picked from commit ca63fe81df8ac910f43539719566ed6745700c2b)
+    (cherry picked from commit 1344ca6b5a8fbc1b28727feea6d856af8bf3bc93)
+
+diff --git a/src/client/configure.json b/src/client/configure.json
+index 06213968..27c73f89 100644
+--- a/src/client/configure.json
++++ b/src/client/configure.json
+@@ -74,7 +74,8 @@
+             "label": "Linux dma-buf Buffer Sharing",
+             "type": "compile",
+             "test": "dmabuf_server_buffer",
+-            "use": "egl drm"
++            "libs": "-ldrm",
++            "use": "egl"
+         },
+         "vulkan-server-buffer": {
+             "label": "Vulkan Buffer Sharing",
+diff --git a/src/compositor/configure.json b/src/compositor/configure.json
+index 0dbb3364..73e4c1a8 100644
+--- a/src/compositor/configure.json
++++ b/src/compositor/configure.json
+@@ -80,13 +80,15 @@
+             "label": "Linux dma-buf Buffer Sharing",
+             "type": "compile",
+             "test": "dmabuf_server_buffer",
+-            "use": "egl drm"
++            "libs": "-ldrm",
++            "use": "egl"
+         },
+         "dmabuf-client-buffer": {
+             "label": "Linux Client dma-buf Buffer Sharing",
+             "type": "compile",
+             "test": "dmabuf_client_buffer",
+-            "use": "egl drm"
++            "libs": "-ldrm",
++            "use": "egl"
+         },
+         "vulkan-server-buffer": {
+             "label": "Vulkan Buffer Sharing",
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index cd3fa583303..e2ca47f45f2 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -236,6 +236,8 @@ qtModule {
     sed 's/${lib.head (lib.splitString "-" version)} /${qtCompatVersion} /' -i "$out"/lib/cmake/*/*Config.cmake
   '';
 
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = with lib; {
     description = "A web engine based on the Chromium web browser";
     maintainers = with maintainers; [ matthewbauer ];
diff --git a/pkgs/development/libraries/rapidjson/default.nix b/pkgs/development/libraries/rapidjson/default.nix
index 52a0877e77f..1211892890a 100644
--- a/pkgs/development/libraries/rapidjson/default.nix
+++ b/pkgs/development/libraries/rapidjson/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, cmake }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "rapidjson";
@@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/rapidjson/raw/48402da9f19d060ffcd40bf2b2e6987212c58b0c/f/rapidjson-1.1.0-c++20.patch";
+      sha256 = "1qm62iad1xfsixv1li7qy475xc7gc04hmi2q21qdk6l69gk7mf82";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config cmake ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix
index f7966046fa8..7a9a5a80700 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "indilib";
-  version = "1.8.9";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${version}";
-    sha256 = "sha256-W6LfrKL56K1B6srEfbNcq1MZwg7Oj8qoJkQ83ZhYhFs=";
+    sha256 = "sha256-YdVBzhz+Gim27/Js5MhEJNukoXp5eK9/dZ+JQVyls0M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
index 34ef4088713..5909a06cfb5 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchFromGitHub
 , cmake
 , cfitsio
 , libusb1
@@ -18,39 +17,54 @@
 , libdc1394
 , gpsd
 , ffmpeg
+, version
+, src
+, withFirmware ? false
+, firmware ? null
 }:
 
 stdenv.mkDerivation rec {
   pname = "indi-3rdparty";
-  version = "1.8.9";
 
-  src = fetchFromGitHub {
-    owner = "indilib";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0klvknhp7l6y2ab4vyv4jq7znk1gjl5b3709kyplm7dsh4b8bppy";
-  };
+  inherit version src;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
+    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+  ] ++ lib.optionals withFirmware [
+    firmware
+  ];
+
+  postPatch = ''
+    for f in indi-qsi/CMakeLists.txt \
+             indi-dsi/CMakeLists.txt \
+             indi-armadillo-platypus/CMakeLists.txt
+    do
+      substituteInPlace $f \
+        --replace "/lib/udev/rules.d" "lib/udev/rules.d" \
+        --replace "/etc/udev/rules.d" "lib/udev/rules.d" \
+        --replace "/lib/firmware" "lib/firmware"
+    done
+  '';
 
   cmakeFlags = [
-    "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
+    "-DINDI_DATA_DIR=share/indi"
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
     "-DRULES_INSTALL_DIR=lib/udev/rules.d"
+    # Pentax, Atik, and SX cmakelists are currently broken
+    "-DWITH_PENTAX=off"
+    "-DWITH_ATIK=off"
     "-DWITH_SX=off"
-    "-DWITH_SBIG=off"
+  ] ++ lib.optionals (!withFirmware) [
     "-DWITH_APOGEE=off"
-    "-DWITH_FISHCAMP=off"
     "-DWITH_DSI=off"
     "-DWITH_QHY=off"
     "-DWITH_ARMADILLO=off"
-    "-DWITH_PENTAX=off"
-  ];
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [
-    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
-    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+    "-DWITH_FISHCAMP=off"
+    "-DWITH_SBIG=off"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
new file mode 100644
index 00000000000..d23673ac37a
--- /dev/null
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-firmware.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, lib
+, cmake
+, cfitsio
+, libusb1
+, zlib
+, boost
+, libnova
+, curl
+, libjpeg
+, gsl
+, fftw
+, indilib
+, libgphoto2
+, libraw
+, libftdi1
+, libdc1394
+, gpsd
+, ffmpeg
+, version
+, src
+}:
+
+stdenv.mkDerivation rec {
+  pname = "indi-firmware";
+
+  inherit version src;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    indilib libnova curl cfitsio libusb1 zlib boost gsl gpsd
+    libjpeg libgphoto2 libraw libftdi1 libdc1394 ffmpeg fftw
+  ];
+
+  cmakeFlags = [
+    "-DINDI_DATA_DIR=\${CMAKE_INSTALL_PREFIX}/share/indi"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DUDEVRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DRULES_INSTALL_DIR=lib/udev/rules.d"
+    "-DFIRMWARE_INSTALL_DIR=\${CMAKE_INSTALL_PREFIX}/lib/firmware"
+    "-DCONF_DIR=etc"
+    "-DBUILD_LIBS=1"
+    "-DWITH_PENTAX=off"
+  ];
+
+  postPatch = ''
+    for f in libfishcamp/CMakeLists.txt libsbig/CMakeLists.txt
+    do
+      substituteInPlace $f --replace "/lib/firmware" "lib/firmware"
+    done
+  '';
+
+  postFixup = ''
+    rm $out/lib/udev/rules.d/99-fli.rules
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.indilib.org/";
+    description = "Third party firmware for the INDI astronomical software suite";
+    changelog = "https://github.com/indilib/indi-3rdparty/releases/tag/v${version}";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ hjones2199 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
index e52da9f2eab..50aa9fb8b4a 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -1,11 +1,30 @@
-{ callPackage, indilib, indi-3rdparty }:
+{ stdenv, lib, callPackage, fetchFromGitHub, indilib }:
 
 let
-  indi-with-drivers = ./indi-with-drivers.nix;
+  indi-version = "1.9.0";
+  indi-3rdparty-src = fetchFromGitHub {
+    owner = "indilib";
+    repo = "indi-3rdparty";
+    rev = "v${indi-version}";
+    sha256 = "sha256-5VR1MN52a0ZtaHYw4lD6LWmnvc1oHlfE5GLGbfBKvqE=";
+  };
+  indi-firmware = callPackage ./indi-firmware.nix {
+    version = indi-version;
+    src = indi-3rdparty-src;
+  };
+  indi-3rdparty = callPackage ./indi-3rdparty.nix {
+    version = indi-version;
+    src = indi-3rdparty-src;
+    withFirmware = stdenv.isx86_64;
+    firmware = indi-firmware;
+  };
 in
-callPackage indi-with-drivers {
-  pkgName = "indi-full";
+callPackage ./indi-with-drivers.nix {
+  pname = "indi-full";
+  version = indi-version;
   extraDrivers = [
     indi-3rdparty
+  ] ++ lib.optionals stdenv.isx86_64 [
+    indi-firmware
   ];
 }
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
index 27ac86ddbad..5ec1acdf21e 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-with-drivers.nix
@@ -1,7 +1,7 @@
-{ buildEnv, indilib ? indilib, extraDrivers ? null , pkgName ? "indi-with-drivers" }:
+{ buildEnv, indilib ? indilib, pname ? "indi-with-drivers", version ? null, extraDrivers ? null }:
 
 buildEnv {
-  name = pkgName;
+  name = "${pname}-${version}";
   paths = [
     indilib
   ]
diff --git a/pkgs/development/libraries/science/astronomy/wcslib/default.nix b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
index b16ba1117f4..58c2744605a 100644
--- a/pkgs/development/libraries/science/astronomy/wcslib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
@@ -2,22 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "wcslib";
-  version = "7.5";
+  version = "7.6";
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 = "1536gmcpm6pckn9xrb6j8s4pm1vryjhzvhfaj9wx3jwxcpbdy0dw";
+    sha256 = "sha256-VLuMkhZ6fxP4qnP8S4oJeFJW0smCE0Z968eigqQxMYs=";
   };
 
-  buildInputs = [ flex ];
-
-  prePatch = ''
-    substituteInPlace GNUmakefile --replace 2775 0775
-    substituteInPlace C/GNUmakefile --replace 2775 0775
-  '';
+  nativeBuildInputs = [ flex ];
 
   enableParallelBuilding = true;
 
+  outputs = [ "out" "man" ];
+
   meta = with lib; {
     homepage = "https://www.atnf.csiro.au/people/mcalabre/WCS/";
     description = "World Coordinate System library for astronomy";
diff --git a/pkgs/development/libraries/science/biology/bicpl/default.nix b/pkgs/development/libraries/science/biology/bicpl/default.nix
index 0bdcbf5a828..5cf63e34224 100644
--- a/pkgs/development/libraries/science/biology/bicpl/default.nix
+++ b/pkgs/development/libraries/science/biology/bicpl/default.nix
@@ -2,16 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "bicpl";
-  version = "unstable-2017-09-10";
-
-  owner = "BIC-MNI";
+  version = "unstable-2020-10-15";
 
   # current master is significantly ahead of most recent release, so use Git version:
   src = fetchFromGitHub {
-    inherit owner;
+    owner  = "BIC-MNI";
     repo   = pname;
-    rev    = "612a63e740fadb162fcf27ee00da6a18dec4d5a9";
-    sha256 = "1vv9gi184bkvp3f99v9xmmw1ly63ip5b09y7zdjn39g7kmwzrga7";
+    rev    = "a58af912a71a4c62014975b89ef37a8e72de3c9d";
+    sha256 = "0iw0pmr8xrifbx5l8a0xidfqbm1v8hwzqrw0lcmimxlzdihyri0g";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -23,7 +21,7 @@ stdenv.mkDerivation rec {
   # internal_volume_io.h: No such file or directory
 
   meta = with lib; {
-    homepage = "https://github.com/${owner}/${pname}";
+    homepage = "https://github.com/BIC-MNI/bicpl";
     description = "Brain Imaging Centre programming library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/biology/oobicpl/default.nix b/pkgs/development/libraries/science/biology/oobicpl/default.nix
index 626e6475ba1..7f1112311d6 100644
--- a/pkgs/development/libraries/science/biology/oobicpl/default.nix
+++ b/pkgs/development/libraries/science/biology/oobicpl/default.nix
@@ -1,28 +1,36 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libminc, bicpl, arguments, pcre-cpp }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libminc
+, bicpl
+, arguments
+, pcre-cpp }:
 
 stdenv.mkDerivation rec {
   pname = "oobicpl";
-  version = "unstable-2016-03-02";
-
-  owner = "BIC-MNI";
+  version = "unstable-2020-08-12";
 
   src = fetchFromGitHub {
-    inherit owner;
+    owner  = "BIC-MNI";
     repo   = pname;
-    rev    = "bc062a65dead2e58461f5afb37abedfa6173f10c";
-    sha256 = "05l4ml9djw17bgdnrldhcxydrzkr2f2scqlyak52ph5azj5n4zsx";
+    rev    = "a9409da8a5bb4925438f32aff577b6333faec28b";
+    sha256 = "0b4chjhr32wbb1sash8cq1jfnr7rzdq84hif8anlrjqd3l0gw357";
   };
 
   nativeBuildInputs = [ cmake ];
+
   buildInputs = [ libminc bicpl arguments pcre-cpp ];
 
-  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
-                 "-DBICPL_DIR=${bicpl}/lib"
-                 "-DARGUMENTS_DIR=${arguments}/lib"
-                 "-DOOBICPL_BUILD_SHARED_LIBS=TRUE" ];
+  cmakeFlags = [
+    "-DLIBMINC_DIR=${libminc}/lib/cmake"
+    "-DBICPL_DIR=${bicpl}/lib"
+    "-DARGUMENTS_DIR=${arguments}/lib"
+    "-DOOBICPL_BUILD_SHARED_LIBS=TRUE"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/${owner}/${pname}";
+    homepage = "https://github.com/BIC-MNI/oobicpl";
     description = "Brain Imaging Centre object-oriented programming library (and tools)";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix
index b8aac46d919..d4c7fcac978 100644
--- a/pkgs/development/libraries/science/math/cudnn/default.nix
+++ b/pkgs/development/libraries/science/math/cudnn/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, cudatoolkit_9_0, cudatoolkit_9_1, cudatoolkit_9_2, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2 }:
+{ callPackage, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2, cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2 }:
 
 let
   generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) {
@@ -6,29 +6,6 @@ let
   };
 
 in rec {
-  cudnn_cudatoolkit_9_0 = generic rec {
-    version = "7.3.0";
-    cudatoolkit = cudatoolkit_9_0;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.3.0.29.tgz";
-    sha256 = "16z4vgbcmbayk4hppz0xshgs3g07blkp4j25cxcjqyrczx1r0gs0";
-  };
-
-  cudnn_cudatoolkit_9_1 = generic rec {
-    version = "7.1.3";
-    cudatoolkit = cudatoolkit_9_1;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.1.tgz";
-    sha256 = "0a0237gpr0p63s92njai0xvxmkbailzgfsvh7n9fnz0njhvnsqfx";
-  };
-
-  cudnn_cudatoolkit_9_2 = generic rec {
-    version = "7.2.1";
-    cudatoolkit = cudatoolkit_9_2;
-    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v7.2.1.38.tgz";
-    sha256 = "1sf215wm6zgr17gs6sxfhw61b7a0qmcxiwhgy1b4nqdyxpqgay1y";
-  };
-
-  cudnn_cudatoolkit_9 = cudnn_cudatoolkit_9_2;
-
   cudnn_cudatoolkit_10_0 = generic rec {
     version = "7.4.2";
     cudatoolkit = cudatoolkit_10_0;
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index c66e4ba44ef..f464a755f6e 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -15,6 +15,8 @@
 # Select a specific optimization target (other than the default)
 # See https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt
 , target ? null
+# Select whether DYNAMIC_ARCH is enabled or not.
+, dynamicArch ? null
 , enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
@@ -25,27 +27,28 @@ let blas64_ = blas64; in
 
 let
   setTarget = x: if target == null then x else target;
+  setDynamicArch = x: if dynamicArch == null then x else dynamicArch;
 
   # To add support for a new platform, add an element to this set.
   configs = {
     armv6l-linux = {
       BINARY = 32;
       TARGET = setTarget "ARMV6";
-      DYNAMIC_ARCH = false;
+      DYNAMIC_ARCH = setDynamicArch false;
       USE_OPENMP = true;
     };
 
     armv7l-linux = {
       BINARY = 32;
       TARGET = setTarget "ARMV7";
-      DYNAMIC_ARCH = false;
+      DYNAMIC_ARCH = setDynamicArch false;
       USE_OPENMP = true;
     };
 
     aarch64-darwin = {
       BINARY = 64;
       TARGET = setTarget "VORTEX";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = false;
       MACOSX_DEPLOYMENT_TARGET = "11.0";
     };
@@ -53,21 +56,21 @@ let
     aarch64-linux = {
       BINARY = 64;
       TARGET = setTarget "ARMV8";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = true;
     };
 
     i686-linux = {
       BINARY = 32;
       TARGET = setTarget "P2";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = true;
     };
 
     x86_64-darwin = {
       BINARY = 64;
       TARGET = setTarget "ATHLON";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = false;
       MACOSX_DEPLOYMENT_TARGET = "10.7";
     };
@@ -75,14 +78,14 @@ let
     x86_64-linux = {
       BINARY = 64;
       TARGET = setTarget "ATHLON";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = !stdenv.hostPlatform.isMusl;
     };
 
     powerpc64le-linux = {
       BINARY = 64;
       TARGET = setTarget "POWER5";
-      DYNAMIC_ARCH = true;
+      DYNAMIC_ARCH = setDynamicArch true;
       USE_OPENMP = !stdenv.hostPlatform.isMusl;
     };
   };
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index e67cb1736b7..b5df83a0b90 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, plib, freeglut, xorgproto, libX11, libXext, libXi
 , libICE, libSM, libXt, libXmu, libGLU, libGL, boost, zlib, libjpeg, freealut
-, openscenegraph, openal, expat, cmake, apr
+, openscenegraph, openal, expat, cmake, apr, xz
 , curl
 }:
 let
-  version = "2020.3.6";
+  version = "2020.3.8";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,13 +13,13 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-7D7KRNIffgUr6vwbni1XwW+8GtXwM6vJZ7V6/QLDVmk=";
+    sha256 = "sha256-UXcWV9MPu7c+QlFjrhxtQ6ruAcxuKtewwphu4tt5dWc=";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ plib freeglut xorgproto libX11 libXext libXi
                   libICE libSM libXt libXmu libGLU libGL boost zlib libjpeg freealut
-                  openscenegraph openal expat apr curl ];
+                  openscenegraph openal expat apr curl xz ];
 
   meta = with lib; {
     description = "Simulation construction toolkit";
diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix
index 1eaa3398e40..12eb03b6d63 100644
--- a/pkgs/development/libraries/spice-protocol/default.nix
+++ b/pkgs/development/libraries/spice-protocol/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, meson, ninja }:
 
 stdenv.mkDerivation rec {
   pname = "spice-protocol";
-  version = "0.14.1";
+  version = "0.14.3";
 
   src = fetchurl {
-    url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2";
-    sha256 = "0ahk5hlanwhbc64r80xmchdav3ls156cvh9l68a0l22bhdhxmrkr";
+    url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.xz";
+    sha256 = "0yj8k7gcirrsf21w0q6146n5g4nzn2pqky4p90n5760m5ayfb1pr";
   };
 
+  nativeBuildInputs = [ meson ninja ];
+
   postInstall = ''
     mkdir -p $out/lib
     ln -sv ../share/pkgconfig $out/lib/pkgconfig
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index 9097d5abe54..44da759409e 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -4,13 +4,13 @@ assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "sqlcipher";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    sha256 = "0zhww6fpnfflnzp6091npz38ab6cpq75v3ghqvcj5kqg09vqm5na";
+    sha256 = "sha256-E23PTNnVZbBQtHL0YjUwHNVUA76XS8rlARBOVvX6zZw=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/libraries/sqlitecpp/default.nix b/pkgs/development/libraries/sqlitecpp/default.nix
new file mode 100644
index 00000000000..60724aaa804
--- /dev/null
+++ b/pkgs/development/libraries/sqlitecpp/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, cmake, sqlite, cppcheck, gtest }:
+
+stdenv.mkDerivation rec {
+  pname = "sqlitecpp";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "SRombauts";
+    repo = pname;
+    rev = version;
+    sha256 = "1c2yyipiqswi5sf9xmpsgw6l1illzmcpkjm56agk6kl2hay23lgr";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  checkInputs = [ cppcheck gtest ];
+  buildInputs = [ sqlite ];
+  doCheck = true;
+
+  cmakeFlags = [
+    "-DSQLITECPP_INTERNAL_SQLITE=OFF"
+    "-DSQLITECPP_BUILD_TESTS=ON"
+  ];
+
+  meta = with lib; {
+    homepage = "https://srombauts.github.io/SQLiteCpp/";
+    description = "C++ SQLite3 wrapper";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.jbedo maintainers.doronbehar ];
+  };
+}
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index fae10f2b1b4..ab769312c36 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation (rec {
     platforms = platforms.linux;
   };
 }
-  // lib.optionalAttrs stdenv.isi686 {
+  // {
     # TMP: fatal error: libtracker-sparql/tracker-sparql-enum-types.h: No such file or directory
     enableParallelBuilding = false;
   }
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index 8ef209fe805..3b6362f7396 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -10,13 +10,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "vapoursynth";
-  version = "R52";
+  version = "R53";
 
   src = fetchFromGitHub {
     owner  = "vapoursynth";
     repo   = "vapoursynth";
     rev    = version;
-    sha256 = "1krfdzc2x2vxv4nq9kiv1c09hgj525qn120ah91fw2ikq8ldvmx4";
+    sha256 = "0qcsfkpkry0cmvi60khjwvfz4fqhy23nqmn4pb9qrwll26sn9dcr";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
index dd783036f23..e6d8a98b533 100644
--- a/pkgs/development/libraries/waffle/default.nix
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -1,36 +1,34 @@
 { stdenv
 , fetchFromGitLab
 , lib
+, cmake
 , meson
 , ninja
+, bash-completion
 , libGL
-, libglvnd ? null
+, libglvnd
 , makeWrapper
 , pkg-config
 , python3
-, x11Support ? true, libxcb ? null, libX11 ? null
-, waylandSupport ? true, wayland ? null
-, useGbm ? true, mesa ? null, libudev ? null
+, x11Support ? true, libxcb, libX11
+, waylandSupport ? true, wayland, wayland-protocols
+, useGbm ? true, mesa, udev
 }:
 
-assert x11Support -> (libxcb != null && libX11 != null);
-assert waylandSupport -> wayland != null;
-assert useGbm -> (mesa != null && libudev != null);
-assert with stdenv.hostPlatform; isUnix && !isDarwin -> libglvnd != null;
-
 stdenv.mkDerivation rec {
   pname = "waffle";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mesa";
     repo = "waffle";
     rev = "v${version}";
-    sha256 = "0s8gislmhccfa04zsj1yqk97lscbbnmxirr2zm4q3p8ybmpfhpqr";
+    sha256 = "iY+dAgXutD/uDFocwd9QXjq502IOsk+3RQMA2S/CMV4=";
   };
 
   buildInputs = [
+    bash-completion
     libGL
   ] ++ lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [
     libglvnd
@@ -39,19 +37,25 @@ stdenv.mkDerivation rec {
     libxcb
   ] ++ lib.optionals waylandSupport [
     wayland
+    wayland-protocols
   ] ++ lib.optionals useGbm [
+    udev
     mesa
-    libudev
   ];
 
+  dontUseCmakeConfigure = true;
+
   nativeBuildInputs = [
+    cmake
+    makeWrapper
     meson
     ninja
-    makeWrapper
     pkg-config
     python3
   ];
 
+  PKG_CONFIG_BASH_COMPLETION_COMPLETIONSDIR= "${placeholder "out"}/share/bash-completion/completions";
+
   postInstall = ''
     wrapProgram $out/bin/wflinfo \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL libglvnd ]}
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index fb7d1972c02..07671ddebdd 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -1,16 +1,16 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
+, substituteAll
 , meson
 , pkg-config
-, substituteAll
 , ninja
-, libffi
-, libxml2
 , wayland
-, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
-, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform
+, expat
+, libxml2
+, withLibraries ? stdenv.isLinux
+, libffi
+, withDocumentation ? withLibraries && stdenv.hostPlatform == stdenv.buildPlatform
 , graphviz-nox
 , doxygen
 , libxslt
@@ -21,8 +21,9 @@
 , docbook_xml_dtd_42
 }:
 
-# Require the optional to be enabled until upstream fixes or removes the configure flag
-assert expat != null;
+# Documentation is only built when building libraries.
+assert withDocumentation -> withLibraries;
+
 let
   isCross = stdenv.buildPlatform != stdenv.hostPlatform;
 in
@@ -42,15 +43,18 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
-  separateDebugInfo = true;
-
-  mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
-
   postPatch = lib.optionalString withDocumentation ''
     patchShebangs doc/doxygen/gen-doxygen.py
   '';
 
+  outputs = [ "out" "bin" "dev" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
+  separateDebugInfo = true;
+
+  mesonFlags = [
+    "-Dlibraries=${lib.boolToString withLibraries}"
+    "-Ddocumentation=${lib.boolToString withDocumentation}"
+  ];
+
   depsBuildBuild = [
     pkg-config
   ];
@@ -71,16 +75,17 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    libffi
     expat
     libxml2
+  ] ++ lib.optionals withLibraries [
+    libffi
   ] ++ lib.optionals withDocumentation [
     docbook_xsl
     docbook_xml_dtd_45
     docbook_xml_dtd_42
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Core Wayland window system code and protocol";
     longDescription = ''
       Wayland is a project to define a protocol for a compositor to talk to its
@@ -91,9 +96,9 @@ stdenv.mkDerivation rec {
       rendering).
     '';
     homepage = "https://wayland.freedesktop.org/";
-    license = lib.licenses.mit; # Expat version
-    platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ primeos codyopel ];
+    license = licenses.mit; # Expat version
+    platforms = if withLibraries then platforms.linux else platforms.unix;
+    maintainers = with maintainers; [ primeos codyopel qyliss ];
   };
 
   passthru.version = version;
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 84cf8d4833f..84a9e2a1db7 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -36,6 +36,7 @@
 , readline
 , libGL
 , libGLU
+, mesa
 , libintl
 , libmanette
 , openjpeg
@@ -113,6 +114,7 @@ stdenv.mkDerivation rec {
     harfbuzz
     libGL
     libGLU
+    mesa # for libEGL headers
     libgcrypt
     libidn
     libintl
@@ -175,6 +177,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = {
     description = "Web content rendering engine, GTK port";
     homepage = "https://webkitgtk.org/";
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index a51de90d196..f2343e73c58 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
-, libGL, wayland-protocols, libinput, libxkbcommon, pixman
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner
+, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
 , libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   # $out for the library and $examples for the example programs (in examples):
   outputs = [ "out" "examples" ];
 
-  nativeBuildInputs = [ meson ninja pkg-config wayland ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
 
   buildInputs = [
     libGL wayland wayland-protocols libinput libxkbcommon pixman
diff --git a/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
index da60f2b27fc..b51d179f95c 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, wayland-protocols
-, pipewire, wayland, systemd, libdrm }:
+, pipewire, wayland, systemd, libdrm, iniparser, scdoc }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-wlr";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vjz0y3ib1xw25z8hl679l2p6g4zcg7b8fcd502bhmnqgwgdcsfx";
+    sha256 = "sha256-6ArUQfWx5rNdpsd8Q22MqlpxLT8GTSsymAf21zGe1KI=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ];
-  buildInputs = [ pipewire wayland systemd libdrm ];
+  buildInputs = [ pipewire wayland systemd libdrm iniparser scdoc ];
 
   mesonFlags = [
     "-Dsd-bus-provider=libsystemd"
diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix
index cbdc1a2dcf0..97fb83e4e2a 100644
--- a/pkgs/development/libraries/xine-lib/default.nix
+++ b/pkgs/development/libraries/xine-lib/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, xorg, alsaLib, libGLU, libGL, aalib
+{ lib, stdenv, fetchurl, pkg-config, xorg, alsaLib, libGLU, libGL, aalib
 , libvorbis, libtheora, speex, zlib, perl, ffmpeg_3
 , flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager
-, libmpcdec
+, libmpcdec, ncurses
 }:
 
 stdenv.mkDerivation rec {
-  name = "xine-lib-1.2.9";
+  pname = "xine-lib";
+  version = "1.2.11";
 
   src = fetchurl {
-    url = "mirror://sourceforge/xine/${name}.tar.xz";
-    sha256 = "13clir4qxl2zvsvvjd9yv3yrdhsnvcn5s7ambbbn5dzy9604xcrj";
+    url = "mirror://sourceforge/xine/xine-lib-${version}.tar.xz";
+    sha256 = "01bhq27g5zbgy6y36hl7lajz1nngf68vs4fplxgh98fx20fv4lgg";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
@@ -17,15 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext
     alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg_3 flac
-    libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec
-  ];
-
-  patches = [
-    (fetchpatch {
-      name = "0001-fix-XINE_PLUGIN_PATH-splitting.patch";
-      url = "https://sourceforge.net/p/xine/mailman/attachment/32394053-5e27-6558-f0c9-49e0da0bc3cc%40gmx.de/1/";
-      sha256 = "0nrsdn7myvjs8fl9rj6k4g1bnv0a84prsscg1q9n49gwn339v5rc";
-    })
+    libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec ncurses
   ];
 
   NIX_LDFLAGS = "-lxcb-shm";
@@ -35,9 +28,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "http://www.xine-project.org/";
+    homepage = "http://xine.sourceforge.net/home";
     description = "A high-performance, portable and reusable multimedia playback engine";
     platforms = platforms.linux;
-    license = with licenses; [ gpl2 lgpl2 ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
   };
 }
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index da8aac5229b..998550d1fee 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation (rec {
   ''
     # Non-typical naming confuses libtool which then refuses to use zlib's DLL
     # in some cases, e.g. when compiling libpng.
-  + lib.optionalString (stdenv.hostPlatform.libc == "msvcrt") ''
+  + lib.optionalString (stdenv.hostPlatform.libc == "msvcrt" && shared) ''
     ln -s zlib1.dll $out/bin/libz.dll
   '';
 
diff --git a/pkgs/development/libraries/zookeeper_mt/default.nix b/pkgs/development/libraries/zookeeper_mt/default.nix
index 978321f96e7..8b9f6b70cfe 100644
--- a/pkgs/development/libraries/zookeeper_mt/default.nix
+++ b/pkgs/development/libraries/zookeeper_mt/default.nix
@@ -14,19 +14,19 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://apache/zookeeper/${zookeeper.pname}-${version}/apache-${zookeeper.pname}-${version}.tar.gz";
-    sha512 = "16994067d460a1b6af6a71f3458c64ee32629e876a1ff6646d57be62f1a5adab57462af84074ecaded4186dd3fde035ee24cd9d578b8e5044073eb05f4ab9c3e";
+    sha512 = "90643aa0ae1b9bf1f5e137dfbcee7e3c53db15e5038d7e406e4a1c345d6a0531bf7afa2b03f99d419ebd0fe892f127a7abfe582f786034ba823e53a0a9246bfb";
   };
 
   sourceRoot = "apache-${zookeeper.pname}-${version}/zookeeper-client/zookeeper-client-c";
 
   nativeBuildInputs = [
     autoreconfHook
+    pkg-config
     jre
   ];
 
   buildInputs = [
     openssl
-    pkg-config
     zookeeper
   ];
 
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 85f39228584..07a91f96ff3 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -693,11 +693,11 @@ lua-messagepack = buildLuarocksPackage {
 };
 lua-resty-http = buildLuarocksPackage {
   pname = "lua-resty-http";
-  version = "0.15-0";
+  version = "0.16.1-0";
 
   src = fetchurl {
-    url    = mirror://luarocks/lua-resty-http-0.15-0.src.rock;
-    sha256 = "1121abcz9y8kis2wdg7i1m75y8lplk3k49v02y804bywbl2km4fz";
+    url    = "mirror://luarocks/lua-resty-http-0.16.1-0.src.rock";
+    sha256 = "0n5hiablpc0dsccs6h76zg81wc3jb4mdvyfn9lfxnhls3yqwrgkj";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
@@ -705,33 +705,35 @@ lua-resty-http = buildLuarocksPackage {
   meta = with lib; {
     homepage = "https://github.com/ledgetech/lua-resty-http";
     description = "Lua HTTP client cosocket driver for OpenResty / ngx_lua.";
+    maintainers = with maintainers; [ bbigras ];
     license.fullName = "2-clause BSD";
   };
 };
 lua-resty-jwt = buildLuarocksPackage {
   pname = "lua-resty-jwt";
-  version = "0.2.2-0";
+  version = "0.2.3-0";
 
   src = fetchurl {
-    url    = mirror://luarocks/lua-resty-jwt-0.2.2-0.src.rock;
-    sha256 = "1a4wwiwcjwgr59g2940a2h0i6n1c7xjy2px5bls3x5br4shwhswa";
+    url    = "mirror://luarocks/lua-resty-jwt-0.2.3-0.src.rock";
+    sha256 = "0s7ghldwrjnhyc205pvcvgdzrgg46qz42v449vrri0cysh8ad91y";
   };
   disabled = (luaOlder "5.1");
-  propagatedBuildInputs = [ lua ];
+  propagatedBuildInputs = [ lua lua-resty-openssl ];
 
   meta = with lib; {
     homepage = "https://github.com/cdbattags/lua-resty-jwt";
     description = "JWT for ngx_lua and LuaJIT.";
+    maintainers = with maintainers; [ bbigras ];
     license.fullName = "Apache License Version 2";
   };
 };
 lua-resty-openidc = buildLuarocksPackage {
   pname = "lua-resty-openidc";
-  version = "1.7.2-1";
+  version = "1.7.4-1";
 
   src = fetchurl {
-    url    = mirror://luarocks/lua-resty-openidc-1.7.2-1.src.rock;
-    sha256 = "01mya69r4fncfrpqh5pn2acg18q3slds8zm976qgkjby0pzwzzw7";
+    url    = "mirror://luarocks/lua-resty-openidc-1.7.4-1.src.rock";
+    sha256 = "07ny9rl8zir1c3plrbdmd2a23ysrx45qam196nhqsz118xrbds78";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua lua-resty-http lua-resty-session lua-resty-jwt ];
@@ -739,16 +741,33 @@ lua-resty-openidc = buildLuarocksPackage {
   meta = with lib; {
     homepage = "https://github.com/zmartzone/lua-resty-openidc";
     description = "A library for NGINX implementing the OpenID Connect Relying Party (RP) and the OAuth 2.0 Resource Server (RS) functionality";
+    maintainers = with maintainers; [ bbigras ];
     license.fullName = "Apache 2.0";
   };
 };
+lua-resty-openssl = buildLuarocksPackage {
+  pname = "lua-resty-openssl";
+  version = "0.7.2-1";
+
+  src = fetchurl {
+    url    = "mirror://luarocks/lua-resty-openssl-0.7.2-1.src.rock";
+    sha256 = "00z6adib31ax4givq4zrhbfxa6l99l2hhlxnjpb6rfl4gf8h82kq";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/fffonion/lua-resty-openssl";
+    description = "No summary";
+    maintainers = with maintainers; [ bbigras ];
+    license.fullName = "BSD";
+  };
+};
 lua-resty-session = buildLuarocksPackage {
   pname = "lua-resty-session";
-  version = "3.6-1";
+  version = "3.8-1";
 
   src = fetchurl {
-    url    = mirror://luarocks/lua-resty-session-3.6-1.src.rock;
-    sha256 = "1r5626x247d1vi5bzqfk11bl4d5c39h1iqj6mgndnwpnz43cag5i";
+    url    = "mirror://luarocks/lua-resty-session-3.8-1.src.rock";
+    sha256 = "1x4l6n0dnm4br4p376r8nkg53hwm6a48xkhrzhsh9fcd5xqgqvxz";
   };
   disabled = (luaOlder "5.1");
   propagatedBuildInputs = [ lua ];
@@ -756,6 +775,7 @@ lua-resty-session = buildLuarocksPackage {
   meta = with lib; {
     homepage = "https://github.com/bungle/lua-resty-session";
     description = "Session Library for OpenResty – Flexible and Secure";
+    maintainers = with maintainers; [ bbigras ];
     license.fullName = "BSD";
   };
 };
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index 5db3538563f..f528fcd8558 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -3,10 +3,10 @@
 }:
 
 { toolsVersion ? "26.1.1"
-, platformToolsVersion ? "30.0.5"
+, platformToolsVersion ? "31.0.2"
 , buildToolsVersions ? [ "30.0.3" ]
 , includeEmulator ? false
-, emulatorVersion ? "30.3.4"
+, emulatorVersion ? "30.6.3"
 , platformVersions ? []
 , includeSources ? false
 , includeSystemImages ? false
@@ -14,7 +14,8 @@
 , abiVersions ? [ "armeabi-v7a" ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
-, ndkVersion ? "22.0.7026061"
+, ndkVersion ? "22.1.7171670"
+, ndkVersions ? [ndkVersion]
 , useGoogleAPIs ? false
 , useGoogleTVAddOns ? false
 , includeExtras ? []
@@ -175,10 +176,18 @@ rec {
     }
   ) cmakeVersions;
 
-  ndk-bundle = import ./ndk-bundle {
-    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgsHostHost lib platform-tools;
-    package = packages.ndk-bundle.${ndkVersion};
-  };
+  # Creates a NDK bundle.
+  makeNdkBundle = ndkVersion:
+    import ./ndk-bundle {
+      inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgsHostHost lib platform-tools;
+      package = packages.ndk-bundle.${ndkVersion};
+    };
+
+  # All NDK bundles.
+  ndk-bundles = if includeNDK then map makeNdkBundle ndkVersions else [];
+
+  # The "default" NDK bundle.
+  ndk-bundle = if includeNDK then lib.findFirst (x: x != null) null ndk-bundles else null;
 
   google-apis = map (version:
     deployAndroidPackage {
@@ -203,6 +212,15 @@ rec {
       '') plugins}
     '';
 
+  # Function that automatically links all NDK plugins.
+  linkNdkPlugins = {name, plugins, rootName ? name}:
+    lib.optionalString (plugins != []) ''
+      mkdir -p ${rootName}
+      ${lib.concatMapStrings (plugin: ''
+        ln -s ${plugin}/libexec/android-sdk/${name} ${rootName}/${plugin.version}
+      '') plugins}
+    '';
+
   # Function that automatically links a plugin for which only one version exists
   linkPlugin = {name, plugin, check ? true}:
     lib.optionalString check ''
@@ -233,13 +251,13 @@ rec {
 
     postInstall = ''
       # Symlink all requested plugins
-
       ${linkPlugin { name = "platform-tools"; plugin = platform-tools; }}
       ${linkPlugins { name = "build-tools"; plugins = build-tools; }}
       ${linkPlugin { name = "emulator"; plugin = emulator; check = includeEmulator; }}
       ${linkPlugins { name = "platforms"; plugins = platforms; }}
       ${linkPlatformPlugins { name = "sources"; plugins = sources; check = includeSources; }}
       ${linkPlugins { name = "cmake"; plugins = cmake; }}
+      ${linkNdkPlugins { name = "ndk-bundle"; rootName = "ndk"; plugins = ndk-bundles; }}
       ${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
 
       ${lib.optionalString includeSystemImages ''
diff --git a/pkgs/development/mobile/androidenv/examples/shell.nix b/pkgs/development/mobile/androidenv/examples/shell.nix
index aa5337c9298..95f6a3bdbba 100644
--- a/pkgs/development/mobile/androidenv/examples/shell.nix
+++ b/pkgs/development/mobile/androidenv/examples/shell.nix
@@ -23,14 +23,14 @@ let
   android = {
     versions = {
       tools = "26.1.1";
-      platformTools = "30.0.5";
+      platformTools = "31.0.2";
       buildTools = "30.0.3";
-      ndk = "22.0.7026061";
-
-      # or the LTS NDK:
-      # ndk = "21.3.6528147";
-      cmake = "3.10.2";
-      emulator = "30.3.4";
+      ndk = [
+        "22.1.7171670"
+        "21.3.6528147" # LTS NDK
+      ];
+      cmake = "3.18.1";
+      emulator = "30.6.3";
     };
 
     platforms = ["23" "24" "25" "26" "27" "28" "29" "30"];
@@ -69,7 +69,7 @@ let
     emulatorVersion = android.versions.emulator;
 
     includeNDK = true;
-    ndkVersion = android.versions.ndk;
+    ndkVersions = android.versions.ndk;
     cmakeVersions = [android.versions.cmake];
 
     useGoogleAPIs = true;
@@ -130,7 +130,7 @@ pkgs.mkShell rec {
 
   shellHook = ''
     # Add cmake to the path.
-    cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}".*/)"
+    cmake_root="$(echo "$ANDROID_SDK_ROOT/cmake/${android.versions.cmake}"*/)"
     export PATH="$cmake_root/bin:$PATH"
 
     # Write out local.properties for Android Studio.
diff --git a/pkgs/development/mobile/androidenv/repo.json b/pkgs/development/mobile/androidenv/repo.json
index f3606279c5a..e8e0bf080fe 100644
--- a/pkgs/development/mobile/androidenv/repo.json
+++ b/pkgs/development/mobile/androidenv/repo.json
@@ -425,16 +425,16 @@
       "archives": [
         {
           "os": "windows",
-          "sha1": "9b3479ce8f42fdcbd487aa843a2453d5950f5fc9",
-          "size": 164505,
-          "url": "https://dl.google.com/android/repository/gvm-windows_v1_6_0.zip"
+          "sha1": "1d35ead3cdfaf6e51001455f66a2db102dd647b7",
+          "size": 167191,
+          "url": "https://dl.google.com/android/repository/gvm-windows_v1_7_0.zip"
         }
       ],
       "displayName": "Android Emulator Hypervisor Driver for AMD Processors (installer)",
       "license": "android-sdk-license",
       "name": "extras-google-Android_Emulator_Hypervisor_Driver",
       "path": "extras/google/Android_Emulator_Hypervisor_Driver",
-      "revision": "1.6.0"
+      "revision": "1.7.0"
     },
     "extras;google;admob_ads_sdk": {
       "archives": [
@@ -466,33 +466,6 @@
       "path": "extras/google/analytics_sdk_v2",
       "revision": "3"
     },
-    "extras;google;auto": {
-      "archives": [
-        {
-          "os": "linux",
-          "sha1": "202a6e1b3009a0eb815f8c672d2d5b3717de6169",
-          "size": 1346009,
-          "url": "https://dl.google.com/android/repository/desktop-head-unit-linux_r01.1.zip"
-        },
-        {
-          "os": "macosx",
-          "sha1": "8179cbb3914493ebc5eb65b731cba061582f2e84",
-          "size": 2375533,
-          "url": "https://dl.google.com/android/repository/desktop-head-unit-macosx_r01.1.zip"
-        },
-        {
-          "os": "windows",
-          "sha1": "99c4a7172d73673552119347bc24c58b47da177b",
-          "size": 2691901,
-          "url": "https://dl.google.com/android/repository/desktop-head-unit-windows_r01.1.zip"
-        }
-      ],
-      "displayName": "Android Auto Desktop Head Unit emulator",
-      "license": "android-sdk-license",
-      "name": "extras-google-auto",
-      "path": "extras/google/auto",
-      "revision": "1.1"
-    },
     "extras;google;gcm": {
       "archives": [
         {
@@ -1537,21 +1510,21 @@
           "archives": [
             {
               "os": "windows",
-              "sha1": "ef4661e49abeb64c173636012526e41ff6f39dc1",
-              "size": 1404149582,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r09-windows.zip"
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-windows.zip"
             },
             {
               "os": "macosx",
-              "sha1": "ef4661e49abeb64c173636012526e41ff6f39dc1",
-              "size": 1404149582,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r09-darwin.zip"
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-darwin.zip"
             },
             {
               "os": "linux",
-              "sha1": "ef4661e49abeb64c173636012526e41ff6f39dc1",
-              "size": 1404149582,
-              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r09-linux.zip"
+              "sha1": "ead1babced6bdfaa8e641faeb6ed115ca603c4a9",
+              "size": 1404405641,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-30_r10-linux.zip"
             }
           ],
           "displayName": "Google Play Intel x86 Atom_64 System Image",
@@ -1561,6 +1534,58 @@
           "revision": "30-google_apis_playstore-x86_64"
         }
       }
+    },
+    "S": {
+      "google_apis_playstore": {
+        "arm64-v8a": {
+          "archives": [
+            {
+              "os": "macosx",
+              "sha1": "528e302e9966e8320d1c2bdc8235762fe4a9e733",
+              "size": 1333046412,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-S_r03-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "528e302e9966e8320d1c2bdc8235762fe4a9e733",
+              "size": 1333046412,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/arm64-v8a-S_r03-linux.zip"
+            }
+          ],
+          "displayName": "Google Play ARM 64 v8a System Image",
+          "license": "android-sdk-arm-dbt-license",
+          "name": "system-image-S-google_apis_playstore-arm64-v8a",
+          "path": "system-images/android-S/google_apis_playstore/arm64-v8a",
+          "revision": "S-google_apis_playstore-arm64-v8a"
+        },
+        "x86_64": {
+          "archives": [
+            {
+              "os": "windows",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-windows.zip"
+            },
+            {
+              "os": "macosx",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-darwin.zip"
+            },
+            {
+              "os": "linux",
+              "sha1": "093e0537cb18b25d8399a1af3ec955d2085f15ff",
+              "size": 1384401947,
+              "url": "https://dl.google.com/android/repository/sys-img/google_apis_playstore/x86_64-S_r03-linux.zip"
+            }
+          ],
+          "displayName": "Google Play Intel x86 Atom_64 System Image",
+          "license": "android-sdk-preview-license",
+          "name": "system-image-S-google_apis_playstore-x86_64",
+          "path": "system-images/android-S/google_apis_playstore/x86_64",
+          "revision": "S-google_apis_playstore-x86_64"
+        }
+      }
     }
   },
   "licenses": {
@@ -3075,6 +3100,33 @@
         "name": "build-tools",
         "path": "build-tools/30.0.3",
         "revision": "30.0.3"
+      },
+      "31.0.0-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "e75dfb7a975809ba0ca0d25c2b82f7fd56444a4b",
+            "size": 53224980,
+            "url": "https://dl.google.com/android/repository/012061446cfd98341585d0d07401d0bd1a4c30f6.build-tools_r31-rc3-macosx.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "9d9ce209353c9046abe16285d58ef893c4b42221",
+            "size": 57592553,
+            "url": "https://dl.google.com/android/repository/41966dc138d44a3e3797b92fb68bf70552011d5d.build-tools_r31-rc3-windows.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "6859f11348d3984afbfcc74984802bd2e31cc0e2",
+            "size": 54724181,
+            "url": "https://dl.google.com/android/repository/build-tools_r31-rc3-linux.zip"
+          }
+        ],
+        "displayName": "Android SDK Build-Tools 31-rc3",
+        "license": "android-sdk-preview-license",
+        "name": "build-tools",
+        "path": "build-tools/31.0.0-rc3",
+        "revision": "31.0.0-rc3"
       }
     },
     "cmake": {
@@ -3109,14 +3161,14 @@
         "archives": [
           {
             "os": "windows",
-            "sha1": "80916762df6955f431743066e3568ae65b1b2b2f",
-            "size": 14677038,
+            "sha1": "63723e9657a3ce1fc3ae078229c6199af80b76bd",
+            "size": 14676950,
             "url": "https://dl.google.com/android/repository/7c386a739f915f5bd60051f2572c24782388e807.cmake-3.18.1-windows.zip"
           },
           {
             "os": "macosx",
-            "sha1": "1580deb8fb5d705aefb028413dad1a3a129891fe",
-            "size": 18505815,
+            "sha1": "809fdc8e14c745c6df4e506cc2157910f50b9cd9",
+            "size": 18505220,
             "url": "https://dl.google.com/android/repository/ba34c321f92f6e6fd696c8354c262c122f56abf8.cmake-3.18.1-darwin.zip"
           },
           {
@@ -3127,7 +3179,7 @@
           }
         ],
         "displayName": "CMake 3.18.1",
-        "license": "android-sdk-preview-license",
+        "license": "android-sdk-license",
         "name": "cmake",
         "path": "cmake/3.18.1",
         "revision": "3.18.1"
@@ -3198,8 +3250,8 @@
           },
           {
             "os": "macosx",
-            "sha1": "a69c4493c4c919698989484bf0ea684550ec5217",
-            "size": 86522172,
+            "sha1": "d45816955198c4dfd652584f4c0f1b0e86efb1b7",
+            "size": 86521848,
             "url": "https://dl.google.com/android/repository/commandlinetools-mac-6514223_latest.zip"
           },
           {
@@ -3325,74 +3377,59 @@
       }
     },
     "emulator": {
-      "28.0.25": {
-        "archives": [
-          {
-            "os": "windows",
-            "sha1": "6004fd05db29f8088ec89ba85c273c0bf86ef0be",
-            "size": 372563893,
-            "url": "https://dl.google.com/android/repository/emulator-windows-5395263.zip"
-          }
-        ],
-        "displayName": "Android Emulator",
-        "license": "android-sdk-license",
-        "name": "emulator",
-        "path": "emulator",
-        "revision": "28.0.25"
-      },
-      "30.2.6": {
+      "30.5.5": {
         "archives": [
           {
             "os": "macosx",
-            "sha1": "60cc4cfe372b3189679e1e08c929ff2fb793f3f6",
-            "size": 292634405,
-            "url": "https://dl.google.com/android/repository/emulator-darwin-6962233.zip"
+            "sha1": "90f8a9942253db75ab4d13f791377e9739a88617",
+            "size": 300476485,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-7285888.zip"
           },
           {
             "os": "linux",
-            "sha1": "751044f953541b70a656d77343f6b0aac1153e24",
-            "size": 262303903,
-            "url": "https://dl.google.com/android/repository/emulator-linux-6962233.zip"
+            "sha1": "ccdee1aa99e4ec39f5a762d6912682ac248b92f0",
+            "size": 272500365,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-7285888.zip"
           },
           {
             "os": "windows",
-            "sha1": "daa448bc56199b6beeaecf5f796d26c65e5a5fb8",
-            "size": 258566662,
-            "url": "https://dl.google.com/android/repository/emulator-windows-6962233.zip"
+            "sha1": "84c3105ba1a3a94963e1f99b3f706d0231948fc9",
+            "size": 324371999,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-7285888.zip"
           }
         ],
         "displayName": "Android Emulator",
         "license": "android-sdk-license",
         "name": "emulator",
         "path": "emulator",
-        "revision": "30.2.6"
+        "revision": "30.5.5"
       },
-      "30.3.4": {
+      "30.6.3": {
         "archives": [
           {
             "os": "macosx",
-            "sha1": "7c456b3946a89d8543a070d9f643f3fe87283d68",
-            "size": 295125219,
-            "url": "https://dl.google.com/android/repository/emulator-darwin-7020230.zip"
+            "sha1": "66c9b788de49548d0faab052274f97b042f7241d",
+            "size": 308984491,
+            "url": "https://dl.google.com/android/repository/emulator-darwin_x64-7266284.zip"
           },
           {
             "os": "linux",
-            "sha1": "5285e71825453c83ad951b55a7a7d917a667221a",
-            "size": 265877671,
-            "url": "https://dl.google.com/android/repository/emulator-linux-7020230.zip"
+            "sha1": "ecd9b55fe4784b6c8683faa4b1d2c951b8929154",
+            "size": 272243636,
+            "url": "https://dl.google.com/android/repository/emulator-linux_x64-7266284.zip"
           },
           {
             "os": "windows",
-            "sha1": "918b6236a57d425b7a95495cd76a2cf1aaa98560",
-            "size": 320221036,
-            "url": "https://dl.google.com/android/repository/emulator-windows-7020230.zip"
+            "sha1": "5736749dc46ad950ec84e8275dfde2606d3e8a80",
+            "size": 324657514,
+            "url": "https://dl.google.com/android/repository/emulator-windows_x64-7266284.zip"
           }
         ],
         "displayName": "Android Emulator",
         "license": "android-sdk-preview-license",
         "name": "emulator",
         "path": "emulator",
-        "revision": "30.3.4"
+        "revision": "30.6.3"
       }
     },
     "extras": {
@@ -3911,6 +3948,33 @@
         "path": "ndk/21.3.6528147",
         "revision": "21.3.6528147"
       },
+      "21.4.7075529": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3f15c23a1c247ad17c7c271806848dbd40434738",
+            "size": 1042617180,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9",
+            "size": 1190670072,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fc44fea8bb3f5a6789821f40f41dce2d2cd5dc30",
+            "size": 1109665123,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 21.4.7075529",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/21.4.7075529",
+        "revision": "21.4.7075529"
+      },
       "22.0.6917172-rc1": {
         "archives": [
           {
@@ -3964,6 +4028,114 @@
         "name": "ndk",
         "path": "ndk/22.0.7026061",
         "revision": "22.0.7026061"
+      },
+      "22.1.7171670": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "dc80e8a2cfcb28db74c1931d42c652e9d17ff2c3",
+            "size": 1049337733,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9ece64c7f19763dd67320d512794969930fce9dc",
+            "size": 1148198368,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "96ba1a049303cf6bf3ee84cfd64d6bcd43486a50",
+            "size": 1082301775,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 22.1.7171670",
+        "license": "android-sdk-license",
+        "name": "ndk",
+        "path": "ndk/22.1.7171670",
+        "revision": "22.1.7171670"
+      },
+      "23.0.7123448-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "708ebbceb719c43a3165503ea82fb107d823ad54",
+            "size": 721278316,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "1340ed20f27fcb184ea814ae63e0f3cd75890342",
+            "size": 804392699,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c056900896129d3dd4eb953a53a8961d9853aa20",
+            "size": 749304589,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7123448",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7123448",
+        "revision": "23.0.7123448-rc1"
+      },
+      "23.0.7196353-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "454fd0c1e8385896ad465d7cfd653e28fbf3523f",
+            "size": 674507658,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "290e8c39bb9732ac8784855e1f22342eb488228e",
+            "size": 705747711,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "00194ae44ce90f2052ab8e42f1a11a0db8d50c2a",
+            "size": 747953762,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7196353",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7196353",
+        "revision": "23.0.7196353-rc2"
+      },
+      "23.0.7272597-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3b977f0f8e0fa2d6777fae6b1d37aebfc075ab56",
+            "size": 695243724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "2298465ef13dab0c527b9cf6ef892b1ec6461fb4",
+            "size": 724828157,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8c10a51f50f4f12ccc839dcb4bd8107133024c2f",
+            "size": 785932724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK (Side by side) 23.0.7272597",
+        "license": "android-sdk-preview-license",
+        "name": "ndk",
+        "path": "ndk/23.0.7272597",
+        "revision": "23.0.7272597-rc3"
       }
     },
     "ndk-bundle": {
@@ -4426,6 +4598,33 @@
         "path": "ndk-bundle",
         "revision": "21.3.6528147"
       },
+      "21.4.7075529": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3f15c23a1c247ad17c7c271806848dbd40434738",
+            "size": 1042617180,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9",
+            "size": 1190670072,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "fc44fea8bb3f5a6789821f40f41dce2d2cd5dc30",
+            "size": 1109665123,
+            "url": "https://dl.google.com/android/repository/android-ndk-r21e-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "21.4.7075529"
+      },
       "22.0.6917172-rc1": {
         "archives": [
           {
@@ -4479,6 +4678,114 @@
         "name": "ndk-bundle",
         "path": "ndk-bundle",
         "revision": "22.0.7026061"
+      },
+      "22.1.7171670": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "dc80e8a2cfcb28db74c1931d42c652e9d17ff2c3",
+            "size": 1049337733,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "9ece64c7f19763dd67320d512794969930fce9dc",
+            "size": 1148198368,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "96ba1a049303cf6bf3ee84cfd64d6bcd43486a50",
+            "size": 1082301775,
+            "url": "https://dl.google.com/android/repository/android-ndk-r22b-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "22.1.7171670"
+      },
+      "23.0.7123448-rc1": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "708ebbceb719c43a3165503ea82fb107d823ad54",
+            "size": 721278316,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "1340ed20f27fcb184ea814ae63e0f3cd75890342",
+            "size": 804392699,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "c056900896129d3dd4eb953a53a8961d9853aa20",
+            "size": 749304589,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta1-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7123448-rc1"
+      },
+      "23.0.7196353-rc2": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "454fd0c1e8385896ad465d7cfd653e28fbf3523f",
+            "size": 674507658,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "290e8c39bb9732ac8784855e1f22342eb488228e",
+            "size": 705747711,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "00194ae44ce90f2052ab8e42f1a11a0db8d50c2a",
+            "size": 747953762,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta2-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7196353-rc2"
+      },
+      "23.0.7272597-rc3": {
+        "archives": [
+          {
+            "os": "macosx",
+            "sha1": "3b977f0f8e0fa2d6777fae6b1d37aebfc075ab56",
+            "size": 695243724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-darwin-x86_64.zip"
+          },
+          {
+            "os": "linux",
+            "sha1": "2298465ef13dab0c527b9cf6ef892b1ec6461fb4",
+            "size": 724828157,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-linux-x86_64.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "8c10a51f50f4f12ccc839dcb4bd8107133024c2f",
+            "size": 785932724,
+            "url": "https://dl.google.com/android/repository/android-ndk-r23-beta3-windows-x86_64.zip"
+          }
+        ],
+        "displayName": "NDK",
+        "license": "android-sdk-preview-license",
+        "name": "ndk-bundle",
+        "path": "ndk-bundle",
+        "revision": "23.0.7272597-rc3"
       }
     },
     "patcher": {
@@ -4499,32 +4806,32 @@
       }
     },
     "platform-tools": {
-      "30.0.5": {
+      "31.0.2": {
         "archives": [
           {
             "os": "macosx",
-            "sha1": "6f77800c35f27dc8e014a214e656aae17c7ea2d0",
-            "size": 13311295,
-            "url": "https://dl.google.com/android/repository/eabcd8b4b7ab518c6af9c941af8494072f17ec4b.platform-tools_r30.0.5-darwin.zip"
+            "sha1": "78937049851e1db90317612c6b831759f56fc86d",
+            "size": 13829393,
+            "url": "https://dl.google.com/android/repository/42b081e1e068bb936179551684cdcb30315e245c.platform-tools_r31.0.2-darwin.zip"
           },
           {
             "os": "linux",
-            "sha1": "ba07433b8e34c2a51c250033abcd1442a28d0863",
-            "size": 13338136,
-            "url": "https://dl.google.com/android/repository/platform-tools_r30.0.5-linux.zip"
+            "sha1": "ff02a9d8c6fa9687e1207fc0c4b84033925d452d",
+            "size": 13876419,
+            "url": "https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip"
           },
           {
             "os": "windows",
-            "sha1": "e66c951841f78f225e36cfae74e81712a704a37a",
-            "size": 12328924,
-            "url": "https://dl.google.com/android/repository/platform-tools_r30.0.5-windows.zip"
+            "sha1": "9cc0f642a66706a978214395b85c8e8228c24f2f",
+            "size": 12537668,
+            "url": "https://dl.google.com/android/repository/platform-tools_r31.0.2-windows.zip"
           }
         ],
         "displayName": "Android SDK Platform-Tools",
         "license": "android-sdk-license",
         "name": "platform-tools",
         "path": "platform-tools",
-        "revision": "30.0.5"
+        "revision": "31.0.2"
       }
     },
     "platforms": {
@@ -5022,35 +5329,77 @@
         "name": "platforms",
         "path": "platforms/android-9",
         "revision": "9"
+      },
+      "S": {
+        "archives": [
+          {
+            "os": "all",
+            "sha1": "3aee3ad760dc7becf657d6421629fe360215f92e",
+            "size": 56206479,
+            "url": "https://dl.google.com/android/repository/platform-S_r03.zip"
+          }
+        ],
+        "displayName": "Android SDK Platform S",
+        "license": "android-sdk-license",
+        "name": "platforms",
+        "path": "platforms/android-S",
+        "revision": "S"
       }
     },
     "skiaparser": {
-      "5": {
+      "2": {
+        "archives": [
+          {
+            "os": "linux",
+            "sha1": "2703a570224a5ced1f73eb3efbdb3192a1ecec81",
+            "size": 6681896,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-linux.zip"
+          },
+          {
+            "os": "macosx",
+            "sha1": "ecf8794beccf578d4130bb9f7f2c7fa0c40c62c2",
+            "size": 7340904,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-mac.zip"
+          },
+          {
+            "os": "windows",
+            "sha1": "84c28480ca057e48e8d2fed0ae8f52fc21aa7e61",
+            "size": 6450856,
+            "url": "https://dl.google.com/android/repository/skiaparser-7248848-win.zip"
+          }
+        ],
+        "displayName": "Layout Inspector image server for API S",
+        "license": "android-sdk-license",
+        "name": "skiaparser",
+        "path": "skiaparser/2",
+        "revision": "2"
+      },
+      "6": {
         "archives": [
           {
             "os": "linux",
-            "sha1": "b4ac0f553c2b582fd4e1896f46e2021b9da9d19b",
-            "size": 6234850,
-            "url": "https://dl.google.com/android/repository/skiaparser-6923996-linux.zip"
+            "sha1": "78af2cd3e4168af80c16d7686536baa318e10cc4",
+            "size": 6323164,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-linux.zip"
           },
           {
             "os": "macosx",
-            "sha1": "6d4bafe363b8536c9c3da51fac6f4b16c5685359",
-            "size": 6297430,
-            "url": "https://dl.google.com/android/repository/skiaparser-6923996-mac.zip"
+            "sha1": "73aa4e3b52177cf7d4cf956a74311e0097987bb4",
+            "size": 6561072,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-mac.zip"
           },
           {
             "os": "windows",
-            "sha1": "2aafef23d600d05467e645cd1420e8c7e5a5dad3",
-            "size": 6008442,
-            "url": "https://dl.google.com/android/repository/skiaparser-6923996-win.zip"
+            "sha1": "28dde025a70a0f4819cf195c1cb6e0e2b4bf4514",
+            "size": 6059180,
+            "url": "https://dl.google.com/android/repository/skiaparser-7083912-win.zip"
           }
         ],
         "displayName": "Layout Inspector image server for API 29-30",
         "license": "android-sdk-license",
         "name": "skiaparser",
         "path": "skiaparser/1",
-        "revision": "5"
+        "revision": "6"
       }
     },
     "sources": {
diff --git a/pkgs/development/mobile/gomobile/default.nix b/pkgs/development/mobile/gomobile/default.nix
new file mode 100644
index 00000000000..17b4e2fb3f6
--- /dev/null
+++ b/pkgs/development/mobile/gomobile/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchgit, buildGoModule, zlib, makeWrapper, xcodeenv, androidenv
+, xcodeWrapperArgs ? { }
+, xcodeWrapper ? xcodeenv.composeXcodeWrapper xcodeWrapperArgs
+, androidPkgs ? androidenv.composeAndroidPackages {
+    includeNDK = true;
+    ndkVersion = "21.3.6528147"; # WARNING: 22.0.7026061 is broken.
+  } }:
+
+buildGoModule {
+  pname = "gomobile";
+  version = "unstable-2020-06-22";
+
+  vendorSha256 = "1n1338vqkc1n8cy94501n7jn3qbr28q9d9zxnq2b4rxsqjfc9l94";
+
+  src = fetchgit {
+    # WARNING: Next commit removes support for ARM 32 bit builds for iOS
+    rev = "33b80540585f2b31e503da24d6b2a02de3c53ff5";
+    name = "gomobile";
+    url = "https://go.googlesource.com/mobile";
+    sha256 = "0c9map2vrv34wmaycsv71k4day3b0z5p16yzxmlp8amvqb38zwlm";
+  };
+
+  subPackages = [ "bind" "cmd/gobind" "cmd/gomobile" ];
+
+  # Fails with: go: cannot find GOROOT directory
+  doCheck = false;
+
+  patches = [ ./resolve-nix-android-sdk.patch ];
+
+  nativeBuildInputs = [ makeWrapper ]
+    ++ lib.optionals stdenv.isDarwin [ xcodeWrapper ];
+
+  # Prevent a non-deterministic temporary directory from polluting the resulting object files
+  postPatch = ''
+    substituteInPlace cmd/gomobile/env.go --replace \
+      'tmpdir, err = ioutil.TempDir("", "gomobile-work-")' \
+      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "gomobile-work")' \
+      --replace '"io/ioutil"' ""
+    substituteInPlace cmd/gomobile/init.go --replace \
+      'tmpdir, err = ioutil.TempDir(gomobilepath, "work-")' \
+      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "work")'
+  '';
+
+  # Necessary for GOPATH when using gomobile.
+  postInstall = ''
+    mkdir -p $out/src/golang.org/x
+    ln -s $src $out/src/golang.org/x/mobile
+    wrapProgram $out/bin/gomobile \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}" \
+      --prefix PATH : "${androidPkgs.androidsdk}/bin" \
+      --set ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk" \
+      --set GOPATH $out
+  '';
+
+  meta = with lib; {
+    description = "A tool for building and running mobile apps written in Go";
+    homepage = "https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jakubgs ];
+  };
+}
diff --git a/pkgs/development/mobile/gomobile/resolve-nix-android-sdk.patch b/pkgs/development/mobile/gomobile/resolve-nix-android-sdk.patch
new file mode 100644
index 00000000000..cc143e3a447
--- /dev/null
+++ b/pkgs/development/mobile/gomobile/resolve-nix-android-sdk.patch
@@ -0,0 +1,15 @@
+diff --git a/cmd/gomobile/bind_androidapp.go b/cmd/gomobile/bind_androidapp.go
+index 3b01adc..76216fa 100644
+--- a/cmd/gomobile/bind_androidapp.go
++++ b/cmd/gomobile/bind_androidapp.go
+@@ -372,6 +372,10 @@ func androidAPIPath() (string, error) {
+ 	var apiVer int
+ 	for _, fi := range fis {
+ 		name := fi.Name()
++		// Resolve symlinked directories (this is how the Nix Android SDK package is built)
++		if fi2, err := os.Stat(filepath.Join(sdkDir.Name(), name)); err == nil {
++			fi = fi2
++		}
+ 		if !fi.IsDir() || !strings.HasPrefix(name, "android-") {
+ 			continue
+ 		}
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 2023cbfbfa0..ff9b4747e68 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -13,6 +13,19 @@ let
         export NG_CLI_ANALYTICS=false
       '';
     };
+
+    aws-azure-login = super.aws-azure-login.override {
+      meta.platforms = pkgs.lib.platforms.linux;
+      nativeBuildInputs = [ pkgs.makeWrapper ];
+      prePatch = ''
+        export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1
+      '';
+      postInstall = ''
+        wrapProgram $out/bin/aws-azure-login \
+            --set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium}/bin/chromium
+      '';
+    };
+
     bower2nix = super.bower2nix.override {
       buildInputs = [ pkgs.makeWrapper ];
       postInstall = ''
@@ -228,6 +241,10 @@ let
       '';
     };
 
+    teck-programmer = super.teck-programmer.override {
+      buildInputs = [ pkgs.libusb ];
+    };
+
     vega-cli = super.vega-cli.override {
       nativeBuildInputs = [ pkgs.pkg-config ];
       buildInputs = with pkgs; [
@@ -268,6 +285,9 @@ let
         libsecret
         self.node-gyp-build
         self.node-pre-gyp
+      ] ++ lib.optionals stdenv.isDarwin [
+        darwin.apple_sdk.frameworks.AppKit
+        darwin.apple_sdk.frameworks.Security
       ];
     };
 
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 56acc29b944..ab616609c1a 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -12,6 +12,7 @@
 , "@webassemblyjs/wast-refmt"
 , "alloy"
 , "asar"
+, "aws-azure-login"
 , "balanceofsatoshis"
 , "bash-language-server"
 , "bower"
@@ -139,6 +140,7 @@
 , "json-server"
 , "jsonlint"
 , "kaput-cli"
+, "katex"
 , "karma"
 , "lcov-result-merger"
 , "leetcode-cli"
@@ -191,9 +193,11 @@
 , "pyright"
 , "quicktype"
 , "react-native-cli"
+, "react-static"
 , "react-tools"
 , "readability-cli"
 , "redoc-cli"
+, "remod-cli"
 , "reveal.js"
 , "rimraf"
 , "rollup"
@@ -217,6 +221,7 @@
 , "svgo"
 , "swagger"
 , {"tedicross": "git+https://github.com/TediCross/TediCross.git#v0.8.7"}
+, "teck-programmer"
 , "tern"
 , "textlint"
 , "textlint-plugin-latex"
@@ -247,6 +252,7 @@
 , "vega-cli"
 , "vega-lite"
 , "vim-language-server"
+, "vls"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
 , "vscode-json-languageserver"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 044ece3dd5d..3b2e6801682 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -49,13 +49,22 @@ let
         sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
       };
     };
-    "@angular-devkit/architect-0.1102.8" = {
+    "@angular-devkit/architect-0.1102.10" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1102.8";
+      version = "0.1102.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.8.tgz";
-        sha512 = "EMl81SRyTntjE9U9m4piGvlbs2PdmBTVl2LS8GK3fimunlIzebu9WhDwAmqZdm4HEXiYmiBcCbVaHkYTU8k0Kg==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.10.tgz";
+        sha512 = "jb/Df6l7XHU7b2hu5gG1WItMo9cDjrqY0i6UzntUQ/QsSMqbnU6yWoRT6orLgN9tGdA4AjIyv+9mfMXHwM2maw==";
+      };
+    };
+    "@angular-devkit/core-11.2.10" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "11.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.10.tgz";
+        sha512 = "3QBluhsnXsntbl0ybHuXtuH/HBChqibXKmzrENj2n+SKlHFOYhE9PJCSfE6q1kwKN+zg6avOETVziI2pP5xtJQ==";
       };
     };
     "@angular-devkit/core-11.2.4" = {
@@ -76,13 +85,13 @@ let
         sha512 = "3dA0Z6sIIxCDjZS/DucgmIKti7EZ/LgHoHgCO72Q50H5ZXbUSNBz5wGl5hVq2+gzrnFgU/0u40MIs6eptk30ZA==";
       };
     };
-    "@angular-devkit/core-11.2.8" = {
-      name = "_at_angular-devkit_slash_core";
-      packageName = "@angular-devkit/core";
-      version = "11.2.8";
+    "@angular-devkit/schematics-11.2.10" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "11.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.8.tgz";
-        sha512 = "iNodaySWW1JrF+oGZCi0rYDJXO96T4K7H6BLz6xapSwFxkY+Xr4CBuTqEp2DKzAZ+sjYFmsItLmNedwOOBnwfA==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.10.tgz";
+        sha512 = "T1V6mCwc2GYKAWMtCy2HaCxLw1kydu36tGV+dKjKHEwE+8cDgRRT5FhQ+XZzehVDeK9GvDu8Znur1F6i/WmKgw==";
       };
     };
     "@angular-devkit/schematics-11.2.4" = {
@@ -103,15 +112,6 @@ let
         sha512 = "bhi2+5xtVAjtr3bsXKT8pnoBamQrArd/Y20ueA4Od7cd38YT97nzTA1wyHBFG0vWd0HMyg42ZS0aycNBuOebaA==";
       };
     };
-    "@angular-devkit/schematics-11.2.8" = {
-      name = "_at_angular-devkit_slash_schematics";
-      packageName = "@angular-devkit/schematics";
-      version = "11.2.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.8.tgz";
-        sha512 = "EoCgDPr4VfDajoCW5/XDTyxEnaNjE+9XXVp9mXWYMMSBxKCZIrbieN4+SpjxyKDBl2ZKtTtZU1zWJ2Yerk66Cg==";
-      };
-    };
     "@angular-devkit/schematics-cli-0.1102.6" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
@@ -238,22 +238,22 @@ let
         sha512 = "QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==";
       };
     };
-    "@apollo/protobufjs-1.0.5" = {
+    "@apollo/protobufjs-1.2.0" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
-      version = "1.0.5";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz";
-        sha512 = "ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==";
+        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.0.tgz";
+        sha512 = "TBgsADig/K4Hx71uQO6KPLxgoE/ORhPGh/HgouHru+cum8RLDfAfEY5Dde+cNala+luGI2X4Rs42pLWRud7/WA==";
       };
     };
-    "@apollographql/apollo-tools-0.4.9" = {
+    "@apollographql/apollo-tools-0.4.12" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.4.9";
+      version = "0.4.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.9.tgz";
-        sha512 = "M50pk8oo3CGTu4waGOklIX3YtTZoPfWG9K/G9WB8NpyQGA1OwYTiBFv94XqUtKElTDoFwoMXpMQd3Wy5dINvxA==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.12.tgz";
+        sha512 = "JdC7aBzMUO6SaGH5g6MvIG8TWd+7cU/G9cyjKS/woYVtqyICLamyG21R8SmjiBnd5c1UgPWOxjSIxYBL2ln8Mg==";
       };
     };
     "@apollographql/graphql-playground-html-1.6.27" = {
@@ -310,6 +310,15 @@ let
         sha1 = "e70187f8a862e191b1bce6c0268f13acd3a56b20";
       };
     };
+    "@babel/cli-7.13.16" = {
+      name = "_at_babel_slash_cli";
+      packageName = "@babel/cli";
+      version = "7.13.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz";
+        sha512 = "cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==";
+      };
+    };
     "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
@@ -355,13 +364,13 @@ let
         sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
       };
     };
-    "@babel/core-7.13.15" = {
+    "@babel/core-7.13.16" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.13.15";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz";
-        sha512 = "6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz";
+        sha512 = "sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -373,13 +382,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.13.9" = {
+    "@babel/generator-7.13.16" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.13.9";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz";
-        sha512 = "mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz";
+        sha512 = "grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==";
       };
     };
     "@babel/helper-annotate-as-pure-7.12.13" = {
@@ -400,13 +409,13 @@ let
         sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
       };
     };
-    "@babel/helper-compilation-targets-7.13.13" = {
+    "@babel/helper-compilation-targets-7.13.16" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.13.13";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz";
-        sha512 = "q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
+        sha512 = "3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==";
       };
     };
     "@babel/helper-create-class-features-plugin-7.13.11" = {
@@ -463,13 +472,13 @@ let
         sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
       };
     };
-    "@babel/helper-hoist-variables-7.13.0" = {
+    "@babel/helper-hoist-variables-7.13.16" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.13.0";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz";
-        sha512 = "0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
+        sha512 = "1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==";
       };
     };
     "@babel/helper-member-expression-to-functions-7.13.12" = {
@@ -598,13 +607,13 @@ let
         sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
       };
     };
-    "@babel/helpers-7.13.10" = {
+    "@babel/helpers-7.13.17" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.13.10";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz";
-        sha512 = "4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz";
+        sha512 = "Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==";
       };
     };
     "@babel/highlight-7.13.10" = {
@@ -616,13 +625,13 @@ let
         sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
       };
     };
-    "@babel/parser-7.13.15" = {
+    "@babel/parser-7.13.16" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.13.15";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz";
-        sha512 = "b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz";
+        sha512 = "6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==";
       };
     };
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
@@ -985,13 +994,13 @@ let
         sha512 = "zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.12.13" = {
+    "@babel/plugin-transform-block-scoping-7.13.16" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.12.13";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz";
-        sha512 = "Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz";
+        sha512 = "ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==";
       };
     };
     "@babel/plugin-transform-classes-7.13.0" = {
@@ -1012,13 +1021,13 @@ let
         sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.13.0" = {
+    "@babel/plugin-transform-destructuring-7.13.17" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.13.0";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz";
-        sha512 = "zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz";
+        sha512 = "UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==";
       };
     };
     "@babel/plugin-transform-dotall-regex-7.12.13" = {
@@ -1201,6 +1210,15 @@ let
         sha512 = "jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==";
       };
     };
+    "@babel/plugin-transform-react-jsx-development-7.12.17" = {
+      name = "_at_babel_slash_plugin-transform-react-jsx-development";
+      packageName = "@babel/plugin-transform-react-jsx-development";
+      version = "7.12.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz";
+        sha512 = "BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==";
+      };
+    };
     "@babel/plugin-transform-react-jsx-self-7.12.13" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-self";
       packageName = "@babel/plugin-transform-react-jsx-self";
@@ -1219,6 +1237,15 @@ let
         sha512 = "O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==";
       };
     };
+    "@babel/plugin-transform-react-pure-annotations-7.12.1" = {
+      name = "_at_babel_slash_plugin-transform-react-pure-annotations";
+      packageName = "@babel/plugin-transform-react-pure-annotations";
+      version = "7.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz";
+        sha512 = "RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==";
+      };
+    };
     "@babel/plugin-transform-regenerator-7.13.15" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
@@ -1354,6 +1381,24 @@ let
         sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
       };
     };
+    "@babel/preset-react-7.13.13" = {
+      name = "_at_babel_slash_preset-react";
+      packageName = "@babel/preset-react";
+      version = "7.13.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz";
+        sha512 = "gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==";
+      };
+    };
+    "@babel/preset-stage-0-7.8.3" = {
+      name = "_at_babel_slash_preset-stage-0";
+      packageName = "@babel/preset-stage-0";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-stage-0/-/preset-stage-0-7.8.3.tgz";
+        sha512 = "+l6FlG1j73t4wh78W41StbcCz0/9a1/y+vxfnjtHl060kSmcgMfGzK9MEkLvrCOXfhp9RCX+d88sm6rOqxEIEQ==";
+      };
+    };
     "@babel/preset-stage-2-7.8.3" = {
       name = "_at_babel_slash_preset-stage-2";
       packageName = "@babel/preset-stage-2";
@@ -1381,22 +1426,22 @@ let
         sha512 = "LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==";
       };
     };
-    "@babel/register-7.13.14" = {
+    "@babel/register-7.13.16" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.13.14";
+      version = "7.13.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.14.tgz";
-        sha512 = "iyw0hUwjh/fzN8qklVqZodbyWjEBOG0KdDnBOpv3zzIgK3NmuRXBmIXH39ZBdspkn8LTHvSboN+oYb4MT43+9Q==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.16.tgz";
+        sha512 = "dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==";
       };
     };
-    "@babel/runtime-7.13.10" = {
+    "@babel/runtime-7.13.17" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.13.10";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
-        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz";
+        sha512 = "NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==";
       };
     };
     "@babel/runtime-7.13.9" = {
@@ -1417,22 +1462,22 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/runtime-corejs3-7.13.10" = {
+    "@babel/runtime-corejs3-7.13.17" = {
       name = "_at_babel_slash_runtime-corejs3";
       packageName = "@babel/runtime-corejs3";
-      version = "7.13.10";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz";
-        sha512 = "x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.17.tgz";
+        sha512 = "RGXINY1YvduBlGrP+vHjJqd/nK7JVpfM4rmZLGMx77WoL3sMrhheA0qxii9VNn1VHnxJLEyxmvCB+Wqc+x/FMw==";
       };
     };
-    "@babel/standalone-7.13.15" = {
+    "@babel/standalone-7.13.17" = {
       name = "_at_babel_slash_standalone";
       packageName = "@babel/standalone";
-      version = "7.13.15";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.15.tgz";
-        sha512 = "gKEx9cfMLJegKYYVnI1/4swITcWQa2/e0HlAU9S/+h94xGdyXtoYVQiz8gcXabQ/8MMlOwGclkRoTL3cAxplZg==";
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.17.tgz";
+        sha512 = "Y9P198T45MIIu+AvGOCcjsdKl79+BCL2nA+6ODA5p/DhGzymvzaTgtzvNcjZDcJmbPszcmohjLLgvma3tmvVtg==";
       };
     };
     "@babel/template-7.12.13" = {
@@ -1444,22 +1489,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.13.15" = {
+    "@babel/traverse-7.13.17" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.13.15";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz";
-        sha512 = "/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz";
+        sha512 = "BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==";
       };
     };
-    "@babel/types-7.13.14" = {
+    "@babel/types-7.13.17" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.13.14";
+      version = "7.13.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz";
-        sha512 = "A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz";
+        sha512 = "RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==";
       };
     };
     "@braintree/sanitize-url-3.1.0" = {
@@ -1525,13 +1570,13 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@cdktf/hcl2json-0.2.1" = {
+    "@cdktf/hcl2json-0.3.0" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.2.1";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.2.1.tgz";
-        sha512 = "fn2ZA+Fxdk+QfDleT7GOiZozHdic5kVR0MhFHPzTEipXw7tJlrrbqd1fH+GJFu090uzIagdUM3Y+j4w1GTOz7g==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.3.0.tgz";
+        sha512 = "iZ5eKhlZSpoWM0+ULUEkxY+qzBGhr3EVkXoYdUbNf/nPx8bd2Qqgk87x4uvqFK8+uNMuINR0HCbCdHFgkfho4A==";
       };
     };
     "@chemzqm/neovim-5.2.13" = {
@@ -1966,22 +2011,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-3.3.35" = {
+    "@expo/config-3.3.38" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "3.3.35";
+      version = "3.3.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.35.tgz";
-        sha512 = "0jYSYBCge8s9TqvUbky64lWvpdAHKB9V+e4OrKOmxF8MILmBq2fYHiHkywn5VU7OaWiJQJixhrNUEBHWLJm4ig==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.38.tgz";
+        sha512 = "0SsvF7yTy+kdJaAc2W75yhwnaXIRasnA1Vygna83tlPhCx6ynIBzTbJAvdkddSk5euUTJpXc5nePaflGvNboXw==";
       };
     };
-    "@expo/config-plugins-1.0.25" = {
+    "@expo/config-plugins-1.0.28" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "1.0.25";
+      version = "1.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.25.tgz";
-        sha512 = "iRoBWnkMsGxrSxfXUXWpVfxpGjTUipI60+w9vO/QdXH02wFrS4k/jcZ4OSlPJMxpU/Lv5kgvgjvcJ22/SJpRow==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.28.tgz";
+        sha512 = "i5SpC6U3LjRQlwi1xM4SRj8dR2Qm+0dykPo0GeesByB7IvT36AT1ZjI7VjecuoZ6yKbLpaa5tWvU3JGObxIPSw==";
       };
     };
     "@expo/config-types-40.0.0-beta.2" = {
@@ -2002,22 +2047,22 @@ let
         sha512 = "HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==";
       };
     };
-    "@expo/dev-server-0.1.61" = {
+    "@expo/dev-server-0.1.64" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.61";
+      version = "0.1.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.61.tgz";
-        sha512 = "Jo2WN5by6XvOu75cZMySTupo3izlPYFT3mITckaG1pMZnU76cAjC5C8Nd2gKPsZ+GHDilJ9eoZBt4JhG+wqDyw==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.64.tgz";
+        sha512 = "6yRkV0qVyz0bZsfPkpPsDRmMIHQQ9Lw3Nn5BAgCNvo7SzjINeNfcpWJXvwcxrU76kKUS+r5NaXNCRlDUkqGTHg==";
       };
     };
-    "@expo/dev-tools-0.13.90" = {
+    "@expo/dev-tools-0.13.94" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.90";
+      version = "0.13.94";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.90.tgz";
-        sha512 = "ANLi8TjjzZA1m4k0PFANMYj/NROMuRQUx92M8VG2CRjd/tl/5GOlJhfbVe0W3M+MOZZ+roLxl7c+TvbneZ7zsg==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.94.tgz";
+        sha512 = "T3jIIGB1yLk+1JVcOG3VJI5CTFcOoWEOT4e0/3hONp6CnDQG0L2qpuzd4ypWO411iZ5q3aCyYKNN10AIEZLqzA==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -2029,49 +2074,49 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.12" = {
+    "@expo/image-utils-0.3.13" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.12";
+      version = "0.3.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.12.tgz";
-        sha512 = "QMMAjyCJUFXI8b6AOrVC40gubkt++qYfRJdKgbegf9JHQNul/O4Q1ENWTgid+PH0EUqlMLbv6kJ6ai0ZjO08kw==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.13.tgz";
+        sha512 = "BpKoFVJBjG9H5AU040Skrm3R2uDGpWXBU/4TivB5H10cyJphoJKp3GNJVPHYLOVc70OtAxjWDIhLMW6xsWfrgw==";
       };
     };
-    "@expo/json-file-8.2.28" = {
+    "@expo/json-file-8.2.29" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.28";
+      version = "8.2.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28.tgz";
-        sha512 = "C28McDuCIOmCmp6e2ZgIpNaT/fZG+L3/WFv5x2DCrooOQmamrkLSH/4Dib0NUmLgWVhgIhXL2hU4RB+LjzVvkQ==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.29.tgz";
+        sha512 = "9C8XwpJiJN9fyClnnNDSTh034zJU9hon6MCUqbBa4dZYQN7OZ00KFZEpbtjy+FndE7YD+KagDxRD6O1HS5vU0g==";
       };
     };
-    "@expo/metro-config-0.1.61" = {
+    "@expo/metro-config-0.1.64" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.1.61";
+      version = "0.1.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.61.tgz";
-        sha512 = "Fig2G+Nqw42qzWBRylBF8sPlrQXo9aBIZx+17uVQzjGVs668zblIe+04k3BiIeLvGmKPvZSl7SIf767yaIP+dg==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.64.tgz";
+        sha512 = "ooD+XOVGnKPIIZbyfVTvMeQ3p9HpRt4aNCehSM6H1ueQm8+IpVwrhw8sJjL5xr+FVxFqj0+Ga9DI8d0AXS8U4g==";
       };
     };
-    "@expo/osascript-2.0.25" = {
+    "@expo/osascript-2.0.26" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.25";
+      version = "2.0.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.25.tgz";
-        sha512 = "rB+RLHCp72q0OBWmisoBswfTpyzc91OJMs3UQVWJP9mXVNJhemONt7PKjE+FinBm33uH1HCC6U7JPGigpVsJBg==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.26.tgz";
+        sha512 = "DJXmVZsAbScxQ3sfSFQrLERwsmJ4x/Tk8yXmtJZKqO4hplcGa2xLwjKUEh8nSRV5RX/v40yWr9J7aK5cHxTy0A==";
       };
     };
-    "@expo/package-manager-0.0.39" = {
+    "@expo/package-manager-0.0.41" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.39";
+      version = "0.0.41";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.39.tgz";
-        sha512 = "2KSx1jjdDmWsnkZfWZL4TwveeIyAcORQna5VOZdd+sBalK8taMtPQEdchwAGD4mOFsFFPmpbQHwboRfXoSlbOQ==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.41.tgz";
+        sha512 = "QkKH2AIwbw3wdmkZpw9DwFBQn1E3w/oDKfwPxFXtrwi+7OWonJXzkmYnj26KnVkh4Ajzu7Cwj/zTQ5aBrhwDfw==";
       };
     };
     "@expo/plist-0.0.12" = {
@@ -2092,13 +2137,13 @@ let
         sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
       };
     };
-    "@expo/schemer-1.3.27" = {
+    "@expo/schemer-1.3.28" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.27";
+      version = "1.3.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.27.tgz";
-        sha512 = "cuCvSo6qErgK7OOM8CoCtCsVifq+WX1wUCeu+fmSyhnZcqnz45ZTK20Ghk5bT3OrTNQipbTiCjn9RCDrkEMMkg==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.28.tgz";
+        sha512 = "9wmnhlD1X1ro8FTFzM/J3nSxaFpI9X+bcaimP3hKkc3flIR8cGjQcLmE+MOEgE2LET0ScxRBtM3hteernFI6Ww==";
       };
     };
     "@expo/simple-spinner-1.0.2" = {
@@ -2119,13 +2164,13 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.12.65" = {
+    "@expo/webpack-config-0.12.68" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.12.65";
+      version = "0.12.68";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.65.tgz";
-        sha512 = "+mrAWBVyiJQCReC7OPPuJD/qwlCI5gPxR3XrhuzTxXkm9v0sXTJsCOxCwWM6KF0ytSnUu/LNAA5VkbG19kpOlA==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.68.tgz";
+        sha512 = "GS15Vd/VkaITWnQYe4qROGHi95R6HF8x8vDZ1msxfYEVSjdXMU9eo8BPiyTtLTIAaCyNUQEOX5N+91mKHXJPeQ==";
       };
     };
     "@expo/xcpretty-2.0.0" = {
@@ -2173,22 +2218,22 @@ let
         sha512 = "XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==";
       };
     };
-    "@fluentui/keyboard-key-0.2.16" = {
+    "@fluentui/keyboard-key-0.2.17" = {
       name = "_at_fluentui_slash_keyboard-key";
       packageName = "@fluentui/keyboard-key";
-      version = "0.2.16";
+      version = "0.2.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.16.tgz";
-        sha512 = "T4eQ0uqhbTScsoXVx10Tlp0C2RgNdAzlbe52qJ0Tn288/Nuztda5Z/aTCRd5Rp5MRYBycjAf4iNot6ZHAP864g==";
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz";
+        sha512 = "iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==";
       };
     };
-    "@fluentui/react-7.166.2" = {
+    "@fluentui/react-7.168.0" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.166.2";
+      version = "7.168.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.166.2.tgz";
-        sha512 = "iZaApIEmzLy4vh+Ilwwb03Y/Ga6ETKf1Bv27JlpKfhxUH4Tv8FJy6qn3BbZRnSs2soQ6OAL7TX7xKjADCEIscQ==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.168.0.tgz";
+        sha512 = "eM+vt4RDRnI/IGZtenxYp7cTssMOkXVY3GqFLJkiK/gHTRI3goMWPpLA9tux0lbuiB3zvnvgLrJ2k0ihWa3FCw==";
       };
     };
     "@fluentui/react-focus-7.17.6" = {
@@ -2254,13 +2299,13 @@ let
         sha512 = "d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==";
       };
     };
-    "@google-cloud/pubsub-2.10.0" = {
+    "@google-cloud/pubsub-2.11.0" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.10.0";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.10.0.tgz";
-        sha512 = "XM/Fc6/W/LYzGH2pnhGLDR5E6JNZFMfzyUFP5bWgC4FK1KqIZ4g6hrnCCO38G4JfH2i1IuSQuefPF7FrZZo9tw==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.11.0.tgz";
+        sha512 = "j9sIjVLFqSEVrAZdrGbmu4GVVuCW70Sg6/EBKSMjNKhN/ctQsgcP6kUVLVnnrrTWVF0+FfdlfuCHtdYxGy7mfw==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -2335,13 +2380,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/merge-6.2.11" = {
+    "@graphql-tools/merge-6.2.13" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.2.11";
+      version = "6.2.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.11.tgz";
-        sha512 = "temQABWkDTZb/qJwcIdrEbyJ5WkhaWZQeYxiuxGqZWlIOoFkYfqzfAP2qKl2Ry+ZkN+Q/Yozr1/ap//xjpwAlA==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.13.tgz";
+        sha512 = "Qjlki0fp+bBQPinhdv7rv24eurvThZ5oIFvGMpLxMZplbw/ovJ2c6llwXr5PCuWAk9HGZsyM9NxxDgtTRfq3dQ==";
       };
     };
     "@graphql-tools/schema-7.1.3" = {
@@ -2353,13 +2398,13 @@ let
         sha512 = "ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==";
       };
     };
-    "@graphql-tools/url-loader-6.8.2" = {
+    "@graphql-tools/url-loader-6.8.3" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "6.8.2";
+      version = "6.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz";
-        sha512 = "YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.3.tgz";
+        sha512 = "X1IxyURTbynqBPBJJeSW3hvvc+Pgw/P5IpT/yyTkA7utjRRiNCaGdLbBQO5MaXvD1HpVzBiMgdKG8v7Um3ft7w==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -2371,13 +2416,13 @@ let
         sha512 = "ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==";
       };
     };
-    "@graphql-tools/utils-7.7.2" = {
+    "@graphql-tools/utils-7.7.3" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "7.7.2";
+      version = "7.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.2.tgz";
-        sha512 = "whR/2gAt76njm0x7nLdTs3GG9uSSU9bx7oVurVGWgfEbhYuDaVRVsvfMhx9T1Zz9ICcmGMwzBquc1ng9mlG/WA==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.7.3.tgz";
+        sha512 = "zF8Ll1v7DOFfCsZVYGkJqvi3Zpwfga8NutOZkToXrumMlTPaMhEDFkiuwoIK4lV2PMVUke5ZCmpn9pc5pqy4Tw==";
       };
     };
     "@graphql-tools/wrap-7.0.5" = {
@@ -2416,6 +2461,15 @@ let
         sha512 = "DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==";
       };
     };
+    "@grpc/proto-loader-0.6.0" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.0.tgz";
+        sha512 = "JwWZwGuN1nQuPdeL1d94hNGtnRtiOuy+SkdVUU8IwwQzksvdWvgKHyGDCesvAD0tndQTm1YUZHJw+JDTIDALyQ==";
+      };
+    };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
       name = "_at_gulp-sourcemaps_slash_identity-map";
       packageName = "@gulp-sourcemaps/identity-map";
@@ -2488,13 +2542,13 @@ let
         sha512 = "yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==";
       };
     };
-    "@hapi/hoek-9.1.1" = {
+    "@hapi/hoek-9.2.0" = {
       name = "_at_hapi_slash_hoek";
       packageName = "@hapi/hoek";
-      version = "9.1.1";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz";
-        sha512 = "CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==";
+        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz";
+        sha512 = "sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==";
       };
     };
     "@hapi/joi-15.1.1" = {
@@ -3055,13 +3109,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/spec-1.27.1" = {
+    "@jsii/spec-1.29.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.27.1.tgz";
-        sha512 = "L5Hqv5g9TSnHsNsOhaIS/gpd1N+1dLao5e6EISF6oyh0JzZFffi2IjQbvE3Xb7GPaCfb5R9+ENO/iX/e5SvK+w==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.29.0.tgz";
+        sha512 = "Y0ouCaYVPy7KjQ8di6Hu4xizKYp4klqqDf08BaEgqd38TzqBuO0abgcd9OJFUQyoDnCCWTdGBfqTo2xfvW9Pbw==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -3640,13 +3694,13 @@ let
         sha512 = "7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==";
       };
     };
-    "@mdn/browser-compat-data-3.1.3" = {
+    "@mdn/browser-compat-data-3.2.4" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "3.1.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.1.3.tgz";
-        sha512 = "Qdqeox4APsYwAQQSO68D1p75DL9an1wS8b/51m+nH98unN4jbS5bvg22WQrg+TMq2/3Mg/E5zprqfUzJD84qgw==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.2.4.tgz";
+        sha512 = "jEUurwoeiHOB7SceVnsg3ULxNlf9XxqMfcKNM+eJduPgCcoCnbLi/6og+e764fTAZCcBkqGcWUMhLQXwcqpbJQ==";
       };
     };
     "@mdx-js/util-2.0.0-next.8" = {
@@ -3667,13 +3721,13 @@ let
         sha512 = "/NdX1Ql8hKNM0vHFJnEr/bcw6BG0ULHD3HhInpniZw5ixpl+n/QIRfMEEmLCn7acedbM1zGdZvU5ZMbn9kcF5Q==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.160" = {
+    "@microsoft/load-themed-styles-1.10.165" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.160";
+      version = "1.10.165";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.160.tgz";
-        sha512 = "5m2yNw5lznr4odMulqQ9+caKWZzItECWKM5yQzAHnNIClvbQXymsX5q/nCrR/K89L2hHfTCpNSg1l5bkQqsgNw==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.165.tgz";
+        sha512 = "3xMvFn1q27wctE701ZmdKDKgkj4b4DMHaJ8hnKk+c/E3Zvoo/5lviPZ0IGkD+zyfe7GMSp2kONalvX7Ez7HaKA==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -3739,13 +3793,13 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-10.2.7" = {
+    "@netlify/build-11.2.5" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "10.2.7";
+      version = "11.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-10.2.7.tgz";
-        sha512 = "RdyIKPLYci5r/JeTdtqrZxnWQeEMVjQ0YVqbwxdZDXOUP9j4TCG3wrqJDfYScKkD+FcKJ0CLYihV906BWGJc0g==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-11.2.5.tgz";
+        sha512 = "VjBtlEnCTjrYN9tTrgJdRjkauqN1gQ+fdtoVsZ0Lyz1Ja1LUnIPkCUHhsOmupMlvW/Yyl/QHTSPojg/wpMf1Zw==";
       };
     };
     "@netlify/cache-utils-1.0.7" = {
@@ -3757,13 +3811,13 @@ let
         sha512 = "yrdrnQkzg/qMovoFYwQ24UVt/OyHtP+t0KpQFd7eBl6gnuuGGgxFocaFFv6eKpMVwzHTsOwx/y9B/FcC3/6cfA==";
       };
     };
-    "@netlify/config-5.12.0" = {
+    "@netlify/config-6.2.0" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "5.12.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-5.12.0.tgz";
-        sha512 = "PSe3lwRhchP4IuLdR9Csi98dHf2fvzn9zlywuWpdftWEflNhpwySZ/cV8sy8YJ3Xz6aAKT4wxwc0Tb5DV10Y9g==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-6.2.0.tgz";
+        sha512 = "CK8GpGf8v10GlY/gLhb27PEc9cWQaVpLi9/KQZhsEiLCmwVV+oLkfev2wOuIuPakTaCWJbwDbNGtCF+o3f3Crg==";
       };
     };
     "@netlify/framework-info-3.3.0" = {
@@ -3775,22 +3829,22 @@ let
         sha512 = "oWlP+sWfnr0tXSqd3nfma9Abq1NvZc4lFbHPMvxU6UhAcrBOpizsMaVT9sUK0UcMwzR8xwESdskZajtFoHA28g==";
       };
     };
-    "@netlify/functions-utils-1.3.23" = {
+    "@netlify/functions-utils-1.3.28" = {
       name = "_at_netlify_slash_functions-utils";
       packageName = "@netlify/functions-utils";
-      version = "1.3.23";
+      version = "1.3.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.23.tgz";
-        sha512 = "+wSSFEUQz1c54ADcceCQzhrvfmsI2eHXO4B6+SLLub1XDvT2oBgtamJoyKpzjPvvQSjmIKVY0cv/AqYpbO5mVA==";
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.28.tgz";
+        sha512 = "8swtLIVmzsokQfgr/2qZGf8C6GmrhP/okPzFZjmoDbfaHKqkkXthg0G/iY83CwRiofAuwMUkLtsrf1g3+aDiuA==";
       };
     };
-    "@netlify/git-utils-1.0.8" = {
+    "@netlify/git-utils-1.0.9" = {
       name = "_at_netlify_slash_git-utils";
       packageName = "@netlify/git-utils";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.8.tgz";
-        sha512 = "YWK2H6qjBmspTIibE/ai8YTsSnqROtubqWUuXz/RoQXYf03KWx/F9BFRm1S/TOoQM9v4fozRhVeHyH45Ki0ztA==";
+        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.9.tgz";
+        sha512 = "qdkbEK3jRhfCbCqHAJGyQmBXxa66Kx1zwkm4dXBS8Wimv0zFGuyWWkMQomo6t2VGGoJyC+Ocy+E4ubTC13MUqA==";
       };
     };
     "@netlify/open-api-1.3.0" = {
@@ -3811,13 +3865,13 @@ let
         sha512 = "7L5pkXlwPfyUrmm9cu2+nOQYW1FMx6waMbl2Uj5SmxjLz5Dvt2zkUYbNU2ImNmJ10mxziv3LABSFn2k2qy2nLw==";
       };
     };
-    "@netlify/plugins-list-2.6.0" = {
+    "@netlify/plugins-list-2.8.0" = {
       name = "_at_netlify_slash_plugins-list";
       packageName = "@netlify/plugins-list";
-      version = "2.6.0";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.6.0.tgz";
-        sha512 = "XtBrsd4M0OW3RT9O7omqBhWevPoxVfkEX9BJ2Hv5J3gpujTN6IZEYmyprxhQ+Y98r4VvZVUX8dPzR99aF15YcQ==";
+        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.8.0.tgz";
+        sha512 = "bjmObzm6qrZigS6ht85zgyHGTsk8dk3OspvQ3BED4VWFMDhl323WwswSJIQg2j7EdxEEOvGsM+gbh0FFWl6pqg==";
       };
     };
     "@netlify/run-utils-1.0.7" = {
@@ -3865,67 +3919,67 @@ let
         sha512 = "ea6S9ik5X0TlA2e+jXk5D7lfvArPZjyQoIBEo7G1Tjw/vUU5Fx6KLfXv1iy7eJy+ENTLoyidscAjJ2wXlHI47g==";
       };
     };
-    "@netlify/zip-it-and-ship-it-3.2.1" = {
+    "@netlify/zip-it-and-ship-it-3.7.0" = {
       name = "_at_netlify_slash_zip-it-and-ship-it";
       packageName = "@netlify/zip-it-and-ship-it";
-      version = "3.2.1";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.2.1.tgz";
-        sha512 = "0onx8AUjPWTybwphux8YNCLYg6c471XqfnT/a2kd1IKMBI2cdnGyGOt3xpEQmPoxz0qBG2aU62BAaFzMPYh89w==";
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.7.0.tgz";
+        sha512 = "WPdJ8UulZxv+Niobjp49v8TO2+7V7Kks+1me4Zl4zuv09z8ZTE2/6b8bOCnB+tysTINrmTfi8ZMweB44gyLFLg==";
       };
     };
-    "@node-red/editor-api-1.3.2" = {
+    "@node-red/editor-api-1.3.3" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.3.2.tgz";
-        sha512 = "meAJ4n9amAWxoWe5/rdigd8Wa0OKpwaNIn9Vqp+xqV4BqFa9RRe3ttO9FRUOuBeHwplDsMiWNnEVEdE9NCWlig==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.3.3.tgz";
+        sha512 = "PafnnsKUYDQy+bQfk7THSCTy0zncDMvbn4HXGkavqN4nEuvm0bdvA6ZhBNa5G/WaKPt0srptl2KKCsavd3O8jA==";
       };
     };
-    "@node-red/editor-client-1.3.2" = {
+    "@node-red/editor-client-1.3.3" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.3.2.tgz";
-        sha512 = "9YGb7PeLUmr7bMZYOn08euTOZzy+wIAqTo8R288sjbqLke0NKnFWhZsgl01pqPXv7rNjiyZpxTpU1uZLH49gDg==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.3.3.tgz";
+        sha512 = "08vlp1s5yrUSidgjUg6/3sQIZ/c7r08oUNYZaN9kEgKVhYBRizet0fHBev8OWEO7nrMJAs8nQmYQGTRg4P/2uA==";
       };
     };
-    "@node-red/nodes-1.3.2" = {
+    "@node-red/nodes-1.3.3" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.3.2.tgz";
-        sha512 = "NAblXeu0/tdVu8lU/gpMDVbclqkbiRGUcUforJSGeTiXod2wk4brGtLjEhAN1ouehUaIGXwiF0QN+KgfXnHg2Q==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.3.3.tgz";
+        sha512 = "ztCxN5ZWlUf8YkMD9NZd+izrnFVkIgv1ayzZzwCx8gsqLyGIQkzESgfKnqqU4ID8ih/r5Xs2SNl+XP9+OJEO6w==";
       };
     };
-    "@node-red/registry-1.3.2" = {
+    "@node-red/registry-1.3.3" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.3.2.tgz";
-        sha512 = "VB0em51luT17rhTa7tkOXHOQbuEBczUEI2goJaSQSv5c032yPvzh4KyAf3Xa7sDafENg33wfSZfePx2tGrdg+w==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.3.3.tgz";
+        sha512 = "JaHsvXxz9/DJ02NwlBLeUTYPGZEpRvOFR99D34YHF753bw8ocROnYAJemNTmNbua/jW4RRL0tCXuJlrOQZNSGA==";
       };
     };
-    "@node-red/runtime-1.3.2" = {
+    "@node-red/runtime-1.3.3" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.3.2.tgz";
-        sha512 = "HMrHfkH4wklp0tI3SjZR6Yzdf/swPg7FsYjzikv8HV/KBHV/Oe73gtE8CqXkP+rqUfhqdQC/X97Tq8vD6bC4WQ==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.3.3.tgz";
+        sha512 = "+tjva7c1lI+87ho1XTS5Lj0t+OapuA+/W3hRb1zXUTNfflUrkVcMMSujMw5v+V2Z5/cMNJBRgEYj38svj9pG3w==";
       };
     };
-    "@node-red/util-1.3.2" = {
+    "@node-red/util-1.3.3" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-1.3.2.tgz";
-        sha512 = "AHrUP2mYTmy40Q0gP1X4GSwuJ1xWCgUL0RlEA843HpdTi7Gl6WB8xnJvcGFqptiuHiqE6mUFNrRMLmotctZqWg==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-1.3.3.tgz";
+        sha512 = "xB76cff/HlXJcbZlOe1duqBiCoqJTHM4KKFElcSJGNVjQSeOhZgxMsuECFHCCCh8Y9TVkL96VFwWybq2fKonew==";
       };
     };
     "@nodelib/fs.scandir-2.1.4" = {
@@ -3964,6 +4018,15 @@ let
         sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
       };
     };
+    "@npmcli/arborist-2.4.0" = {
+      name = "_at_npmcli_slash_arborist";
+      packageName = "@npmcli/arborist";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.4.0.tgz";
+        sha512 = "rCoRrUSmXdBDBBgL/O0oehIR53ey99Pds8dId7gztARZmx6/NBoeiUOu9RnvXSe15XZLc3JSz9sHPcbQ9NQ53Q==";
+      };
+    };
     "@npmcli/ci-detect-1.3.0" = {
       name = "_at_npmcli_slash_ci-detect";
       packageName = "@npmcli/ci-detect";
@@ -3973,13 +4036,13 @@ let
         sha512 = "oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==";
       };
     };
-    "@npmcli/git-2.0.6" = {
+    "@npmcli/git-2.0.8" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.6";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.6.tgz";
-        sha512 = "a1MnTfeRPBaKbFY07fd+6HugY1WAkKJzdiJvlRub/9o5xz2F/JtPacZZapx5zRJUQFIzSL677vmTSxEcDMrDbg==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.8.tgz";
+        sha512 = "LPnzyBZ+1p7+JzHVwwKycMF8M3lr1ze3wxGRnxn/QxJtk++Y3prSJQrdBDGCxJyRpFsup6J3lrRBVYBhJVrM8Q==";
       };
     };
     "@npmcli/installed-package-contents-1.0.7" = {
@@ -3991,6 +4054,24 @@ let
         sha512 = "9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==";
       };
     };
+    "@npmcli/map-workspaces-1.0.3" = {
+      name = "_at_npmcli_slash_map-workspaces";
+      packageName = "@npmcli/map-workspaces";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.3.tgz";
+        sha512 = "SdlRlOoQw4WKD4vtb/n5gUkobEABYBEOo8fRE4L8CtBkyWDSvIrReTfKvQ/Jc/LQqDaaZ5iv1iMSQzKCUr1n1A==";
+      };
+    };
+    "@npmcli/metavuln-calculator-1.1.1" = {
+      name = "_at_npmcli_slash_metavuln-calculator";
+      packageName = "@npmcli/metavuln-calculator";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz";
+        sha512 = "9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==";
+      };
+    };
     "@npmcli/move-file-1.1.2" = {
       name = "_at_npmcli_slash_move-file";
       packageName = "@npmcli/move-file";
@@ -4000,6 +4081,15 @@ let
         sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
       };
     };
+    "@npmcli/name-from-folder-1.0.1" = {
+      name = "_at_npmcli_slash_name-from-folder";
+      packageName = "@npmcli/name-from-folder";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz";
+        sha512 = "qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==";
+      };
+    };
     "@npmcli/node-gyp-1.0.2" = {
       name = "_at_npmcli_slash_node-gyp";
       packageName = "@npmcli/node-gyp";
@@ -4018,13 +4108,13 @@ let
         sha512 = "QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==";
       };
     };
-    "@npmcli/run-script-1.8.4" = {
+    "@npmcli/run-script-1.8.5" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.8.4";
+      version = "1.8.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.4.tgz";
-        sha512 = "Yd9HXTtF1JGDXZw0+SOn+mWLYS0e7bHBHVC/2C8yqs4wUrs/k8rwBSinD7rfk+3WG/MFGRZKxjyoD34Pch2E/A==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz";
+        sha512 = "NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==";
       };
     };
     "@oclif/color-0.1.2" = {
@@ -4189,13 +4279,13 @@ let
         sha512 = "2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==";
       };
     };
-    "@octokit/openapi-types-6.0.0" = {
+    "@octokit/openapi-types-6.1.1" = {
       name = "_at_octokit_slash_openapi-types";
       packageName = "@octokit/openapi-types";
-      version = "6.0.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-6.0.0.tgz";
-        sha512 = "CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ==";
+        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-6.1.1.tgz";
+        sha512 = "ICBhnEb+ahi/TTdNuYb/kTyKVBgAM0VD4k6JPzlhJyzt3Z+Tq/bynwCD+gpkJP7AEcNnzC8YO5R39trmzEo2UA==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -4243,13 +4333,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/plugin-rest-endpoint-methods-5.0.0" = {
+    "@octokit/plugin-rest-endpoint-methods-5.0.1" = {
       name = "_at_octokit_slash_plugin-rest-endpoint-methods";
       packageName = "@octokit/plugin-rest-endpoint-methods";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.0.tgz";
-        sha512 = "Jc7CLNUueIshXT+HWt6T+M0sySPjF32mSFQAK7UfAg8qGeRI6OM1GSBxDLwbXjkqy2NVdnqCedJcP1nC785JYg==";
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.1.tgz";
+        sha512 = "vvWbPtPqLyIzJ7A4IPdTl+8IeuKAwMJ4LjvmqWOOdfSuqWQYZXq2CEd0hsnkidff2YfKlguzujHs/reBdAx8Sg==";
       };
     };
     "@octokit/request-5.4.15" = {
@@ -4288,13 +4378,13 @@ let
         sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
       };
     };
-    "@octokit/rest-18.5.2" = {
+    "@octokit/rest-18.5.3" = {
       name = "_at_octokit_slash_rest";
       packageName = "@octokit/rest";
-      version = "18.5.2";
+      version = "18.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.2.tgz";
-        sha512 = "Kz03XYfKS0yYdi61BkL9/aJ0pP2A/WK5vF/syhu9/kY30J8He3P68hv9GRpn8bULFx2K0A9MEErn4v3QEdbZcw==";
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.3.tgz";
+        sha512 = "KPAsUCr1DOdLVbZJgGNuE/QVLWEaVBpFQwDAz/2Cnya6uW2wJ/P5RVGk0itx7yyN1aGa8uXm2pri4umEqG1JBA==";
       };
     };
     "@octokit/types-2.16.2" = {
@@ -4306,13 +4396,13 @@ let
         sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-6.13.0" = {
+    "@octokit/types-6.13.2" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "6.13.0";
+      version = "6.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-6.13.0.tgz";
-        sha512 = "W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-6.13.2.tgz";
+        sha512 = "jN5LImYHvv7W6SZargq1UMJ3EiaqIz5qkpfsv4GAb4b16SGqctxtOU2TQAZxvsKHkOw2A4zxdsi5wR9en1/ezQ==";
       };
     };
     "@open-policy-agent/opa-wasm-1.2.0" = {
@@ -4351,58 +4441,22 @@ let
         sha512 = "PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==";
       };
     };
-    "@opentelemetry/api-0.12.0" = {
+    "@opentelemetry/api-0.18.1" = {
       name = "_at_opentelemetry_slash_api";
       packageName = "@opentelemetry/api";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.0.tgz";
-        sha512 = "Dn4vU5GlaBrIWzLpsM6xbJwKHdlpwBQ4Bd+cL9ofJP3hKT8jBXpBpribmyaqAzrajzzl2Yt8uTa9rFVLfjDAvw==";
-      };
-    };
-    "@opentelemetry/context-base-0.12.0" = {
-      name = "_at_opentelemetry_slash_context-base";
-      packageName = "@opentelemetry/context-base";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.12.0.tgz";
-        sha512 = "UXwSsXo3F3yZ1dIBOG9ID8v2r9e+bqLWoizCtTb8rXtwF+N5TM7hzzvQz72o3nBU+zrI/D5e+OqAYK8ZgDd3DA==";
-      };
-    };
-    "@opentelemetry/core-0.12.0" = {
-      name = "_at_opentelemetry_slash_core";
-      packageName = "@opentelemetry/core";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.0.tgz";
-        sha512 = "oLZIkmTNWTJXzo1eA4dGu/S7wOVtylsgnEsCmhSJGhrJVDXm1eW/aGuNs3DVBeuxp0ZvQLAul3/PThsC3YrnzA==";
-      };
-    };
-    "@opentelemetry/resources-0.12.0" = {
-      name = "_at_opentelemetry_slash_resources";
-      packageName = "@opentelemetry/resources";
-      version = "0.12.0";
+      version = "0.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.0.tgz";
-        sha512 = "8cYvIKB68cyupc7D6SWzkLtt13mbjgxMahL4JKCM6hWPyiGSJlPFEAey4XFXI5LLpPZRYTPHLVoLqI/xwCFZZA==";
+        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-0.18.1.tgz";
+        sha512 = "pKNxHe3AJ5T2N5G3AlT9gx6FyF5K2FS9ZNc+FipC+f1CpVF/EY+JHTJ749dnM2kWIgZTbDJFiGMuc0FYjNSCOg==";
       };
     };
-    "@opentelemetry/semantic-conventions-0.12.0" = {
+    "@opentelemetry/semantic-conventions-0.18.2" = {
       name = "_at_opentelemetry_slash_semantic-conventions";
       packageName = "@opentelemetry/semantic-conventions";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.12.0.tgz";
-        sha512 = "BuCcDW0uLNYYTns0/LwXkJ8lp8aDm7kpS+WunEmPAPRSCe6ciOYRvzn5reqJfX93rf+6A3U2SgrBnCTH+0qoQQ==";
-      };
-    };
-    "@opentelemetry/tracing-0.12.0" = {
-      name = "_at_opentelemetry_slash_tracing";
-      packageName = "@opentelemetry/tracing";
-      version = "0.12.0";
+      version = "0.18.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/tracing/-/tracing-0.12.0.tgz";
-        sha512 = "2TUGhTGkhgnxTciHCNAILPSeyXageJewRqfP9wOrx65sKd/jgvNYoY8nYf4EVWVMirDOxKDsmYgUkjdQrwb2dg==";
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.18.2.tgz";
+        sha512 = "+0P+PrP9qSFVaayNdek4P1OAGE+PEl2SsufuHDRmUpOY25Wzjo7Atyar56Trjc32jkNy4lID6ZFT6BahsR9P9A==";
       };
     };
     "@ot-builder/bin-composite-types-1.0.4" = {
@@ -4900,13 +4954,22 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
-    "@putdotio/api-client-8.15.2" = {
+    "@putdotio/api-client-8.15.3" = {
       name = "_at_putdotio_slash_api-client";
       packageName = "@putdotio/api-client";
-      version = "8.15.2";
+      version = "8.15.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.15.2.tgz";
-        sha512 = "Z4KrAxOMsVA+SULZQ/2syOmXVoQakeKZ0pk4gtvbYnNMNrvcCF0OKSO0QgH2XwdFssm37KWNBjlYO3XucbHKNw==";
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.15.3.tgz";
+        sha512 = "Z1MK912OTC+InURygDElVFAbnAdA8x9in+6GSHb/8rzWmp5iDA7PjU85OCOYH8hBfAwKlWINhR372tUUnUHImg==";
+      };
+    };
+    "@reach/router-1.3.4" = {
+      name = "_at_reach_slash_router";
+      packageName = "@reach/router";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz";
+        sha512 = "+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA==";
       };
     };
     "@react-native-community/cli-debugger-ui-4.13.1" = {
@@ -5044,13 +5107,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-11.2.8" = {
+    "@schematics/angular-11.2.10" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "11.2.8";
+      version = "11.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.8.tgz";
-        sha512 = "5iJSzkFC3P4t47I9cbIuiaIm3Hkmr6YsXSPE6t8lmUjdcG+sX/AXlSgHmvE9RqoEWAlo1YiXPmQsQH/QIE0qPQ==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.10.tgz";
+        sha512 = "WcqiUl2HcE5E6HbAFKhFOUeqQEqNL++o6UsKcgk8rQkx5RM7ZkT6uksxiwhfpKzSIqUjwx+xe66fP6pweNZ/yQ==";
       };
     };
     "@schematics/schematics-0.1102.6" = {
@@ -5062,13 +5125,13 @@ let
         sha512 = "x77kbJL/HqR4gx0tbt35VCOGLyMvB7jD/x7eB1njhQRF8E/xynEOk3i+7A5VmK67QP5NJxU8BQKlPkJ55tBDmg==";
       };
     };
-    "@schematics/update-0.1102.8" = {
+    "@schematics/update-0.1102.10" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.1102.8";
+      version = "0.1102.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.8.tgz";
-        sha512 = "advLOzXtlA71XP+XCkvN4HCDTFfSUAfUcEFWLSxIFu456ED6smGex8ydkH6YcWx9LM+auhyHiJmTNYFDI0vxig==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.10.tgz";
+        sha512 = "aU5fUT9ddw3n5ZOzx/x1W4Xo2fz+sDtDnrRdKI0Jip/9HE1PaoKxWT6gB5ouDnKETrvgDOArn68zIM8eOAVarg==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -5098,13 +5161,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-3.8.2" = {
+    "@serverless/components-3.9.0" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "3.8.2";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-3.8.2.tgz";
-        sha512 = "pelB/blbB329hDFr+2itkJh2KmTtAWX8CHvEA/28weG9TPgb+rsQuvbM3s1VWDvYqfscZcnv/M8fuWXWopEc6Q==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.9.0.tgz";
+        sha512 = "70RIPd9eW/T6vZ7y4Rn7xVBCqPlN7cPq0NRAkxlT6sa7efgSkVDb+JCtKzST2EJpz7w2V/G+eWZjIbbYw6ueMw==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -5170,22 +5233,22 @@ let
         sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
       };
     };
-    "@serverless/utils-4.0.1" = {
+    "@serverless/utils-4.1.0" = {
       name = "_at_serverless_slash_utils";
       packageName = "@serverless/utils";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.0.1.tgz";
-        sha512 = "3/+Tw/kcIpBlrPyN244Ci7IZXVhGH9WLiLZcSwL0U96g0QQBofIGbv5v2h3Q6J4rBpPUOiZJcabJc7cIvlcP6Q==";
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.1.0.tgz";
+        sha512 = "cl5uPaGg72z0sCUpF0zsOhwYYUV72Gxc1FwFfxltO8hSvMeFDvwD7JrNE4kHcIcKRjwPGbSH0fdVPUpErZ8Mog==";
       };
     };
-    "@serverless/utils-china-1.0.14" = {
+    "@serverless/utils-china-1.0.15" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "1.0.14";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.0.14.tgz";
-        sha512 = "7ku9ePjb+bneFV1Akmz0t8pU8hhHfPJsBjG/Kf6IjyGAQrEjN/PcY2QUDm0emdCNyCsuido1wp0DWMGiwuhC8Q==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.0.15.tgz";
+        sha512 = "+fSVqyhiITJZ/9wz7fNA6QsJ0XLq3k+UQi8iX7TQNmXdWEtjfslKv2cbnW3A19jbuG2rQ0jzwNShnuLeMuqnSw==";
       };
     };
     "@sideway/address-4.1.1" = {
@@ -5269,22 +5332,22 @@ let
         sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
       };
     };
-    "@sindresorhus/is-4.0.0" = {
+    "@sindresorhus/is-4.0.1" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz";
-        sha512 = "FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz";
+        sha512 = "Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==";
       };
     };
-    "@sindresorhus/slugify-1.1.0" = {
+    "@sindresorhus/slugify-1.1.2" = {
       name = "_at_sindresorhus_slash_slugify";
       packageName = "@sindresorhus/slugify";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz";
-        sha512 = "ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==";
+        url = "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz";
+        sha512 = "V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==";
       };
     };
     "@sindresorhus/transliterate-0.1.2" = {
@@ -5305,13 +5368,13 @@ let
         sha512 = "mPZe3gBAV4ZDeYZbEs6WpNZuHHj7Hse9p44z6lrKBcbAMWnvApVOC7zZUpeQsUuWPTOWQRu/QSYElDKNajQ2oA==";
       };
     };
-    "@skorfmann/terraform-cloud-1.9.1" = {
+    "@skorfmann/terraform-cloud-1.10.0" = {
       name = "_at_skorfmann_slash_terraform-cloud";
       packageName = "@skorfmann/terraform-cloud";
-      version = "1.9.1";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.9.1.tgz";
-        sha512 = "R28bedoGjAmDiEYHu2cmeVd3R6vxq6anQQlGCpdjk5oqnSiROFFm8dzywvMon4/9C+CErhgY7fr76NVErS/U2w==";
+        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.10.0.tgz";
+        sha512 = "Yd5WWmmUjFYBpQpsAnAntwQMerilNRpHILNPA7x0EkwHhf+5KTSKYZwzYL/bOY1QfGJX6DTnOSHXIRStHZDUgg==";
       };
     };
     "@slack/client-3.16.0" = {
@@ -5332,6 +5395,15 @@ let
         sha512 = "T3xfDqrEFKclHGdJx4/5+D5F7e76/99f33guE4RTlVITBhy7VVnjz4t/NDr3UYqcC0MgAmiC4bSVYHnlshuwJw==";
       };
     };
+    "@snyk/cloud-config-parser-1.9.2" = {
+      name = "_at_snyk_slash_cloud-config-parser";
+      packageName = "@snyk/cloud-config-parser";
+      version = "1.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/cloud-config-parser/-/cloud-config-parser-1.9.2.tgz";
+        sha512 = "m8Y2+3l4fxj96QMrTfiCEaXgCpDkCkJIX/5wv0V0RHuxpUiyh+KxC2yJ8Su4wybBj6v6hB9hB7h5/L+Gy4V4PA==";
+      };
+    };
     "@snyk/cocoapods-lockfile-parser-3.6.2" = {
       name = "_at_snyk_slash_cocoapods-lockfile-parser";
       packageName = "@snyk/cocoapods-lockfile-parser";
@@ -5341,13 +5413,13 @@ let
         sha512 = "ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA==";
       };
     };
-    "@snyk/code-client-3.4.0" = {
+    "@snyk/code-client-3.4.1" = {
       name = "_at_snyk_slash_code-client";
       packageName = "@snyk/code-client";
-      version = "3.4.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.4.0.tgz";
-        sha512 = "RY2IftAiWB7tp36Mcq7WiEwqoD8A/mqrD6N7oDWTxBOIqsH0t4djo/UibiWDJotaffO9aXXndOf3iZ/kTt+Rdg==";
+        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.4.1.tgz";
+        sha512 = "XJ7tUdX1iQyzN/BmHac7p+Oyw1SyTcqSkCNExwBJxyQdlnUAKK6QKIWLXS81tTpZ79FgCdT+0fdS0AjsyS99eA==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.1" = {
@@ -5386,13 +5458,13 @@ let
         sha512 = "E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg==";
       };
     };
-    "@snyk/fix-1.526.0" = {
+    "@snyk/fix-1.554.0" = {
       name = "_at_snyk_slash_fix";
       packageName = "@snyk/fix";
-      version = "1.526.0";
+      version = "1.554.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.526.0.tgz";
-        sha512 = "+aMUNRhOdoN4YPGxXlN9+NwvKOr/DNBCGgC8DnNSujcJ9Nj1M8oHrnVoTy56/tgbJ8qyw/zwmCKAm383CfURKg==";
+        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.554.0.tgz";
+        sha512 = "q2eRVStgspPeI2wZ2EQGLpiWZMRg7o+4tsCk6m/kHZgQGDN4Bb7L3xslFW3OgF0+ZksYSaHl2cW2HmGiLRaYcA==";
       };
     };
     "@snyk/gemfile-1.2.0" = {
@@ -5449,13 +5521,13 @@ let
         sha512 = "NX8bpIu7oG5cuSSm6WvtxqcCuJs2gRjtKhtuSeF1p5TYXyESs3FXQ0nHjfY90LiyTTc+PW/UBq6SKbBA6bCBww==";
       };
     };
-    "@snyk/mix-parser-1.3.0" = {
+    "@snyk/mix-parser-1.3.2" = {
       name = "_at_snyk_slash_mix-parser";
       packageName = "@snyk/mix-parser";
-      version = "1.3.0";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.3.0.tgz";
-        sha512 = "Iizn7xkw+h1Zg3+PRbo5r37MaqbgvWtKsIIXKWIAoVwy+oYGsJ6u2mo+o/zZ9Dga4+iQ5xy0Q0sNbFzxku2oCQ==";
+        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.3.2.tgz";
+        sha512 = "0Aq9vcgmjH0d9Gk5q0k6l4ZOvSHPf6/BCQGDVOpKp0hwOkXWnpDOLLPxL+uBCktuH9zTYQFB0aTk91kQImZqmA==";
       };
     };
     "@snyk/rpm-parser-2.2.1" = {
@@ -5485,13 +5557,13 @@ let
         sha512 = "hiFiSmWGLc2tOI7FfgIhVdFzO2f69im8O6p3OV4xEZ/Ss1l58vwtqudItoswsk7wj/azRlgfBW8wGu2MjoudQg==";
       };
     };
-    "@snyk/snyk-hex-plugin-1.1.1" = {
+    "@snyk/snyk-hex-plugin-1.1.4" = {
       name = "_at_snyk_slash_snyk-hex-plugin";
       packageName = "@snyk/snyk-hex-plugin";
-      version = "1.1.1";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.1.1.tgz";
-        sha512 = "NXgslDo6qSvsKy2cR3Yoo/Z6A3Svae9a96j+0OUnvcZX7i6JeODreqXFD1k0vPM2JnL1G7qcdblPxz7M7ZAZmQ==";
+        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.1.4.tgz";
+        sha512 = "kLfFGckSmyKe667UGPyWzR/H7/Trkt4fD8O/ktElOx1zWgmivpLm0Symb4RCfEmz9irWv+N6zIKRrfSNdytcPQ==";
       };
     };
     "@starptech/expression-parser-0.10.0" = {
@@ -6043,15 +6115,6 @@ let
         sha512 = "C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==";
       };
     };
-    "@types/cors-2.8.8" = {
-      name = "_at_types_slash_cors";
-      packageName = "@types/cors";
-      version = "2.8.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.8.tgz";
-        sha512 = "fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==";
-      };
-    };
     "@types/debug-4.1.5" = {
       name = "_at_types_slash_debug";
       packageName = "@types/debug";
@@ -6115,13 +6178,13 @@ let
         sha512 = "DLVpLEGTEZGBXOYoYoagHSxXkDHONc0fZouF2ayw7Q18aRu1Afwci+1CFKvPpouCUOVWP+dmCaAWpQjswe7kpg==";
       };
     };
-    "@types/eslint-7.2.9" = {
+    "@types/eslint-7.2.10" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.2.9";
+      version = "7.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.9.tgz";
-        sha512 = "SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz";
+        sha512 = "kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==";
       };
     };
     "@types/eslint-scope-3.7.0" = {
@@ -6403,6 +6466,15 @@ let
         sha512 = "k4ih8ayQ65e26vhCxeMTKtZ808DzC0RFQ4unBvPEy9bcFhS4aPm3oXgWWZNmZ4u+H2WzHQDCNrRC5iNX+afiZw==";
       };
     };
+    "@types/json-patch-0.0.30" = {
+      name = "_at_types_slash_json-patch";
+      packageName = "@types/json-patch";
+      version = "0.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-patch/-/json-patch-0.0.30.tgz";
+        sha512 = "MhCUjojzDhVLnZnxwPwa+rETFRDQ0ffjxYdrqOP6TBO2O0/Z64PV5tNeYApo4bc4y4frbWOrRwv/eEkXlI13Rw==";
+      };
+    };
     "@types/json-schema-7.0.7" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
@@ -6655,13 +6727,13 @@ let
         sha512 = "fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==";
       };
     };
-    "@types/node-10.17.56" = {
+    "@types/node-10.17.58" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.56";
+      version = "10.17.58";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz";
-        sha512 = "LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.58.tgz";
+        sha512 = "Dn5RBxLohjdHFj17dVVw3rtrZAeXeWg+LQfvxDIW/fdPkSiuQk7h3frKMYtsQhtIW42wkErDcy9UMVxhGW4O7w==";
       };
     };
     "@types/node-12.12.70" = {
@@ -6673,13 +6745,13 @@ let
         sha512 = "i5y7HTbvhonZQE+GnUM2rz1Bi8QkzxdQmEv1LKOv4nWyaQk/gdeiTApuQR3PDJHX7WomAbpx2wlWSEpxXGZ/UQ==";
       };
     };
-    "@types/node-13.13.48" = {
+    "@types/node-13.13.50" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.48";
+      version = "13.13.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz";
-        sha512 = "z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.50.tgz";
+        sha512 = "y7kkh+hX/0jZNxMyBR/6asG0QMSaPSzgeVK63dhWHl4QAXCQB8lExXmzLL6SzmOgKHydtawpMnNhlDbv7DXPEA==";
       };
     };
     "@types/node-14.11.1" = {
@@ -6709,6 +6781,15 @@ let
         sha512 = "XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==";
       };
     };
+    "@types/node-14.14.41" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.14.41";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz";
+        sha512 = "dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -6754,6 +6835,15 @@ let
         sha512 = "o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==";
       };
     };
+    "@types/node-fetch-2.5.8" = {
+      name = "_at_types_slash_node-fetch";
+      packageName = "@types/node-fetch";
+      version = "2.5.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz";
+        sha512 = "fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==";
+      };
+    };
     "@types/normalize-package-data-2.4.0" = {
       name = "_at_types_slash_normalize-package-data";
       packageName = "@types/normalize-package-data";
@@ -6988,6 +7078,15 @@ let
         sha512 = "OBsK0KIGUICExQ/ZvnPY4cKx5Kz4NcrVyGTIvOL5y4ajXu7r++RfBajfpGfGDmDVCKcoCDX1dO84/oeyeITnxA==";
       };
     };
+    "@types/structured-source-3.0.0" = {
+      name = "_at_types_slash_structured-source";
+      packageName = "@types/structured-source";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/structured-source/-/structured-source-3.0.0.tgz";
+        sha512 = "8u+Wo5+GEXe4jZyQ8TplLp+1A7g32ZcVoE7VZu8VcxnlaEm5I/+T579R7q3qKN76jmK0lRshpo4hl4bj/kEPKA==";
+      };
+    };
     "@types/superagent-3.8.2" = {
       name = "_at_types_slash_superagent";
       packageName = "@types/superagent";
@@ -8329,13 +8428,13 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.1.1" = {
+    "acorn-8.2.1" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.1.1";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz";
-        sha512 = "xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz";
+        sha512 = "z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -8473,22 +8572,22 @@ let
         sha1 = "6a7990437ca736d5e1288db92bd3266d5f5cb2aa";
       };
     };
-    "addons-linter-2.21.0" = {
+    "addons-linter-3.2.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "2.21.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.21.0.tgz";
-        sha512 = "1XfqeVbvaEpjRlWJq/Ti0W6bH3RszaIDPeKl+4ZmXCx+C8ovRqy4CJmitqNffLr+2KpY4h5ei2eRygbvJYDyrw==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-3.2.0.tgz";
+        sha512 = "b6oViLOBgXWsld5L3DJiJSt77DYjVrk2Yam2/gD5e2bsj5xfNvavugwhlJP/MIF0j5yetYT/XFQDXY1Hs0flOA==";
       };
     };
-    "addons-scanner-utils-4.2.0" = {
+    "addons-scanner-utils-4.4.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "4.2.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.2.0.tgz";
-        sha512 = "VKLYNlKg2RCMvmOKmbWlu14hjdyk2vcTHscQGmDlnHfWcf6fAb8E7vY9/ajWdLykVVKZEUiGOoD5EIkIp1FyUA==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.4.0.tgz";
+        sha512 = "fEUGQIqLYeLl5cV6FFSHU+XFlOYETXqm8jxmYGsVayjZaAqWEkIjTXNu4+pDEiqIkrqjPYP2izjrnhBpHRsyog==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -9256,6 +9355,15 @@ let
         sha512 = "hXI9PjJtzmD34XviBU+4sPMOxnifYrHVmxpjykqI/dUD2G3yTiuRaiQqwRwB2RCdwC1Ug/jBfoQ/NHDTnnjndQ==";
       };
     };
+    "apollo-env-0.9.0" = {
+      name = "apollo-env";
+      packageName = "apollo-env";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.9.0.tgz";
+        sha512 = "oMSaFiCYEULXTv1sLhuPpAg0SykJNzEu5QWvCw0844yq14MyETXFERmAYD9b8nNjQLAdpjbbkBGKTWcw5wgd5Q==";
+      };
+    };
     "apollo-graphql-0.6.1" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
@@ -9301,13 +9409,13 @@ let
         sha512 = "SfjKaccrhRzUQ8TAke9FrYppp4pZV3Rp8KCs+4Ox3kGtbco68acRPJkiYYtSVc4idR8XNAUOOVfAEZVNHdZQKQ==";
       };
     };
-    "apollo-server-core-2.22.2" = {
+    "apollo-server-core-2.23.0" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.22.2";
+      version = "2.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.22.2.tgz";
-        sha512 = "YPrhfN+I5vUerc4c0I6pd89fdqP5UNYCt/+MGv4bDA/a0kOCLvzylkQ3NlEepK1fewtqf4QO+S1LscC8vMmYdg==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.23.0.tgz";
+        sha512 = "3/a4LPgRADc8CdT/nRh7W0CAqQv3Q4DJvakWQgKqGSqDEb/0u4IBynYjlQKuPBi4wwKdeK2Hb1wiQLl+zu4StQ==";
       };
     };
     "apollo-server-env-3.0.0" = {
@@ -9319,22 +9427,22 @@ let
         sha512 = "tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==";
       };
     };
-    "apollo-server-errors-2.4.2" = {
+    "apollo-server-errors-2.5.0" = {
       name = "apollo-server-errors";
       packageName = "apollo-server-errors";
-      version = "2.4.2";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz";
-        sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
+        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz";
+        sha512 = "lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==";
       };
     };
-    "apollo-server-express-2.22.2" = {
+    "apollo-server-express-2.23.0" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.22.2";
+      version = "2.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.22.2.tgz";
-        sha512 = "MRiWF/oT6toUz909iq1I08vKfRxaqRMKS/v9kzyEXcnuudUCQ5WnxrjZEh/iMEfr7RHSQ4STjY7E/ZooPnueqA==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.23.0.tgz";
+        sha512 = "tzil7c51ODH0rT1Bc5VMksdWzHrYGavdLtnDz4M0ePiTm18Gc81HD7X/4DPczorerEpfwwkf2YlADtPQfRSxlw==";
       };
     };
     "apollo-server-plugin-base-0.11.0" = {
@@ -9490,15 +9598,6 @@ let
         sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
       };
     };
-    "archiver-5.2.0" = {
-      name = "archiver";
-      packageName = "archiver";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-5.2.0.tgz";
-        sha512 = "QEAKlgQuAtUxKeZB9w5/ggKXh21bZS+dzzuQ0RPBC20qtDCbTyzqmisoeJP46MP39fg4B4IcyvR+yeyEBdblsQ==";
-      };
-    };
     "archiver-5.3.0" = {
       name = "archiver";
       packageName = "archiver";
@@ -10633,6 +10732,15 @@ let
         sha512 = "Eh6pW+fRC2/1RxPq3hO8+PkZKv+wujzKky2MP/n69eC8yMkbNFfuEb/riZHqf13M7gr6Hvglpk/kISgBSBb6bQ==";
       };
     };
+    "atomic-file-rw-0.2.1" = {
+      name = "atomic-file-rw";
+      packageName = "atomic-file-rw";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atomic-file-rw/-/atomic-file-rw-0.2.1.tgz";
+        sha512 = "73oEZ7tkhd/7QjvsNts9saHY9BYJQWD4izzI/bKJmwVl/BGT7J6wBFUC5qxNlQZlFORguqfsTQwvJA1lm3RoFw==";
+      };
+    };
     "atomic-sleep-1.0.0" = {
       name = "atomic-sleep";
       packageName = "atomic-sleep";
@@ -10651,15 +10759,6 @@ let
         sha512 = "Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==";
       };
     };
-    "atomically-universal-0.1.1" = {
-      name = "atomically-universal";
-      packageName = "atomically-universal";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/atomically-universal/-/atomically-universal-0.1.1.tgz";
-        sha512 = "0bqmz+wKlA9hIiH/C4R3K8dpsVV6mM/X76QZ70LMHW0XzCDXzxdWD5gfkmRXxTM5txlbYE/06iz0IziohUQVzw==";
-      };
-    };
     "attach-ware-1.1.1" = {
       name = "attach-ware";
       packageName = "attach-ware";
@@ -10750,13 +10849,13 @@ let
         sha512 = "+KBkqH7t/XE91Fqn8eyJeNIWsnhSWL8bSUqFD7TfE3FN07MTlC0nprGYp+2WfcYNz5i8Bus1vY2DHNVhtTImnw==";
       };
     };
-    "aws-sdk-2.885.0" = {
+    "aws-sdk-2.892.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.885.0";
+      version = "2.892.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.885.0.tgz";
-        sha512 = "V7fS53HkLYap+mt00frWB516HZV34C5pHNhBs/Het3Vgl7A0GbCpJs07G4FOIT9ioJ38+k9McscOzXG++1rWMQ==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.892.0.tgz";
+        sha512 = "OOXJ15AnJJMHZYXJQVy22Wjnp5GrZCfvCxmoZuXdsLNs8M+BL4mfBqma82+UkM2NhJgLYuAhDfvFUBob6VGIWw==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -11011,6 +11110,15 @@ let
         sha512 = "u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==";
       };
     };
+    "babel-plugin-macros-2.8.0" = {
+      name = "babel-plugin-macros";
+      packageName = "babel-plugin-macros";
+      version = "2.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz";
+        sha512 = "SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==";
+      };
+    };
     "babel-plugin-minify-builtins-0.5.0" = {
       name = "babel-plugin-minify-builtins";
       packageName = "babel-plugin-minify-builtins";
@@ -11245,6 +11353,15 @@ let
         sha1 = "98c1d21e255736573f93ece54459f6ce24985d39";
       };
     };
+    "babel-plugin-transform-react-remove-prop-types-0.4.24" = {
+      name = "babel-plugin-transform-react-remove-prop-types";
+      packageName = "babel-plugin-transform-react-remove-prop-types";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz";
+        sha512 = "eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==";
+      };
+    };
     "babel-plugin-transform-regexp-constructors-0.4.3" = {
       name = "babel-plugin-transform-regexp-constructors";
       packageName = "babel-plugin-transform-regexp-constructors";
@@ -11299,6 +11416,15 @@ let
         sha1 = "be241ca81404030678b748717322b89d0c8fe280";
       };
     };
+    "babel-plugin-universal-import-4.0.2" = {
+      name = "babel-plugin-universal-import";
+      packageName = "babel-plugin-universal-import";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-universal-import/-/babel-plugin-universal-import-4.0.2.tgz";
+        sha512 = "VTtHsmvwRBkX3yLK4e+pFwk88BC6iNFqS2J8CCx2ddQc7RjXoRhuXXIgYCng21DYNty9IicCwDdTDjdr+TM7eg==";
+      };
+    };
     "babel-polyfill-6.23.0" = {
       name = "babel-polyfill";
       packageName = "babel-polyfill";
@@ -11461,6 +11587,15 @@ let
         sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
+    "balanced-match-2.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz";
+        sha512 = "1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==";
+      };
+    };
     "base-0.11.2" = {
       name = "base";
       packageName = "base";
@@ -11902,6 +12037,15 @@ let
         sha512 = "GupIidtCvLbKhXnA1sxvrwa+gh95qbjafy7P1U1x/2DHxNabXq4nGW0x3rmgzlJMYlVl+c8fMxoMRIwpKYlgcQ==";
       };
     };
+    "bfj-6.1.2" = {
+      name = "bfj";
+      packageName = "bfj";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz";
+        sha512 = "BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==";
+      };
+    };
     "bheep-0.1.5" = {
       name = "bheep";
       packageName = "bheep";
@@ -11938,6 +12082,15 @@ let
         sha512 = "j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==";
       };
     };
+    "big.js-3.2.0" = {
+      name = "big.js";
+      packageName = "big.js";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz";
+        sha512 = "+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==";
+      };
+    };
     "big.js-5.2.2" = {
       name = "big.js";
       packageName = "big.js";
@@ -11983,6 +12136,15 @@ let
         sha1 = "dd3a862b2fedf66fee8471320069428d0d84427a";
       };
     };
+    "bin-links-2.2.1" = {
+      name = "bin-links";
+      packageName = "bin-links";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bin-links/-/bin-links-2.2.1.tgz";
+        sha512 = "wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg==";
+      };
+    };
     "bin-version-2.0.0" = {
       name = "bin-version";
       packageName = "bin-version";
@@ -12055,13 +12217,13 @@ let
         sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
       };
     };
-    "binaryextensions-2.3.0" = {
+    "binaryextensions-4.15.0" = {
       name = "binaryextensions";
       packageName = "binaryextensions";
-      version = "2.3.0";
+      version = "4.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.3.0.tgz";
-        sha512 = "nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==";
+        url = "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.15.0.tgz";
+        sha512 = "MkUl3szxXolQ2scI1PM14WOT951KnaTNJ0eMKg7WzOI4kvSxyNo/Cygx4LOBNhwyINhAuSQpJW1rYD9aBSxGaw==";
       };
     };
     "bindings-1.2.1" = {
@@ -12154,13 +12316,13 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.5.0" = {
+    "bipf-1.5.1" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.0.tgz";
-        sha512 = "EjpRVanEn4/Z2ilD2OeTfkWnogvxe+PZ8Gxzt7m+2xRT9rg6g1pETAdYy2vmJhNNZYX9axiV3Zf8HxuaYb0W3w==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.1.tgz";
+        sha512 = "SrLwMzrpETJDiH9z12EMcqtApgcQo9XsPi+S9Aodezu53ALcGjBBQ7+C+IWbsSCBlSvNEec8sqfh3itO/j/QUw==";
       };
     };
     "bitcoin-core-2.3.0" = {
@@ -13135,13 +13297,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.16.4" = {
+    "browserslist-4.16.5" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.16.4";
+      version = "4.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.4.tgz";
-        sha512 = "d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz";
+        sha512 = "C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==";
       };
     };
     "brq-0.1.8" = {
@@ -14089,13 +14251,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001208" = {
+    "caniuse-lite-1.0.30001214" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001208";
+      version = "1.0.30001214";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz";
-        sha512 = "OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001214.tgz";
+        sha512 = "O2/SCpuaU3eASWVaesQirZv1MSjUNOvmugaD8zNSJqw6Vv5SGwoOpA9LJs3pNPfM745nxqPvfZY3MQKY4AKHYg==";
       };
     };
     "canvas-2.7.0" = {
@@ -14152,6 +14314,15 @@ let
         sha512 = "mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==";
       };
     };
+    "case-sensitive-paths-webpack-plugin-2.4.0" = {
+      name = "case-sensitive-paths-webpack-plugin";
+      packageName = "case-sensitive-paths-webpack-plugin";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz";
+        sha512 = "roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==";
+      };
+    };
     "caseless-0.11.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -14242,13 +14413,13 @@ let
         sha512 = "G6SIJSg6mxeEzWEWNY8NAn/jqysTPegV79mOQ6eYj1uyKYggyzP5MzuWt8fKmYShM5BTDadnCRajwDnku9LZeQ==";
       };
     };
-    "cdktf-0.2.1" = {
+    "cdktf-0.3.0" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.2.1";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.2.1.tgz";
-        sha512 = "yz2eoeiSWDjf98ackXw6D0bWvdsmJ7EIxuTHbkn7hzaIJ9sDrXhVLpcTP0rolBVZ/FR8/mtFLoEdHnthIg5IcA==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.3.0.tgz";
+        sha512 = "+Nk6eKVMjcnIlu5KPZ02vo2VuD1B+wFydGS00BvvpwDjymhNnMTc5ADjPtGhwpi067i30j/HCFRHDKG04dgVbg==";
       };
     };
     "center-align-0.1.3" = {
@@ -14377,6 +14548,15 @@ let
         sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
       };
     };
+    "chalk-4.1.1" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
+        sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+      };
+    };
     "chance-1.0.18" = {
       name = "chance";
       packageName = "chance";
@@ -14530,6 +14710,15 @@ let
         sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
       };
     };
+    "check-types-8.0.3" = {
+      name = "check-types";
+      packageName = "check-types";
+      version = "8.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz";
+        sha512 = "YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==";
+      };
+    };
     "cheerio-0.17.0" = {
       name = "cheerio";
       packageName = "cheerio";
@@ -14593,13 +14782,13 @@ let
         sha512 = "hjx1XE1M/D5pAtMgvWwE21QClmAEeGHOIDfycgmndisdNgI6PE1cGRQkMGBcsbUbmEQyWu5PJLUcAOjtQS8DWw==";
       };
     };
-    "cheerio-select-1.3.0" = {
+    "cheerio-select-1.4.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
-      version = "1.3.0";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.3.0.tgz";
-        sha512 = "mLgqdHxVOQyhOIkG5QnRkDg7h817Dkf0dAvlCio2TJMmR72cJKH0bF28SHXvLkVrGcGOiub0/Bs/CMnPeQO7qw==";
+        url = "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.4.0.tgz";
+        sha512 = "sobR3Yqz27L553Qa7cK6rtJlMDbiKPdNywtR95Sj/YgfpLfy0u6CGJuaBKe5YE/vTc23SCRKxWSdlon/w6I/Ew==";
       };
     };
     "cheerio-select-tmp-0.1.1" = {
@@ -14881,6 +15070,15 @@ let
         sha512 = "BUDFvrBTCdeVhg9E05PX4XgMegk6xWB69uGwyuATEg7PMfa9lGU1mzFSK0xWNW2O0i9CAQHN0oIdXI/kI2hPkg==";
       };
     };
+    "circular-dependency-plugin-5.2.2" = {
+      name = "circular-dependency-plugin";
+      packageName = "circular-dependency-plugin";
+      version = "5.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz";
+        sha512 = "g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==";
+      };
+    };
     "circular-json-0.3.3" = {
       name = "circular-json";
       packageName = "circular-json";
@@ -15709,13 +15907,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.27.1" = {
+    "codemaker-1.29.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.27.1.tgz";
-        sha512 = "0Ypru4bovWAqZY+giAMIFQh1aJlTJLU7rbNPzkAW7U9mPoja2IE4KLWNlSEYvP7hpamY51Nrz/VfcazsB6a/rg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.29.0.tgz";
+        sha512 = "dNUTiOhxNYB7MV75bLLCie1gr0SUh6wEOPc5OyZob4mLj51OETYIeRYILEiz39QVKLRx6YSbKoCY/S4PqQ0PNQ==";
       };
     };
     "codepage-1.4.0" = {
@@ -16222,6 +16420,15 @@ let
         sha512 = "ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==";
       };
     };
+    "commander-7.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz";
+        sha512 = "pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==";
+      };
+    };
     "commander-7.2.0" = {
       name = "commander";
       packageName = "commander";
@@ -16249,6 +16456,15 @@ let
         sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
       };
     };
+    "common-ancestor-path-1.0.1" = {
+      name = "common-ancestor-path";
+      packageName = "common-ancestor-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz";
+        sha512 = "L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==";
+      };
+    };
     "common-path-prefix-2.0.0" = {
       name = "common-path-prefix";
       packageName = "common-path-prefix";
@@ -16753,6 +16969,15 @@ let
         sha512 = "3KFtTsA7OV27m/+pJhN4iJkKzHbPIPvyvEX5BQ/JCAWjfCHOQEVpIgxHLpT4i8L1OFta+pJrzcEVAHo6UitwqA==";
       };
     };
+    "constructs-3.3.75" = {
+      name = "constructs";
+      packageName = "constructs";
+      version = "3.3.75";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.75.tgz";
+        sha512 = "q10foASSSfDWmS99OQLfnWDXCzqLvoORISAVWPFg0AmIGlBv2ZdDOtXxLqrJARPxVlOldmW2JzWzdRI+4+0/ZA==";
+      };
+    };
     "consume-http-header-1.0.0" = {
       name = "consume-http-header";
       packageName = "consume-http-header";
@@ -16835,13 +17060,13 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
-    "contentful-management-7.14.1" = {
+    "contentful-management-7.17.1" = {
       name = "contentful-management";
       packageName = "contentful-management";
-      version = "7.14.1";
+      version = "7.17.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.14.1.tgz";
-        sha512 = "s8Jisju/GI9n0zvkBQDix8jo8Grq3dfv0VPicc4cRXUopxjy8O+zH+nBiiU+M9TPS4RxtivDzwNH64smweDkbg==";
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.17.1.tgz";
+        sha512 = "t2stBJNvvY347d84GuNoHxPvPMGKQHAIC/2CwEL0y47yas+30A4jkbTugqermgZS2l52gnasjo6xBTE27Rqb0w==";
       };
     };
     "contentful-sdk-core-6.7.0" = {
@@ -17258,13 +17483,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.10.1" = {
+    "core-js-3.11.0" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.10.1";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.10.1.tgz";
-        sha512 = "pwCxEXnj27XG47mu7SXAwhLP3L5CrlvCB91ANUkIz40P27kUcvNfSdvyZJ9CLHiVoKSp+TTChMQMSKQEH/IQxA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.11.0.tgz";
+        sha512 = "bd79DPpx+1Ilh9+30aT5O1sgpQd4Ttg8oqkqi51ZzhedMM1omD2e6IOF48Z/DzDCZ2svp49tN/3vneTK6ZBkXw==";
       };
     };
     "core-js-3.8.3" = {
@@ -17276,22 +17501,22 @@ let
         sha512 = "KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==";
       };
     };
-    "core-js-compat-3.10.1" = {
+    "core-js-compat-3.11.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.10.1";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz";
-        sha512 = "ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.0.tgz";
+        sha512 = "3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==";
       };
     };
-    "core-js-pure-3.10.1" = {
+    "core-js-pure-3.11.0" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.10.1";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.1.tgz";
-        sha512 = "PeyJH2SE0KuxY5eCGNWA+W+CeDpB6M1PN3S7Am7jSv/Ttuxz2SnWbIiVQOn/TDaGaGtxo8CRWHkXwJscbUHtVw==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.11.0.tgz";
+        sha512 = "PxEiQGjzC+5qbvE7ZIs5Zn6BynNeZO9zHhrrWmkRff2SZLq0CE/H5LuZOJHhmOQ8L38+eMzEHAmPYWrUtDfuDQ==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -17501,13 +17726,13 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
-    "create-gatsby-1.2.0" = {
+    "create-gatsby-1.3.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.2.0.tgz";
-        sha512 = "CXvs1wxGqU1m8PMGmcuJfi9x8koFZZu0JwQr+e7MNnUL33wQEnaLSdwFDBUT4cEqFVWXWAcGErBOZT7/XEgh7Q==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.3.0.tgz";
+        sha512 = "c78VG3AIqUg/sJCvxzFL5tGwO8MsDICRvyQ/FXS81Kf/QTr0ON9VvDjodEiM9AmtcyU5vRnM/GspEt1YfHo38A==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -17537,6 +17762,15 @@ let
         sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
       };
     };
+    "create-react-context-0.3.0" = {
+      name = "create-react-context";
+      packageName = "create-react-context";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz";
+        sha512 = "dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==";
+      };
+    };
     "create-torrent-4.7.0" = {
       name = "create-torrent";
       packageName = "create-torrent";
@@ -17600,15 +17834,6 @@ let
         sha512 = "KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==";
       };
     };
-    "cross-fetch-3.1.1" = {
-      name = "cross-fetch";
-      packageName = "cross-fetch";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz";
-        sha512 = "eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==";
-      };
-    };
     "cross-fetch-3.1.4" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
@@ -17798,6 +18023,15 @@ let
         sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
       };
     };
+    "css-loader-2.1.1" = {
+      name = "css-loader";
+      packageName = "css-loader";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz";
+        sha512 = "OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==";
+      };
+    };
     "css-loader-3.6.0" = {
       name = "css-loader";
       packageName = "css-loader";
@@ -17870,13 +18104,13 @@ let
         sha512 = "qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==";
       };
     };
-    "css-select-4.0.0" = {
+    "css-select-4.1.2" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.0.0";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.0.0.tgz";
-        sha512 = "I7favumBlDP/nuHBKLfL5RqvlvRdn/W29evvWJ+TaoGPm7QD+xSIN5eY2dyGjtkUmemh02TZrqJb4B8DWo6PoQ==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.2.tgz";
+        sha512 = "nu5ye2Hg/4ISq4XqdLY2bEatAcLIdt3OYGFc9Tm9n7VSlFBcfRv0gBNksHRgSdUDQGtN3XrZ94ztW+NfzkFSUw==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -18149,13 +18383,13 @@ let
         sha1 = "d1cfd8743c2f849a0abb2fd544db56695d19a490";
       };
     };
-    "csv-parse-4.15.3" = {
+    "csv-parse-4.15.4" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "4.15.3";
+      version = "4.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.3.tgz";
-        sha512 = "jlTqDvLdHnYMSr08ynNfk4IAUSJgJjTKy2U5CQBSu4cN9vQOJonLVZP4Qo4gKKrIgIQ5dr07UwOJdi+lRqT12w==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.4.tgz";
+        sha512 = "OdBbFc0yZhOm17lSxqkirrHlFFVpKRT0wp4DAGoJelsP3LbGzV9LNr7XmM/lrr0uGkCtaqac9UhP8PDHXOAbMg==";
       };
     };
     "csv-parser-1.12.1" = {
@@ -18617,13 +18851,13 @@ let
         sha512 = "LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==";
       };
     };
-    "d3-scale-3.2.4" = {
+    "d3-scale-3.3.0" = {
       name = "d3-scale";
       packageName = "d3-scale";
-      version = "3.2.4";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz";
-        sha512 = "PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==";
+        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz";
+        sha512 = "1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==";
       };
     };
     "d3-scale-chromatic-1.5.0" = {
@@ -18779,15 +19013,6 @@ let
         sha512 = "JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==";
       };
     };
-    "dargs-6.1.0" = {
-      name = "dargs";
-      packageName = "dargs";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dargs/-/dargs-6.1.0.tgz";
-        sha512 = "5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==";
-      };
-    };
     "dargs-7.0.0" = {
       name = "dargs";
       packageName = "dargs";
@@ -19040,6 +19265,15 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
+    "dateformat-4.5.1" = {
+      name = "dateformat";
+      packageName = "dateformat";
+      version = "4.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz";
+        sha512 = "OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==";
+      };
+    };
     "dayjs-1.10.4" = {
       name = "dayjs";
       packageName = "dayjs";
@@ -20426,13 +20660,13 @@ let
         sha512 = "EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==";
       };
     };
-    "dispensary-0.61.0" = {
+    "dispensary-0.62.0" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.61.0";
+      version = "0.62.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.61.0.tgz";
-        sha512 = "5BK13jrYQ+0bHgZBv7IOQsff5ydeNcnp87w3c7T8x5im21RDFQyiHrTlH0DoouZDyAVHILpat4Ytf7gRuhMRgw==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.62.0.tgz";
+        sha512 = "x8vqPX7owhzDp3Y6t/iOuTuNoWx5hlZKITlzlybETsZoY05cYDubGpwt0soLfRLAWLuxX1lq0lTc/vXtk/CDCw==";
       };
     };
     "diveSync-0.3.0" = {
@@ -20813,13 +21047,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.1.0" = {
+    "domhandler-4.2.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.1.0.tgz";
-        sha512 = "/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz";
+        sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==";
       };
     };
     "domino-2.1.6" = {
@@ -20867,13 +21101,13 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.5.2" = {
+    "domutils-2.6.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.5.2";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.2.tgz";
-        sha512 = "MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz";
+        sha512 = "y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==";
       };
     };
     "dot-case-3.0.4" = {
@@ -21020,6 +21254,15 @@ let
         sha512 = "yXcCvhkPKmq5M2cQXss6Qbig+LZnzRIT40XCYm/QCRnJaPG867StB1qnsBLxOGrPH1YEIRWW2gJq7LLMyw+NmA==";
       };
     };
+    "download-git-repo-2.0.0" = {
+      name = "download-git-repo";
+      packageName = "download-git-repo";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/download-git-repo/-/download-git-repo-2.0.0.tgz";
+        sha512 = "al8ZOwpm/DvCd7XC8PupeuNlC2TrvsMxW3FOx1bCbHNBhP1lYjOn9KnPqnZ3o/jz1vxCC5NHGJA7LT+GYMLcHA==";
+      };
+    };
     "download-git-repo-3.0.2" = {
       name = "download-git-repo";
       packageName = "download-git-repo";
@@ -21029,15 +21272,6 @@ let
         sha512 = "N8hWXD4hXqmEcNoR8TBYFntaOcYvEQ7Bz90mgm3bZRTuteGQqwT32VDMnTyD0KTEvb8BWrMc1tVmzuV9u/WrAg==";
       };
     };
-    "download-stats-0.3.4" = {
-      name = "download-stats";
-      packageName = "download-stats";
-      version = "0.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/download-stats/-/download-stats-0.3.4.tgz";
-        sha512 = "ic2BigbyUWx7/CBbsfGjf71zUNZB4edBGC3oRliSzsoNmvyVx3Ycfp1w3vp2Y78Ee0eIIkjIEO5KzW0zThDGaA==";
-      };
-    };
     "draftlog-1.0.13" = {
       name = "draftlog";
       packageName = "draftlog";
@@ -21245,13 +21479,13 @@ let
         sha1 = "94a44248bb87da35db0eff7af0aa576168117f59";
       };
     };
-    "editions-2.3.1" = {
+    "editions-6.1.0" = {
       name = "editions";
       packageName = "editions";
-      version = "2.3.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz";
-        sha512 = "ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==";
+        url = "https://registry.npmjs.org/editions/-/editions-6.1.0.tgz";
+        sha512 = "h6nWEyIocfgho9J3sTSuhU/WoFOu1hTX75rPBebNrbF38Y9QFDjCDizYXdikHTySW7Y3mSxli8bpDz9RAtc7rA==";
       };
     };
     "editor-1.0.0" = {
@@ -21353,13 +21587,13 @@ let
         sha512 = "1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==";
       };
     };
-    "electron-to-chromium-1.3.713" = {
+    "electron-to-chromium-1.3.720" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.713";
+      version = "1.3.720";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.713.tgz";
-        sha512 = "HWgkyX4xTHmxcWWlvv7a87RHSINEcpKYZmDMxkUlHcY+CJcfx7xEfBHuXVsO1rzyYs1WQJ7EgDp2CoErakBIow==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.720.tgz";
+        sha512 = "B6zLTxxaOFP4WZm6DrvgRk8kLFYWNhQ5TrHMC0l5WtkMXhU5UbnvWoTfeEwqOruUSlNMhVLfYak7REX6oC5Yfw==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -21535,6 +21769,15 @@ let
         sha512 = "5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==";
       };
     };
+    "emojis-list-2.1.0" = {
+      name = "emojis-list";
+      packageName = "emojis-list";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz";
+        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+      };
+    };
     "emojis-list-3.0.0" = {
       name = "emojis-list";
       packageName = "emojis-list";
@@ -21796,13 +22039,13 @@ let
         sha512 = "Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==";
       };
     };
-    "enhanced-resolve-5.7.0" = {
+    "enhanced-resolve-5.8.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.7.0";
+      version = "5.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz";
-        sha512 = "6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz";
+        sha512 = "Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==";
       };
     };
     "enquirer-2.3.6" = {
@@ -21994,13 +22237,13 @@ let
         sha512 = "GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==";
       };
     };
-    "errlop-2.2.0" = {
+    "errlop-4.1.0" = {
       name = "errlop";
       packageName = "errlop";
-      version = "2.2.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz";
-        sha512 = "e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==";
+        url = "https://registry.npmjs.org/errlop/-/errlop-4.1.0.tgz";
+        sha512 = "vul6gGBuVt0M2TPi1/WrcL86+Hb3Q2Tpu3TME3sbVhZrYf7J1ZMHCodI25RQKCVurh56qTfvgM0p3w5cT4reSQ==";
       };
     };
     "errno-0.1.8" = {
@@ -22012,22 +22255,22 @@ let
         sha512 = "dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==";
       };
     };
-    "error-7.0.2" = {
+    "error-10.4.0" = {
       name = "error";
       packageName = "error";
-      version = "7.0.2";
+      version = "10.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/error/-/error-7.0.2.tgz";
-        sha1 = "a5f75fff4d9926126ddac0ea5dc38e689153cb02";
+        url = "https://registry.npmjs.org/error/-/error-10.4.0.tgz";
+        sha512 = "YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw==";
       };
     };
-    "error-7.2.1" = {
+    "error-7.0.2" = {
       name = "error";
       packageName = "error";
-      version = "7.2.1";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/error/-/error-7.2.1.tgz";
-        sha512 = "fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==";
+        url = "https://registry.npmjs.org/error/-/error-7.0.2.tgz";
+        sha1 = "a5f75fff4d9926126ddac0ea5dc38e689153cb02";
       };
     };
     "error-ex-1.3.2" = {
@@ -22228,13 +22471,13 @@ let
         sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
       };
     };
-    "esbuild-0.11.10" = {
+    "esbuild-0.11.14" = {
       name = "esbuild";
       packageName = "esbuild";
-      version = "0.11.10";
+      version = "0.11.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.11.10.tgz";
-        sha512 = "XvGbf+UreVFA24Tlk6sNOqNcvF2z49XAZt4E7A4H80+yqn944QOLTTxaU0lkdYNtZKFiITNea+VxmtrfjvnLPA==";
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.11.14.tgz";
+        sha512 = "ejheEPkqhq5y0LM9rG9e+3yDihPtqeeE4NZmG7VQiSGJ3CjO4HvPOHmhhttSksfSztjLAGo2+0/zSIvlqj4JOQ==";
       };
     };
     "esc-exit-2.0.2" = {
@@ -22408,22 +22651,22 @@ let
         sha512 = "S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==";
       };
     };
-    "eslint-7.21.0" = {
+    "eslint-7.24.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.21.0";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.21.0.tgz";
-        sha512 = "W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz";
+        sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
       };
     };
-    "eslint-7.24.0" = {
+    "eslint-7.25.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.24.0";
+      version = "7.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz";
-        sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz";
+        sha512 = "TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==";
       };
     };
     "eslint-import-resolver-node-0.3.4" = {
@@ -23371,13 +23614,13 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.71" = {
+    "expo-pwa-0.0.74" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.71";
+      version = "0.0.74";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.71.tgz";
-        sha512 = "qmW7fw9QzELiOWu8YD+NZlxLoZfmwNEbzQ83Wk4ZHrs1bod6tr67Mz4G/lgg9p4s8XHQKwF40xqEUF4qe4RA3A==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.74.tgz";
+        sha512 = "Y3lzJl9Q+0KuYt6003eacwpfoEYzO+w2R3oBDtfwGU16KbQkm2O6zGAYluBGnlPoph+fCUmyi2mT2ucd5KSlDQ==";
       };
     };
     "express-2.5.11" = {
@@ -23677,6 +23920,15 @@ let
         sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
       };
     };
+    "extract-css-chunks-webpack-plugin-4.9.0" = {
+      name = "extract-css-chunks-webpack-plugin";
+      packageName = "extract-css-chunks-webpack-plugin";
+      version = "4.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-4.9.0.tgz";
+        sha512 = "HNuNPCXRMqJDQ1OHAUehoY+0JVCnw9Y/H22FQzYVwo8Ulgew98AGDu0grnY5c7xwiXHjQa6yJ/1dxLCI/xqTyQ==";
+      };
+    };
     "extract-files-9.0.0" = {
       name = "extract-files";
       packageName = "extract-files";
@@ -23875,13 +24127,13 @@ let
         sha512 = "4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==";
       };
     };
-    "fast-equals-2.0.0" = {
+    "fast-equals-2.0.1" = {
       name = "fast-equals";
       packageName = "fast-equals";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.0.tgz";
-        sha512 = "u6RBd8cSiLLxAiC04wVsLV6GBFDOXcTCgWkd3wEoFXgidPSoAJENqC9m7Jb2vewSvjBIfXV6icKeh3GTKfIaXA==";
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.1.tgz";
+        sha512 = "jIHAbyu5Txdi299DitHXr4wuvw7ajz8S4xVgShJmQOUD6TovsKzvMoHoq9G8+dO6xeKWrwH3DURT+ZDKnwjSsA==";
       };
     };
     "fast-glob-2.2.7" = {
@@ -24136,6 +24388,15 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
+    "fecha-2.3.3" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
+        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+      };
+    };
     "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
@@ -24253,6 +24514,15 @@ let
         sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
       };
     };
+    "file-loader-3.0.1" = {
+      name = "file-loader";
+      packageName = "file-loader";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz";
+        sha512 = "4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==";
+      };
+    };
     "file-loader-6.0.0" = {
       name = "file-loader";
       packageName = "file-loader";
@@ -24469,13 +24739,13 @@ let
         sha512 = "LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==";
       };
     };
-    "filesize-6.2.1" = {
+    "filesize-6.3.0" = {
       name = "filesize";
       packageName = "filesize";
-      version = "6.2.1";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filesize/-/filesize-6.2.1.tgz";
-        sha512 = "neMilKeMJQ0zUWuxAciRVhtncuxF/Gkhig4+8FrL4g7ppqN7JEGRb1uZFjVid7OJk7CE3ulZuO7V+nB2WDJW+A==";
+        url = "https://registry.npmjs.org/filesize/-/filesize-6.3.0.tgz";
+        sha512 = "ytx0ruGpDHKWVoiui6+BY/QMNngtDQ/pJaFwfBpQif0J63+E8DLdFyqS3NkKQn7vIruUEpoGD9JUJSg7Kp+I0g==";
       };
     };
     "filestream-5.0.0" = {
@@ -24649,6 +24919,15 @@ let
         sha512 = "1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==";
       };
     };
+    "find-yarn-workspace-root2-1.2.16" = {
+      name = "find-yarn-workspace-root2";
+      packageName = "find-yarn-workspace-root2";
+      version = "1.2.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz";
+        sha512 = "hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==";
+      };
+    };
     "findit-1.2.0" = {
       name = "findit";
       packageName = "findit";
@@ -24703,13 +24982,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-4.1.0" = {
+    "firefox-profile-4.2.0" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.1.0.tgz";
-        sha512 = "n+0jsWhW57i7cAmdHg67W6u5vVSoIJN9D+d7M3w1MzhFLE5X/QxBfP80ksjNvNQDFXGdJQAnW9YupLkzgCxaFQ==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.0.tgz";
+        sha512 = "Z+/6GQ0JEW2eqgj63EYNbgKSgoIz7w1yXlkOWAIRkCNnj50rkfnQIz8uYwJkobxwYQM8vjFIbYiVtYuQV8US2A==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -24829,15 +25108,6 @@ let
         sha1 = "248cf79a3da7d7dc379e2a11c92a2719cbb540f6";
       };
     };
-    "flatmap-0.0.3" = {
-      name = "flatmap";
-      packageName = "flatmap";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz";
-        sha1 = "1f18a4d938152d495965f9c958d923ab2dd669b4";
-      };
-    };
     "flatstr-1.0.12" = {
       name = "flatstr";
       packageName = "flatstr";
@@ -24901,13 +25171,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.148.0" = {
+    "flow-parser-0.149.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.148.0";
+      version = "0.149.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.148.0.tgz";
-        sha512 = "m7YX6L2y0bW+bC+lH8mq3bWNS8zLdfXSkZR1Rrd9313abmBjEVYLez+D3NhYx8TnVcpJiiT28jbRVTnz/eG4ug==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.149.0.tgz";
+        sha512 = "ruUVkZuM9oFQjhSsLO/OJYRYpGnuXJpTnIZmgzna6DyLFb3CLpeO27oJbWyeXaa830hmKf0JRzpcdFsFS8lmpg==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -25279,13 +25549,13 @@ let
         sha512 = "ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==";
       };
     };
-    "form-urlencoded-4.5.0" = {
+    "form-urlencoded-4.5.1" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
-      version = "4.5.0";
+      version = "4.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.5.0.tgz";
-        sha512 = "iv4Vc+xD37MULhC7DBgSq/GBp2mZMh7Q19ErhAqCX9trPc7Ix8P7x+KZojTmEpxtajzpCm153sxrXKDbNxkBNQ==";
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.5.1.tgz";
+        sha512 = "Rkd/RdMaprsMJEGzEbxolwacp78WupH7u369KEyIY3pEZ1fhL6HtyQ1FX+4HSfA1VVhET18UwCUcr5DVaDIaqg==";
       };
     };
     "format-0.2.2" = {
@@ -25342,13 +25612,13 @@ let
         sha512 = "wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==";
       };
     };
-    "fp-ts-2.9.5" = {
+    "fp-ts-2.10.4" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.9.5";
+      version = "2.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.9.5.tgz";
-        sha512 = "MiHrA5teO6t8zKArE3DdMPT/Db6v2GUt5yfWnhBTrrsVfeCJUUnV6sgFvjGNBKDmEMqVwRFkEePL7wPwqrLKKA==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.10.4.tgz";
+        sha512 = "vMTB5zNc9PnE20q145PNbkiL9P9WegwmKVOFloi/NfHnPdAlcob6I3AKqlH/9u3k3/M/GOftZhcJdBrb+NtnDA==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -25648,6 +25918,15 @@ let
         sha512 = "cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==";
       };
     };
+    "fs-readdir-recursive-1.1.0" = {
+      name = "fs-readdir-recursive";
+      packageName = "fs-readdir-recursive";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+        sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
+      };
+    };
     "fs-routes-2.0.0" = {
       name = "fs-routes";
       packageName = "fs-routes";
@@ -25846,13 +26125,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.0.13" = {
+    "fx-runner-1.1.0" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.0.13";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.13.tgz";
-        sha512 = "Ces2bm+LNuXehkvmN1/Z+oEDkI/jHBp9xdyBtBy7hcgvF18/pv/D8F6A6kQgNkMZsnBgLEv+VvdDxyqkfkYycw==";
+        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.1.0.tgz";
+        sha512 = "v/Eo69DDFW30zPdvjCYVXddjVvLy2xGeRbg0S18bPd8kEc0q9VsDoDkjyOxY5lTZsAqcQGy0OWjs3HCfRVBNSg==";
       };
     };
     "galactus-0.2.1" = {
@@ -25864,31 +26143,31 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
-    "gatsby-core-utils-2.2.0" = {
+    "gatsby-core-utils-2.3.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.2.0.tgz";
-        sha512 = "7T6aVJAj0u/VUg+zKOLuxyZLS/8KDQcDeEFCkKY0d7Pd4wV/QqKRLljr0TRVkivRZHXyWQI9fM3ox5DzfkHdCQ==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.3.0.tgz";
+        sha512 = "M7RlR6jL2dtkUu4AoKBoQaPTsbpByzWHc7HBgeYdwzuqbk4VuMe6K76pFDvFSNj0+LvVhWoRGHO7OEtpfb2bEA==";
       };
     };
-    "gatsby-recipes-0.13.0" = {
+    "gatsby-recipes-0.14.0" = {
       name = "gatsby-recipes";
       packageName = "gatsby-recipes";
-      version = "0.13.0";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.13.0.tgz";
-        sha512 = "ni3J7wu45XfktDyxjL42zgjRzDqGQZX4/l541P5UbcAjdPAQJBP3qUgyPt2qhtenPYP/iZdbutXKxKjfkckcsQ==";
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.14.0.tgz";
+        sha512 = "f8vZtHA7mCWqLE/xxEs4gpKxfM53L4dPic6hkALMlNfg8040eu05D6YbNT3i3QLsyqpvX1vKH88SBHk7swwW8w==";
       };
     };
-    "gatsby-telemetry-2.2.0" = {
+    "gatsby-telemetry-2.3.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.2.0.tgz";
-        sha512 = "Zx/MP+By8QHgm2fikfq6egmcrwREsWAg2wfqTo0CRax5WUQQWl57zX3b0bIJ+k0sFCvU4XuxP0XrytvzxkVViQ==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.3.0.tgz";
+        sha512 = "dr7pILAnEtoG9ZUyPRljSwB/fGBDM4OCoM0mGw3DYr6HFlvrsbIl7AVL4LVJIr4TrtVUrhTjC/crSw+bTzO42A==";
       };
     };
     "gauge-1.2.7" = {
@@ -26224,13 +26503,13 @@ let
         sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
       };
     };
-    "get-stream-6.0.0" = {
+    "get-stream-6.0.1" = {
       name = "get-stream";
       packageName = "get-stream";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz";
-        sha512 = "A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==";
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz";
+        sha512 = "ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==";
       };
     };
     "get-uri-3.0.2" = {
@@ -26287,15 +26566,6 @@ let
         sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
       };
     };
-    "gh-got-5.0.0" = {
-      name = "gh-got";
-      packageName = "gh-got";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gh-got/-/gh-got-5.0.0.tgz";
-        sha1 = "ee95be37106fd8748a96f8d1db4baea89e1bfa8a";
-      };
-    };
     "gh-release-fetch-1.1.0" = {
       name = "gh-release-fetch";
       packageName = "gh-release-fetch";
@@ -26359,6 +26629,15 @@ let
         sha1 = "c57d1145eec16465ab9bfbdf575262b1691624d6";
       };
     };
+    "git-promise-1.0.0" = {
+      name = "git-promise";
+      packageName = "git-promise";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-promise/-/git-promise-1.0.0.tgz";
+        sha512 = "GAhWltNB3/sf/48MwE7MbObDM2tDls9YIvVlUmga3gyqSMZG3wHEMhGSQB6genvmnbbHMxCkpVVl5YP6qGQn3w==";
+      };
+    };
     "git-raw-commits-2.0.10" = {
       name = "git-raw-commits";
       packageName = "git-raw-commits";
@@ -26494,15 +26773,6 @@ let
         sha1 = "f985fedcc0a9aa579dc88d7aff068d55cc6251a0";
       };
     };
-    "github-username-3.0.0" = {
-      name = "github-username";
-      packageName = "github-username";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/github-username/-/github-username-3.0.0.tgz";
-        sha1 = "0a772219b3130743429f2456d0bdd3db55dce7b1";
-      };
-    };
     "gl-matrix-2.8.1" = {
       name = "gl-matrix";
       packageName = "gl-matrix";
@@ -27359,13 +27629,13 @@ let
         sha512 = "zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==";
       };
     };
-    "graphql-ws-4.2.2" = {
+    "graphql-ws-4.4.2" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "4.2.2";
+      version = "4.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz";
-        sha512 = "b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.4.2.tgz";
+        sha512 = "Cz+t1w+8+tiHIKzcz45tMwrxJpPSQ7KNjQrfN8ADAELECkkBB7aSvAgpShWz0Tne8teH/UxzJsULObLVq5eMvQ==";
       };
     };
     "gray-matter-2.1.1" = {
@@ -27386,13 +27656,13 @@ let
         sha512 = "CgXlq3PGpBRj8RMnLSYs46Hvl5q9Up9kwuMAcYlvS4sNgH5j4Ao7hbY+HI62PaYTeIdffiJidLEIeZVCmZCrFA==";
       };
     };
-    "grouped-queue-1.1.0" = {
+    "grouped-queue-2.0.0" = {
       name = "grouped-queue";
       packageName = "grouped-queue";
-      version = "1.1.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/grouped-queue/-/grouped-queue-1.1.0.tgz";
-        sha512 = "rZOFKfCqLhsu5VqjBjEWiwrYqJR07KxIkH4mLZlNlGDfntbb4FbMyGFP14TlvRPrU9S3Hnn/sgxbC5ZeN0no3Q==";
+        url = "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz";
+        sha512 = "/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw==";
       };
     };
     "growl-1.10.5" = {
@@ -27440,6 +27710,15 @@ let
         sha512 = "OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==";
       };
     };
+    "gud-1.0.0" = {
+      name = "gud";
+      packageName = "gud";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz";
+        sha512 = "zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==";
+      };
+    };
     "gulp-4.0.2" = {
       name = "gulp";
       packageName = "gulp";
@@ -27926,6 +28205,15 @@ let
         sha512 = "WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==";
       };
     };
+    "hash-wasm-4.6.0" = {
+      name = "hash-wasm";
+      packageName = "hash-wasm";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-wasm/-/hash-wasm-4.6.0.tgz";
+        sha512 = "Wi96tJDftxUQciCUi2Vs/Nw8al3psRATe/FhyezrajJKCXKRHvpiFARTZuUgdlGB7825LiN+FluH7SFoGdiGRA==";
+      };
+    };
     "hash.js-1.1.7" = {
       name = "hash.js";
       packageName = "hash.js";
@@ -27998,6 +28286,15 @@ let
         sha512 = "JQMW+TJe0UAIXZMjCJ4Wf6ayDV9Yv3PBDPsHD4ExBpAspJ6MOcCX+nzVF+UJVv7OqPcg852WEMSHQPoRA+FVSw==";
       };
     };
+    "hast-util-from-parse5-5.0.3" = {
+      name = "hast-util-from-parse5";
+      packageName = "hast-util-from-parse5";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz";
+        sha512 = "gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==";
+      };
+    };
     "hast-util-from-parse5-6.0.1" = {
       name = "hast-util-from-parse5";
       packageName = "hast-util-from-parse5";
@@ -28079,6 +28376,15 @@ let
         sha512 = "I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==";
       };
     };
+    "hastscript-5.1.2" = {
+      name = "hastscript";
+      packageName = "hastscript";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz";
+        sha512 = "WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==";
+      };
+    };
     "hastscript-6.0.0" = {
       name = "hastscript";
       packageName = "hastscript";
@@ -28358,6 +28664,15 @@ let
         sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
       };
     };
+    "hoopy-0.1.4" = {
+      name = "hoopy";
+      packageName = "hoopy";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz";
+        sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==";
+      };
+    };
     "hoox-0.0.1" = {
       name = "hoox";
       packageName = "hoox";
@@ -28547,6 +28862,15 @@ let
         sha512 = "uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==";
       };
     };
+    "html-webpack-plugin-3.2.0" = {
+      name = "html-webpack-plugin";
+      packageName = "html-webpack-plugin";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz";
+        sha1 = "b01abbd723acaaa7b37b6af4492ebda03d9dd37b";
+      };
+    };
     "html-webpack-plugin-4.3.0" = {
       name = "html-webpack-plugin";
       packageName = "html-webpack-plugin";
@@ -28800,13 +29124,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-1.1.1" = {
+    "http-proxy-middleware-1.2.1" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "1.1.1";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.1.tgz";
-        sha512 = "FIDg9zPvOwMhQ3XKB2+vdxK6WWbVAH7s5QpqQCif7a1TNL76GNAATWA1sy6q2gSfss8UJ/Nwza3N6QnFkKclpA==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.2.1.tgz";
+        sha512 = "mxqwEC+IOneTLuYz1B7fmLUmXXkVWfcbiXe8LsCctIX12vxfJU1Uj9HJD/G9MwK4HvgEdgKI8NZySM3uheC2JQ==";
       };
     };
     "http-signature-0.11.0" = {
@@ -29232,6 +29556,15 @@ let
         sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c";
       };
     };
+    "image-size-0.9.7" = {
+      name = "image-size";
+      packageName = "image-size";
+      version = "0.9.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/image-size/-/image-size-0.9.7.tgz";
+        sha512 = "KRVgLNZkr00YGN0qn9MlIrmlxbRhsCcEb1Byq3WKGnIV4M48iD185cprRtaoK4t5iC+ym2Q5qlArxZ/V1yzDgA==";
+      };
+    };
     "image-type-3.1.0" = {
       name = "image-type";
       packageName = "image-type";
@@ -29304,6 +29637,15 @@ let
         sha512 = "aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==";
       };
     };
+    "import-cwd-2.1.0" = {
+      name = "import-cwd";
+      packageName = "import-cwd";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz";
+        sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9";
+      };
+    };
     "import-cwd-3.0.0" = {
       name = "import-cwd";
       packageName = "import-cwd";
@@ -29331,6 +29673,15 @@ let
         sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
       };
     };
+    "import-from-2.1.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz";
+        sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
+      };
+    };
     "import-from-3.0.0" = {
       name = "import-from";
       packageName = "import-from";
@@ -29583,13 +29934,22 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
-    "init-package-json-2.0.2" = {
+    "init-package-json-2.0.3" = {
       name = "init-package-json";
       packageName = "init-package-json";
-      version = "2.0.2";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.3.tgz";
+        sha512 = "tk/gAgbMMxR6fn1MgMaM1HpU1ryAmBWWitnxG5OhuNXeX0cbpbgV5jA4AIpQJVNoyOfOevTtO6WX+rPs+EFqaQ==";
+      };
+    };
+    "ink-2.7.1" = {
+      name = "ink";
+      packageName = "ink";
+      version = "2.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.2.tgz";
-        sha512 = "PO64kVeArePvhX7Ff0jVWkpnE1DfGRvaWcStYrPugcJz9twQGYibagKJuIMHCX7ENcp0M6LJlcjLBuLD5KeJMg==";
+        url = "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz";
+        sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
       };
     };
     "ink-3.0.8" = {
@@ -29961,6 +30321,15 @@ let
         sha1 = "332650e10854d8c0ac58c192bdc27a8bf7e7a30c";
       };
     };
+    "intersection-observer-0.7.0" = {
+      name = "intersection-observer";
+      packageName = "intersection-observer";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.7.0.tgz";
+        sha512 = "Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==";
+      };
+    };
     "into-stream-2.0.1" = {
       name = "into-stream";
       packageName = "into-stream";
@@ -30042,6 +30411,15 @@ let
         sha512 = "AMCHpf/7sJOjeRbTgCLLvhH41ZnUv0D809ZFJRhR2dGOfp8GxJHzfnNqtgYGxQiW0+dVK2ooBVyR+dqoEQs6mw==";
       };
     };
+    "invoices-1.2.0" = {
+      name = "invoices";
+      packageName = "invoices";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invoices/-/invoices-1.2.0.tgz";
+        sha512 = "x9jMmN/afPZkeL7qwMj15r+RSV7ztPsfxKgByD3bXR/WhmjrlfU+zwfliohScW/UV1b0FUSq6A7DgTME4tdMSQ==";
+      };
+    };
     "iota-array-1.0.0" = {
       name = "iota-array";
       packageName = "iota-array";
@@ -30411,13 +30789,13 @@ let
         sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
       };
     };
-    "is-core-module-2.2.0" = {
+    "is-core-module-2.3.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz";
+        sha512 = "xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -31275,15 +31653,6 @@ let
         sha512 = "AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==";
       };
     };
-    "is-scoped-1.0.0" = {
-      name = "is-scoped";
-      packageName = "is-scoped";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz";
-        sha1 = "449ca98299e713038256289ecb2b540dc437cb30";
-      };
-    };
     "is-scoped-2.1.0" = {
       name = "is-scoped";
       packageName = "is-scoped";
@@ -31779,13 +32148,13 @@ let
         sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
       };
     };
-    "istextorbinary-2.6.0" = {
+    "istextorbinary-5.12.0" = {
       name = "istextorbinary";
       packageName = "istextorbinary";
-      version = "2.6.0";
+      version = "5.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz";
-        sha512 = "+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==";
+        url = "https://registry.npmjs.org/istextorbinary/-/istextorbinary-5.12.0.tgz";
+        sha512 = "wLDRWD7qpNTYubk04+q3en1+XZGS4vYWK0+SxNSXJLaITMMEK+J3o/TlOMyULeH1qozVZ9uUkKcyMA8odyxz8w==";
       };
     };
     "isuri-2.0.3" = {
@@ -32013,13 +32382,13 @@ let
         sha512 = "0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==";
       };
     };
-    "jitdb-3.0.2" = {
+    "jitdb-3.1.3" = {
       name = "jitdb";
       packageName = "jitdb";
-      version = "3.0.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jitdb/-/jitdb-3.0.2.tgz";
-        sha512 = "8wsv+QlJNaYPH6RHb3HlwheqAKAxsTlFezhF3oTpYLyvrWroX2XDWbXdLOmDb27JviHvjwDV4CXw9mlL/q1new==";
+        url = "https://registry.npmjs.org/jitdb/-/jitdb-3.1.3.tgz";
+        sha512 = "g9RdoIzb2h9fkXKJVVQqQSU6U2XG4VrR6hsGjTGTha4rI+zNGBkIclhfrWAgTrW0ofjOIcMfgGWeIOLBTJLULw==";
       };
     };
     "jju-1.4.0" = {
@@ -32139,13 +32508,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.22.0" = {
+    "jquery.terminal-2.23.2" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.22.0";
+      version = "2.23.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.22.0.tgz";
-        sha512 = "0VDAqWMrqIcI7Mduqkgw/SM9G8aTMJUx/Lu8rxHVPfn10wkHZmaVywczVQgQWRCSdGa+/hy/qZEdaVPPmLyplw==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.23.2.tgz";
+        sha512 = "C92ZOquPhjGcB0PAEUHPlnkEycgtQoCoiCYZ3d7FyuK7z/JDSIXuNk5kosaVn3/NwFZ7jlFgy+s3kksHI0aFHg==";
       };
     };
     "js-base64-2.6.4" = {
@@ -32157,13 +32526,13 @@ let
         sha512 = "pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==";
       };
     };
-    "js-beautify-1.13.5" = {
+    "js-beautify-1.13.13" = {
       name = "js-beautify";
       packageName = "js-beautify";
-      version = "1.13.5";
+      version = "1.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.5.tgz";
-        sha512 = "MsXlH6Z/BiRYSkSRW3clNDqDjSpiSNOiG8xYVUBXt4k0LnGvDhlTGOlHX1VFtAdoLmtwjxMG5qiWKy/g+Ipv5w==";
+        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.13.tgz";
+        sha512 = "oH+nc0U5mOAqX8M5JO1J0Pw/7Q35sAdOsM5W3i87pir9Ntx6P/5Gx1xLNoK+MGyvHk4rqqRCE4Oq58H6xl2W7A==";
       };
     };
     "js-git-0.7.8" = {
@@ -32301,6 +32670,15 @@ let
         sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
       };
     };
+    "js-yaml-4.1.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
+      };
+    };
     "js2xmlparser-4.0.1" = {
       name = "js2xmlparser";
       packageName = "js2xmlparser";
@@ -32427,49 +32805,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.27.1" = {
+    "jsii-1.29.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.27.1.tgz";
-        sha512 = "2VIZwLytVRsOnqhdZNqZPPKrAPYIAmqxest7YcrwgFbTK+Zyxsa2FQyWyD2nNVzdxWqVUqALvuV3RMKMEHWv7g==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.29.0.tgz";
+        sha512 = "7o1yE/si/nbGsNquSejwxaiPq0iDSTPfDENd7ZyO3xzGIROV8UZSs+VhGyys9t/VF4og8p9s2olkajEN60fzMw==";
       };
     };
-    "jsii-pacmak-1.27.1" = {
+    "jsii-pacmak-1.29.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.27.1.tgz";
-        sha512 = "OA9lPxOFHyGmLsGWe8VjbTnIsAjZo8vHHB7RVHZeZ5pwKZJxV3ND2SBgb8cvzbu9rwLi/eFD0aAadq9fRFrDLA==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.29.0.tgz";
+        sha512 = "wpVDrvh+hClB4Y68v/sYCcRnXlXoDwEUTC0X+uz9o5xUHs/WfuDglS5AAhq6g51INAQc0ed3anrkqmFcDK6QPw==";
       };
     };
-    "jsii-reflect-1.27.1" = {
+    "jsii-reflect-1.29.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.27.1.tgz";
-        sha512 = "I2jc7Gv26N9MUyVhewjLS9vZJL4aPOcKCjgsmpDCX4Pz7ny9Op7iHNST9LpicY0Vqv81gi8OnsM0mWBPUM2nOA==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.29.0.tgz";
+        sha512 = "r1XpKsnaMTaI0B2XXJ4rF1rbufqFDThASrArE+SyuuGeWTJxWQ4UtIzvXNVFLbZba0A5hX4K0JxiMIfaRFCEEg==";
       };
     };
-    "jsii-rosetta-1.27.1" = {
+    "jsii-rosetta-1.29.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.27.1.tgz";
-        sha512 = "GLoKI5iRvqhcDYxtgXReVEbBChyGbUvTy8n344UkVNvIPHnq0bhLPGArttnrbbHmIZcxrAoYd+6o5sqZ2fUZNQ==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.29.0.tgz";
+        sha512 = "WhTlFFm/xp2ictShT7XreBoqNpFj/U4MK4VyHyzYV1jS58uvJJMkwifMz/MOqciqRtWIAvGM3Ria4EB3VqmTfA==";
       };
     };
-    "jsii-srcmak-0.1.255" = {
+    "jsii-srcmak-0.1.257" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.255";
+      version = "0.1.257";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.255.tgz";
-        sha512 = "vWIcR+z9HmqHX4lwJI9TFkGhBsZK2tPlgnvANJ09+SwrrLdBFOBFOJB298U5vMyQ/2mf0VFGlFFoJO9mA/6B4A==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.257.tgz";
+        sha512 = "Nfym9T84GR8kMjx6Lcah/RhIW8c38BEt/nltagrf9wnBhXWPgQoIP9f6nSsKaGHy2srI6gNSNFFR7sSIS90TyA==";
       };
     };
     "json-bigint-0.2.3" = {
@@ -32724,6 +33102,15 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
+    "json-stringify-nice-1.1.3" = {
+      name = "json-stringify-nice";
+      packageName = "json-stringify-nice";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.3.tgz";
+        sha512 = "w8+cZZFgcPtFkZTmkA1UpRH0GXXfpeuc/cClNkQjLt9JoQd8cBFSyB8J1WWjJrthIYViHobwnh3jA4z5X2LdGA==";
+      };
+    };
     "json-stringify-pretty-compact-3.0.0" = {
       name = "json-stringify-pretty-compact";
       packageName = "json-stringify-pretty-compact";
@@ -32760,13 +33147,13 @@ let
         sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
       };
     };
-    "json2jsii-0.1.188" = {
+    "json2jsii-0.1.219" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.1.188";
+      version = "0.1.219";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.1.188.tgz";
-        sha512 = "XeUcBQl0rngTFmiSIx0XNW+g0QgAJcqwsUYzvGcDPPSvPngIGmJ/X6d0UH/nDmSVyEilYyKnVP7iYh3y9by9fA==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.1.219.tgz";
+        sha512 = "0KTPGNsHxvtKodkvymWSAg0HAMpcAUPcyk1wYEpWJJC3k3Zkeun/dGBeP4X7DjByZ4AcUMJMSPqlJy67f/3Cyg==";
       };
     };
     "json3-3.2.6" = {
@@ -32787,6 +33174,15 @@ let
         sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
       };
     };
+    "json5-0.5.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
+        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+      };
+    };
     "json5-1.0.1" = {
       name = "json5";
       packageName = "json5";
@@ -33111,6 +33507,24 @@ let
         sha512 = "xtgnwBBZaLtKspGo6jDX/H0FDsHrn41mQVWhNHge7pZe6Nj2gU2izfC09O0rPU/i97iMcJFVjbecFiTAvmNhLQ==";
       };
     };
+    "just-diff-3.1.1" = {
+      name = "just-diff";
+      packageName = "just-diff";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz";
+        sha512 = "sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==";
+      };
+    };
+    "just-diff-apply-3.0.0" = {
+      name = "just-diff-apply";
+      packageName = "just-diff-apply";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz";
+        sha512 = "K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==";
+      };
+    };
     "jwa-1.4.1" = {
       name = "jwa";
       packageName = "jwa";
@@ -33409,13 +33823,13 @@ let
         sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
       };
     };
-    "khroma-1.3.0" = {
+    "khroma-1.4.1" = {
       name = "khroma";
       packageName = "khroma";
-      version = "1.3.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/khroma/-/khroma-1.3.0.tgz";
-        sha512 = "fpi0vIulP3FrM3BQOsEs+0ujWUNrg/YyHtEAcnvPxIHbASHNXEKEsDHtU2mADnJss7KvEdz7z2pUCQAEfFaFbA==";
+        url = "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz";
+        sha512 = "+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==";
       };
     };
     "killable-1.0.1" = {
@@ -33706,15 +34120,6 @@ let
         sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
       };
     };
-    "lazy-cache-2.0.2" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz";
-        sha1 = "b9190a4f913354694840859f8a8f7084d8822264";
-      };
-    };
     "lazyness-1.2.0" = {
       name = "lazyness";
       packageName = "lazyness";
@@ -34021,13 +34426,13 @@ let
         sha512 = "IR5ASkAU4NHTN1JFeP9bYvhARhaBg8VD8yUcmvNIvFWg6L3dsM2yK1A9EM6MpPvWYKH9SEiljB59ZUa5s2pYnA==";
       };
     };
-    "libnpmaccess-4.0.1" = {
+    "libnpmaccess-4.0.2" = {
       name = "libnpmaccess";
       packageName = "libnpmaccess";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.1.tgz";
-        sha512 = "ZiAgvfUbvmkHoMTzdwmNWCrQRsDkOC+aM5BDfO0C9aOSwF3R1LdFDBD+Rer1KWtsoQYO35nXgmMR7OUHpDRxyA==";
+        url = "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.2.tgz";
+        sha512 = "avXtJibZuGap0/qADDYqb9zdpgzVu/yG5+tl2sTRa7MCkDNv2ZlGwCYI0r6/+tmqXPj0iB9fKexHz426vB326w==";
       };
     };
     "libnpmconfig-1.2.1" = {
@@ -34039,13 +34444,13 @@ let
         sha512 = "9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==";
       };
     };
-    "libnpmpublish-4.0.0" = {
+    "libnpmpublish-4.0.1" = {
       name = "libnpmpublish";
       packageName = "libnpmpublish";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.0.tgz";
-        sha512 = "2RwYXRfZAB1x/9udKpZmqEzSqNd7ouBRU52jyG14/xG8EF+O9A62d7/XVR3iABEQHf1iYhkm0Oq9iXjrL3tsXA==";
+        url = "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.1.tgz";
+        sha512 = "hZCrZ8v4G9YH3DxpIyBdob25ijD5v5LNzRbwsej4pPDopjdcLLj1Widl+BUeFa7D0ble1JYL4F3owjLJqiA8yA==";
       };
     };
     "libsodium-0.7.9" = {
@@ -34120,13 +34525,13 @@ let
         sha512 = "lzj7oODpX7XS/4qHGBG/VAMirBDK/rbWS8S9pTCSUV9ZknuXg2loCkDyPQuB3vC2MMt1QOsXn4oQUtxpPtSa1g==";
       };
     };
-    "lightning-3.3.2" = {
+    "lightning-3.3.4" = {
       name = "lightning";
       packageName = "lightning";
-      version = "3.3.2";
+      version = "3.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.2.tgz";
-        sha512 = "DPZc9695RCNYivfO9/rhQuQ9B5Fn5N89ct2UrqJiuB43VocBOjn+KLjhSGcxbzCLtFtmGuZupvJFbNXnCVEICw==";
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.4.tgz";
+        sha512 = "VpkNbaWlsmTgaWWJPGyYb2dm2v5b+wPQWmfZBJ7V5znL17Q+ef7Csj8PTTgnIccAWE429QL9/OyOzn/JVnZ/PA==";
       };
     };
     "limit-spawn-0.0.3" = {
@@ -34273,13 +34678,13 @@ let
         sha512 = "Q22CcKJ+52mExGNvOmeEVBza82LGdbLkFVzfMjC9oPlP5DikS+sdlK5GZM/Dc5HFN5pwK7y9Ke7gRue/UxHwbw==";
       };
     };
-    "ln-service-51.6.0" = {
+    "ln-service-51.7.0" = {
       name = "ln-service";
       packageName = "ln-service";
-      version = "51.6.0";
+      version = "51.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.6.0.tgz";
-        sha512 = "Bzvn8yv6mnlxJewWbloZOKpX4MEGRjCrALpDHOvA9EVnz5xeu5zbKmVyWElAhFIB5iXwX0xz6/8qhaJVFSyF9A==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.7.0.tgz";
+        sha512 = "n0Ib9fjVL8x3ymdOax6gjmR0Nq59vIhQ89en1XpgxIWbowWhiJUXPolTEgiA8vpeoG72CZN3nYaPXgil9uNVLg==";
       };
     };
     "ln-sync-0.4.5" = {
@@ -34381,6 +34786,15 @@ let
         sha512 = "od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==";
       };
     };
+    "load-yaml-file-0.2.0" = {
+      name = "load-yaml-file";
+      packageName = "load-yaml-file";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz";
+        sha512 = "OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==";
+      };
+    };
     "loader-runner-2.4.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
@@ -34399,6 +34813,15 @@ let
         sha512 = "92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==";
       };
     };
+    "loader-utils-0.2.17" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "0.2.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz";
+        sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348";
+      };
+    };
     "loader-utils-1.4.0" = {
       name = "loader-utils";
       packageName = "loader-utils";
@@ -35947,6 +36370,15 @@ let
         sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
+    "logform-1.10.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
+        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
+      };
+    };
     "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
@@ -36280,6 +36712,15 @@ let
         sha1 = "d637764ea33a929bd00f34d2a23c2256d0d5fb5b";
       };
     };
+    "lt_donthave-1.0.1" = {
+      name = "lt_donthave";
+      packageName = "lt_donthave";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lt_donthave/-/lt_donthave-1.0.1.tgz";
+        sha512 = "PfOXfDN9GnUjlNHjjxKQuMxPC8s12iSrnmg+Ff1BU1uLn7S1BFAKzpZCu6Gwg3WsCUvTZrZoDSHvy6B/j+N4/Q==";
+      };
+    };
     "ltgt-2.2.1" = {
       name = "ltgt";
       packageName = "ltgt";
@@ -36442,13 +36883,13 @@ let
         sha512 = "ZpqciThlbvE6KkyT5oxAup/6CwjePw1hdtR8NU5+vq2hn9Sp5b7w3bRiJRvo9fMHUj2dWSuVCdkqt9p4ed1V9Q==";
       };
     };
-    "magnet-uri-6.1.0" = {
+    "magnet-uri-6.1.1" = {
       name = "magnet-uri";
       packageName = "magnet-uri";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-6.1.0.tgz";
-        sha512 = "731qLviHaqN/Ni96wm6gNKuvoip+QHWTznjHNz/4qDlsHh3/CWJoL8fZ18IIRhGJgnWoKJp8RVE5lZvQ60Khhw==";
+        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-6.1.1.tgz";
+        sha512 = "TUyzaLB36TqqIHzgvkMrlZUPN6mfoLX/+2do5YJH3gjBQL2auEtivT+99npIiA77YepJ6pYA/AzWhboXTAAm0w==";
       };
     };
     "make-dir-1.3.0" = {
@@ -36658,13 +37099,13 @@ let
         sha512 = "aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ==";
       };
     };
-    "markdown-it-12.0.4" = {
+    "markdown-it-12.0.6" = {
       name = "markdown-it";
       packageName = "markdown-it";
-      version = "12.0.4";
+      version = "12.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.4.tgz";
-        sha512 = "34RwOXZT8kyuOJy25oJNJoulO8L0bTHYWXcdZBYZqFnjIy3NgjeoM3FmPXIOFQ26/lSHYMr8oc62B6adxXcb3Q==";
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.6.tgz";
+        sha512 = "qv3sVLl4lMT96LLtR7xeRJX11OUFjsaD5oVat2/SNBIb21bJXwal2+SklcRbTwGwqWpWH/HRtYavOoJE+seL8w==";
       };
     };
     "markdown-it-8.4.2" = {
@@ -36757,13 +37198,13 @@ let
         sha512 = "HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==";
       };
     };
-    "markdown-it-multimd-table-4.0.3" = {
+    "markdown-it-multimd-table-4.1.0" = {
       name = "markdown-it-multimd-table";
       packageName = "markdown-it-multimd-table";
-      version = "4.0.3";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.3.tgz";
-        sha512 = "uVLriNj6doq1dGyJppQdwbaGcK6uSzbrk7osxRHjOmZBeShgMtPS6/d+pnIKkohOjaRyP9e5kwTAlAIe/lEaIQ==";
+        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.1.0.tgz";
+        sha512 = "YNR7Td1gK3O+jLezL6Zfl80WNRn9iLAyXmCVAUSsTJ61drmJdHr7cWqr2CuWaSffBtnM0Zh0QBRUdmICoy+CDg==";
       };
     };
     "markdown-it-sub-1.0.0" = {
@@ -36937,6 +37378,15 @@ let
         sha512 = "1XjyBWqCvEFFUDW/MPv0RwbITRD4xQXOvKoPYtLDq8IdZTfdF/cQSo5Yn4qvhfSSZgjgkTFsqJD2wOUG4ovV8Q==";
       };
     };
+    "match-sorter-3.1.1" = {
+      name = "match-sorter";
+      packageName = "match-sorter";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/match-sorter/-/match-sorter-3.1.1.tgz";
+        sha512 = "Qlox3wRM/Q4Ww9rv1cBmYKNJwWVX/WC+eA3+1S3Fv4EOhrqyp812ZEfVFKQk0AP6RfzmPUUOwEZBbJ8IRt8SOw==";
+      };
+    };
     "matchdep-2.0.0" = {
       name = "matchdep";
       packageName = "matchdep";
@@ -37333,13 +37783,13 @@ let
         sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
-    "mem-8.1.0" = {
+    "mem-8.1.1" = {
       name = "mem";
       packageName = "mem";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-8.1.0.tgz";
-        sha512 = "FIkgXo0kTi3XpvaznV5Muk6Y6w8SkdmRXcY7ZLonQesuYezp59UooLxAVBcGuN6PH2tXN84mR3vyzSc6oSMUfA==";
+        url = "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz";
+        sha512 = "qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==";
       };
     };
     "mem-fs-1.2.0" = {
@@ -37351,22 +37801,13 @@ let
         sha512 = "b8g0jWKdl8pM0LqAPdK9i8ERL7nYrzmJfRhxMiWH2uYdfYnb7uXnmwVb0ZGe7xyEl4lj+nLIU3yf4zPUT+XsVQ==";
       };
     };
-    "mem-fs-editor-6.0.0" = {
+    "mem-fs-editor-8.1.2" = {
       name = "mem-fs-editor";
       packageName = "mem-fs-editor";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-6.0.0.tgz";
-        sha512 = "e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==";
-      };
-    };
-    "mem-fs-editor-7.1.0" = {
-      name = "mem-fs-editor";
-      packageName = "mem-fs-editor";
-      version = "7.1.0";
+      version = "8.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-7.1.0.tgz";
-        sha512 = "BH6QEqCXSqGeX48V7zu+e3cMwHU7x640NB8Zk8VNvVZniz+p4FK60pMx/3yfkzo6miI6G3a8pH6z7FeuIzqrzA==";
+        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-8.1.2.tgz";
+        sha512 = "owE6PKMRegrYb37Lsar3yLSwK9wLGvHkNIOzBO3ycFeoOwshdF8j593EqjU7ucFAf3ZvcFVwfpo8Q8LqgFQg0A==";
       };
     };
     "memfs-3.2.2" = {
@@ -37387,6 +37828,15 @@ let
         sha512 = "HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==";
       };
     };
+    "memoize-one-5.2.1" = {
+      name = "memoize-one";
+      packageName = "memoize-one";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz";
+        sha512 = "zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==";
+      };
+    };
     "memoizeasync-1.1.0" = {
       name = "memoizeasync";
       packageName = "memoizeasync";
@@ -38539,13 +38989,13 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
-    "mobx-6.2.0" = {
+    "mobx-6.3.0" = {
       name = "mobx";
       packageName = "mobx";
-      version = "6.2.0";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx/-/mobx-6.2.0.tgz";
-        sha512 = "j5f16JIq2v4flvYCqaAB9tMtJt/y5efR2OO5Xy+w4/MBMeQ1WeGR0T8BtiNgmxM/OQzPFUKb5DTex9Y8a/yk+g==";
+        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.0.tgz";
+        sha512 = "Aa1+VXsg4WxqJMTQfWoYuJi5UD10VZhiobSmcs5kcmI3BIT0aVtn7DysvCeDADCzl7dnbX+0BTHUj/v7gLlZpQ==";
       };
     };
     "mobx-react-7.1.0" = {
@@ -38656,13 +39106,13 @@ let
         sha512 = "7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==";
       };
     };
-    "moize-6.0.1" = {
+    "moize-6.0.2" = {
       name = "moize";
       packageName = "moize";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moize/-/moize-6.0.1.tgz";
-        sha512 = "Bl91P98A6Xba35mn9XoAW9DuGoQb3HyoY888TxrvQbMr9+1v3dzBzi9n4Guh5Lne8ENdqbXjQ0a8mf7UUvZ9wg==";
+        url = "https://registry.npmjs.org/moize/-/moize-6.0.2.tgz";
+        sha512 = "94jF5aP4ul90e24fFe+covFPp4u5bGzlcGUsn0u6fZgKcnQpJ9e1nX75vxqtlyOUr92ww3DPMF+ziE4OQOkkkA==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -38836,13 +39286,13 @@ let
         sha512 = "GpxVObyOzL0CGPBqo6B04GinN8JLk12NRYAIkYvARd9ZCoJKevvOyCaWK6bdK/kFSDj3LPDnCsJbezzNlsi87Q==";
       };
     };
-    "mqtt-packet-6.9.0" = {
+    "mqtt-packet-6.9.1" = {
       name = "mqtt-packet";
       packageName = "mqtt-packet";
-      version = "6.9.0";
+      version = "6.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.9.0.tgz";
-        sha512 = "cngFSAXWSl5XHKJYUQiYQjtp75zhf1vygY00NnJdhQoXOH2v3aizmaaMIHI5n1N/TJEHSAbHryQhFr3gJ9VNvA==";
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.9.1.tgz";
+        sha512 = "0+u0ZoRj6H6AuzNY5d8qzXzyXmFI19gkdPRA14kGfKvbqYcpOL+HWUGHjtCxHqjm8CscwsH+dX0+Rxx4se5HSA==";
       };
     };
     "mri-1.1.6" = {
@@ -39079,13 +39529,13 @@ let
         sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b";
       };
     };
-    "multiserver-3.7.0" = {
+    "multiserver-3.7.1" = {
       name = "multiserver";
       packageName = "multiserver";
-      version = "3.7.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.7.0.tgz";
-        sha512 = "70SSDMNT+e3VsDG4x7OKFW8+UqyZsBWfKD9rAvsRWCbMe9ySODheJCZ91Xyha5FrA32UtWIHGSY3m5jATfEmVQ==";
+        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.7.1.tgz";
+        sha512 = "wc+s3NNXjYEFT6AmeW8fVVBTZWhfwwbFU0M0KurZH6jAbsnWYQnEsnN90iqFkSmHkAnPW2hvT4O+lAfWsf/lVQ==";
       };
     };
     "multiserver-address-1.0.1" = {
@@ -39160,6 +39610,15 @@ let
         sha1 = "2e5cb1ac64c937dae28296e8f42af5eafd9bc7ef";
       };
     };
+    "mutation-observer-1.0.3" = {
+      name = "mutation-observer";
+      packageName = "mutation-observer";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz";
+        sha512 = "M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==";
+      };
+    };
     "mute-stdout-1.0.1" = {
       name = "mute-stdout";
       packageName = "mute-stdout";
@@ -39791,22 +40250,22 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
-    "netlify-6.1.17" = {
+    "netlify-6.1.20" = {
       name = "netlify";
       packageName = "netlify";
-      version = "6.1.17";
+      version = "6.1.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify/-/netlify-6.1.17.tgz";
-        sha512 = "NWb4/b/7Q7D/mJlIW+vjyMZn8lxUam0iC3F59XNQeNfYyAmEAfcbsy7hDfywm1ADZ648izfwFn/whYvgpPthrw==";
+        url = "https://registry.npmjs.org/netlify/-/netlify-6.1.20.tgz";
+        sha512 = "a0WYQIcJIIEmK7MxUWD/4awyBeGTukolaTgl84SILrnT6WC/HQqK8bIEPVJ5IhmbZioJIcl4UZMaDyWuPin6Kw==";
       };
     };
-    "netlify-redirect-parser-3.0.14" = {
+    "netlify-redirect-parser-3.0.17" = {
       name = "netlify-redirect-parser";
       packageName = "netlify-redirect-parser";
-      version = "3.0.14";
+      version = "3.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.14.tgz";
-        sha512 = "6/y5A7mLQAzmKdyj+nVKvZIwhj4j4xjkzEz8FlX0khBw6Vm4LYh2xnyhsrMz3K+FlDSDxx4TU58hIJBwQD98uQ==";
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.17.tgz";
+        sha512 = "tKAVgpZg2CmNi9QMmdeoN10FTvsXKX5m+dw+ytdN9hVXGy+CWeCN5d0jqIL7wPl6iCXu3MXIIQGC78Q6BB8WJw==";
       };
     };
     "netlify-redirector-0.2.1" = {
@@ -40016,13 +40475,13 @@ let
         sha512 = "zPpIr24OdcdM6lbg9QbFUGaLx9RueAkg1I4ZueuuB5452ZrxYfdwaBkhLGFCgpy3AaQ1w8HaY/8k2HmeyD9FXw==";
       };
     };
-    "node-abi-2.21.0" = {
+    "node-abi-2.26.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.21.0";
+      version = "2.26.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.21.0.tgz";
-        sha512 = "smhrivuPqEM3H5LmnY3KU6HfYv0u4QklgAxfFyRNujKUzbUcYZ+Jc2EhukB9SRcD2VpqhxM7n/MIcp1Ua1/JMg==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.26.0.tgz";
+        sha512 = "ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==";
       };
     };
     "node-addon-api-1.7.2" = {
@@ -40052,6 +40511,15 @@ let
         sha512 = "Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==";
       };
     };
+    "node-addon-api-3.0.2" = {
+      name = "node-addon-api";
+      packageName = "node-addon-api";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz";
+        sha512 = "+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==";
+      };
+    };
     "node-addon-api-3.1.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
@@ -40773,6 +41241,15 @@ let
         sha512 = "ECNgiM5IAeZNuXYu5kF4JV8t+MSFixHsvjexQtf/bLTOsL+KycDv3pod1a88N8uHtzsktYLRX6cAawg4aHeLVQ==";
       };
     };
+    "normalize-url-1.9.1" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz";
+        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
+      };
+    };
     "normalize-url-2.0.1" = {
       name = "normalize-url";
       packageName = "normalize-url";
@@ -40818,22 +41295,13 @@ let
         sha1 = "df7c3ed5a277c3f9d4b5d819b05311d10a200ae6";
       };
     };
-    "npm-api-1.0.1" = {
-      name = "npm-api";
-      packageName = "npm-api";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-api/-/npm-api-1.0.1.tgz";
-        sha512 = "4sITrrzEbPcr0aNV28QyOmgn6C9yKiF8k92jn4buYAK8wmA5xo1qL3II5/gT1r7wxbXBflSduZ2K3FbtOrtGkA==";
-      };
-    };
-    "npm-bundled-1.1.1" = {
+    "npm-bundled-1.1.2" = {
       name = "npm-bundled";
       packageName = "npm-bundled";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
-        sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
+        url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz";
+        sha512 = "x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==";
       };
     };
     "npm-conf-1.1.3" = {
@@ -40998,6 +41466,15 @@ let
         sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
       };
     };
+    "npm-registry-fetch-10.1.1" = {
+      name = "npm-registry-fetch";
+      packageName = "npm-registry-fetch";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-10.1.1.tgz";
+        sha512 = "F6a3l+ffCQ7hvvN16YG5bpm1rPZntCg66PLHDQ1apWJPOCUVHoKnL2w5fqEaTVhp42dmossTyXeR7hTGirfXrg==";
+      };
+    };
     "npm-registry-fetch-9.0.0" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
@@ -41377,6 +41854,15 @@ let
         sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
       };
     };
+    "object-inspect-1.10.2" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz";
+        sha512 = "gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==";
+      };
+    };
     "object-inspect-1.4.1" = {
       name = "object-inspect";
       packageName = "object-inspect";
@@ -41395,15 +41881,6 @@ let
         sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
       };
     };
-    "object-inspect-1.9.0" = {
-      name = "object-inspect";
-      packageName = "object-inspect";
-      version = "1.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz";
-        sha512 = "i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==";
-      };
-    };
     "object-is-1.1.5" = {
       name = "object-is";
       packageName = "object-is";
@@ -41647,13 +42124,13 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
-    "office-ui-fabric-react-7.166.2" = {
+    "office-ui-fabric-react-7.168.0" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.166.2";
+      version = "7.168.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.166.2.tgz";
-        sha512 = "8BJ++wmoulTd03Dd6F1DIbcokfUTk8tGDtaYHsDvy73jz7vt5+p/cHgBZMRHTtOktUtKQwaWUMwQjVG1li2Hyg==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.168.0.tgz";
+        sha512 = "hxH6HuNEIPVwO1ahzkVTkrARbN1vGP0W0qgbNPNcQDjnux9moyLgGcp0BzWXG6mNlTKFti/6WceCwXFjLEyPkw==";
       };
     };
     "omggif-1.0.10" = {
@@ -41818,13 +42295,13 @@ let
         sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
       };
     };
-    "oo-ascii-tree-1.27.1" = {
+    "oo-ascii-tree-1.29.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.27.1";
+      version = "1.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.27.1.tgz";
-        sha512 = "bCX2YoRGOhWh/CUi2e38gw5D+ixcpuMjMEJ1VJ9oAE40burZO8CVLq2noqvU3/EmaO2R9ifaM+0xnxJzBkII/A==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.29.0.tgz";
+        sha512 = "DUwUL3Yc3lS2znWBlOi5eEU4pKoGGK2IaB/S7XygSBzmSS2jJE6+waAip17FNeNXfC4aXClr95HxZXamCLtYqQ==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -41899,13 +42376,13 @@ let
         sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
       };
     };
-    "open-8.0.5" = {
+    "open-8.0.6" = {
       name = "open";
       packageName = "open";
-      version = "8.0.5";
+      version = "8.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-8.0.5.tgz";
-        sha512 = "hkPXCz7gijWp2GoWqsQ4O/5p7F6d5pIQ/+9NyeWG1nABJ4zvLi9kJRv1a44kVf5p13wK0WMoiRA+Xey68yOytA==";
+        url = "https://registry.npmjs.org/open/-/open-8.0.6.tgz";
+        sha512 = "vDOC0KwGabMPFtIpCO2QOnQeOz0N2rEkbuCuxICwLMUCrpv+A7NHrrzJ2dQReJmVluHhO4pYRh/Pn6s8t7Op6Q==";
       };
     };
     "openapi-default-setter-2.1.0" = {
@@ -43024,13 +43501,13 @@ let
         sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
       };
     };
-    "packet-stream-2.0.5" = {
+    "packet-stream-2.0.6" = {
       name = "packet-stream";
       packageName = "packet-stream";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.5.tgz";
-        sha512 = "+4S+qBUdqD57ka5MDd6nAYGBPril5eyLpbga2y0kPyYhrKvjb8CYTP9r40WLbSxgT/qEGmvgWOrvQe+FYtCI7w==";
+        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.6.tgz";
+        sha512 = "kSxHpoTqlgNEetMp77snCTVILwLw4dJX6pB/z1g1PRG5xylH8cf9upIPygt+epBC3l14XrcZH4/kQYSrzp2Ijg==";
       };
     };
     "packet-stream-codec-1.1.3" = {
@@ -43051,13 +43528,13 @@ let
         sha512 = "GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==";
       };
     };
-    "pacote-11.3.1" = {
+    "pacote-11.3.3" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.3.1";
+      version = "11.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.1.tgz";
-        sha512 = "TymtwoAG12cczsJIrwI/euOQKtjrQHlD0k0oyt9QSmZGpqa+KdlxKdWR/YUjYizkixaVyztxt/Wsfo8bL3A6Fg==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.3.3.tgz";
+        sha512 = "GQxBX+UcVZrrJRYMK2HoG+gPeSUX/rQhnbPkkGrCYa4n2F/bgClFPaMm0nsdnYrxnmUy85uMHoFXZ0jTD0drew==";
       };
     };
     "pad-0.0.5" = {
@@ -43078,15 +43555,6 @@ let
         sha1 = "ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac";
       };
     };
-    "paged-request-2.0.2" = {
-      name = "paged-request";
-      packageName = "paged-request";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/paged-request/-/paged-request-2.0.2.tgz";
-        sha512 = "NWrGqneZImDdcMU/7vMcAOo1bIi5h/pmpJqe7/jdsy85BA/s5MSaU/KlpxwW/IVPmIwBcq2uKPrBWWhEWhtxag==";
-      };
-    };
     "pako-0.2.9" = {
       name = "pako";
       packageName = "pako";
@@ -43213,6 +43681,15 @@ let
         sha512 = "bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==";
       };
     };
+    "parse-conflict-json-1.1.1" = {
+      name = "parse-conflict-json";
+      packageName = "parse-conflict-json";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz";
+        sha512 = "4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==";
+      };
+    };
     "parse-english-4.2.0" = {
       name = "parse-english";
       packageName = "parse-english";
@@ -43519,6 +43996,15 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
+    "parse5-5.1.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
+        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+      };
+    };
     "parse5-6.0.1" = {
       name = "parse5";
       packageName = "parse5";
@@ -44122,13 +44608,13 @@ let
         sha512 = "wmUyoQM/Xzmo62wgOdQAn5tl7u+IA1ZYK7qbuppi+3E+Gj4hlUxVHjInulieWrd0SfHi/ADriTb5ILJ/lsJrSg==";
       };
     };
-    "pg-connection-string-2.4.0" = {
+    "pg-connection-string-2.5.0" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.4.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
-        sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz";
+        sha512 = "r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -44140,22 +44626,22 @@ let
         sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-pool-3.2.2" = {
+    "pg-pool-3.3.0" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz";
-        sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz";
+        sha512 = "0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==";
       };
     };
-    "pg-protocol-1.4.0" = {
+    "pg-protocol-1.5.0" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz";
-        sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA==";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz";
+        sha512 = "muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==";
       };
     };
     "pg-types-2.2.0" = {
@@ -44329,31 +44815,13 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.11.1" = {
+    "pino-6.11.2" = {
       name = "pino";
       packageName = "pino";
-      version = "6.11.1";
+      version = "6.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.11.1.tgz";
-        sha512 = "PoDR/4jCyaP1k2zhuQ4N0NuhaMtei+C9mUHBRRJQujexl/bq3JkeL2OC23ada6Np3zeUMHbO4TGzY2D/rwZX3w==";
-      };
-    };
-    "pino-6.9.0" = {
-      name = "pino";
-      packageName = "pino";
-      version = "6.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.9.0.tgz";
-        sha512 = "9RrRJsKOsgj50oGoR/y4EEVyUjMb/eRu8y4hjwPqM6q214xsxSxY/IKB+aEEv0slqNd4U0RVRfivKfy83UxgUQ==";
-      };
-    };
-    "pino-std-serializers-2.5.0" = {
-      name = "pino-std-serializers";
-      packageName = "pino-std-serializers";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz";
-        sha512 = "wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.11.2.tgz";
+        sha512 = "bmzxwbrIPxQUlAuMkF4PWVErUGERU4z37HazlhflKFg08crsNE3fACGN6gPwg5xtKOK47Ux5cZm8YCuLV4wWJg==";
       };
     };
     "pino-std-serializers-3.2.0" = {
@@ -44374,6 +44842,15 @@ let
         sha512 = "6Rtbp7criZRwedlvWbUYxqlqJoAlMvYHo2UcRWq79xZ54vZcaNHpVBOcWkX3ErT2aUA69tv+uiv4zKJbhD/Wgg==";
       };
     };
+    "pipeline-pipe-0.1.5" = {
+      name = "pipeline-pipe";
+      packageName = "pipeline-pipe";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pipeline-pipe/-/pipeline-pipe-0.1.5.tgz";
+        sha512 = "HFub9yAfxEWBZZmsA12dWiFpg9+er8Sp7bpVwKP41AsAeO6570PVhU2Ckkt8fMnHBwm1edLLg2wIfpNGCDvI0Q==";
+      };
+    };
     "pipeworks-1.3.1" = {
       name = "pipeworks";
       packageName = "pipeworks";
@@ -44798,13 +45275,13 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
-    "postcss-8.2.7" = {
+    "postcss-8.2.10" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.2.7";
+      version = "8.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.7.tgz";
-        sha512 = "DsVLH3xJzut+VT+rYr0mtvOtpTjSyqDwPf5EZWXcb0uAKfitGpTY9Ec+afi2+TgdN8rWS9Cs88UDYehKo/RvOw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz";
+        sha512 = "b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -44870,6 +45347,15 @@ let
         sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==";
       };
     };
+    "postcss-flexbugs-fixes-4.2.1" = {
+      name = "postcss-flexbugs-fixes";
+      packageName = "postcss-flexbugs-fixes";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz";
+        sha512 = "9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==";
+      };
+    };
     "postcss-html-0.12.0" = {
       name = "postcss-html";
       packageName = "postcss-html";
@@ -44906,6 +45392,15 @@ let
         sha512 = "7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==";
       };
     };
+    "postcss-load-config-2.1.2" = {
+      name = "postcss-load-config";
+      packageName = "postcss-load-config";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz";
+        sha512 = "/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==";
+      };
+    };
     "postcss-load-config-3.0.1" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
@@ -44915,6 +45410,15 @@ let
         sha512 = "/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==";
       };
     };
+    "postcss-loader-3.0.0" = {
+      name = "postcss-loader";
+      packageName = "postcss-loader";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz";
+        sha512 = "cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==";
+      };
+    };
     "postcss-media-query-parser-0.2.3" = {
       name = "postcss-media-query-parser";
       packageName = "postcss-media-query-parser";
@@ -45005,6 +45509,15 @@ let
         sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
       };
     };
+    "postcss-modules-local-by-default-2.0.6" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz";
+        sha512 = "oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==";
+      };
+    };
     "postcss-modules-local-by-default-3.0.3" = {
       name = "postcss-modules-local-by-default";
       packageName = "postcss-modules-local-by-default";
@@ -45041,6 +45554,15 @@ let
         sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
       };
     };
+    "postcss-modules-values-2.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz";
+        sha512 = "Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==";
+      };
+    };
     "postcss-modules-values-3.0.0" = {
       name = "postcss-modules-values";
       packageName = "postcss-modules-values";
@@ -45257,13 +45779,13 @@ let
         sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
-    "postcss-selector-parser-6.0.4" = {
+    "postcss-selector-parser-6.0.5" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.4";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
-        sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz";
+        sha512 = "aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==";
       };
     };
     "postcss-svgo-4.0.3" = {
@@ -45419,13 +45941,13 @@ let
         sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
       };
     };
-    "prebuild-install-6.1.1" = {
+    "prebuild-install-6.1.2" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.1.tgz";
-        sha512 = "M+cKwofFlHa5VpTWub7GLg5RLcunYIcLqtY5pKcls/u7xaAb8FrXZ520qY8rkpYy5xw90tYCyMO0MP5ggzR3Sw==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz";
+        sha512 = "PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==";
       };
     };
     "precinct-6.3.1" = {
@@ -45446,6 +45968,15 @@ let
         sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
       };
     };
+    "preferred-pm-3.0.3" = {
+      name = "preferred-pm";
+      packageName = "preferred-pm";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz";
+        sha512 = "+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==";
+      };
+    };
     "prelude-ls-1.1.2" = {
       name = "prelude-ls";
       packageName = "prelude-ls";
@@ -45932,6 +46463,15 @@ let
         sha512 = "W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==";
       };
     };
+    "promise-all-reject-late-1.0.1" = {
+      name = "promise-all-reject-late";
+      packageName = "promise-all-reject-late";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz";
+        sha512 = "vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==";
+      };
+    };
     "promise-breaker-5.0.0" = {
       name = "promise-breaker";
       packageName = "promise-breaker";
@@ -45941,6 +46481,15 @@ let
         sha512 = "mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==";
       };
     };
+    "promise-call-limit-1.0.1" = {
+      name = "promise-call-limit";
+      packageName = "promise-call-limit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz";
+        sha512 = "3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==";
+      };
+    };
     "promise-deferred-2.0.3" = {
       name = "promise-deferred";
       packageName = "promise-deferred";
@@ -47255,13 +47804,13 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
-    "pyright-1.1.130" = {
+    "pyright-1.1.134" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.130";
+      version = "1.1.134";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.130.tgz";
-        sha512 = "hj4Lvn0x5LFsZDJaZ5hW5X4NfHSCoMvEqcNvRgpYM59qAM22z7XC+Tb7XNrQEhOfIjsbczS3nKWGGUMCe88LXg==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.134.tgz";
+        sha512 = "wQSdU6X3olAwCZy3tSA0fn8nMQGEwm01rm1dHM+aN2crzXIcUQ9sLOf+wCn5PFlLGsm/CXH7ROYmeMs3jXQ8Rw==";
       };
     };
     "q-0.9.7" = {
@@ -47543,13 +48092,13 @@ let
         sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
-    "quick-format-unescaped-4.0.3" = {
+    "quick-format-unescaped-4.0.1" = {
       name = "quick-format-unescaped";
       packageName = "quick-format-unescaped";
-      version = "4.0.3";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz";
-        sha512 = "MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==";
+        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz";
+        sha512 = "RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==";
       };
     };
     "quick-lru-1.1.0" = {
@@ -47624,6 +48173,15 @@ let
         sha1 = "0c13be0b5b49b46f76d6669248d527cf2b02fe27";
       };
     };
+    "raf-3.4.1" = {
+      name = "raf";
+      packageName = "raf";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz";
+        sha512 = "Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==";
+      };
+    };
     "railroad-diagrams-1.0.0" = {
       name = "railroad-diagrams";
       packageName = "railroad-diagrams";
@@ -47903,6 +48461,15 @@ let
         sha512 = "9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==";
       };
     };
+    "raw-loader-3.1.0" = {
+      name = "raw-loader";
+      packageName = "raw-loader";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz";
+        sha512 = "lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==";
+      };
+    };
     "rc-0.4.0" = {
       name = "rc";
       packageName = "rc";
@@ -47993,13 +48560,13 @@ let
         sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
-    "react-devtools-core-4.12.0" = {
+    "react-devtools-core-4.12.4" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
-      version = "4.12.0";
+      version = "4.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.12.0.tgz";
-        sha512 = "MN7zE3UpccJQLs+tTKGoM1GQFZLJki4PhT4Us0JJgn6MK1m5ZOQnmJZy+cp21LqUBFPXxqmpqeu65/gTRbxK5Q==";
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.12.4.tgz";
+        sha512 = "hVCT7wRtA5xWclgLb3oA51RNBAlbuTauEYkqFX+qRAkPLVJoX8qdJnO7r+47SSUckD5vkBm3kaAhg6597m7gDA==";
       };
     };
     "react-dom-16.14.0" = {
@@ -48020,6 +48587,24 @@ let
         sha512 = "nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==";
       };
     };
+    "react-fast-compare-3.2.0" = {
+      name = "react-fast-compare";
+      packageName = "react-fast-compare";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz";
+        sha512 = "rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==";
+      };
+    };
+    "react-helmet-6.1.0" = {
+      name = "react-helmet";
+      packageName = "react-helmet";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz";
+        sha512 = "4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==";
+      };
+    };
     "react-is-16.13.1" = {
       name = "react-is";
       packageName = "react-is";
@@ -48029,6 +48614,15 @@ let
         sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
       };
     };
+    "react-lifecycles-compat-3.0.4" = {
+      name = "react-lifecycles-compat";
+      packageName = "react-lifecycles-compat";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
+        sha512 = "fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==";
+      };
+    };
     "react-reconciler-0.24.0" = {
       name = "react-reconciler";
       packageName = "react-reconciler";
@@ -48056,6 +48650,15 @@ let
         sha512 = "X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==";
       };
     };
+    "react-side-effect-2.1.1" = {
+      name = "react-side-effect";
+      packageName = "react-side-effect";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz";
+        sha512 = "2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==";
+      };
+    };
     "react-tabs-3.2.2" = {
       name = "react-tabs";
       packageName = "react-tabs";
@@ -48065,6 +48668,15 @@ let
         sha512 = "/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==";
       };
     };
+    "react-universal-component-4.5.0" = {
+      name = "react-universal-component";
+      packageName = "react-universal-component";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-universal-component/-/react-universal-component-4.5.0.tgz";
+        sha512 = "dBUC6afvSAQhDcE4oh1eTmfU29W0O2eZhcGXnfGUTulXkU8ejuWqlJWXXrSMx5iV1H6LNgj2NJMj3BtBMfBNhA==";
+      };
+    };
     "read-1.0.7" = {
       name = "read";
       packageName = "read";
@@ -48263,15 +48875,6 @@ let
         sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
       };
     };
-    "read-pkg-up-5.0.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz";
-        sha512 = "XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==";
-      };
-    };
     "read-pkg-up-7.0.1" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -48596,13 +49199,13 @@ let
         sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
       };
     };
-    "redis-3.1.0" = {
+    "redis-3.1.2" = {
       name = "redis";
       packageName = "redis";
-      version = "3.1.0";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-3.1.0.tgz";
-        sha512 = "//lAOcEtNIKk2ekZibes5oyWKYUVWMvMB71lyD/hS9KRePNkB7AU3nXGkArX6uDKEb2N23EyJBthAv6pagD0uw==";
+        url = "https://registry.npmjs.org/redis/-/redis-3.1.2.tgz";
+        sha512 = "grn5KoZLr/qrRQVwoSkmzdbw6pwF+/rwODtrOr6vuBRiR/f3rjSTGupbF90Zpqm2oenix8Do6RV7pYEkGwlKkw==";
       };
     };
     "redis-commands-1.7.0" = {
@@ -48668,13 +49271,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "redux-4.0.5" = {
+    "redux-4.1.0" = {
       name = "redux";
       packageName = "redux";
-      version = "4.0.5";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
-        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+        url = "https://registry.npmjs.org/redux/-/redux-4.1.0.tgz";
+        sha512 = "uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g==";
       };
     };
     "reflect-metadata-0.1.13" = {
@@ -48875,6 +49478,15 @@ let
         sha512 = "ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==";
       };
     };
+    "rehype-parse-6.0.2" = {
+      name = "rehype-parse";
+      packageName = "rehype-parse";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz";
+        sha512 = "0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==";
+      };
+    };
     "rehype-parse-7.0.1" = {
       name = "rehype-parse";
       packageName = "rehype-parse";
@@ -49541,13 +50153,13 @@ let
         sha512 = "W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==";
       };
     };
-    "resolve-alpn-1.1.1" = {
+    "resolve-alpn-1.1.2" = {
       name = "resolve-alpn";
       packageName = "resolve-alpn";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.1.tgz";
-        sha512 = "0KbFjFPR2bnJhNx1t8Ad6RqVc8+QPJC4y561FYyC/Q/6OzB3fhUzB5PEgitYhPK6aifwR5gXBSnDMllaDWixGQ==";
+        url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz";
+        sha512 = "8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -50531,13 +51143,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-1.32.8" = {
+    "sass-1.32.11" = {
       name = "sass";
       packageName = "sass";
-      version = "1.32.8";
+      version = "1.32.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz";
-        sha512 = "Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.32.11.tgz";
+        sha512 = "O9tRcob/fegUVSIV1ihLLZcftIOh0AF1VpKgusUfLqnb2jQ0GLDwI5ivv1FYWivGv8eZ/AwntTyTzjcHu0c/qw==";
       };
     };
     "sax-0.5.8" = {
@@ -50657,15 +51269,6 @@ let
         sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==";
       };
     };
-    "scoped-regex-1.0.0" = {
-      name = "scoped-regex";
-      packageName = "scoped-regex";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz";
-        sha1 = "a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8";
-      };
-    };
     "scoped-regex-2.1.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -50702,13 +51305,13 @@ let
         sha512 = "sDtmZDpibGH2ixj3FOmsC3Z/b08eaB2/KAvy2oSp4qvcGdhatBSfb1RdVpwjQl5c3J83WbBo1HSZ7DBtMu43lA==";
       };
     };
-    "secret-stack-6.3.2" = {
+    "secret-stack-6.4.0" = {
       name = "secret-stack";
       packageName = "secret-stack";
-      version = "6.3.2";
+      version = "6.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/secret-stack/-/secret-stack-6.3.2.tgz";
-        sha512 = "D46+4LWwsM1LnO4dg6FM/MfGmMk9uYsIcDElqyNeImBnyUueKi2xz10CHF9iSAtSUGReQDV4SCVUiVrPnaKnsA==";
+        url = "https://registry.npmjs.org/secret-stack/-/secret-stack-6.4.0.tgz";
+        sha512 = "Vnc2bItbjMw5WUtQtxLL4Atl17KaUHdLdxIb3a89CQTAo/1G1YjmiNe2GAAgZHSBi6UYRoB/oRmuJz8HLZmnmA==";
       };
     };
     "secure-compare-3.0.1" = {
@@ -51116,6 +51719,15 @@ let
         sha512 = "F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA==";
       };
     };
+    "serve-11.3.2" = {
+      name = "serve";
+      packageName = "serve";
+      version = "11.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve/-/serve-11.3.2.tgz";
+        sha512 = "yKWQfI3xbj/f7X1lTBg91fXBP0FqjJ4TEi+ilES5yzH0iKJpN5LjNb1YzIfQg9Rqn4ECUS2SOf2+Kmepogoa5w==";
+      };
+    };
     "serve-favicon-2.5.0" = {
       name = "serve-favicon";
       packageName = "serve-favicon";
@@ -51197,15 +51809,6 @@ let
         sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
       };
     };
-    "set-getter-0.1.0" = {
-      name = "set-getter";
-      packageName = "set-getter";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz";
-        sha1 = "d769c182c9d5a51f409145f2fba82e5e86e80376";
-      };
-    };
     "set-immediate-shim-1.0.1" = {
       name = "set-immediate-shim";
       packageName = "set-immediate-shim";
@@ -51449,6 +52052,15 @@ let
         sha512 = "sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==";
       };
     };
+    "shorthash-0.0.2" = {
+      name = "shorthash";
+      packageName = "shorthash";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shorthash/-/shorthash-0.0.2.tgz";
+        sha1 = "59b268eecbde59038b30da202bcfbddeb2c4a4eb";
+      };
+    };
     "shortid-2.2.16" = {
       name = "shortid";
       packageName = "shortid";
@@ -51638,13 +52250,13 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-2.37.0" = {
+    "simple-git-2.38.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.37.0";
+      version = "2.38.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.37.0.tgz";
-        sha512 = "ZK6qRnP+Xa2v23UEZDNHUfzswsuNCDHOQpWZRkpqNaXn7V5wVBBx3zRJLji3pROJGzrzA7mXwY7preL5EKuAaQ==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.38.0.tgz";
+        sha512 = "CORjrfirWMEGbJAxaXDH/PjZVOeATeG2bkafM9DsLVcFkbF9sXQGIIpEI6FeyXpvUsFK69T/pa4+4FKY9TUJMQ==";
       };
     };
     "simple-markdown-0.4.4" = {
@@ -52097,13 +52709,13 @@ let
         sha512 = "1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q==";
       };
     };
-    "snyk-gradle-plugin-3.14.0" = {
+    "snyk-gradle-plugin-3.14.2" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.14.0";
+      version = "3.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.14.0.tgz";
-        sha512 = "2A8ifM91TyzSx/U2fYvHXbaCRVsEx60hGFQjbSH9Hl9AokxEzMi2qti7wsObs1jUX2m198D1mdXu4k/Y1jWxXg==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.14.2.tgz";
+        sha512 = "l/nivKDZz7e2wymrwP6g2WQD8qgaYeE22SnbZrfIpwGolif81U28A9FsRedwkxKyB/shrM0vGEoD3c3zI8NLBw==";
       };
     };
     "snyk-module-3.1.0" = {
@@ -52142,13 +52754,13 @@ let
         sha512 = "FdYa/7NibnJPqBfobyw5jgI1/rd0LpMZf2W4WYYLRc2Hz7LZjKAByPjIX6qoA+lB9SC7yk5HYwWj2n4Fbg/DDw==";
       };
     };
-    "snyk-nuget-plugin-1.21.0" = {
+    "snyk-nuget-plugin-1.21.1" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
-      version = "1.21.0";
+      version = "1.21.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.0.tgz";
-        sha512 = "c/JYF3sZzMN/lYz171zrEkVcPqDVcUTVgKIKHiL8nhhuFKxZQ1gzqOgk+lnfN31TLoTNQsZ3DhW/WY+4zEALvw==";
+        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.1.tgz";
+        sha512 = "nRtedIvrow5ODqOKkQWolKrxn8ZoNL3iNJGuW0jNhwv+/9K0XE1UORM5F1ENAsd+nzCSO/kiYAXCc5CNK8HWEw==";
       };
     };
     "snyk-paket-parser-1.6.0" = {
@@ -52439,13 +53051,13 @@ let
         sha512 = "VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==";
       };
     };
-    "socks-2.6.0" = {
+    "socks-2.6.1" = {
       name = "socks";
       packageName = "socks";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.6.0.tgz";
-        sha512 = "mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz";
+        sha512 = "kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==";
       };
     };
     "socks-proxy-agent-5.0.0" = {
@@ -53159,13 +53771,13 @@ let
         sha1 = "475393ff9e91479aea62dcaf0ca3d14983a7fb40";
       };
     };
-    "srcset-3.0.0" = {
+    "srcset-3.0.1" = {
       name = "srcset";
       packageName = "srcset";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/srcset/-/srcset-3.0.0.tgz";
-        sha512 = "D59vF08Qzu/C4GAOXVgMTLfgryt5fyWo93FZyhEWANo0PokFz/iWdDe13mX3O5TRf6l8vMTqckAfR4zPiaH0yQ==";
+        url = "https://registry.npmjs.org/srcset/-/srcset-3.0.1.tgz";
+        sha512 = "MM8wDGg5BQJEj94tDrZDrX9wrC439/Eoeg3sgmVLPMjHgrAFeXAKk3tmFlCbKw5k+yOEhPXRpPlRcisQmqWVSQ==";
       };
     };
     "srt2vtt-1.3.1" = {
@@ -53240,13 +53852,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-2.0.0" = {
+    "ssb-db2-2.1.1" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "2.0.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.0.0.tgz";
-        sha512 = "xDl3GyhLNC62KDfzGa+ueCLUL0uIvu92n282E5vVnPTG+pJg1qCDSqVG6tZBbcVKLrSgar6j0yLcT9QjrKR2VQ==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.1.1.tgz";
+        sha512 = "6A2vLmDpz454ttFV3iVEI0qCIPYgsOlBtM3PCKn0arRvBKQ86e3Grr1/gCcx68fz8yT4fTC1o9ikWiZ/uUGIdg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -54014,13 +54626,13 @@ let
         sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
       };
     };
-    "stream-http-3.1.1" = {
+    "stream-http-3.2.0" = {
       name = "stream-http";
       packageName = "stream-http";
-      version = "3.1.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz";
-        sha512 = "S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==";
+        url = "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz";
+        sha512 = "Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==";
       };
     };
     "stream-json-1.1.3" = {
@@ -54806,6 +55418,15 @@ let
         sha1 = "dd802425e0f53dc4a6e7aca3752901a1ccda7af5";
       };
     };
+    "style-loader-0.23.1" = {
+      name = "style-loader";
+      packageName = "style-loader";
+      version = "0.23.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz";
+        sha512 = "XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==";
+      };
+    };
     "style-loader-1.2.1" = {
       name = "style-loader";
       packageName = "style-loader";
@@ -54851,13 +55472,13 @@ let
         sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
       };
     };
-    "stylelint-13.12.0" = {
+    "stylelint-13.13.0" = {
       name = "stylelint";
       packageName = "stylelint";
-      version = "13.12.0";
+      version = "13.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
-        sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
+        url = "https://registry.npmjs.org/stylelint/-/stylelint-13.13.0.tgz";
+        sha512 = "jvkM1iuH88vAvjdKPwPm6abiMP2/D/1chbfb+4GVONddOOskHuCXc0loyrLdxO1AwwH6jdnjYskkTKHQD7cXwQ==";
       };
     };
     "stylelint-8.4.0" = {
@@ -55175,13 +55796,13 @@ let
         sha512 = "SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA==";
       };
     };
-    "svelte2tsx-0.1.186" = {
+    "svelte2tsx-0.1.188" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.1.186";
+      version = "0.1.188";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.186.tgz";
-        sha512 = "E4BmTNmIg6yHEqazhcQ8S60GI7AaV2JKf2y5deOyr3o2zpow4gGyz7yE0uSnFDdqp2iafCD7PImWZ/v1R6uQVw==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.188.tgz";
+        sha512 = "+clvG/h9Z02fhx8sxDruKppheCcAXWhkKNjz9f3R4jdwVJgTHbr66qgewIjN1i2Id3D9tBKnKgaghm8H1W55sA==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -55310,13 +55931,13 @@ let
         sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
       };
     };
-    "swagger-ui-dist-3.46.0" = {
+    "swagger-ui-dist-3.47.1" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.46.0";
+      version = "3.47.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.46.0.tgz";
-        sha512 = "ueaZ45OHhHvGKmocvCkxFY8VCfbP5PgcxutoQxy9j8/VZeDoLDvg8FBf4SO6NxHhieNAdYPUd0O6G9FjJO2fqw==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.47.1.tgz";
+        sha512 = "7b9iHDC/GGC9SJLd3HiV/3EnsJ3wu7xN8Q4MpOPfQO8UG7TQFG2TMTDkvvy0SNeqxQY0tGQY0ppZC9a95tW3kg==";
       };
     };
     "swagger2openapi-6.2.3" = {
@@ -55346,6 +55967,15 @@ let
         sha1 = "368ffc0e96bd84226ed1b9b33d66be57da04f09a";
       };
     };
+    "swimmer-1.4.0" = {
+      name = "swimmer";
+      packageName = "swimmer";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swimmer/-/swimmer-1.4.0.tgz";
+        sha512 = "r6e+3pUnXgHQnzEN0tcIGmaTs76HbZEoM9NSdmAoNqSS4BPyoUFYeQtyGUm56SXoe62LS6BIrXc8q9yp9TuZgQ==";
+      };
+    };
     "switchback-1.1.3" = {
       name = "switchback";
       packageName = "switchback";
@@ -55490,6 +56120,24 @@ let
         sha512 = "F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==";
       };
     };
+    "table-6.4.0" = {
+      name = "table";
+      packageName = "table";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.4.0.tgz";
+        sha512 = "/Vfr23BDjJT2kfsCmYtnJqEPdD/8Dh/MDIQxfcbe+09lZUel6gluquwdMTrLERBw623Nv34DLGZ11krWn5AAqw==";
+      };
+    };
+    "table-6.5.1" = {
+      name = "table";
+      packageName = "table";
+      version = "6.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.5.1.tgz";
+        sha512 = "xGDXWTBJxahkzPQCsn1S9ESHEenU7TbMD5Iv4FeopXv/XwJyWatFjfbor+6ipI10/MNPXBYUamYukOrbPZ9L/w==";
+      };
+    };
     "table-layout-0.4.5" = {
       name = "table-layout";
       packageName = "table-layout";
@@ -56058,13 +56706,13 @@ let
         sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
       };
     };
-    "textextensions-2.6.0" = {
+    "textextensions-5.12.0" = {
       name = "textextensions";
       packageName = "textextensions";
-      version = "2.6.0";
+      version = "5.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz";
-        sha512 = "49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==";
+        url = "https://registry.npmjs.org/textextensions/-/textextensions-5.12.0.tgz";
+        sha512 = "IYogUDaP65IXboCiPPC0jTLLBzYlhhw2Y4b0a2trPgbHNGGGEfuHE6tds+yDcCf4mpNDaGISFzwSSezcXt+d6w==";
       };
     };
     "textlint-rule-helper-1.2.0" = {
@@ -56094,6 +56742,15 @@ let
         sha512 = "PW6rXqLNGL3xZ6d5/INrX+pt8qbffmeDPLcvkBOlfNpDRFhVvNNjFmZXH86ZQjrOz9t/nNZDBXqnzqJuioJbSQ==";
       };
     };
+    "textlint-util-to-string-3.1.1" = {
+      name = "textlint-util-to-string";
+      packageName = "textlint-util-to-string";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/textlint-util-to-string/-/textlint-util-to-string-3.1.1.tgz";
+        sha512 = "mHE7/pDw/Hk+Q6YdSMNRrZPl5bCuWnFLbF+bxW+MsWQ64dw+Ia9irkammYbH5I0hVMMcfwb0MQc5nbsjqgWeyQ==";
+      };
+    };
     "then-fs-2.0.0" = {
       name = "then-fs";
       packageName = "then-fs";
@@ -56904,6 +57561,15 @@ let
         sha512 = "605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==";
       };
     };
+    "toposort-1.0.7" = {
+      name = "toposort";
+      packageName = "toposort";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz";
+        sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029";
+      };
+    };
     "toposort-2.0.2" = {
       name = "toposort";
       packageName = "toposort";
@@ -57129,6 +57795,15 @@ let
         sha512 = "1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==";
       };
     };
+    "treeverse-1.0.4" = {
+      name = "treeverse";
+      packageName = "treeverse";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz";
+        sha512 = "whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==";
+      };
+    };
     "trim-0.0.1" = {
       name = "trim";
       packageName = "trim";
@@ -57264,6 +57939,15 @@ let
         sha512 = "ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA==";
       };
     };
+    "tryer-1.0.1" = {
+      name = "tryer";
+      packageName = "tryer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz";
+        sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==";
+      };
+    };
     "ts-invariant-0.4.4" = {
       name = "ts-invariant";
       packageName = "ts-invariant";
@@ -57831,13 +58515,13 @@ let
         sha512 = "7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==";
       };
     };
-    "typegram-3.2.3" = {
+    "typegram-3.2.4" = {
       name = "typegram";
       packageName = "typegram";
-      version = "3.2.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typegram/-/typegram-3.2.3.tgz";
-        sha512 = "zlkY7vNTLcwQhLUyYXAUzRelzH752LBFl8m4u04d5g5P7lM9bGegeIRwzd3mVCHJH6R3s48pKeFTVSdVlN+omg==";
+        url = "https://registry.npmjs.org/typegram/-/typegram-3.2.4.tgz";
+        sha512 = "UkWgXIXZYwXK0q6zyZ4xtlETAmmgAt1Y4EFL5Ia87bIort1HHBw+RAMnO7eC1PYogCAKPSCeCSBAZVIoxQ/Dvw==";
       };
     };
     "typescript-2.9.2" = {
@@ -58218,13 +58902,13 @@ let
         sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
       };
     };
-    "underscore-1.13.0" = {
+    "underscore-1.13.1" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.13.0";
+      version = "1.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.0.tgz";
-        sha512 = "sCs4H3pCytsb5K7i072FAEC9YlSYFIbosvM0tAKAlpSSUgD7yC1iXSEGdl5XrDKQ1YUB+p/HDzYrSG2H2Vl36g==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz";
+        sha512 = "hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==";
       };
     };
     "underscore-1.2.1" = {
@@ -58542,13 +59226,13 @@ let
         sha512 = "uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==";
       };
     };
-    "unist-util-filter-0.2.1" = {
+    "unist-util-filter-2.0.3" = {
       name = "unist-util-filter";
       packageName = "unist-util-filter";
-      version = "0.2.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-0.2.1.tgz";
-        sha1 = "e2f7876828903a6a9308e362051f86b14f35b545";
+        url = "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-2.0.3.tgz";
+        sha512 = "8k6Jl/KLFqIRTHydJlHh6+uFgqYHq66pV75pZgr1JwfyFSjbWb12yfb0yitW/0TbHXjr9U4G9BQpOvMANB+ExA==";
       };
     };
     "unist-util-find-1.0.2" = {
@@ -58596,15 +59280,6 @@ let
         sha512 = "fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==";
       };
     };
-    "unist-util-is-1.0.0" = {
-      name = "unist-util-is";
-      packageName = "unist-util-is";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-1.0.0.tgz";
-        sha1 = "4c7b3c5c0f6aa963640056fe4af7b5fcfdbb8ef0";
-      };
-    };
     "unist-util-is-2.1.3" = {
       name = "unist-util-is";
       packageName = "unist-util-is";
@@ -59199,6 +59874,15 @@ let
         sha512 = "jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==";
       };
     };
+    "url-loader-2.3.0" = {
+      name = "url-loader";
+      packageName = "url-loader";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz";
+        sha512 = "goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==";
+      };
+    };
     "url-loader-4.1.1" = {
       name = "url-loader";
       packageName = "url-loader";
@@ -59262,13 +59946,13 @@ let
         sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9";
       };
     };
-    "url-toolkit-2.2.1" = {
+    "url-toolkit-2.2.2" = {
       name = "url-toolkit";
       packageName = "url-toolkit";
-      version = "2.2.1";
+      version = "2.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.1.tgz";
-        sha512 = "8+DzgrtDZYZGhHaAop5WGVghMdCfOLGbhcArsJD0qDll71FXa7EeKxi2hilPIscn2nwMz4PRjML32Sz4JTN0Xw==";
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.2.tgz";
+        sha512 = "l25w6Sy+Iy3/IbogunxhWwljPaDnqpiKvrQRoLBm6DfISco7NyRIS7Zf6+Oxhy1T8kHxWdwLND7ZZba6NjXMug==";
       };
     };
     "urlencode-1.1.0" = {
@@ -59289,6 +59973,15 @@ let
         sha1 = "23f89069a6c62f46cf3a1d3b00169cefb90be0c6";
       };
     };
+    "usb-1.7.0" = {
+      name = "usb";
+      packageName = "usb";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/usb/-/usb-1.7.0.tgz";
+        sha512 = "LHm9d389NCzZSMd0DnilxT5Lord4P2E3ETwP1LeuJcEBmI5uLJv8Sd18z/9bairUMbDnnNqX+Hi5Xkl93Kvdmw==";
+      };
+    };
     "use-3.1.1" = {
       name = "use";
       packageName = "use";
@@ -60190,6 +60883,24 @@ let
         sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
       };
     };
+    "version-compare-1.1.0" = {
+      name = "version-compare";
+      packageName = "version-compare";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/version-compare/-/version-compare-1.1.0.tgz";
+        sha512 = "zVKtPOJTC9x23lzS4+4D7J+drq80BXVYAmObnr5zqxxFVH7OffJ1lJlAS7LYsQNV56jx/wtbw0UV7XHLrvd6kQ==";
+      };
+    };
+    "version-range-1.1.0" = {
+      name = "version-range";
+      packageName = "version-range";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/version-range/-/version-range-1.1.0.tgz";
+        sha512 = "R1Ggfg2EXamrnrV3TkZ6yBNgITDbclB3viwSjbZ3+eK0VVNK4ajkYJTnDz5N0bIMYDtK9MUBvXJUnKO5RWWJ6w==";
+      };
+    };
     "vfile-1.4.0" = {
       name = "vfile";
       packageName = "vfile";
@@ -60523,22 +61234,22 @@ let
         sha512 = "DTMa8QbVmujFPvD3NxoC5jjIXCyCG+cvn3hNzwQRhvhsk8LblNymBZBwzfcDdgEtqsi4O/2AB5HnMIRzxhzEzg==";
       };
     };
-    "vscode-debugadapter-testsupport-1.46.0" = {
+    "vscode-debugadapter-testsupport-1.47.0" = {
       name = "vscode-debugadapter-testsupport";
       packageName = "vscode-debugadapter-testsupport";
-      version = "1.46.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.46.0.tgz";
-        sha512 = "6n+uu4+Q5sZvN2FgFLNJkyaE6AECYzFh+Hfv+IeJoVKA7KNiQ1SNd3yTsvSFxkS00LmVU6V00XGaqZRlwM15Jg==";
+        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.47.0.tgz";
+        sha512 = "zhEuaMt2RCOcJoTZ5p35k2WhCzk51UN1PlrtwfWJ8fiFhjDvXIG+682Wkq1VyL12EhTf4qOLMLn0X4JlX7eJ6g==";
       };
     };
-    "vscode-debugprotocol-1.46.0" = {
+    "vscode-debugprotocol-1.47.0" = {
       name = "vscode-debugprotocol";
       packageName = "vscode-debugprotocol";
-      version = "1.46.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.46.0.tgz";
-        sha512 = "V10u1L679DJZfOtQXhKylJPMqNbhazav4mRxPrBE8/Jpznow1b1j1EGDDvJ4prQ623CLAnvpFfVkVQ+CX3xdtg==";
+        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.47.0.tgz";
+        sha512 = "ii7oCz3Wfr/SGtFr5AYop5dJm0dUmpg0hq2lTzTBdaht8nSheYMMjPntxULBR+2TUxXLcCKFZkF2UEJQduYsIQ==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -60586,13 +61297,13 @@ let
         sha512 = "QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==";
       };
     };
-    "vscode-json-languageservice-4.0.2" = {
+    "vscode-json-languageservice-4.1.0" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "4.0.2";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.0.2.tgz";
-        sha512 = "d8Ahw990Cq/G60CzN26rehXcbhbMgMGMmXeN6C/V/RYZUhfs16EELRK+EL7b/3Y8ZGshtKqboePSeDVa94qqFg==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.0.tgz";
+        sha512 = "QW2SFk4kln5lTPQajGNuXWtmr2z9hVA6Sfi4qPFEW2vjt2XaUAp38/1OrcUQYiJXOyXntbWN2jZJaGxg+hDUxw==";
       };
     };
     "vscode-jsonrpc-3.5.0" = {
@@ -61108,6 +61819,15 @@ let
         sha512 = "ttGcuHA/OBnN2pcM6johpYlEms7XpO5/fyKIr48541xXedan4roO8cS1Q2S/zbbjGH/BarYDAMeS2Mi9HE5Tig==";
       };
     };
+    "walk-up-path-1.0.0" = {
+      name = "walk-up-path";
+      packageName = "walk-up-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz";
+        sha512 = "hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==";
+      };
+    };
     "walker-1.0.7" = {
       name = "walker";
       packageName = "walker";
@@ -61126,6 +61846,15 @@ let
         sha1 = "d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4";
       };
     };
+    "warning-4.0.3" = {
+      name = "warning";
+      packageName = "warning";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz";
+        sha512 = "rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==";
+      };
+    };
     "watch-1.0.2" = {
       name = "watch";
       packageName = "watch";
@@ -61324,6 +62053,15 @@ let
         sha512 = "1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg==";
       };
     };
+    "webpack-bundle-analyzer-3.9.0" = {
+      name = "webpack-bundle-analyzer";
+      packageName = "webpack-bundle-analyzer";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz";
+        sha512 = "Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==";
+      };
+    };
     "webpack-cli-3.3.12" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
@@ -61369,6 +62107,24 @@ let
         sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
       };
     };
+    "webpack-dev-server-3.11.2" = {
+      name = "webpack-dev-server";
+      packageName = "webpack-dev-server";
+      version = "3.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
+        sha512 = "A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==";
+      };
+    };
+    "webpack-flush-chunks-2.0.3" = {
+      name = "webpack-flush-chunks";
+      packageName = "webpack-flush-chunks";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-flush-chunks/-/webpack-flush-chunks-2.0.3.tgz";
+        sha512 = "CXGOyXG5YjjxyI+Qyt3VlI//JX92UmGRNP65zN3o9CIntEzfzc1J30YTKRRvF1JsE/iEzbnp5u99yCkL9obotQ==";
+      };
+    };
     "webpack-log-2.0.0" = {
       name = "webpack-log";
       packageName = "webpack-log";
@@ -61396,6 +62152,15 @@ let
         sha512 = "6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==";
       };
     };
+    "webpack-node-externals-1.7.2" = {
+      name = "webpack-node-externals";
+      packageName = "webpack-node-externals";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz";
+        sha512 = "ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==";
+      };
+    };
     "webpack-node-externals-2.5.2" = {
       name = "webpack-node-externals";
       packageName = "webpack-node-externals";
@@ -61468,13 +62233,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webtorrent-0.116.2" = {
+    "webtorrent-0.118.0" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "0.116.2";
+      version = "0.118.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.116.2.tgz";
-        sha512 = "u6ctyPEwUvbFKZsT9HRU1Q+SSqKWoNMlXWbaPTUlGsPrNZ3mCCeHtn8Hcf61jr1e4hna5oQBtVjg2N5/2V8d9g==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.118.0.tgz";
+        sha512 = "xXwwM2P+vtDsMRx9eRPNQqHD+6E7Zz7OTZqWAr2XDXg3TWGCf9HmwpgV53+F9H0oqw+l4j7vR9DRjAjChPQpZA==";
       };
     };
     "well-known-symbols-2.0.0" = {
@@ -61639,6 +62404,15 @@ let
         sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
       };
     };
+    "which-pm-2.0.0" = {
+      name = "which-pm";
+      packageName = "which-pm";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz";
+        sha512 = "Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==";
+      };
+    };
     "which-pm-runs-1.0.0" = {
       name = "which-pm-runs";
       packageName = "which-pm-runs";
@@ -61873,6 +62647,15 @@ let
         sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
       };
     };
+    "winston-3.1.0" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.1.0.tgz";
+        sha512 = "FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==";
+      };
+    };
     "winston-3.2.1" = {
       name = "winston";
       packageName = "winston";
@@ -62386,6 +63169,15 @@ let
         sha512 = "Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==";
       };
     };
+    "ws-7.4.5" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz";
+        sha512 = "xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==";
+      };
+    };
     "x-default-browser-0.3.1" = {
       name = "x-default-browser";
       packageName = "x-default-browser";
@@ -62467,13 +63259,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.0.30" = {
+    "xdl-59.0.34" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.0.30";
+      version = "59.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.30.tgz";
-        sha512 = "BNbOgInsM5/bE8EnIkoI6FRzDOSwjjrxaOeATevz3RosoZa6DMiTXU4HtSba0JkdMHKFgZaNxbj8nTQFxgg3AA==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.34.tgz";
+        sha512 = "gcnWDPydwr/0JAwTv0vbWU8PaYjiRWSSjwzsIcnqlh5aZZdMfEle+TwfXRhPwJm5jut4BgnzOfQqMV8CfXKbXQ==";
       };
     };
     "xenvar-0.5.1" = {
@@ -62864,13 +63656,13 @@ let
         sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
       };
     };
-    "xstate-4.17.1" = {
+    "xstate-4.18.0" = {
       name = "xstate";
       packageName = "xstate";
-      version = "4.17.1";
+      version = "4.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xstate/-/xstate-4.17.1.tgz";
-        sha512 = "3q7so9qAKFnz9/t7BNQXQtV+9fwDATCOkC+0tAvVqczboEbu6gz2dvPPVCCkj55Hyzgro9aSOntGSPGLei82BA==";
+        url = "https://registry.npmjs.org/xstate/-/xstate-4.18.0.tgz";
+        sha512 = "cjj22XXxTWIkMrghyoUWjUlDFcd7MQGeKYy8bkdtcIeogZjF98mep9CHv8xLO3j4PZQF5qgcAGGT8FUn99mF1Q==";
       };
     };
     "xstream-11.14.0" = {
@@ -62990,6 +63782,15 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
+    "yaml-js-0.3.0" = {
+      name = "yaml-js";
+      packageName = "yaml-js";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml-js/-/yaml-js-0.3.0.tgz";
+        sha512 = "JbTUdsPiCkOyz+JOSqAVc19omTnUBnBQglhuclYov5HpWbEOz8y+ftqWjiMa9Pe/eF/dmCUeNgVs/VWg53GlgQ==";
+      };
+    };
     "yaml-language-server-0.13.1-d0f9b44.0" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
@@ -63152,13 +63953,13 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "yargs-7.1.1" = {
+    "yargs-7.1.2" = {
       name = "yargs";
       packageName = "yargs";
-      version = "7.1.1";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz";
-        sha512 = "huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz";
+        sha512 = "ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==";
       };
     };
     "yargs-parser-10.1.0" = {
@@ -63242,13 +64043,13 @@ let
         sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
       };
     };
-    "yargs-parser-5.0.0-security.0" = {
+    "yargs-parser-5.0.1" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "5.0.0-security.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz";
-        sha512 = "T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz";
+        sha512 = "wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==";
       };
     };
     "yargs-parser-7.0.0" = {
@@ -63359,22 +64160,13 @@ let
         sha512 = "CP0fwGk5Y+jel+A0AQbyqnIFZRRpkKOeYUibiTSmlgV9PcgNFFVwn86VcUIpDLOqVjF+9v+O9FWQMo+IUcV2mA==";
       };
     };
-    "yeoman-environment-2.10.3" = {
+    "yeoman-environment-3.2.0" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "2.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.10.3.tgz";
-        sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
-      };
-    };
-    "yeoman-generator-4.13.0" = {
-      name = "yeoman-generator";
-      packageName = "yeoman-generator";
-      version = "4.13.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.13.0.tgz";
-        sha512 = "f2/5N5IR3M2Ozm+QocvZQudlQITv2DwI6Mcxfy7R7gTTzaKgvUpgo/pQMJ+WQKm0KN0YMWCFOZpj0xFGxevc1w==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.2.0.tgz";
+        sha512 = "Z2G4qgbjSLQ0BOiPQ4PCbqSYNhOP/HeWItu/hrlBv1gtBK6c3vkHSLioX8SduVYOKrn04X4H7cIG7hXpD3RsOQ==";
       };
     };
     "yn-3.1.1" = {
@@ -63458,13 +64250,13 @@ let
         sha512 = "Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==";
       };
     };
-    "zeromq-5.2.0" = {
+    "zeromq-5.2.8" = {
       name = "zeromq";
       packageName = "zeromq";
-      version = "5.2.0";
+      version = "5.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zeromq/-/zeromq-5.2.0.tgz";
-        sha512 = "qsckhCmrg6et6zrAJytC971SSN/4iLxKgkXK1Wqn2Gij5KXMY+TA+3cy/iFwehaWdU5usg5HNOOgaBdjSqtCVw==";
+        url = "https://registry.npmjs.org/zeromq/-/zeromq-5.2.8.tgz";
+        sha512 = "bXzsk7KOmgLSv1tC0Ms1VXBy90+Rz27ZYf27cLuldRYbpqYpuWJfxxHFhO710t22zgWBnmdUP0m3SKFpLI0u5g==";
       };
     };
     "zerr-1.0.4" = {
@@ -63545,32 +64337,36 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "11.2.8";
+    version = "11.2.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.8.tgz";
-      sha512 = "9TWNPKqaOrg+C5DR8jz4LNVzu/wCV0Hqt3JF4ILm9fv93bh2MgqetUKyHdQNAijtHMlOO1uh0EM2Emjlp5JvXQ==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.10.tgz";
+      sha512 = "x7u36KmX1iiyDZhkeB6yXRrNj1no+mf6arnAvJYXH2JxqsZDqp19hP8b1QcGVMSl9CZUT/vA0KT3XuI4aJ6TfQ==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1102.8"
-      sources."@angular-devkit/core-11.2.8"
-      sources."@angular-devkit/schematics-11.2.8"
+      sources."@angular-devkit/architect-0.1102.10"
+      sources."@angular-devkit/core-11.2.10"
+      sources."@angular-devkit/schematics-11.2.10"
       sources."@npmcli/ci-detect-1.3.0"
-      (sources."@npmcli/git-2.0.6" // {
+      (sources."@npmcli/git-2.0.8" // {
         dependencies = [
+          sources."hosted-git-info-4.0.2"
+          sources."npm-package-arg-8.1.2"
+          sources."npm-pick-manifest-6.1.1"
           sources."promise-retry-2.0.1"
+          sources."semver-7.3.5"
         ];
       })
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      (sources."@npmcli/run-script-1.8.4" // {
+      (sources."@npmcli/run-script-1.8.5" // {
         dependencies = [
           sources."read-package-json-fast-2.0.2"
         ];
       })
-      sources."@schematics/angular-11.2.8"
-      sources."@schematics/update-0.1102.8"
+      sources."@schematics/angular-11.2.10"
+      sources."@schematics/update-0.1102.10"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -63604,7 +64400,7 @@ in
       sources."builtins-1.0.3"
       sources."cacache-15.0.6"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
@@ -63679,7 +64475,7 @@ in
       sources."ini-2.0.0"
       sources."inquirer-7.3.3"
       sources."ip-1.1.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
@@ -63724,7 +64520,7 @@ in
       sources."mute-stream-0.0.8"
       sources."node-gyp-7.1.2"
       sources."nopt-5.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.0"
@@ -63780,7 +64576,7 @@ in
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
@@ -64366,7 +65162,7 @@ in
       sources."@angular-devkit/core-11.2.6"
       (sources."@angular-devkit/schematics-11.2.6" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."ora-5.3.0"
         ];
       })
@@ -64387,17 +65183,17 @@ in
         dependencies = [
           sources."@angular-devkit/core-11.2.4"
           sources."@angular-devkit/schematics-11.2.4"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."ora-5.3.0"
         ];
       })
       sources."@schematics/schematics-0.1102.6"
-      sources."@types/eslint-7.2.9"
+      sources."@types/eslint-7.2.10"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
@@ -64416,7 +65212,7 @@ in
       sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.1.1"
+      sources."acorn-8.2.1"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
@@ -64431,11 +65227,11 @@ in
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.1"
@@ -64455,10 +65251,10 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-5.7.0" // {
+      (sources."enhanced-resolve-5.8.0" // {
         dependencies = [
           sources."tapable-2.2.0"
         ];
@@ -64483,7 +65279,7 @@ in
       sources."fill-range-7.0.1"
       (sources."fork-ts-checker-webpack-plugin-6.2.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."fs-extra-9.1.0"
@@ -64506,7 +65302,7 @@ in
       sources."inherits-2.0.4"
       (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
         ];
@@ -64514,7 +65310,7 @@ in
       sources."interpret-1.4.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
@@ -64537,7 +65333,7 @@ in
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."lru-cache-6.0.0"
@@ -64561,7 +65357,7 @@ in
       sources."onetime-5.1.2"
       (sources."ora-5.4.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."os-name-4.0.0"
@@ -64635,7 +65431,7 @@ in
       sources."tsconfig-paths-3.9.0"
       (sources."tsconfig-paths-webpack-plugin-3.5.1" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."tslib-1.14.1"
@@ -64685,28 +65481,28 @@ in
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      (sources."@apollo/protobufjs-1.0.5" // {
+      (sources."@apollo/protobufjs-1.2.0" // {
         dependencies = [
-          sources."@types/node-10.17.56"
+          sources."@types/node-10.17.58"
         ];
       })
-      sources."@apollographql/apollo-tools-0.4.9"
+      sources."@apollographql/apollo-tools-0.4.12"
       sources."@apollographql/graphql-playground-html-1.6.27"
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
+      sources."@babel/core-7.13.16"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/helper-compilation-targets-7.13.16"
       sources."@babel/helper-create-class-features-plugin-7.13.11"
       sources."@babel/helper-create-regexp-features-plugin-7.12.17"
       sources."@babel/helper-define-polyfill-provider-0.2.0"
       sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-hoist-variables-7.13.16"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-module-transforms-7.13.14"
@@ -64720,9 +65516,9 @@ in
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -64754,10 +65550,10 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.13.0"
       sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
       sources."@babel/plugin-transform-classes-7.13.0"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
@@ -64789,17 +65585,17 @@ in
       sources."@babel/preset-flow-7.13.13"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.13.0"
-      (sources."@babel/register-7.13.14" // {
+      (sources."@babel/register-7.13.16" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -64830,7 +65626,7 @@ in
       sources."@types/connect-3.4.34"
       sources."@types/content-disposition-0.5.3"
       sources."@types/cookies-0.7.6"
-      sources."@types/cors-2.8.8"
+      sources."@types/cors-2.8.10"
       sources."@types/ejs-2.7.0"
       sources."@types/express-4.17.11"
       sources."@types/express-serve-static-core-4.17.19"
@@ -64852,8 +65648,8 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
-      (sources."@types/node-fetch-2.5.7" // {
+      sources."@types/node-14.14.41"
+      (sources."@types/node-fetch-2.5.8" // {
         dependencies = [
           sources."form-data-3.0.1"
         ];
@@ -64898,8 +65694,14 @@ in
       sources."ansi-styles-3.2.1"
       sources."apollo-cache-control-0.12.0"
       sources."apollo-datasource-0.8.0"
-      sources."apollo-env-0.6.6"
-      sources."apollo-graphql-0.6.1"
+      sources."apollo-env-0.9.0"
+      (sources."apollo-graphql-0.6.1" // {
+        dependencies = [
+          sources."@types/node-fetch-2.5.7"
+          sources."apollo-env-0.6.6"
+          sources."form-data-3.0.1"
+        ];
+      })
       sources."apollo-link-1.2.14"
       sources."apollo-reporting-protobuf-0.6.2"
       (sources."apollo-server-caching-0.6.0" // {
@@ -64907,15 +65709,15 @@ in
           sources."lru-cache-6.0.0"
         ];
       })
-      (sources."apollo-server-core-2.22.2" // {
+      (sources."apollo-server-core-2.23.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."uuid-8.3.2"
         ];
       })
       sources."apollo-server-env-3.0.0"
-      sources."apollo-server-errors-2.4.2"
-      sources."apollo-server-express-2.22.2"
+      sources."apollo-server-errors-2.5.0"
+      sources."apollo-server-express-2.23.0"
       sources."apollo-server-plugin-base-0.11.0"
       sources."apollo-server-types-0.7.0"
       sources."apollo-tracing-0.13.0"
@@ -64982,7 +65784,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -65002,7 +65804,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -65032,6 +65834,7 @@ in
       sources."clipboard-2.0.8"
       sources."cliui-7.0.4"
       sources."clone-1.0.4"
+      sources."clone-deep-4.0.1"
       sources."clone-response-1.0.2"
       sources."cmd-shim-3.0.3"
       sources."collection-visit-1.0.0"
@@ -65059,8 +65862,8 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
-      (sources."core-js-compat-3.10.1" // {
+      sources."core-js-3.11.0"
+      (sources."core-js-compat-3.11.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -65131,7 +65934,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -65214,7 +66017,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.148.0"
+      sources."flow-parser-0.149.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
@@ -65307,7 +66110,7 @@ in
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -65326,7 +66129,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
@@ -65494,7 +66297,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
       sources."object-visit-1.0.1"
@@ -65646,6 +66449,7 @@ in
       sources."set-value-2.0.1"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
+      sources."shallow-clone-3.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
@@ -66030,12 +66834,12 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/template-7.12.13"
-      sources."@babel/types-7.13.14"
+      sources."@babel/types-7.13.17"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -66056,7 +66860,6 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.21"
       sources."source-map-0.5.7"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -66112,17 +66915,17 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      (sources."@babel/core-7.13.16" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.13.16" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/helper-compilation-targets-7.13.16"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
@@ -66134,20 +66937,20 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
       sources."async-3.2.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.16.4"
-      sources."caniuse-lite-1.0.30001208"
+      sources."browserslist-4.16.5"
+      sources."caniuse-lite-1.0.30001214"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -66158,7 +66961,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."debug-4.3.2"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -66185,7 +66988,7 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."is-3.3.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-windows-1.0.2"
       sources."isexe-2.0.0"
       (sources."jake-10.8.2" // {
@@ -66252,7 +67055,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -66277,13 +67080,220 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  aws-azure-login = nodeEnv.buildNodePackage {
+    name = "aws-azure-login";
+    packageName = "aws-azure-login";
+    version = "3.3.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/aws-azure-login/-/aws-azure-login-3.3.0.tgz";
+      sha512 = "gwcHKwovQOpVY4F87M46ppqop2/KXgvJGFqZDZvtGALvFihP1olhna5lnJk/Gbl5topHZj8oXefNoWhj/L19aA==";
+    };
+    dependencies = [
+      sources."@tootallnate/once-1.1.2"
+      sources."@types/node-14.14.41"
+      sources."@types/yauzl-2.9.1"
+      sources."agent-base-6.0.2"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      (sources."ast-types-0.13.4" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
+      (sources."aws-sdk-2.892.0" // {
+        dependencies = [
+          sources."uuid-3.3.2"
+        ];
+      })
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."buffer-5.7.1"
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."bluebird-3.7.2"
+      sources."boolbase-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-4.9.2"
+      sources."buffer-crc32-0.2.13"
+      sources."bytes-3.1.0"
+      sources."chalk-4.1.1"
+      sources."chardet-0.7.0"
+      sources."cheerio-1.0.0-rc.5"
+      sources."cheerio-select-tmp-0.1.1"
+      sources."chownr-1.1.4"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-6.2.1"
+      sources."concat-map-0.0.1"
+      sources."core-util-is-1.0.2"
+      sources."css-select-3.1.2"
+      sources."css-what-4.0.0"
+      sources."data-uri-to-buffer-3.0.1"
+      sources."debug-4.3.2"
+      sources."deep-is-0.1.3"
+      sources."degenerator-2.2.0"
+      sources."depd-1.1.2"
+      sources."devtools-protocol-0.0.854822"
+      sources."dom-serializer-1.2.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.2.0"
+      sources."domutils-2.6.0"
+      sources."emoji-regex-8.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."entities-2.1.0"
+      sources."escape-string-regexp-1.0.5"
+      sources."escodegen-1.14.3"
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."events-1.1.1"
+      sources."external-editor-3.1.0"
+      sources."extract-zip-2.0.1"
+      sources."fast-levenshtein-2.0.6"
+      sources."fd-slicer-1.1.0"
+      sources."figures-3.2.0"
+      sources."file-uri-to-path-2.0.0"
+      sources."find-up-4.1.0"
+      sources."fs-constants-1.0.0"
+      sources."fs-extra-8.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."ftp-0.3.10"
+      sources."get-stream-5.2.0"
+      sources."get-uri-3.0.2"
+      sources."glob-7.1.6"
+      sources."graceful-fs-4.2.6"
+      sources."has-flag-4.0.0"
+      sources."htmlparser2-6.1.0"
+      sources."http-errors-1.7.3"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-2.0.0"
+      sources."inquirer-7.3.3"
+      sources."ip-1.1.5"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."isarray-1.0.0"
+      sources."jmespath-0.15.0"
+      sources."jsonfile-4.0.0"
+      sources."levn-0.3.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."lru-cache-5.1.1"
+      sources."mimic-fn-2.1.0"
+      sources."minimatch-3.0.4"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp-classic-0.5.3"
+      sources."ms-2.1.2"
+      sources."mute-stream-0.0.8"
+      sources."netmask-2.0.2"
+      sources."node-fetch-2.6.1"
+      sources."nth-check-2.0.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."optionator-0.8.3"
+      sources."os-tmpdir-1.0.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."pac-proxy-agent-4.1.0"
+      sources."pac-resolver-4.2.0"
+      sources."parse5-6.0.1"
+      sources."parse5-htmlparser2-tree-adapter-6.0.1"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."pend-1.2.0"
+      sources."pkg-dir-4.2.0"
+      sources."prelude-ls-1.1.2"
+      sources."progress-2.0.3"
+      sources."proxy-agent-4.0.1"
+      sources."proxy-from-env-1.1.0"
+      sources."pump-3.0.0"
+      sources."punycode-1.3.2"
+      sources."puppeteer-8.0.0"
+      sources."querystring-0.2.0"
+      sources."raw-body-2.4.1"
+      (sources."readable-stream-1.1.14" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+        ];
+      })
+      sources."restore-cursor-3.1.0"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.1"
+      sources."setprototypeof-1.1.1"
+      sources."signal-exit-3.0.3"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.1"
+      sources."socks-proxy-agent-5.0.0"
+      sources."source-map-0.6.1"
+      sources."statuses-1.5.0"
+      sources."string-width-4.2.2"
+      sources."string_decoder-0.10.31"
+      sources."strip-ansi-6.0.0"
+      sources."supports-color-7.2.0"
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."tmp-0.0.33"
+      sources."toidentifier-1.0.0"
+      sources."tslib-1.14.1"
+      sources."type-check-0.3.2"
+      sources."type-fest-0.21.3"
+      (sources."unbzip2-stream-1.4.3" // {
+        dependencies = [
+          sources."buffer-5.7.1"
+        ];
+      })
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      sources."url-0.10.3"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-8.3.2"
+      sources."word-wrap-1.2.3"
+      sources."wrappy-1.0.2"
+      sources."ws-7.4.5"
+      sources."xml2js-0.4.19"
+      sources."xmlbuilder-9.0.7"
+      sources."xregexp-2.0.0"
+      sources."yallist-3.1.1"
+      sources."yauzl-2.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Use Azure AD SSO to log into the AWS CLI.";
+      homepage = "https://github.com/sportradar/aws-azure-login#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "8.0.5";
+    version = "8.0.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.5.tgz";
-      sha512 = "bhv1ttu6JK1UrU59Z78K+o/dPbP1i5Du2+UGzqIcPkesdItM3e0GCmWcFxZpTvkETP8rGvuYz5Xt1SzdWKYQ1w==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.8.tgz";
+      sha512 = "v52KtlVv4Sdp0GaqH9vPYSwOCgIvTruMX0yv8ev+GguqY1kV+mCykCIFW3++ysu97pog00LhImvFbxndAU68rA==";
     };
     dependencies = [
       sources."@alexbosworth/html2unicode-1.1.5"
@@ -66296,7 +67306,7 @@ in
       sources."@cto.af/textdecoder-0.0.0"
       (sources."@grpc/grpc-js-1.2.12" // {
         dependencies = [
-          sources."@types/node-14.14.37"
+          sources."@types/node-14.14.41"
         ];
       })
       sources."@grpc/proto-loader-0.5.6"
@@ -66414,7 +67424,7 @@ in
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
@@ -66456,6 +67466,14 @@ in
       sources."cli-cursor-1.0.2"
       sources."cli-table3-0.5.1"
       sources."cli-width-2.2.1"
+      (sources."cliui-7.0.4" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
@@ -66486,7 +67504,7 @@ in
       sources."create-hmac-1.1.7"
       sources."crypto-js-4.0.0"
       sources."crypto-random-string-2.0.0"
-      sources."csv-parse-4.15.3"
+      sources."csv-parse-4.15.4"
       sources."cycle-1.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
@@ -66507,6 +67525,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
+      sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
@@ -66538,6 +67557,7 @@ in
       sources."gauge-1.2.7"
       sources."gaxios-4.2.0"
       sources."gcp-metadata-4.2.1"
+      sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
@@ -66596,7 +67616,7 @@ in
           sources."ansi-escapes-4.3.2"
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
           sources."external-editor-3.1.0"
@@ -66611,7 +67631,7 @@ in
           sources."tmp-0.0.33"
         ];
       })
-      (sources."invoices-1.1.7" // {
+      (sources."invoices-1.2.0" // {
         dependencies = [
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
@@ -66682,13 +67702,16 @@ in
           sources."ln-service-51.5.0"
         ];
       })
-      (sources."ln-service-51.6.0" // {
+      (sources."ln-service-51.7.0" // {
         dependencies = [
+          sources."@grpc/proto-loader-0.6.0"
           sources."@types/node-14.14.37"
           sources."@types/ws-7.4.1"
+          sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
           sources."bolt09-0.1.4"
-          sources."lightning-3.3.2"
+          sources."invoices-1.1.7"
+          sources."lightning-3.3.4"
         ];
       })
       (sources."ln-sync-0.4.5" // {
@@ -66698,15 +67721,25 @@ in
       })
       (sources."ln-telegram-3.2.2" // {
         dependencies = [
+          sources."ajv-8.1.0"
+          sources."ansi-regex-5.0.0"
           sources."asyncjs-util-1.2.4"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
           sources."bolt07-1.7.1"
+          sources."bolt09-0.1.4"
+          sources."invoices-1.1.7"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."json-schema-traverse-1.0.0"
           (sources."ln-service-51.5.0" // {
             dependencies = [
+              sources."bolt09-0.1.3"
               sources."invoices-1.1.6"
             ];
           })
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+          sources."table-6.0.9"
         ];
       })
       sources."lodash-4.17.21"
@@ -66786,9 +67819,12 @@ in
           sources."asyncjs-util-1.2.4"
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
+          sources."bolt09-0.1.4"
+          sources."invoices-1.1.7"
           (sources."ln-service-51.5.0" // {
             dependencies = [
               sources."bolt07-1.7.1"
+              sources."bolt09-0.1.3"
               sources."invoices-1.1.6"
             ];
           })
@@ -66797,7 +67833,7 @@ in
       sources."process-nextick-args-2.0.1"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.48"
+          sources."@types/node-13.13.50"
         ];
       })
       sources."proxy-addr-2.0.6"
@@ -66824,6 +67860,7 @@ in
       sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
+      sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."responselike-1.0.2"
       sources."restore-cursor-1.0.1"
@@ -66865,7 +67902,7 @@ in
       sources."strip-ansi-4.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.4.0" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."ansi-regex-5.0.0"
@@ -66907,13 +67944,13 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."typeforce-1.18.0"
-      sources."typegram-3.2.3"
+      sources."typegram-3.2.4"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."import-lazy-2.1.0"
           sources."semver-7.3.5"
           sources."supports-color-7.2.0"
@@ -66957,7 +67994,17 @@ in
       sources."write-file-atomic-3.0.3"
       sources."ws-7.4.4"
       sources."xdg-basedir-4.0.0"
+      sources."y18n-5.0.8"
       sources."yallist-4.0.0"
+      (sources."yargs-16.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.2"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -67173,7 +68220,7 @@ in
       sources."inherits-2.0.4"
       sources."intersect-1.0.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-finite-1.1.0"
       sources."is-plain-obj-1.1.0"
       sources."is-utf8-0.2.1"
@@ -67376,7 +68423,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-date-object-1.0.2"
       sources."is-generator-function-1.0.8"
       sources."is-negative-zero-2.0.1"
@@ -67402,7 +68449,7 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."module-deps-6.2.3"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -67449,7 +68496,7 @@ in
         ];
       })
       sources."stream-combiner2-1.1.1"
-      (sources."stream-http-3.1.1" // {
+      (sources."stream-http-3.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -67494,17 +68541,17 @@ in
   btc-rpc-explorer = nodeEnv.buildNodePackage {
     name = "btc-rpc-explorer";
     packageName = "btc-rpc-explorer";
-    version = "3.0.0";
+    version = "3.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.0.0.tgz";
-      sha512 = "W54w48slAxBKQRHlhsuNPZk+yct7s8ptF/pg97DQ7VLnFbsZo9ZALB3CjJKLnqO0rPHivH6E56JgAfngrA6r9Q==";
+      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.1.1.tgz";
+      sha512 = "QHoiW1H2P6Sx7L5IEvbZnnQsfy7eaibY/KS2UAX9VINXNdGS9RxqEdLOe9yTdcy5pzIFpQKIBspOnHcBOjVa8A==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/parser-7.13.16"
+      sources."@babel/types-7.13.17"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
       sources."@types/minimist-1.2.1"
@@ -67578,6 +68625,13 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
+      sources."compressible-2.0.18"
+      (sources."compression-1.7.4" // {
+        dependencies = [
+          sources."bytes-3.0.0"
+          sources."debug-2.6.9"
+        ];
+      })
       sources."concat-map-0.0.1"
       sources."constantinople-4.0.1"
       sources."content-disposition-0.5.3"
@@ -67696,7 +68750,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-expression-4.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -67727,7 +68781,7 @@ in
       sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
       sources."map-obj-4.2.1"
-      (sources."markdown-it-12.0.4" // {
+      (sources."markdown-it-12.0.6" // {
         dependencies = [
           sources."argparse-2.0.1"
           sources."entities-2.1.0"
@@ -67826,7 +68880,7 @@ in
       })
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
-      sources."redis-3.1.0"
+      sources."redis-3.1.2"
       sources."redis-commands-1.7.0"
       sources."redis-errors-1.2.0"
       sources."redis-parser-3.0.0"
@@ -67865,7 +68919,7 @@ in
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
-      sources."simple-git-2.37.0"
+      sources."simple-git-2.38.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -67955,7 +69009,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.48"
+      sources."@types/node-13.13.50"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -68097,7 +69151,7 @@ in
       sources."ip-set-1.0.2"
       sources."ipaddr.js-2.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-finite-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -68367,8 +69421,8 @@ in
       sha512 = "Oo/tO5aqmjsBORN93dSnidF7+2u77Q9zwUn9VbCQkZqCNfeZZcwIV9AG108hMYwtcXqtKQC7wevX6rmi9l8lng==";
     };
     dependencies = [
-      sources."@jsii/spec-1.27.1"
-      sources."@types/node-10.17.56"
+      sources."@jsii/spec-1.29.0"
+      sources."@types/node-10.17.58"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."array-filter-1.0.0"
@@ -68380,7 +69434,7 @@ in
       sources."cdk8s-1.0.0-beta.11"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.27.1" // {
+      (sources."codemaker-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -68438,37 +69492,37 @@ in
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
-      (sources."jsii-1.27.1" // {
+      (sources."jsii-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.27.1" // {
+      (sources."jsii-pacmak-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.27.1" // {
+      (sources."jsii-reflect-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.27.1" // {
+      (sources."jsii-rosetta-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.255" // {
+      (sources."jsii-srcmak-0.1.257" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.2.5"
-      sources."json2jsii-0.1.188"
+      sources."json2jsii-0.1.219"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
@@ -68480,11 +69534,11 @@ in
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.27.1"
+      sources."oo-ascii-tree-1.29.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -68554,18 +69608,19 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.2.1";
+    version = "0.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.2.1.tgz";
-      sha512 = "DcAkiIy8oA3GIUG8/zqO7oBYyER7WxC4ylVNkQFqq/k7m+x+YCk18JvHkZHX4uK2xxQyttQ0lxHMNyZyA5y1oA==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.3.0.tgz";
+      sha512 = "8ZICMcjBkKMBzzyVQfa3CGb/kkxBfvr7nxvOLpyEO1ecJt4E1gkrAwsKb8oVX/zfQ371UJqrqJxwBwb+OUT5Wg==";
     };
     dependencies = [
-      sources."@cdktf/hcl2json-0.2.1"
-      sources."@jsii/spec-1.27.1"
+      sources."@cdktf/hcl2json-0.3.0"
+      sources."@jsii/spec-1.29.0"
       sources."@skorfmann/ink-confirm-input-3.0.0"
-      sources."@skorfmann/terraform-cloud-1.9.1"
-      sources."@types/node-14.14.37"
+      sources."@skorfmann/terraform-cloud-1.10.0"
+      sources."@types/node-14.14.41"
       sources."@types/node-fetch-2.5.10"
+      sources."@types/yauzl-2.9.1"
       sources."@types/yoga-layout-1.9.2"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
@@ -68598,8 +69653,8 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."case-1.6.3"
-      sources."cdktf-0.2.1"
-      sources."chalk-4.1.0"
+      sources."cdktf-0.3.0"
+      sources."chalk-4.1.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
@@ -68620,7 +69675,7 @@ in
       sources."commonmark-0.29.3"
       sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
-      sources."constructs-3.3.71"
+      sources."constructs-3.3.75"
       sources."convert-to-spaces-1.0.2"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
@@ -68651,6 +69706,8 @@ in
       sources."escalade-3.1.1"
       sources."escape-string-regexp-2.0.0"
       sources."exit-on-epipe-1.0.1"
+      sources."extract-zip-2.0.1"
+      sources."fd-slicer-1.1.0"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
       sources."follow-redirects-1.13.3"
@@ -68662,6 +69719,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
+      sources."get-stream-5.2.0"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
@@ -68700,7 +69758,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."js-tokens-4.0.0"
-      (sources."jsii-1.27.1" // {
+      (sources."jsii-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -68708,10 +69766,10 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.27.1" // {
+      (sources."jsii-pacmak-1.29.0" // {
         dependencies = [
           sources."camelcase-6.2.0"
-          sources."codemaker-1.27.1"
+          sources."codemaker-1.29.0"
           sources."decamelize-5.0.0"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
@@ -68720,7 +69778,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.27.1" // {
+      (sources."jsii-reflect-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -68728,7 +69786,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.27.1" // {
+      (sources."jsii-rosetta-1.29.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -68736,7 +69794,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.255" // {
+      (sources."jsii-srcmak-0.1.257" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -68772,13 +69830,13 @@ in
       sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.27.1"
+      sources."oo-ascii-tree-1.29.0"
       sources."open-7.4.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -68786,12 +69844,14 @@ in
       sources."patch-console-1.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."pend-1.2.0"
       sources."printj-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."prop-types-15.7.2"
+      sources."pump-3.0.0"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.12.0"
+      sources."react-devtools-core-4.12.4"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       sources."readable-stream-3.6.0"
@@ -68856,7 +69916,7 @@ in
       sources."widest-line-3.1.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xmlbuilder-15.1.1"
       sources."xmldom-0.5.0"
       sources."y18n-5.0.8"
@@ -68869,6 +69929,7 @@ in
         ];
       })
       sources."yargs-parser-20.2.7"
+      sources."yauzl-2.10.0"
       sources."yn-3.1.1"
       sources."yoga-layout-prebuilt-1.10.0"
       sources."zip-stream-4.1.0"
@@ -69058,10 +70119,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.18.2";
+    version = "0.18.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.2.tgz";
-      sha512 = "uiWZlGLle3EXfC+1AmYmPrQfYeL2gY1BKpROBr5BWgT2+1W21gAlY1mziopAk0AmCNA8M4wgvfgc+CC3KVYkjQ==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.3.tgz";
+      sha512 = "VL6XhOU9roM9wKcDZrJ+MeabNDXI9vb2aUinDHOJx+7e19MIbACfFgMJfVxOkSWNRrTHyOlElnHCcYzS8gk2qQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69117,10 +70178,10 @@ in
   coc-explorer = nodeEnv.buildNodePackage {
     name = "coc-explorer";
     packageName = "coc-explorer";
-    version = "0.17.1";
+    version = "0.17.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.17.1.tgz";
-      sha512 = "rojcQAJIxD8ObvlFq5HPZjyESKLzyUrRHmTQbvvsltEi8v4ztOOqTmRqYNtP+9wD4KRjTYmZGA6hgqQqXZlWqA==";
+      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.17.2.tgz";
+      sha512 = "XXMjJMweK5qAmOFd569HpdSgcFTziumnNWjPYO1Fze3aJ75KtemSWjrKKy6waFTzQH0sWHmq8g/cRs1pjhQckQ==";
     };
     dependencies = [
       sources."@sindresorhus/df-3.1.1"
@@ -69164,7 +70225,7 @@ in
       sources."npm-run-path-3.1.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-8.0.5"
+      sources."open-8.0.6"
       sources."os-homedir-1.0.2"
       sources."p-finally-2.0.1"
       sources."p-map-4.0.0"
@@ -69390,10 +70451,10 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "1.0.3";
+    version = "1.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.3.tgz";
-      sha512 = "7mIC/YiAYNS9kzv0tPi6IcKTWRDRAwjKbot4g/RwBxpyGAzTBvsfmpqnWvHiZbk4kd8mKG2qmWR9OEy7CNzNEQ==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-1.0.4.tgz";
+      sha512 = "nMarefi4Y2ReRiKa/GpyJRKMyF+J+cT3pc1mw6MvmuhpkhrQtf/feMYJ+7/h7l38NqAxjHkBvAiHZqDpWB675Q==";
     };
     dependencies = [
       sources."@chemzqm/neovim-5.2.13"
@@ -69440,7 +70501,7 @@ in
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
       sources."follow-redirects-1.13.3"
-      sources."fp-ts-2.9.5"
+      sources."fp-ts-2.10.4"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
@@ -69511,7 +70572,7 @@ in
       sources."node-fetch-2.6.1"
       sources."node-int64-0.4.0"
       sources."npm-run-path-2.0.2"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -69678,15 +70739,14 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -69745,7 +70805,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
+      sources."core-js-3.11.0"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
@@ -69781,14 +70841,14 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.24.0" // {
+      (sources."eslint-7.25.0" // {
         dependencies = [
           sources."eslint-visitor-keys-2.0.0"
         ];
@@ -69908,7 +70968,6 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
@@ -69944,7 +71003,6 @@ in
         ];
       })
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -69983,10 +71041,9 @@ in
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -70010,7 +71067,6 @@ in
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
       sources."is-number-2.1.0"
-      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
@@ -70025,7 +71081,6 @@ in
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -70449,7 +71504,7 @@ in
       sources."sugarss-1.0.1"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
@@ -70581,13 +71636,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.129";
+    version = "1.1.134";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.129.tgz";
-      sha512 = "XlybP7uY9BgkeGKCFhIxnmpos3rYJ8wIB+MW4w0Fyu51Ap2fxamU7FDmOcOIbjmp1tglldSZm2+A+KloHDuUgw==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.134.tgz";
+      sha512 = "UUtG3a+ATo6B/B3LbU6PvXzFE8XznGyoyeg9DAeCxT2PpZjdq0HAXjwnqnt7ekhr2q5oA1ERbLM0jQXoxj117g==";
     };
     dependencies = [
-      sources."pyright-1.1.130"
+      sources."pyright-1.1.134"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70661,10 +71716,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.42.0";
+    version = "0.43.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.42.0.tgz";
-      sha512 = "H6/r68GvhIMWDZWWFtOUsyRNxaVlMRLrS+uMqcipxfkx+Pl1pWfnfsmymjd9okbtrWiKWgG6G63v7T2rVl4+YA==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.43.1.tgz";
+      sha512 = "NWuXDc9NrqVN1HO7NTUfH68Xr05yJA5bJXfQOSasOxxjsMyijL/aYwmlflSV93DO0zzWmsBPBTmBjBXxAms0cQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70739,9 +71794,9 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/core-7.13.16"
+      sources."@babel/generator-7.13.16"
+      sources."@babel/helper-compilation-targets-7.13.16"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
@@ -70753,16 +71808,16 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -70781,16 +71836,19 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."balanced-match-2.0.0"
+      (sources."brace-expansion-1.1.11" // {
+        dependencies = [
+          sources."balanced-match-1.0.2"
+        ];
+      })
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
-      sources."call-bind-1.0.2"
+      sources."browserslist-4.16.5"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001208"
-      (sources."chalk-4.1.0" // {
+      sources."caniuse-lite-1.0.30001214"
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -70827,7 +71885,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -70848,7 +71906,6 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
@@ -70861,7 +71918,6 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -70874,26 +71930,22 @@ in
       sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -70971,7 +72023,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.5"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
@@ -71028,11 +72080,11 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-indent-3.0.0"
       sources."style-search-0.1.0"
-      sources."stylelint-13.12.0"
+      sources."stylelint-13.13.0"
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.9"
+      sources."table-6.5.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -71040,7 +72092,6 @@ in
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
       sources."unified-9.2.1"
-      sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
@@ -71144,7 +72195,7 @@ in
       sources."has-flag-3.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
       sources."minimatch-3.0.4"
@@ -71259,9 +72310,8 @@ in
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -71282,7 +72332,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.24.0"
+      sources."eslint-7.25.0"
       sources."eslint-plugin-vue-7.9.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
@@ -71318,7 +72368,6 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.8.0" // {
@@ -71328,19 +72377,15 @@ in
       })
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -71387,7 +72432,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
@@ -71699,13 +72744,12 @@ in
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.6"
+      sources."@npmcli/git-2.0.8"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -71990,7 +73034,7 @@ in
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
@@ -72077,13 +73121,13 @@ in
         ];
       })
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
       sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.1"
       sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
@@ -72114,7 +73158,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
       sources."path-exists-3.0.0"
@@ -72200,7 +73244,7 @@ in
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
@@ -72233,7 +73277,7 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.13.0"
+      sources."underscore-1.13.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
@@ -72310,7 +73354,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -72450,7 +73494,7 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -72681,7 +73725,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -72770,7 +73814,7 @@ in
       sources."mute-stream-0.0.7"
       sources."next-tick-1.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."onetime-2.0.1"
       sources."os-tmpdir-1.0.2"
@@ -73783,15 +74827,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.68.0";
+    version = "6.69.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.68.0.tgz";
-      sha512 = "TbyxmvjB/wAuZfeXQIfFSn5LVE/SarcYSflAfL1tWnh4Az3OXGe4U5FoB/HRM8G3JTc2gp3oe1akrRpfda9+NQ==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.69.2.tgz";
+      sha512 = "HvwyYhkQ1Sw/eGCJkgNHEdPHy9W15WNeON35kzYeuQvY46df2W/p/L8Lik13iyWUMW7ky+v1qm9sGBhs40D/OQ==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
@@ -73977,14 +75021,14 @@ in
         ];
       })
       sources."@malept/cross-spawn-promise-1.1.1"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/glob-7.1.3"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.1"
       sources."abbrev-1.1.1"
@@ -74035,7 +75079,7 @@ in
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."chromium-pickle-js-0.2.0"
@@ -74060,7 +75104,7 @@ in
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.10.1"
+      sources."core-js-3.11.0"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."currently-unhandled-0.4.1"
@@ -74211,7 +75255,7 @@ in
         ];
       })
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-docker-2.2.1"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
@@ -74291,7 +75335,7 @@ in
         ];
       })
       sources."nice-try-1.0.5"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.26.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -74317,7 +75361,7 @@ in
         ];
       })
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -74405,7 +75449,7 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."resolve-1.20.0"
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       sources."resolve-dir-1.0.1"
       sources."resolve-package-1.0.1"
       sources."responselike-2.0.0"
@@ -74561,14 +75605,14 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      (sources."@babel/core-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -74585,25 +75629,25 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
       sources."@babel/plugin-syntax-jsx-7.12.13"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-react-jsx-7.13.12"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -74622,7 +75666,7 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
@@ -74638,7 +75682,7 @@ in
           sources."quick-lru-4.0.1"
         ];
       })
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -74675,7 +75719,7 @@ in
       })
       sources."defer-to-connect-2.0.1"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -74708,7 +75752,7 @@ in
       (sources."ink-3.0.8" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -74718,7 +75762,7 @@ in
       (sources."ink-text-input-4.0.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -74728,7 +75772,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-docker-2.2.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
@@ -74809,7 +75853,7 @@ in
       sources."punycode-2.1.1"
       sources."quick-lru-5.1.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.12.0"
+      sources."react-devtools-core-4.12.4"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       (sources."read-pkg-5.2.0" // {
@@ -74828,7 +75872,7 @@ in
       })
       sources."redent-3.0.0"
       sources."resolve-1.20.0"
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       sources."resolve-from-3.0.0"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
@@ -74886,7 +75930,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."yallist-4.0.0"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.10.0"
@@ -74935,8 +75979,8 @@ in
       })
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.16"
-      sources."@fluentui/react-7.166.2"
+      sources."@fluentui/keyboard-key-0.2.17"
+      sources."@fluentui/react-7.168.0"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
@@ -74950,7 +75994,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.160"
+      sources."@microsoft/load-themed-styles-1.10.165"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -75680,7 +76724,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-dir-1.0.0"
@@ -75949,7 +76993,7 @@ in
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       sources."now-and-later-2.0.1"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -75977,7 +77021,7 @@ in
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
       sources."object.reduce-1.0.1"
-      sources."office-ui-fabric-react-7.166.2"
+      sources."office-ui-fabric-react-7.168.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -76090,10 +77134,10 @@ in
           sources."semver-4.3.2"
         ];
       })
-      sources."pg-connection-string-2.4.0"
+      sources."pg-connection-string-2.5.0"
       sources."pg-int8-1.0.1"
-      sources."pg-pool-3.2.2"
-      sources."pg-protocol-1.4.0"
+      sources."pg-pool-3.3.0"
+      sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
       sources."picomatch-2.2.3"
@@ -76204,7 +77248,16 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.32.8"
+      (sources."sass-1.32.11" // {
+        dependencies = [
+          sources."anymatch-3.1.2"
+          sources."binary-extensions-2.2.0"
+          sources."chokidar-3.5.1"
+          sources."fsevents-2.3.2"
+          sources."is-binary-path-2.1.0"
+          sources."readdirp-3.5.0"
+        ];
+      })
       sources."sax-1.2.4"
       sources."scheduler-0.19.1"
       sources."schema-utils-2.7.1"
@@ -76336,7 +77389,7 @@ in
       })
       sources."stream-each-1.2.3"
       sources."stream-exhaust-1.0.2"
-      (sources."stream-http-3.1.1" // {
+      (sources."stream-http-3.2.0" // {
         dependencies = [
           sources."inherits-2.0.4"
         ];
@@ -76470,7 +77523,7 @@ in
       })
       sources."url-join-4.0.1"
       sources."url-parse-lax-3.0.0"
-      sources."url-toolkit-2.2.1"
+      sources."url-toolkit-2.2.2"
       sources."use-3.1.1"
       sources."util-0.11.1"
       sources."util-deprecate-1.0.2"
@@ -76565,18 +77618,18 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
       sources."yallist-4.0.0"
-      (sources."yargs-7.1.1" // {
+      (sources."yargs-7.1.2" // {
         dependencies = [
           sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
         ];
       })
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-parser-5.0.1"
       sources."yeast-0.1.2"
       sources."yocto-queue-0.1.0"
     ];
@@ -76593,10 +77646,10 @@ in
   escape-string-regexp = nodeEnv.buildNodePackage {
     name = "escape-string-regexp";
     packageName = "escape-string-regexp";
-    version = "4.0.0";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
-      sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz";
+      sha512 = "/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -76611,10 +77664,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.24.0";
+    version = "7.25.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz";
-      sha512 = "k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz";
+      sha512 = "TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -76639,9 +77692,8 @@ in
       sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -76692,9 +77744,7 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.8.0" // {
@@ -76702,20 +77752,15 @@ in
           sources."type-fest-0.20.2"
         ];
       })
-      sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -76757,7 +77802,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
@@ -76816,9 +77861,8 @@ in
       sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -76837,7 +77881,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.24.0"
+      sources."eslint-7.25.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -76870,9 +77914,7 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.8.0" // {
@@ -76880,20 +77922,15 @@ in
           sources."type-fest-0.20.2"
         ];
       })
-      sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-object-1.0.4"
-      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -76936,7 +77973,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
@@ -76982,10 +78019,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.3.5";
+    version = "4.4.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.3.5.tgz";
-      sha512 = "UqfLz0ZoKmROfPkvD54H3Misr37Oihz+BXZXQB9Q5XSlydTjabcB8Ir7L5kE/iGfNn23N270o1omTXFplJl0vg==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.4.3.tgz";
+      sha512 = "wSap0vOOFRgg+SUrB4QPNdJH7FeTZAXgEIdrQIayoliRe+e/466Buh1j9v5g0CE6INhRjX+Ak2u9z5pVJxa4MQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
@@ -76995,10 +78032,10 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -77013,7 +78050,7 @@ in
       sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-hoist-variables-7.13.16"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-module-transforms-7.13.14"
@@ -77027,13 +78064,13 @@ in
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
       sources."@babel/plugin-proposal-class-properties-7.12.13"
       sources."@babel/plugin-proposal-dynamic-import-7.13.8"
@@ -77067,10 +78104,10 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.13.0"
       sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
       sources."@babel/plugin-transform-classes-7.13.0"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
@@ -77115,14 +78152,14 @@ in
       })
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.12.17"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@expo/apple-utils-0.0.0-alpha.17"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-3.3.35"
-      sources."@expo/config-plugins-1.0.25"
+      sources."@expo/config-3.3.38"
+      sources."@expo/config-plugins-1.0.28"
       sources."@expo/config-types-40.0.0-beta.2"
       (sources."@expo/configure-splash-screen-0.3.4" // {
         dependencies = [
@@ -77130,7 +78167,7 @@ in
           sources."pngjs-5.0.0"
         ];
       })
-      (sources."@expo/dev-server-0.1.61" // {
+      (sources."@expo/dev-server-0.1.64" // {
         dependencies = [
           sources."body-parser-1.19.0"
           sources."bytes-3.1.0"
@@ -77145,7 +78182,7 @@ in
           sources."statuses-1.5.0"
         ];
       })
-      sources."@expo/dev-tools-0.13.90"
+      sources."@expo/dev-tools-0.13.94"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -77153,20 +78190,20 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.12" // {
+      (sources."@expo/image-utils-0.3.13" // {
         dependencies = [
           sources."tempy-0.3.0"
         ];
       })
-      (sources."@expo/json-file-8.2.28" // {
+      (sources."@expo/json-file-8.2.29" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
           sources."json5-1.0.1"
         ];
       })
-      sources."@expo/metro-config-0.1.61"
-      sources."@expo/osascript-2.0.25"
-      (sources."@expo/package-manager-0.0.39" // {
+      sources."@expo/metro-config-0.1.64"
+      sources."@expo/osascript-2.0.26"
+      (sources."@expo/package-manager-0.0.41" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
@@ -77179,7 +78216,7 @@ in
         ];
       })
       sources."@expo/results-1.0.0"
-      (sources."@expo/schemer-1.3.27" // {
+      (sources."@expo/schemer-1.3.28" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -77188,7 +78225,7 @@ in
       })
       sources."@expo/simple-spinner-1.0.2"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.12.65" // {
+      (sources."@expo/webpack-config-0.12.68" // {
         dependencies = [
           sources."@babel/runtime-7.9.0"
           sources."react-refresh-0.8.3"
@@ -77201,7 +78238,7 @@ in
       })
       sources."@hapi/address-4.1.0"
       sources."@hapi/formula-2.0.0"
-      sources."@hapi/hoek-9.1.1"
+      sources."@hapi/hoek-9.2.0"
       sources."@hapi/joi-17.1.1"
       sources."@hapi/pinpoint-2.0.0"
       sources."@hapi/topo-5.0.0"
@@ -77249,10 +78286,10 @@ in
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      (sources."@npmcli/git-2.0.6" // {
+      (sources."@npmcli/git-2.0.8" // {
         dependencies = [
           sources."mkdirp-1.0.4"
+          sources."semver-7.3.5"
           sources."which-2.0.2"
         ];
       })
@@ -77265,7 +78302,7 @@ in
       })
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@pmmmwh/react-refresh-webpack-plugin-0.3.3"
       sources."@react-native-community/cli-debugger-ui-4.13.1"
       (sources."@react-native-community/cli-server-api-4.9.0" // {
@@ -77289,7 +78326,7 @@ in
         ];
       })
       sources."@segment/loosely-validate-event-2.0.0"
-      sources."@sindresorhus/is-4.0.0"
+      sources."@sindresorhus/is-4.0.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@tootallnate/once-1.1.2"
       sources."@types/anymatch-1.3.1"
@@ -77504,7 +78541,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."buffer-5.7.1"
       sources."buffer-equal-0.0.1"
       sources."buffer-from-1.1.1"
@@ -77535,9 +78572,9 @@ in
       })
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."caseless-0.12.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -77668,8 +78705,8 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."core-js-3.10.1"
-      (sources."core-js-compat-3.10.1" // {
+      sources."core-js-3.11.0"
+      (sources."core-js-compat-3.11.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -77784,7 +78821,7 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-1.3.1" // {
         dependencies = [
-          sources."domhandler-4.1.0"
+          sources."domhandler-4.2.0"
         ];
       })
       sources."dom-walk-0.1.2"
@@ -77792,9 +78829,9 @@ in
       sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
       sources."domino-2.1.6"
-      (sources."domutils-2.5.2" // {
+      (sources."domutils-2.6.0" // {
         dependencies = [
-          sources."domhandler-4.1.0"
+          sources."domhandler-4.2.0"
         ];
       })
       (sources."dot-case-3.0.4" // {
@@ -77808,7 +78845,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -77890,7 +78927,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.71" // {
+      (sources."expo-pwa-0.0.74" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -78126,7 +79163,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
@@ -78427,7 +79464,7 @@ in
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       (sources."npm-package-arg-6.1.0" // {
@@ -78444,7 +79481,7 @@ in
           sources."semver-7.3.5"
         ];
       })
-      (sources."npm-registry-fetch-9.0.0" // {
+      (sources."npm-registry-fetch-10.1.1" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
@@ -78472,7 +79509,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -78541,7 +79578,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."pacote-11.3.1" // {
+      (sources."pacote-11.3.3" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
           sources."minipass-3.1.3"
@@ -78737,7 +79774,7 @@ in
         ];
       })
       sources."postcss-safe-parser-4.0.2"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.5"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
@@ -78885,7 +79922,7 @@ in
       })
       sources."requires-port-1.0.0"
       sources."resolve-1.20.0"
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -79004,7 +80041,7 @@ in
           sources."faye-websocket-0.11.3"
         ];
       })
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
@@ -79452,7 +80489,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.0.30" // {
+      (sources."xdl-59.0.34" // {
         dependencies = [
           sources."chownr-1.1.4"
           sources."fs-minipass-1.2.7"
@@ -79573,7 +80610,7 @@ in
       sources."indent-string-2.1.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-finite-1.1.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -79716,7 +80753,7 @@ in
           sources."@oclif/plugin-help-3.2.2"
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-3.2.1"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
           sources."has-flag-4.0.0"
@@ -80254,10 +81291,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.9.0";
+    version = "9.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.9.0.tgz";
-      sha512 = "LM4HaLHg/UYJ1CB3VEzneRWk+BMJXH/9Id+v9nYeNzYFPRTxAxfWez2Etd2c+kFreLhCoMtSC4yx44zorqdkSA==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.10.0.tgz";
+      sha512 = "0HoQEB6K5WiD/p/ca7KxzGZHCxtuVdck888N924TPkjkZ6YxYT8xJtuoKXCLRjJgw4yovJ/LnxZoU66w8JD1cQ==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.7"
@@ -80266,7 +81303,7 @@ in
       sources."@google-cloud/precise-date-2.0.3"
       sources."@google-cloud/projectify-2.0.1"
       sources."@google-cloud/promisify-2.0.3"
-      (sources."@google-cloud/pubsub-2.10.0" // {
+      (sources."@google-cloud/pubsub-2.11.0" // {
         dependencies = [
           sources."google-auth-library-7.0.4"
         ];
@@ -80278,16 +81315,8 @@ in
       })
       sources."@grpc/proto-loader-0.5.6"
       sources."@jsdevtools/ono-7.1.3"
-      sources."@opentelemetry/api-0.12.0"
-      sources."@opentelemetry/context-base-0.12.0"
-      (sources."@opentelemetry/core-0.12.0" // {
-        dependencies = [
-          sources."semver-7.3.5"
-        ];
-      })
-      sources."@opentelemetry/resources-0.12.0"
-      sources."@opentelemetry/semantic-conventions-0.12.0"
-      sources."@opentelemetry/tracing-0.12.0"
+      sources."@opentelemetry/api-0.18.1"
+      sources."@opentelemetry/semantic-conventions-0.18.2"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -80306,7 +81335,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -80561,7 +81590,7 @@ in
       sources."fecha-4.2.1"
       sources."figures-2.0.0"
       sources."file-uri-to-path-2.0.0"
-      sources."filesize-6.2.1"
+      sources."filesize-6.3.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
@@ -80770,7 +81799,7 @@ in
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."mime-1.6.0"
+      sources."mime-2.5.2"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
@@ -80856,7 +81885,7 @@ in
       sources."promise-breaker-5.0.0"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.48"
+          sources."@types/node-13.13.50"
         ];
       })
       sources."proxy-addr-2.0.6"
@@ -80921,6 +81950,7 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."mime-1.6.0"
           sources."ms-2.1.1"
         ];
       })
@@ -80933,7 +81963,7 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-swizzle-0.2.2"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
@@ -81077,7 +82107,7 @@ in
       sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xdg-basedir-4.0.0"
       sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
@@ -81174,7 +82204,7 @@ in
       sources."astral-regex-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
@@ -81200,7 +82230,7 @@ in
       sources."find-up-4.1.0"
       sources."fkill-7.1.1"
       sources."function-bind-1.1.1"
-      sources."get-stream-6.0.0"
+      sources."get-stream-6.0.1"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
@@ -81211,7 +82241,7 @@ in
       sources."inquirer-7.3.3"
       sources."inquirer-autocomplete-prompt-1.3.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-2.0.0"
@@ -81333,7 +82363,7 @@ in
     dependencies = [
       sources."@types/atob-2.1.2"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/through-0.0.30"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
@@ -81356,7 +82386,7 @@ in
       sources."buffer-to-arraybuffer-0.0.5"
       sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."cli-cursor-3.1.0"
       sources."cli-width-3.0.0"
@@ -81535,10 +82565,10 @@ in
   flood = nodeEnv.buildNodePackage {
     name = "flood";
     packageName = "flood";
-    version = "4.5.3";
+    version = "4.5.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/flood/-/flood-4.5.3.tgz";
-      sha512 = "V/hB+D7kjqtSZTnFR05ZMP59x6vpVh75LDT2nAfwfVL9zVpyjynyK6abFzkMYydtGcKGPwvSqG0gYL8Tqh19sQ==";
+      url = "https://registry.npmjs.org/flood/-/flood-4.5.4.tgz";
+      sha512 = "3fDbGf4fUWsF6Si60EezRNZEBK3gz6y/IofZ10pyq4yl88hATkWyrvG3xHVdP1cfyKZzV1D4uiLStkLzKbpOWQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -81948,7 +82978,7 @@ in
       sources."@medv/blessed-2.0.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."emoji-regex-8.0.0"
@@ -81991,10 +83021,10 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "3.2.0";
+    version = "3.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.2.0.tgz";
-      sha512 = "MOj7LgwNX/O30LNdZ1WDUQ4Wiyn3uXFGND7QQepfWpaHvrgtposhy/vseAAR54N5pyehcdLhQkNQkbd4Zw9olA==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.3.0.tgz";
+      sha512 = "zqVRm6QzMNGFPv3iSjSiysNuSBYJmvPoWWR/BdXyFU8mWP3Fou3d7HdxxIQak25GVRYlMGU5ryuM9mfN/k/Jdg==";
     };
     dependencies = [
       (sources."@ardatan/aggregate-error-0.0.6" // {
@@ -82004,19 +83034,19 @@ in
       })
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      (sources."@babel/core-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.13.16" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -82034,13 +83064,13 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
       sources."@babel/plugin-proposal-optional-chaining-7.13.12"
       sources."@babel/plugin-syntax-jsx-7.12.13"
@@ -82048,13 +83078,13 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-react-jsx-7.13.12"
-      sources."@babel/runtime-7.13.10"
-      sources."@babel/standalone-7.13.15"
+      sources."@babel/runtime-7.13.17"
+      sources."@babel/standalone-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@graphql-tools/schema-7.1.3"
-      (sources."@graphql-tools/utils-7.7.2" // {
+      (sources."@graphql-tools/utils-7.7.3" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
@@ -82077,7 +83107,7 @@ in
       sources."@mdx-js/util-2.0.0-next.8"
       (sources."@sideway/address-4.1.1" // {
         dependencies = [
-          sources."@hapi/hoek-9.1.1"
+          sources."@hapi/hoek-9.2.0"
         ];
       })
       sources."@sideway/formula-3.0.0"
@@ -82092,7 +83122,8 @@ in
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
-      sources."@types/node-14.14.37"
+      sources."@types/json-patch-0.0.30"
+      sources."@types/node-14.14.41"
       sources."@types/node-fetch-2.5.10"
       sources."@types/readable-stream-2.3.9"
       sources."@types/unist-2.0.3"
@@ -82100,7 +83131,7 @@ in
       sources."@types/yargs-parser-20.2.0"
       sources."@types/yoga-layout-1.9.2"
       sources."accepts-1.3.7"
-      sources."acorn-8.1.1"
+      sources."acorn-8.2.1"
       sources."acorn-jsx-5.3.1"
       sources."address-1.1.2"
       (sources."ansi-align-3.0.0" // {
@@ -82148,7 +83179,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
@@ -82160,9 +83191,9 @@ in
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."ccount-1.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -82210,7 +83241,7 @@ in
         ];
       })
       sources."content-type-1.0.4"
-      sources."contentful-management-7.14.1"
+      sources."contentful-management-7.17.1"
       sources."contentful-sdk-core-6.7.0"
       sources."convert-hrtime-3.0.0"
       (sources."convert-source-map-1.7.0" // {
@@ -82221,7 +83252,7 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."cors-2.8.5"
-      sources."create-gatsby-1.2.0"
+      sources."create-gatsby-1.3.0"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -82260,7 +83291,7 @@ in
       sources."dotenv-8.2.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -82332,8 +83363,8 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-2.2.0"
-      (sources."gatsby-recipes-0.13.0" // {
+      sources."gatsby-core-utils-2.3.0"
+      (sources."gatsby-recipes-0.14.0" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-4.1.0"
@@ -82347,7 +83378,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."gatsby-telemetry-2.2.0"
+      sources."gatsby-telemetry-2.3.0"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
@@ -82403,7 +83434,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-decimal-1.0.4"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
@@ -82446,7 +83477,7 @@ in
       sources."jest-get-type-25.2.6"
       (sources."joi-17.4.0" // {
         dependencies = [
-          sources."@hapi/hoek-9.1.1"
+          sources."@hapi/hoek-9.2.0"
           sources."@hapi/topo-5.0.0"
         ];
       })
@@ -82517,7 +83548,7 @@ in
       sources."npm-run-path-2.0.2"
       sources."nth-check-1.0.2"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-path-0.11.5"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
@@ -82580,7 +83611,7 @@ in
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-3.0.1"
       sources."readdirp-3.5.0"
-      sources."redux-4.0.5"
+      sources."redux-4.1.0"
       sources."regenerator-runtime-0.13.8"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -82678,7 +83709,6 @@ in
       sources."strtok3-6.0.8"
       sources."style-to-object-0.3.0"
       sources."supports-color-5.5.0"
-      sources."symbol-observable-1.2.0"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -82742,9 +83772,9 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xdg-basedir-4.0.0"
-      sources."xstate-4.17.1"
+      sources."xstate-4.18.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
@@ -82881,7 +83911,7 @@ in
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
-      sources."multiserver-3.7.0"
+      sources."multiserver-3.7.1"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.2"
@@ -82891,7 +83921,7 @@ in
       sources."non-private-ip-1.4.4"
       sources."options-0.0.6"
       sources."os-homedir-1.0.2"
-      sources."packet-stream-2.0.5"
+      sources."packet-stream-2.0.6"
       sources."packet-stream-codec-1.1.3"
       sources."pako-1.0.11"
       sources."private-box-0.3.1"
@@ -82953,7 +83983,7 @@ in
       sources."separator-escape-0.0.1"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -83034,10 +84064,10 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.3.1";
+    version = "3.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.3.1.tgz";
-      sha512 = "wsCS8L8QTb9ghnJJpn1qKj+LokhGQ7OlKSM/n6/LhB8E4w/Pn4hiSgqcBthaL5J6CwJiWjpbNSA4t3sE0yqEPw==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.4.1.tgz";
+      sha512 = "FbNXUYEfnLjtjGovvCT0gegtJRpp2bRjjnP9rI2WXN4j7Sn6L63jSnlCB47iLU28PuUjxCpSAwpFaR0ykdQZMQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
@@ -83089,7 +84119,7 @@ in
       })
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -83134,7 +84164,7 @@ in
       sources."find-up-3.0.0"
       sources."function-bind-1.1.1"
       sources."fuse.js-6.4.6"
-      sources."get-stream-6.0.0"
+      sources."get-stream-6.0.1"
       sources."global-dirs-3.0.0"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -83160,7 +84190,7 @@ in
       sources."inquirer-autocomplete-prompt-1.3.0"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-installed-globally-0.4.0"
       sources."is-interactive-1.0.0"
@@ -83353,7 +84383,7 @@ in
       sources."@graphql-cli/init-4.1.0"
       (sources."@graphql-tools/batch-execute-7.1.0" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
+          (sources."@graphql-tools/utils-7.7.3" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -83363,13 +84393,13 @@ in
       })
       (sources."@graphql-tools/delegate-7.1.2" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.7.2"
+          sources."@graphql-tools/utils-7.7.3"
           sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/graphql-file-loader-6.2.7" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
+          (sources."@graphql-tools/utils-7.7.3" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -83384,7 +84414,7 @@ in
       })
       (sources."@graphql-tools/json-file-loader-6.2.6" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
+          (sources."@graphql-tools/utils-7.7.3" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -83392,19 +84422,15 @@ in
         ];
       })
       sources."@graphql-tools/load-6.2.4"
-      (sources."@graphql-tools/merge-6.2.11" // {
+      (sources."@graphql-tools/merge-6.2.13" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
-          sources."tslib-2.1.0"
+          sources."@graphql-tools/utils-7.7.3"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/schema-7.1.3" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
+          (sources."@graphql-tools/utils-7.7.3" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -83412,16 +84438,12 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/url-loader-6.8.2" // {
+      (sources."@graphql-tools/url-loader-6.8.3" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
-            dependencies = [
-              sources."tslib-2.2.0"
-            ];
-          })
-          sources."cross-fetch-3.1.1"
+          sources."@graphql-tools/utils-7.7.3"
+          sources."cross-fetch-3.1.4"
           sources."form-data-4.0.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@graphql-tools/utils-6.2.4" // {
@@ -83435,7 +84457,7 @@ in
       })
       (sources."@graphql-tools/wrap-7.0.5" // {
         dependencies = [
-          (sources."@graphql-tools/utils-7.7.2" // {
+          (sources."@graphql-tools/utils-7.7.3" // {
             dependencies = [
               sources."tslib-2.2.0"
             ];
@@ -83449,7 +84471,7 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."aggregate-error-3.1.0"
@@ -83574,7 +84596,7 @@ in
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."form-urlencoded-4.5.0"
+      sources."form-urlencoded-4.5.1"
       sources."fs-capacitor-6.2.0"
       sources."fs-extra-9.0.1"
       sources."fs-minipass-2.1.0"
@@ -83603,7 +84625,7 @@ in
       sources."graphql-subscriptions-1.2.1"
       sources."graphql-type-json-0.3.2"
       sources."graphql-upload-11.0.0"
-      sources."graphql-ws-4.2.2"
+      sources."graphql-ws-4.4.2"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -83749,7 +84771,7 @@ in
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-5.0.5"
       sources."oauth-sign-0.9.0"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
@@ -83899,7 +84921,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
@@ -83947,7 +84969,7 @@ in
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
@@ -84182,7 +85204,7 @@ in
       (sources."marked-terminal-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."supports-color-7.2.0"
         ];
       })
@@ -84443,7 +85465,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -84683,8 +85705,8 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
-      sources."yargs-7.1.1"
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-7.1.2"
+      sources."yargs-parser-5.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -84845,7 +85867,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -85052,8 +86074,8 @@ in
       sources."which-module-1.0.0"
       sources."wrap-ansi-2.1.0"
       sources."y18n-3.2.2"
-      sources."yargs-7.1.1"
-      sources."yargs-parser-5.0.0-security.0"
+      sources."yargs-7.1.2"
+      sources."yargs-parser-5.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85237,7 +86259,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.3"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
       sources."qs-6.10.1"
@@ -85428,77 +86450,13 @@ in
       sha512 = "MIV3R9d2o9uucTmNH5IU5bvXcevljsOrsH7Sv3rmf/uoXjl/iXb8hx4ZnymBpdt48f7U2m0iKmpWlQzxjthtjw==";
     };
     dependencies = [
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.5"
-      sources."base64-js-1.5.1"
-      (sources."bl-4.1.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
-      sources."buffer-5.7.1"
-      sources."chownr-1.1.4"
-      sources."code-point-at-1.1.0"
-      sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.2"
-      sources."decompress-response-4.2.1"
-      sources."deep-extend-0.6.0"
-      sources."delegates-1.0.0"
-      sources."detect-libc-1.0.3"
-      sources."end-of-stream-1.4.4"
-      sources."expand-template-2.0.3"
-      sources."fs-constants-1.0.0"
-      sources."gauge-2.7.4"
-      sources."github-from-package-0.0.0"
-      sources."has-unicode-2.0.1"
-      sources."ieee754-1.2.1"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.8"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."isarray-1.0.0"
       sources."jmp-2.0.0"
       sources."jp-kernel-2.0.0"
-      sources."mimic-response-2.1.0"
-      sources."minimist-1.2.5"
-      sources."mkdirp-classic-0.5.3"
       sources."nan-2.14.2"
-      sources."napi-build-utils-1.0.2"
       sources."nel-1.2.0"
-      sources."node-abi-2.21.0"
-      sources."noop-logger-0.1.1"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
-      sources."once-1.4.0"
-      sources."prebuild-install-5.3.6"
-      sources."process-nextick-args-2.0.1"
-      sources."pump-3.0.0"
-      sources."rc-1.2.8"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
-      sources."semver-5.7.1"
-      sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.1"
-      sources."simple-get-3.1.0"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-json-comments-2.0.1"
-      sources."tar-fs-2.1.1"
-      (sources."tar-stream-2.2.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
-      sources."tunnel-agent-0.6.0"
-      sources."util-deprecate-1.0.2"
+      sources."node-gyp-build-4.2.3"
       sources."uuid-3.4.0"
-      sources."which-pm-runs-1.0.0"
-      sources."wide-align-1.1.3"
-      sources."wrappy-1.0.2"
-      sources."zeromq-5.2.0"
+      sources."zeromq-5.2.8"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85854,7 +86812,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."jquery-3.6.0"
-      sources."jquery.terminal-2.22.0"
+      sources."jquery.terminal-2.23.2"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -86014,7 +86972,7 @@ in
         dependencies = [
           sources."ansi-escapes-4.3.2"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -86079,7 +87037,7 @@ in
           sources."path-key-2.0.1"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-7.4.2"
@@ -86126,7 +87084,7 @@ in
         ];
       })
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."split2-3.2.2"
@@ -86186,7 +87144,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -86216,7 +87174,7 @@ in
       (sources."@ot-builder/cli-help-shower-1.0.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -86226,7 +87184,7 @@ in
       (sources."@ot-builder/cli-proc-1.0.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -86236,7 +87194,7 @@ in
       (sources."@ot-builder/cli-shared-1.0.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -86361,7 +87319,7 @@ in
       (sources."otb-ttc-bundle-1.0.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -86425,7 +87383,7 @@ in
       (sources."verda-1.2.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."cliui-6.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
@@ -86645,7 +87603,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.885.0" // {
+      (sources."aws-sdk-2.892.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -86677,7 +87635,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."charenc-0.0.2"
       sources."chokidar-3.5.1"
       sources."chownr-1.1.4"
@@ -86759,15 +87717,15 @@ in
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-1.3.1" // {
         dependencies = [
-          sources."domhandler-4.1.0"
+          sources."domhandler-4.2.0"
         ];
       })
       sources."domelementtype-2.2.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.5.2" // {
+      (sources."domutils-2.6.0" // {
         dependencies = [
-          sources."domhandler-4.1.0"
+          sources."domhandler-4.2.0"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -86945,7 +87903,7 @@ in
         ];
       })
       sources."keytar-7.6.0"
-      sources."khroma-1.3.0"
+      sources."khroma-1.4.1"
       sources."klaw-1.3.1"
       sources."lazyness-1.2.0"
       sources."levenshtein-1.0.5"
@@ -86980,7 +87938,7 @@ in
       sources."markdown-it-footnote-3.0.2"
       sources."markdown-it-ins-3.0.1"
       sources."markdown-it-mark-3.0.1"
-      (sources."markdown-it-multimd-table-4.0.3" // {
+      (sources."markdown-it-multimd-table-4.1.0" // {
         dependencies = [
           sources."entities-2.0.3"
           sources."linkify-it-3.0.2"
@@ -87028,7 +87986,7 @@ in
       sources."needle-2.6.0"
       sources."nextgen-events-1.3.4"
       sources."no-case-2.3.2"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.26.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -87059,7 +88017,7 @@ in
       sources."noop-logger-0.1.1"
       sources."nopt-4.0.3"
       sources."normalize-path-3.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -87094,7 +88052,7 @@ in
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
       sources."pngjs-5.0.0"
-      sources."prebuild-install-6.1.1"
+      sources."prebuild-install-6.1.2"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
@@ -87298,7 +88256,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xml-name-validator-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -87319,10 +88277,10 @@ in
   js-beautify = nodeEnv.buildNodePackage {
     name = "js-beautify";
     packageName = "js-beautify";
-    version = "1.13.5";
+    version = "1.13.13";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.5.tgz";
-      sha512 = "MsXlH6Z/BiRYSkSRW3clNDqDjSpiSNOiG8xYVUBXt4k0LnGvDhlTGOlHX1VFtAdoLmtwjxMG5qiWKy/g+Ipv5w==";
+      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.13.tgz";
+      sha512 = "oH+nc0U5mOAqX8M5JO1J0Pw/7Q35sAdOsM5W3i87pir9Ntx6P/5Gx1xLNoK+MGyvHk4rqqRCE4Oq58H6xl2W7A==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -87363,10 +88321,10 @@ in
   js-yaml = nodeEnv.buildNodePackage {
     name = "js-yaml";
     packageName = "js-yaml";
-    version = "4.0.0";
+    version = "4.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz";
-      sha512 = "pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==";
+      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+      sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
     };
     dependencies = [
       sources."argparse-2.0.1"
@@ -87390,7 +88348,7 @@ in
       sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -87557,7 +88515,7 @@ in
       sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
@@ -87613,7 +88571,7 @@ in
         ];
       })
       sources."camelcase-6.2.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       (sources."cliui-7.0.4" // {
@@ -87896,7 +88854,7 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
-      sources."@putdotio/api-client-8.15.2"
+      sources."@putdotio/api-client-8.15.3"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.0"
@@ -87909,7 +88867,7 @@ in
       sources."braces-3.0.2"
       sources."call-bind-1.0.2"
       sources."cardinal-2.1.1"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
@@ -88033,7 +88991,7 @@ in
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       sources."node-downloader-helper-1.0.18"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-treeify-1.1.33"
       sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
@@ -88102,6 +89060,27 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  katex = nodeEnv.buildNodePackage {
+    name = "katex";
+    packageName = "katex";
+    version = "0.13.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/katex/-/katex-0.13.3.tgz";
+      sha512 = "/w0eycuK1xh201T0uFXYOZWPDoeqDHqR+6SLLKsYvNtUCYtmRjq8F+M74sdpzs+dJZYWv2eUsSW0r1AJfhZOCw==";
+    };
+    dependencies = [
+      sources."commander-6.2.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Fast math typesetting for the web.";
+      homepage = "https://katex.org";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
@@ -88114,7 +89093,7 @@ in
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
@@ -88250,7 +89229,7 @@ in
       sources."void-elements-2.0.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."y18n-5.0.8"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -88922,7 +89901,11 @@ in
           sources."pify-5.0.0"
         ];
       })
-      sources."@lerna/npm-dist-tag-4.0.0"
+      (sources."@lerna/npm-dist-tag-4.0.0" // {
+        dependencies = [
+          sources."npm-registry-fetch-9.0.0"
+        ];
+      })
       sources."@lerna/npm-install-4.0.0"
       (sources."@lerna/npm-publish-4.0.0" // {
         dependencies = [
@@ -88941,7 +89924,11 @@ in
       sources."@lerna/profiler-4.0.0"
       sources."@lerna/project-4.0.0"
       sources."@lerna/prompt-4.0.0"
-      sources."@lerna/publish-4.0.0"
+      (sources."@lerna/publish-4.0.0" // {
+        dependencies = [
+          sources."npm-registry-fetch-9.0.0"
+        ];
+      })
       sources."@lerna/pulse-till-done-4.0.0"
       sources."@lerna/query-graph-4.0.0"
       sources."@lerna/resolve-symlink-4.0.0"
@@ -88963,12 +89950,12 @@ in
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
       sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.6"
+      sources."@npmcli/git-2.0.8"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@octokit/auth-token-2.4.5"
       sources."@octokit/core-3.4.0"
       (sources."@octokit/endpoint-6.0.11" // {
@@ -88977,19 +89964,19 @@ in
         ];
       })
       sources."@octokit/graphql-4.6.1"
-      sources."@octokit/openapi-types-6.0.0"
+      sources."@octokit/openapi-types-6.1.1"
       sources."@octokit/plugin-enterprise-rest-6.0.1"
       sources."@octokit/plugin-paginate-rest-2.13.3"
       sources."@octokit/plugin-request-log-1.0.3"
-      sources."@octokit/plugin-rest-endpoint-methods-5.0.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.0.1"
       (sources."@octokit/request-5.4.15" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
         ];
       })
       sources."@octokit/request-error-2.0.5"
-      sources."@octokit/rest-18.5.2"
-      sources."@octokit/types-6.13.0"
+      sources."@octokit/rest-18.5.3"
+      sources."@octokit/types-6.13.2"
       sources."@tootallnate/once-1.1.2"
       sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
@@ -89044,7 +90031,7 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
@@ -89188,7 +90175,7 @@ in
       })
       sources."get-port-5.1.1"
       sources."get-stdin-4.0.1"
-      sources."get-stream-6.0.0"
+      sources."get-stream-6.0.1"
       sources."getpass-0.1.7"
       sources."git-raw-commits-2.0.10"
       (sources."git-remote-origin-url-2.0.0" // {
@@ -89239,7 +90226,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      (sources."init-package-json-2.0.2" // {
+      (sources."init-package-json-2.0.3" // {
         dependencies = [
           sources."normalize-package-data-3.0.2"
           sources."read-package-json-3.0.1"
@@ -89258,7 +90245,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
@@ -89294,8 +90281,8 @@ in
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."kind-of-6.0.3"
-      sources."libnpmaccess-4.0.1"
-      (sources."libnpmpublish-4.0.0" // {
+      sources."libnpmaccess-4.0.2"
+      (sources."libnpmpublish-4.0.1" // {
         dependencies = [
           sources."normalize-package-data-3.0.2"
         ];
@@ -89379,7 +90366,7 @@ in
         ];
       })
       sources."normalize-url-3.3.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       (sources."npm-lifecycle-3.1.5" // {
         dependencies = [
@@ -89402,13 +90389,13 @@ in
       sources."npm-package-arg-8.1.2"
       sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.1"
       sources."npm-run-path-4.0.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.2"
@@ -89428,7 +90415,7 @@ in
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       sources."p-waterfall-2.1.1"
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parent-module-1.0.1"
       sources."parse-github-repo-url-1.4.1"
       sources."parse-json-5.2.0"
@@ -89516,7 +90503,7 @@ in
       sources."slash-3.0.0"
       sources."slide-1.1.6"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
@@ -90515,7 +91502,7 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -90537,18 +91524,18 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
+      sources."@babel/core-7.13.16"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/helper-compilation-targets-7.13.16"
       sources."@babel/helper-create-class-features-plugin-7.13.11"
       sources."@babel/helper-create-regexp-features-plugin-7.12.17"
       sources."@babel/helper-define-polyfill-provider-0.2.0"
       sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-hoist-variables-7.13.16"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-module-transforms-7.13.14"
@@ -90562,13 +91549,13 @@ in
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-external-helpers-7.8.3"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
@@ -90601,10 +91588,10 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.13.0"
       sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
       sources."@babel/plugin-transform-classes-7.13.0"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
@@ -90634,10 +91621,10 @@ in
       sources."@babel/preset-env-7.13.15"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
@@ -90658,7 +91645,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.13"
@@ -90815,7 +91802,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -90831,7 +91818,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -90903,7 +91890,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.11.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -90955,7 +91942,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -91130,7 +92117,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-deflate-1.0.0"
       sources."is-descriptor-1.0.2"
@@ -91492,7 +92479,7 @@ in
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
       sources."stream-each-1.2.3"
-      (sources."stream-http-3.1.1" // {
+      (sources."stream-http-3.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -91726,7 +92713,7 @@ in
       sources."aws4-1.11.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
@@ -91941,7 +92928,7 @@ in
       sources."inherits-2.0.4"
       sources."inquirer-0.12.0"
       sources."interpret-1.4.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-my-ip-valid-1.0.0"
       sources."is-my-json-valid-2.20.5"
@@ -92089,10 +93076,10 @@ in
   mathjax = nodeEnv.buildNodePackage {
     name = "mathjax";
     packageName = "mathjax";
-    version = "3.1.2";
+    version = "3.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.2.tgz";
-      sha512 = "BojKspBv4nNWzO1wC6VEI+g9gHDOhkaGHGgLxXkasdU4pwjdO5AXD5M/wcLPkXYPjZ/N+6sU8rjQTlyvN2cWiQ==";
+      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.4.tgz";
+      sha512 = "Okmc+F3l7vRWNMALbH0HMMoTJWVn1cbeDbybHppCeophIGdFS+xxD/OffYpZirUOHzesZostpzEwsLSst+4W8w==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -92151,7 +93138,7 @@ in
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/yauzl-2.9.1"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -92163,7 +93150,7 @@ in
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
       sources."camel-case-3.0.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chownr-1.1.4"
       sources."clean-css-4.2.3"
       sources."color-convert-2.0.1"
@@ -92233,7 +93220,7 @@ in
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."khroma-1.3.0"
+      sources."khroma-1.4.1"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lower-case-1.1.4"
@@ -92284,7 +93271,7 @@ in
       sources."upper-case-1.1.3"
       sources."util-deprecate-1.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -92308,12 +93295,12 @@ in
     dependencies = [
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.16"
-      sources."@fluentui/react-7.166.2"
+      sources."@fluentui/keyboard-key-0.2.17"
+      sources."@fluentui/react-7.168.0"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
-      sources."@microsoft/load-themed-styles-1.10.160"
+      sources."@microsoft/load-themed-styles-1.10.165"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@uifabric/foundation-7.9.26"
@@ -92449,7 +93436,7 @@ in
       sources."node-fetch-1.6.3"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.166.2"
+      sources."office-ui-fabric-react-7.168.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -92520,7 +93507,7 @@ in
       sources."source-map-support-0.5.19"
       sources."sprintf-js-1.0.3"
       sources."statuses-1.5.0"
-      (sources."stream-http-3.1.1" // {
+      (sources."stream-http-3.2.0" // {
         dependencies = [
           sources."inherits-2.0.4"
         ];
@@ -92540,7 +93527,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
-      sources."swagger-ui-dist-3.46.0"
+      sources."swagger-ui-dist-3.47.1"
       sources."tail-2.2.2"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -92590,7 +93577,7 @@ in
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
       sources."camelcase-6.2.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."supports-color-7.2.0"
         ];
@@ -92738,7 +93725,7 @@ in
       sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
@@ -92765,10 +93752,10 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "4.9.0";
+    version = "4.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
-      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.10.0.tgz";
+      sha512 = "MMtsyjCPYXy45I8TZTz0iYJUIJhaDSO0zfHOJeidGuLUCeY6WLQiwZteJ9tmCveNWMjT1r2QO9nq135mUDgbtw==";
     };
     dependencies = [
       sources."@msgpack/msgpack-1.12.2"
@@ -92785,7 +93772,7 @@ in
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.1"
+      sources."fecha-2.3.3"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-1.1.0"
@@ -92794,28 +93781,22 @@ in
       sources."lodash-4.17.21"
       sources."lodash.defaults-4.2.0"
       sources."lodash.omit-4.5.0"
-      sources."logform-2.2.0"
+      sources."logform-1.10.0"
       sources."lru-cache-6.0.0"
       sources."ms-2.1.3"
       sources."one-time-0.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.1"
+      sources."readable-stream-2.3.7"
+      sources."safe-buffer-5.1.2"
       sources."semver-7.3.5"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."string_decoder-1.3.0"
+      sources."string_decoder-1.1.1"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
-      sources."winston-3.2.1"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-3.1.0"
+      sources."winston-transport-4.4.0"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -92831,23 +93812,23 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "3.17.1";
+    version = "3.21.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.17.1.tgz";
-      sha512 = "C9mWo2ijxnh09mscYb0F96V76g71MrVJNPgbjMobYnHPbJP3zqNG/3CBmLHyX9RLQI6RRcqND05ATdj2itL1rg==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.21.9.tgz";
+      sha512 = "GRdQHPz8gVmU1Gy6ZWv/B2t3MjQN2hLHBG4yRY6S7DbRQc8XaY9PLJPrmodycumFdzx6Da+SMmhZrzkKfZ/xSg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      (sources."@babel/core-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.13.9"
+      sources."@babel/generator-7.13.16"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -92862,7 +93843,7 @@ in
       sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-hoist-variables-7.13.16"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-module-transforms-7.13.14"
@@ -92876,9 +93857,9 @@ in
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -92908,10 +93889,10 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.13.0"
       sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
       sources."@babel/plugin-transform-classes-7.13.0"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
@@ -92943,10 +93924,10 @@ in
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@bugsnag/browser-7.9.2"
       sources."@bugsnag/core-7.9.2"
       sources."@bugsnag/cuid-3.0.0"
@@ -92956,11 +93937,12 @@ in
       sources."@dabh/diagnostics-2.0.2"
       sources."@jest/types-24.9.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      (sources."@netlify/build-10.2.7" // {
+      (sources."@netlify/build-11.2.5" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
+          sources."is-plain-obj-2.1.0"
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
           sources."semver-6.3.0"
@@ -92971,20 +93953,22 @@ in
           sources."locate-path-5.0.0"
         ];
       })
-      (sources."@netlify/config-5.12.0" // {
+      (sources."@netlify/config-6.2.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
+          sources."is-plain-obj-2.1.0"
         ];
       })
       (sources."@netlify/framework-info-3.3.0" // {
         dependencies = [
+          sources."is-plain-obj-2.1.0"
           sources."locate-path-5.0.0"
         ];
       })
-      sources."@netlify/functions-utils-1.3.23"
-      (sources."@netlify/git-utils-1.0.8" // {
+      sources."@netlify/functions-utils-1.3.28"
+      (sources."@netlify/git-utils-1.0.9" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."execa-3.4.0"
@@ -93014,7 +93998,7 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."@netlify/plugins-list-2.6.0"
+      sources."@netlify/plugins-list-2.8.0"
       (sources."@netlify/run-utils-1.0.7" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -93024,7 +94008,7 @@ in
       sources."@netlify/traffic-mesh-agent-darwin-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-linux-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-win32-x64-0.27.10"
-      (sources."@netlify/zip-it-and-ship-it-3.2.1" // {
+      (sources."@netlify/zip-it-and-ship-it-3.7.0" // {
         dependencies = [
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
@@ -93061,7 +94045,7 @@ in
           sources."@oclif/plugin-help-3.2.2"
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
           sources."is-fullwidth-code-point-2.0.0"
@@ -93094,10 +94078,8 @@ in
       })
       (sources."@oclif/errors-1.3.4" // {
         dependencies = [
-          sources."ansi-styles-4.3.0"
           sources."clean-stack-3.0.1"
           sources."escape-string-regexp-4.0.0"
-          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
@@ -93145,7 +94127,7 @@ in
       (sources."@oclif/plugin-plugins-1.10.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
           sources."tslib-2.2.0"
@@ -93160,7 +94142,7 @@ in
           sources."universal-user-agent-6.0.0"
         ];
       })
-      sources."@octokit/openapi-types-6.0.0"
+      sources."@octokit/openapi-types-6.1.1"
       (sources."@octokit/plugin-paginate-rest-1.1.2" // {
         dependencies = [
           sources."@octokit/types-2.16.2"
@@ -93185,7 +94167,7 @@ in
         ];
       })
       sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.13.0"
+      sources."@octokit/types-6.13.2"
       sources."@rollup/plugin-babel-5.3.0"
       (sources."@rollup/plugin-commonjs-17.1.0" // {
         dependencies = [
@@ -93198,7 +94180,7 @@ in
       sources."@rollup/pluginutils-3.1.0"
       sources."@samverschueren/stream-to-observable-0.3.1"
       sources."@sindresorhus/is-0.14.0"
-      (sources."@sindresorhus/slugify-1.1.0" // {
+      (sources."@sindresorhus/slugify-1.1.2" // {
         dependencies = [
           sources."escape-string-regexp-4.0.0"
         ];
@@ -93223,7 +94205,7 @@ in
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/node-fetch-2.5.10"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-1.17.1"
@@ -93294,7 +94276,7 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
-      (sources."aws-sdk-2.885.0" // {
+      (sources."aws-sdk-2.892.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -93318,6 +94300,7 @@ in
       })
       sources."base64-js-1.5.1"
       sources."before-after-hook-2.2.1"
+      sources."better-opn-2.1.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
       (sources."body-parser-1.19.0" // {
@@ -93339,7 +94322,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."btoa-lite-1.0.0"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -93368,7 +94351,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."cardinal-2.1.1"
       sources."caw-2.0.1"
       (sources."chalk-2.4.2" // {
@@ -93427,7 +94410,7 @@ in
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."argparse-1.0.10"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."clean-stack-3.0.1"
           sources."escape-string-regexp-4.0.0"
           sources."extract-stack-2.0.0"
@@ -93437,7 +94420,12 @@ in
         ];
       })
       sources."cli-width-2.2.1"
-      sources."cliui-6.0.0"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
@@ -93495,7 +94483,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.11.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -93612,15 +94600,13 @@ in
           sources."normalize-url-2.0.1"
           sources."p-cancelable-0.4.1"
           sources."p-event-2.3.1"
-          sources."p-finally-1.0.0"
-          sources."p-timeout-2.0.1"
           sources."pify-3.0.0"
           sources."sort-keys-2.0.0"
         ];
       })
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."elegant-spinner-1.0.1"
       sources."elf-cam-0.1.1"
       sources."emoji-regex-8.0.0"
@@ -93631,7 +94617,7 @@ in
       sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.6"
-      sources."esbuild-0.11.10"
+      sources."esbuild-0.11.14"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
@@ -93651,7 +94637,7 @@ in
       sources."events-1.1.1"
       (sources."execa-5.0.0" // {
         dependencies = [
-          sources."get-stream-6.0.0"
+          sources."get-stream-6.0.1"
           sources."human-signals-2.1.0"
         ];
       })
@@ -93703,7 +94689,7 @@ in
       sources."extract-stack-1.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-diff-1.2.0"
-      sources."fast-equals-2.0.0"
+      sources."fast-equals-2.0.1"
       sources."fast-glob-2.2.7"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
@@ -93724,7 +94710,7 @@ in
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
           sources."cacheable-request-7.0.1"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."decompress-response-5.0.0"
           sources."defer-to-connect-2.0.1"
           sources."got-10.7.0"
@@ -93886,12 +94872,11 @@ in
         ];
       })
       sources."http-proxy-1.18.1"
-      (sources."http-proxy-middleware-1.1.1" // {
+      (sources."http-proxy-middleware-1.2.1" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
           sources."is-number-7.0.0"
-          sources."is-plain-obj-3.0.0"
           sources."micromatch-4.0.4"
           sources."to-regex-range-5.0.1"
         ];
@@ -93930,7 +94915,7 @@ in
       (sources."inquirer-autocomplete-prompt-1.3.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."into-stream-3.1.0"
@@ -93944,7 +94929,7 @@ in
           sources."ci-info-2.0.0"
         ];
       })
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-docker-2.2.1"
@@ -93967,13 +94952,14 @@ in
       sources."is-observable-1.1.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-inside-3.0.3"
-      sources."is-plain-obj-2.1.0"
+      sources."is-plain-obj-3.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
       sources."is-reference-1.2.1"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
@@ -93989,7 +94975,7 @@ in
       sources."jmespath-0.15.0"
       sources."js-string-escape-1.0.1"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-4.0.0"
+      sources."js-yaml-4.1.0"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
@@ -94088,7 +95074,12 @@ in
           sources."moize-5.4.7"
         ];
       })
-      sources."log-symbols-3.0.0"
+      (sources."log-symbols-4.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.1"
+        ];
+      })
       (sources."log-update-2.3.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -94125,9 +95116,13 @@ in
       sources."md5-hex-2.0.0"
       sources."md5-o-matic-0.1.1"
       sources."media-typer-0.3.0"
-      sources."memoize-one-5.1.1"
+      sources."memoize-one-5.2.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge-options-3.0.4"
+      (sources."merge-options-3.0.4" // {
+        dependencies = [
+          sources."is-plain-obj-2.1.0"
+        ];
+      })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
@@ -94148,7 +95143,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."module-definition-3.3.1"
-      sources."moize-6.0.1"
+      sources."moize-6.0.2"
       (sources."move-file-1.2.0" // {
         dependencies = [
           (sources."cp-file-6.2.0" // {
@@ -94172,12 +95167,12 @@ in
       sources."natural-orderby-2.0.3"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
-      (sources."netlify-6.1.17" // {
+      (sources."netlify-6.1.20" // {
         dependencies = [
           sources."qs-6.10.1"
         ];
       })
-      sources."netlify-redirect-parser-3.0.14"
+      sources."netlify-redirect-parser-3.0.17"
       sources."netlify-redirector-0.2.1"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.1"
@@ -94220,6 +95215,7 @@ in
           sources."pify-3.0.0"
         ];
       })
+      sources."npm-normalize-package-bin-1.0.1"
       sources."npm-run-path-4.0.1"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
@@ -94236,7 +95232,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object-treeify-1.1.33"
       sources."object-visit-1.0.1"
@@ -94266,8 +95262,18 @@ in
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."cli-cursor-3.1.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          (sources."log-symbols-3.0.0" // {
+            dependencies = [
+              sources."ansi-styles-3.2.1"
+              sources."chalk-2.4.2"
+            ];
+          })
           sources."mute-stream-0.0.8"
           sources."restore-cursor-3.1.0"
+          sources."supports-color-5.5.0"
         ];
       })
       sources."os-name-3.1.0"
@@ -94278,7 +95284,12 @@ in
         ];
       })
       sources."p-cancelable-1.1.0"
-      sources."p-event-4.2.0"
+      (sources."p-event-4.2.0" // {
+        dependencies = [
+          sources."p-finally-1.0.0"
+          sources."p-timeout-3.2.0"
+        ];
+      })
       (sources."p-every-2.0.0" // {
         dependencies = [
           sources."p-map-2.1.0"
@@ -94295,13 +95306,18 @@ in
       sources."p-locate-4.1.0"
       sources."p-map-3.0.0"
       sources."p-reduce-2.1.0"
-      (sources."p-timeout-3.2.0" // {
+      (sources."p-timeout-2.0.1" // {
         dependencies = [
           sources."p-finally-1.0.0"
         ];
       })
       sources."p-try-2.2.0"
-      sources."p-wait-for-3.2.0"
+      (sources."p-wait-for-3.2.0" // {
+        dependencies = [
+          sources."p-finally-1.0.0"
+          sources."p-timeout-3.2.0"
+        ];
+      })
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -94388,6 +95404,7 @@ in
       })
       sources."rc-1.2.8"
       sources."react-is-16.13.1"
+      sources."read-package-json-fast-2.0.2"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
           sources."type-fest-0.6.0"
@@ -94743,7 +95760,7 @@ in
         ];
       })
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-6.2.0" // {
+      (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
         ];
@@ -94880,7 +95897,7 @@ in
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."ssri-8.0.1"
       sources."string-width-1.0.2"
@@ -95035,7 +96052,7 @@ in
       sources."invert-kv-1.0.0"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
@@ -95265,7 +96282,7 @@ in
       sources."ms-2.1.3"
       sources."needle-2.6.0"
       sources."nopt-4.0.3"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -95309,16 +96326,16 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "1.3.2";
+    version = "1.3.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-1.3.2.tgz";
-      sha512 = "tOtD5Z8l4WNuGNfUp/LFSC/ou74LfKhIWSgT4i9WTTUxUvSlWCBu8TsPNbjl9yM17Ox2ebe57mEnOHvTjQlEyA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-1.3.3.tgz";
+      sha512 = "byKE+FxquGqaZ8HOCaZ6iz7CUwhJeBCfNqsuOCpUDxOa/Zqg2vh0OnZBv3W2DburZq/hEy2/LZxpXPg6iYSh4A==";
     };
     dependencies = [
-      sources."@babel/runtime-7.13.10"
-      sources."@node-red/editor-api-1.3.2"
-      sources."@node-red/editor-client-1.3.2"
-      (sources."@node-red/nodes-1.3.2" // {
+      sources."@babel/runtime-7.13.17"
+      sources."@node-red/editor-api-1.3.3"
+      sources."@node-red/editor-client-1.3.3"
+      (sources."@node-red/nodes-1.3.3" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."http-errors-1.7.3"
@@ -95332,9 +96349,9 @@ in
           })
         ];
       })
-      sources."@node-red/registry-1.3.2"
-      sources."@node-red/runtime-1.3.2"
-      sources."@node-red/util-1.3.2"
+      sources."@node-red/registry-1.3.3"
+      sources."@node-red/runtime-1.3.3"
+      sources."@node-red/util-1.3.3"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       (sources."agent-base-6.0.2" // {
@@ -95601,10 +96618,10 @@ in
           sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
-          sources."ws-7.4.4"
+          sources."ws-7.4.5"
         ];
       })
-      (sources."mqtt-packet-6.9.0" // {
+      (sources."mqtt-packet-6.9.1" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -95642,7 +96659,7 @@ in
       sources."node-red-node-rbe-0.5.0"
       sources."node-red-node-tail-0.3.1"
       sources."nopt-5.0.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -95864,7 +96881,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
@@ -96151,10 +97168,10 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "7.4.0";
+    version = "7.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-7.4.0.tgz";
-      sha512 = "woJn5Bodg0/VDyUWx5EHIsi+8QlKSows0AVRBt47PG++cJAVE6jQFXcXDFDBMqY5PueFc4w0SA3gxqPklk6oGg==";
+      url = "https://registry.npmjs.org/np/-/np-7.5.0.tgz";
+      sha512 = "CdpgqtO6JpDKJjQ2gueY0jnbz6APWA9wFXSwPv5bXg4seSBibHqQ8JyWxYlS8YRfVbpeDtj582wcAWTlfy5qNA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
@@ -96184,7 +97201,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -96225,7 +97242,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
       sources."clean-stack-2.2.0"
@@ -96290,7 +97307,7 @@ in
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-6.0.0"
+      sources."get-stream-6.0.1"
       sources."github-url-from-git-1.5.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
@@ -96364,7 +97381,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -96507,7 +97524,7 @@ in
       sources."os-tmpdir-1.0.2"
       (sources."ow-0.21.0" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
+          sources."@sindresorhus/is-4.0.1"
           sources."type-fest-0.20.2"
         ];
       })
@@ -96687,10 +97704,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "7.9.0";
+    version = "7.11.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-7.9.0.tgz";
-      sha512 = "GW9RbueF717kJ4ZUVsTlhKBEY7AqX28OwQCsfIAkRZclfeeqQDnsoJz6WWuYTMpGBJnB2xknF8Dp364c93FDYA==";
+      url = "https://registry.npmjs.org/npm/-/npm-7.11.1.tgz";
+      sha512 = "F9dUPQQBm5me6t74m63CrrBSzUcLART9BmsxiJU3jZK8SBnxiqzxvsU70/uqY0cjYSoYP7AuZ2w8YfGUwhcf6A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -96705,22 +97722,21 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "11.4.1";
+    version = "11.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.4.1.tgz";
-      sha512 = "bWElM5CeJ9gA/wvtqB4ljcKzAZ3BlPM2g/7mVi8mPdCR2N6dhgS4q5GCzQn4ZvpeKSFll3bUGkiR/lgSQOlN8Q==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-11.5.1.tgz";
+      sha512 = "4b12O2ioGKbS/4a3i/QfHNIMkNEEq7LtngUSFPatJ3FURIjGT13N/glKO/g2tPmuOtuaTXCnTJlyWBLnf+A//g==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
-      sources."@npmcli/ci-detect-1.3.0"
-      sources."@npmcli/git-2.0.6"
+      sources."@npmcli/git-2.0.8"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.2"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.4"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -96771,7 +97787,7 @@ in
       })
       sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
@@ -96874,7 +97890,7 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jju-1.4.0"
-      sources."js-yaml-4.0.0"
+      sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
@@ -96909,7 +97925,7 @@ in
       })
       sources."make-fetch-happen-8.0.14"
       sources."map-age-cleaner-0.1.3"
-      sources."mem-8.1.0"
+      sources."mem-8.1.1"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
       sources."mime-db-1.47.0"
@@ -96931,13 +97947,13 @@ in
       sources."node-gyp-7.1.2"
       sources."nopt-5.0.0"
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
       sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
-      sources."npm-registry-fetch-9.0.0"
+      sources."npm-registry-fetch-10.1.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
@@ -96954,7 +97970,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.3.1"
+      sources."pacote-11.3.3"
       sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
@@ -97001,7 +98017,7 @@ in
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."spawn-please-1.0.0"
       sources."sshpk-1.16.1"
@@ -97291,21 +98307,21 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      (sources."@babel/core-7.13.15" // {
+      (sources."@babel/core-7.13.16" // {
         dependencies = [
           sources."json5-2.2.0"
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.13.16" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.13" // {
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -97320,7 +98336,7 @@ in
       sources."@babel/helper-explode-assignable-expression-7.13.0"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.0"
+      sources."@babel/helper-hoist-variables-7.13.16"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
       sources."@babel/helper-module-transforms-7.13.14"
@@ -97334,9 +98350,9 @@ in
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -97368,10 +98384,10 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.13.0"
       sources."@babel/plugin-transform-async-to-generator-7.13.0"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
       sources."@babel/plugin-transform-classes-7.13.0"
       sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
       sources."@babel/plugin-transform-dotall-regex-7.12.13"
       sources."@babel/plugin-transform-duplicate-keys-7.12.13"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
@@ -97405,10 +98421,10 @@ in
         ];
       })
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -97513,7 +98529,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -97530,7 +98546,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -97557,7 +98573,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.10.1" // {
+      (sources."core-js-compat-3.11.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -97657,7 +98673,7 @@ in
       sources."domain-browser-1.2.0"
       sources."domelementtype-1.3.1"
       sources."domexception-1.0.1"
-      (sources."domhandler-4.1.0" // {
+      (sources."domhandler-4.2.0" // {
         dependencies = [
           sources."domelementtype-2.2.0"
         ];
@@ -97669,7 +98685,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -97681,7 +98697,7 @@ in
       sources."error-ex-1.3.2"
       (sources."es-abstract-1.18.0" // {
         dependencies = [
-          sources."object-inspect-1.9.0"
+          sources."object-inspect-1.10.2"
         ];
       })
       sources."es-to-primitive-1.2.1"
@@ -97784,7 +98800,7 @@ in
         dependencies = [
           sources."dom-serializer-1.3.1"
           sources."domelementtype-2.2.0"
-          sources."domutils-2.5.2"
+          sources."domutils-2.6.0"
           sources."entities-2.2.0"
         ];
       })
@@ -97811,7 +98827,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.3"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -98032,7 +99048,7 @@ in
       sources."postcss-ordered-values-4.1.2"
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.5"
       sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
@@ -98164,7 +99180,7 @@ in
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."srcset-3.0.0"
+      sources."srcset-3.0.1"
       sources."sshpk-1.16.1"
       sources."stable-0.1.8"
       (sources."static-eval-2.1.0" // {
@@ -98778,7 +99794,7 @@ in
       sources."ipaddr.js-2.0.0"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-date-object-1.0.2"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
@@ -99310,7 +100326,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -99447,7 +100463,7 @@ in
       sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
@@ -99516,7 +100532,7 @@ in
       sources."shimmer-1.2.1"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
@@ -99557,10 +100573,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.0.2";
+    version = "6.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.0.2.tgz";
-      sha512 = "Zg1wbTjGu2dcQKzKq4IZSshK6zIEedEvlmE/EpujnFcbzJHXCAuyHZR2GuhR1887qc41dHs/bxnXEOol2/sapQ==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.2.1.tgz";
+      sha512 = "aSrlGL3703pXhMaxFpFLAFakvpla0PaGN2/zOh5oG2qbvJ+jKuGkpHPhpLyAnhs/z+Je3wBaYA7vETu1f1xwqQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -99633,7 +100649,7 @@ in
       sources."binary-extensions-2.2.0"
       sources."braces-3.0.2"
       sources."callsites-3.1.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."chokidar-3.5.1"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -99904,7 +100920,7 @@ in
         ];
       })
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."json-stable-stringify-0.0.1"
@@ -99991,7 +101007,7 @@ in
       sources."sourcemap-codec-1.4.8"
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
-      (sources."stream-http-3.1.1" // {
+      (sources."stream-http-3.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -100109,10 +101125,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.130";
+    version = "1.1.134";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.130.tgz";
-      sha512 = "hj4Lvn0x5LFsZDJaZ5hW5X4NfHSCoMvEqcNvRgpYM59qAM22z7XC+Tb7XNrQEhOfIjsbczS3nKWGGUMCe88LXg==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.134.tgz";
+      sha512 = "wQSdU6X3olAwCZy3tSA0fn8nMQGEwm01rm1dHM+aN2crzXIcUQ9sLOf+wCn5PFlLGsm/CXH7ROYmeMs3jXQ8Rw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100192,7 +101208,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-stream-1.1.0"
       sources."is-url-1.2.4"
@@ -100411,7 +101427,7 @@ in
       sources."mkdirp-0.5.5"
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -100452,6 +101468,1743 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  react-static = nodeEnv.buildNodePackage {
+    name = "react-static";
+    packageName = "react-static";
+    version = "7.5.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/react-static/-/react-static-7.5.3.tgz";
+      sha512 = "coA9MuNPfN+8TyFj7aOycw2e5W9t+sSgFOUyK30oDrh2MWWWHLjY0I4V1puyCconC2arggfDE2GYXvqOTCGv9Q==";
+    };
+    dependencies = [
+      sources."@babel/cli-7.13.16"
+      sources."@babel/code-frame-7.12.13"
+      sources."@babel/compat-data-7.13.15"
+      (sources."@babel/core-7.13.16" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/generator-7.13.16"
+      sources."@babel/helper-annotate-as-pure-7.12.13"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.16" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.13.11"
+      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
+      (sources."@babel/helper-define-polyfill-provider-0.2.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-explode-assignable-expression-7.13.0"
+      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-hoist-variables-7.13.16"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-optimise-call-expression-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-remap-async-to-generator-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.13"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helper-wrap-function-7.13.0"
+      sources."@babel/helpers-7.13.17"
+      sources."@babel/highlight-7.13.10"
+      sources."@babel/parser-7.13.16"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
+      sources."@babel/plugin-proposal-class-properties-7.13.0"
+      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
+      sources."@babel/plugin-proposal-export-default-from-7.12.13"
+      sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
+      sources."@babel/plugin-proposal-json-strings-7.13.8"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
+      sources."@babel/plugin-proposal-numeric-separator-7.12.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-proposal-private-methods-7.13.0"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.12.13"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-default-from-7.12.13"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-jsx-7.12.13"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-top-level-await-7.12.13"
+      sources."@babel/plugin-transform-arrow-functions-7.13.0"
+      sources."@babel/plugin-transform-async-to-generator-7.13.0"
+      sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
+      sources."@babel/plugin-transform-block-scoping-7.13.16"
+      sources."@babel/plugin-transform-classes-7.13.0"
+      sources."@babel/plugin-transform-computed-properties-7.13.0"
+      sources."@babel/plugin-transform-destructuring-7.13.17"
+      sources."@babel/plugin-transform-dotall-regex-7.12.13"
+      sources."@babel/plugin-transform-duplicate-keys-7.12.13"
+      sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
+      sources."@babel/plugin-transform-for-of-7.13.0"
+      sources."@babel/plugin-transform-function-name-7.12.13"
+      sources."@babel/plugin-transform-literals-7.12.13"
+      sources."@babel/plugin-transform-member-expression-literals-7.12.13"
+      sources."@babel/plugin-transform-modules-amd-7.13.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.13.8"
+      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
+      sources."@babel/plugin-transform-modules-umd-7.13.0"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
+      sources."@babel/plugin-transform-new-target-7.12.13"
+      sources."@babel/plugin-transform-object-super-7.12.13"
+      sources."@babel/plugin-transform-parameters-7.13.0"
+      sources."@babel/plugin-transform-property-literals-7.12.13"
+      sources."@babel/plugin-transform-react-display-name-7.12.13"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/plugin-transform-react-jsx-development-7.12.17"
+      sources."@babel/plugin-transform-react-pure-annotations-7.12.1"
+      sources."@babel/plugin-transform-regenerator-7.13.15"
+      sources."@babel/plugin-transform-reserved-words-7.12.13"
+      (sources."@babel/plugin-transform-runtime-7.13.15" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/plugin-transform-shorthand-properties-7.12.13"
+      sources."@babel/plugin-transform-spread-7.13.0"
+      sources."@babel/plugin-transform-sticky-regex-7.12.13"
+      sources."@babel/plugin-transform-template-literals-7.13.0"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.13"
+      sources."@babel/plugin-transform-unicode-escapes-7.12.13"
+      sources."@babel/plugin-transform-unicode-regex-7.12.13"
+      (sources."@babel/preset-env-7.13.15" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/preset-react-7.13.13"
+      sources."@babel/preset-stage-0-7.8.3"
+      sources."@babel/register-7.13.16"
+      sources."@babel/runtime-7.13.17"
+      sources."@babel/template-7.12.13"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
+      sources."@reach/router-1.3.4"
+      sources."@sindresorhus/is-0.7.0"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.7"
+      sources."@types/minimatch-3.0.4"
+      sources."@types/node-14.14.41"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/q-1.5.4"
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."@zeit/schemas-2.6.0"
+      sources."accepts-1.3.7"
+      sources."acorn-6.4.2"
+      sources."acorn-walk-7.2.0"
+      sources."after-0.8.2"
+      sources."ajv-6.12.6"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."alphanum-sort-1.0.2"
+      sources."ansi-align-2.0.0"
+      sources."ansi-colors-3.2.4"
+      sources."ansi-escapes-3.2.0"
+      sources."ansi-html-0.0.7"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.2"
+      sources."aproba-1.2.0"
+      sources."arch-2.2.0"
+      (sources."archive-type-4.0.0" // {
+        dependencies = [
+          sources."file-type-4.4.0"
+        ];
+      })
+      sources."arg-2.0.0"
+      sources."argparse-1.0.10"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-flatten-1.1.1"
+      sources."array-union-1.0.2"
+      sources."array-uniq-1.0.3"
+      sources."array-unique-0.3.2"
+      sources."arraybuffer.slice-0.0.7"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assign-symbols-1.0.0"
+      sources."async-2.6.3"
+      sources."async-each-1.0.3"
+      sources."async-limiter-1.0.1"
+      sources."atob-2.1.2"
+      sources."autoprefixer-9.8.6"
+      sources."axios-0.21.1"
+      sources."babel-core-7.0.0-bridge.0"
+      (sources."babel-loader-8.2.2" // {
+        dependencies = [
+          sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."make-dir-3.1.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."babel-plugin-macros-2.8.0"
+      (sources."babel-plugin-polyfill-corejs2-0.2.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."babel-plugin-polyfill-corejs3-0.2.0"
+      sources."babel-plugin-polyfill-regenerator-0.2.0"
+      sources."babel-plugin-transform-react-remove-prop-types-0.4.24"
+      sources."babel-plugin-universal-import-4.0.2"
+      (sources."babel-runtime-6.26.0" // {
+        dependencies = [
+          sources."regenerator-runtime-0.11.1"
+        ];
+      })
+      sources."backo2-1.0.2"
+      sources."balanced-match-1.0.2"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."base64-arraybuffer-0.1.4"
+      sources."base64-js-1.5.1"
+      sources."base64id-2.0.0"
+      sources."batch-0.6.1"
+      sources."bfj-6.1.2"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.2.0"
+      sources."bindings-1.5.0"
+      sources."bl-1.2.3"
+      sources."blob-0.0.5"
+      sources."bluebird-3.7.2"
+      sources."bn.js-5.2.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."bonjour-3.5.0" // {
+        dependencies = [
+          sources."array-flatten-2.1.2"
+        ];
+      })
+      sources."boolbase-1.0.0"
+      (sources."boxen-1.3.0" // {
+        dependencies = [
+          sources."camelcase-4.1.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      sources."browserify-rsa-4.1.0"
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."browserify-zlib-0.1.4"
+      sources."browserslist-4.16.5"
+      sources."buffer-5.7.1"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-fill-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."buffer-indexof-1.1.1"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      sources."bytes-3.0.0"
+      (sources."cacache-12.0.4" // {
+        dependencies = [
+          sources."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      (sources."cacheable-request-2.1.4" // {
+        dependencies = [
+          sources."lowercase-keys-1.0.0"
+        ];
+      })
+      sources."call-bind-1.0.2"
+      (sources."caller-callsite-2.0.0" // {
+        dependencies = [
+          sources."callsites-2.0.0"
+        ];
+      })
+      sources."caller-path-2.0.0"
+      sources."callsites-3.1.0"
+      sources."camel-case-3.0.0"
+      sources."camelcase-5.3.1"
+      sources."caniuse-api-3.0.0"
+      sources."caniuse-lite-1.0.30001214"
+      sources."case-sensitive-paths-webpack-plugin-2.4.0"
+      sources."caw-2.0.1"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      sources."check-types-8.0.3"
+      sources."chokidar-3.5.1"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.3"
+      sources."cipher-base-1.0.4"
+      sources."circular-dependency-plugin-5.2.2"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."clean-css-4.2.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."cli-boxes-1.0.0"
+      sources."cli-cursor-2.1.0"
+      sources."cli-width-2.2.1"
+      (sources."clipboardy-1.2.3" // {
+        dependencies = [
+          sources."execa-0.8.0"
+        ];
+      })
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."clone-deep-4.0.1"
+      sources."clone-response-1.0.2"
+      sources."coa-2.0.2"
+      sources."collection-visit-1.0.0"
+      sources."color-3.1.3"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.5"
+      sources."colorette-1.2.2"
+      sources."commander-4.1.1"
+      sources."commondir-1.0.1"
+      sources."component-bind-1.0.0"
+      sources."component-emitter-1.2.1"
+      sources."component-inherit-0.0.3"
+      sources."compressible-2.0.18"
+      (sources."compression-1.7.3" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."config-chain-1.1.12"
+      sources."connect-history-api-fallback-1.6.0"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."convert-source-map-1.7.0"
+      sources."cookie-0.4.1"
+      sources."cookie-signature-1.0.6"
+      sources."copy-concurrently-1.0.5"
+      sources."copy-descriptor-0.1.1"
+      sources."core-js-2.6.12"
+      (sources."core-js-compat-3.11.0" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."core-util-is-1.0.2"
+      sources."cors-2.8.5"
+      sources."cosmiconfig-6.0.0"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."create-react-context-0.3.0"
+      sources."cross-spawn-5.1.0"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-names-0.0.4"
+      sources."css-declaration-sorter-4.0.1"
+      (sources."css-loader-2.1.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."css-select-2.1.0"
+      sources."css-select-base-adapter-0.1.1"
+      (sources."css-tree-1.0.0-alpha.37" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."css-what-3.4.2"
+      sources."cssesc-3.0.0"
+      (sources."cssnano-4.1.11" // {
+        dependencies = [
+          sources."cosmiconfig-5.2.1"
+          sources."import-fresh-2.0.0"
+          sources."parse-json-4.0.0"
+          sources."resolve-from-3.0.0"
+        ];
+      })
+      sources."cssnano-preset-default-4.0.8"
+      sources."cssnano-util-get-arguments-4.0.0"
+      sources."cssnano-util-get-match-4.0.0"
+      sources."cssnano-util-raw-cache-4.0.1"
+      sources."cssnano-util-same-parent-4.0.1"
+      (sources."csso-4.2.0" // {
+        dependencies = [
+          sources."css-tree-1.1.3"
+          sources."mdn-data-2.0.14"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."cyclist-1.0.1"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      (sources."decompress-4.2.1" // {
+        dependencies = [
+          (sources."make-dir-1.3.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."decompress-response-3.3.0"
+      (sources."decompress-tar-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
+      (sources."decompress-tarbz2-4.1.1" // {
+        dependencies = [
+          sources."file-type-6.2.0"
+        ];
+      })
+      (sources."decompress-targz-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
+      (sources."decompress-unzip-4.0.1" // {
+        dependencies = [
+          sources."file-type-3.9.0"
+          sources."get-stream-2.3.1"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."deep-equal-1.1.1"
+      sources."deep-extend-0.6.0"
+      (sources."default-gateway-4.2.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."define-properties-1.1.3"
+      sources."define-property-2.0.2"
+      sources."del-4.1.1"
+      sources."depd-1.1.2"
+      sources."des.js-1.0.1"
+      sources."destroy-1.0.4"
+      sources."detect-node-2.0.5"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."dns-equal-1.0.0"
+      sources."dns-packet-1.3.1"
+      sources."dns-txt-2.0.2"
+      sources."dom-converter-0.2.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.2.0"
+        ];
+      })
+      sources."domain-browser-1.2.0"
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."dot-prop-5.3.0"
+      (sources."download-7.1.0" // {
+        dependencies = [
+          sources."make-dir-1.3.0"
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."download-git-repo-2.0.0"
+      sources."duplexer-0.1.2"
+      sources."duplexer3-0.1.4"
+      sources."duplexify-3.7.1"
+      sources."ee-first-1.1.1"
+      sources."ejs-2.7.4"
+      sources."electron-to-chromium-1.3.720"
+      (sources."elliptic-6.5.4" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."emoji-regex-7.0.3"
+      sources."emojis-list-3.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      (sources."engine.io-3.5.0" // {
+        dependencies = [
+          sources."debug-4.1.1"
+        ];
+      })
+      (sources."engine.io-client-3.5.1" // {
+        dependencies = [
+          sources."component-emitter-1.3.0"
+          sources."debug-3.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."engine.io-parser-2.2.1"
+      (sources."enhanced-resolve-4.5.0" // {
+        dependencies = [
+          sources."memory-fs-0.5.0"
+        ];
+      })
+      sources."entities-2.2.0"
+      sources."errno-0.1.8"
+      sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-scope-4.0.3"
+      sources."esprima-4.0.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      sources."events-3.3.0"
+      sources."eventsource-1.1.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."execa-0.7.0"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."cookie-0.4.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."path-to-regexp-0.1.7"
+          sources."range-parser-1.2.1"
+        ];
+      })
+      sources."ext-list-2.2.2"
+      sources."ext-name-5.0.0"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."external-editor-3.1.0"
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      (sources."extract-css-chunks-webpack-plugin-4.9.0" // {
+        dependencies = [
+          sources."loader-utils-2.0.0"
+          sources."normalize-url-1.9.1"
+          sources."prepend-http-1.0.4"
+          sources."query-string-4.3.4"
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      (sources."fast-url-parser-1.1.3" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."faye-websocket-0.11.3"
+      sources."fd-slicer-1.1.0"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-2.0.0"
+      (sources."file-loader-3.0.1" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."file-type-8.1.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."filename-reserved-regex-2.0.0"
+      sources."filenamify-2.1.0"
+      sources."filesize-3.6.1"
+      sources."fill-range-7.0.1"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-cache-dir-2.1.0"
+      sources."find-up-3.0.0"
+      sources."flush-write-stream-1.1.1"
+      sources."follow-redirects-1.13.3"
+      sources."for-in-1.0.2"
+      sources."forwarded-0.1.2"
+      sources."fragment-cache-0.2.1"
+      sources."fresh-0.5.2"
+      sources."from2-2.3.0"
+      sources."fs-constants-1.0.0"
+      sources."fs-extra-7.0.1"
+      sources."fs-readdir-recursive-1.1.0"
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-proxy-2.1.0"
+      sources."get-stream-3.0.0"
+      sources."get-value-2.0.6"
+      sources."git-clone-0.1.0"
+      sources."git-promise-1.0.0"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."globals-11.12.0"
+      (sources."globby-6.1.0" // {
+        dependencies = [
+          sources."pify-2.3.0"
+        ];
+      })
+      (sources."got-8.3.2" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."graceful-fs-4.2.6"
+      sources."gud-1.0.0"
+      sources."gunzip-maybe-1.4.2"
+      sources."gzip-size-5.1.1"
+      sources."handle-thing-2.0.1"
+      sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
+      (sources."has-binary2-1.0.3" // {
+        dependencies = [
+          sources."isarray-2.0.1"
+        ];
+      })
+      sources."has-cors-1.1.0"
+      sources."has-flag-3.0.0"
+      sources."has-symbol-support-x-1.4.2"
+      sources."has-symbols-1.0.2"
+      sources."has-to-string-tag-x-1.4.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."hash.js-1.1.7"
+      sources."he-1.2.0"
+      sources."hex-color-regex-1.1.0"
+      sources."hmac-drbg-1.0.1"
+      sources."hoist-non-react-statics-3.3.2"
+      sources."hoopy-0.1.4"
+      sources."hpack.js-2.1.6"
+      sources."hsl-regex-1.0.0"
+      sources."hsla-regex-1.0.0"
+      sources."html-entities-1.4.0"
+      (sources."html-minifier-3.5.21" // {
+        dependencies = [
+          sources."commander-2.17.1"
+        ];
+      })
+      (sources."html-webpack-plugin-3.2.0" // {
+        dependencies = [
+          sources."big.js-3.2.0"
+          sources."emojis-list-2.1.0"
+          sources."json5-0.5.1"
+          sources."loader-utils-0.2.17"
+        ];
+      })
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."http-cache-semantics-3.8.1"
+      sources."http-deceiver-1.2.7"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-parser-js-0.5.3"
+      sources."http-proxy-1.18.1"
+      sources."http-proxy-middleware-0.19.1"
+      sources."https-browserify-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."icss-replace-symbols-1.1.0"
+      sources."icss-utils-4.1.1"
+      sources."ieee754-1.2.1"
+      sources."iferr-0.1.5"
+      sources."import-cwd-2.1.0"
+      (sources."import-fresh-3.3.0" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
+      (sources."import-from-2.1.0" // {
+        dependencies = [
+          sources."resolve-from-3.0.0"
+        ];
+      })
+      sources."import-local-2.0.0"
+      sources."imurmurhash-0.1.4"
+      sources."indexes-of-1.0.1"
+      sources."indexof-0.0.1"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      sources."inquirer-6.5.2"
+      (sources."inquirer-autocomplete-prompt-1.3.0" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.2"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."figures-3.2.0"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."internal-ip-4.3.0"
+      sources."intersection-observer-0.7.0"
+      sources."into-stream-3.1.0"
+      sources."invariant-2.2.4"
+      sources."ip-1.1.5"
+      sources."ip-regex-2.1.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-absolute-url-2.1.0"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-arguments-1.1.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-bigint-1.0.1"
+      sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
+      sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.3"
+      sources."is-color-stop-1.1.0"
+      sources."is-core-module-2.3.0"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
+      sources."is-deflate-1.0.0"
+      sources."is-descriptor-1.0.2"
+      sources."is-directory-0.3.1"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-gzip-1.0.0"
+      sources."is-natural-number-4.0.1"
+      sources."is-negative-zero-2.0.1"
+      sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
+      sources."is-obj-2.0.0"
+      sources."is-object-1.0.2"
+      sources."is-path-cwd-2.2.0"
+      sources."is-path-in-cwd-2.1.0"
+      sources."is-path-inside-2.1.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.2"
+      sources."is-resolvable-1.1.0"
+      sources."is-retry-allowed-1.2.0"
+      sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."isurl-1.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json3-3.3.3"
+      sources."json5-2.2.0"
+      sources."jsonfile-4.0.0"
+      sources."keyv-3.0.0"
+      sources."killable-1.0.1"
+      sources."kind-of-6.0.3"
+      sources."last-call-webpack-plugin-3.0.0"
+      sources."lines-and-columns-1.1.6"
+      sources."loader-runner-2.4.0"
+      (sources."loader-utils-1.4.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.debounce-4.0.8"
+      sources."lodash.memoize-4.1.2"
+      sources."lodash.uniq-4.5.0"
+      sources."loglevel-1.7.1"
+      sources."loose-envify-1.4.0"
+      sources."lower-case-1.1.4"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-4.1.5"
+      sources."make-dir-2.1.0"
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      sources."match-sorter-3.1.1"
+      sources."md5.js-1.3.5"
+      sources."mdn-data-2.0.4"
+      sources."media-typer-0.3.0"
+      sources."memory-fs-0.4.1"
+      sources."merge-descriptors-1.0.1"
+      sources."methods-1.1.2"
+      (sources."micromatch-3.1.10" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."mime-2.5.2"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."mississippi-3.0.0" // {
+        dependencies = [
+          sources."pump-3.0.0"
+        ];
+      })
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-0.5.5"
+      sources."mkdirp-classic-0.5.3"
+      sources."move-concurrently-1.0.1"
+      sources."ms-2.1.2"
+      sources."multicast-dns-6.2.3"
+      sources."multicast-dns-service-types-1.1.0"
+      sources."mutation-observer-1.0.3"
+      sources."mute-stream-0.0.7"
+      sources."nan-2.14.2"
+      sources."nanomatch-1.2.13"
+      sources."negotiator-0.6.2"
+      sources."neo-async-2.6.2"
+      sources."nice-try-1.0.5"
+      sources."no-case-2.3.2"
+      sources."node-forge-0.10.0"
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."browserify-zlib-0.2.0"
+          sources."buffer-4.9.2"
+          sources."pako-1.0.11"
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."node-modules-regexp-1.0.0"
+      sources."node-releases-1.1.71"
+      sources."normalize-path-3.0.0"
+      sources."normalize-range-0.1.2"
+      (sources."normalize-url-2.0.1" // {
+        dependencies = [
+          sources."sort-keys-2.0.0"
+        ];
+      })
+      (sources."npm-conf-1.1.3" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."npm-run-path-2.0.2"
+      sources."nth-check-1.0.2"
+      sources."num2fraction-1.2.2"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.10.2"
+      sources."object-is-1.1.5"
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.2"
+      sources."object.getownpropertydescriptors-2.1.2"
+      sources."object.pick-1.3.0"
+      sources."object.values-1.1.3"
+      sources."obuf-1.1.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      sources."opener-1.5.2"
+      sources."opn-5.5.0"
+      sources."optimize-css-assets-webpack-plugin-5.0.4"
+      sources."original-1.0.2"
+      sources."os-browserify-0.3.0"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-0.4.1"
+      sources."p-event-2.3.1"
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-1.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-map-2.1.0"
+      sources."p-retry-3.0.1"
+      sources."p-timeout-2.0.1"
+      sources."p-try-2.2.0"
+      sources."pako-0.2.9"
+      sources."parallel-transform-1.2.0"
+      sources."param-case-2.1.1"
+      sources."parent-module-1.0.1"
+      sources."parse-asn1-5.1.6"
+      sources."parse-json-5.2.0"
+      sources."parseqs-0.0.6"
+      sources."parseuri-0.0.6"
+      sources."parseurl-1.3.3"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-is-inside-1.0.2"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.6"
+      sources."path-to-regexp-2.2.1"
+      sources."path-type-4.0.0"
+      sources."pbkdf2-3.1.2"
+      sources."peek-stream-1.1.3"
+      sources."pend-1.2.0"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.3"
+      sources."pify-4.0.1"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."pirates-4.0.1"
+      sources."pkg-dir-3.0.0"
+      (sources."portfinder-1.0.28" // {
+        dependencies = [
+          sources."debug-3.2.7"
+        ];
+      })
+      sources."posix-character-classes-0.1.1"
+      (sources."postcss-7.0.35" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."postcss-calc-7.0.5"
+      (sources."postcss-colormin-4.0.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-convert-values-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-discard-comments-4.0.2"
+      sources."postcss-discard-duplicates-4.0.2"
+      sources."postcss-discard-empty-4.0.1"
+      sources."postcss-discard-overridden-4.0.1"
+      sources."postcss-flexbugs-fixes-4.2.1"
+      (sources."postcss-load-config-2.1.2" // {
+        dependencies = [
+          sources."cosmiconfig-5.2.1"
+          sources."import-fresh-2.0.0"
+          sources."parse-json-4.0.0"
+          sources."resolve-from-3.0.0"
+        ];
+      })
+      (sources."postcss-loader-3.0.0" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      (sources."postcss-merge-longhand-4.0.11" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-merge-rules-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      (sources."postcss-minify-font-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-gradients-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-params-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-selectors-4.0.2" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      sources."postcss-modules-extract-imports-2.0.0"
+      (sources."postcss-modules-local-by-default-2.0.6" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-modules-scope-2.2.0"
+      sources."postcss-modules-values-2.0.0"
+      sources."postcss-normalize-charset-4.0.1"
+      (sources."postcss-normalize-display-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-positions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-repeat-style-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-string-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-timing-functions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-unicode-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-url-4.0.1" // {
+        dependencies = [
+          sources."normalize-url-3.3.0"
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-whitespace-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-ordered-values-4.1.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-reduce-initial-4.0.3"
+      (sources."postcss-reduce-transforms-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-selector-parser-6.0.5"
+      (sources."postcss-svgo-4.0.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-unique-selectors-4.0.1"
+      sources."postcss-value-parser-4.1.0"
+      sources."prepend-http-2.0.0"
+      sources."pretty-error-2.1.2"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      sources."promise-inflight-1.0.1"
+      sources."prop-types-15.7.2"
+      sources."proto-list-1.2.4"
+      sources."proxy-addr-2.0.6"
+      sources."prr-1.0.1"
+      sources."pseudomap-1.0.2"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."pump-2.0.1"
+      sources."pumpify-1.5.1"
+      sources."punycode-2.1.1"
+      sources."q-1.5.1"
+      sources."qs-6.7.0"
+      sources."query-string-5.1.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."querystringify-2.2.0"
+      sources."raf-3.4.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."range-parser-1.2.0"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+        ];
+      })
+      sources."raw-loader-3.1.0"
+      sources."rc-1.2.8"
+      sources."react-fast-compare-3.2.0"
+      sources."react-helmet-6.1.0"
+      sources."react-is-16.13.1"
+      sources."react-lifecycles-compat-3.0.4"
+      sources."react-side-effect-2.1.1"
+      sources."react-universal-component-4.5.0"
+      sources."readable-stream-2.3.7"
+      sources."readdirp-3.5.0"
+      sources."regenerate-1.4.2"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.8"
+      sources."regenerator-transform-0.14.5"
+      sources."regex-not-1.0.2"
+      sources."regexp.prototype.flags-1.3.1"
+      sources."regexpu-core-4.7.1"
+      sources."registry-auth-token-3.3.2"
+      sources."registry-url-3.1.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.9" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."relateurl-0.2.7"
+      sources."remove-trailing-separator-1.1.0"
+      (sources."renderkid-2.0.5" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."repeat-element-1.1.4"
+      sources."repeat-string-1.6.1"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."requires-port-1.0.0"
+      sources."resolve-1.20.0"
+      (sources."resolve-cwd-2.0.0" // {
+        dependencies = [
+          sources."resolve-from-3.0.0"
+        ];
+      })
+      sources."resolve-from-5.0.0"
+      sources."resolve-url-0.2.1"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-2.0.0"
+      sources."ret-0.1.15"
+      sources."retry-0.12.0"
+      sources."rgb-regex-1.0.1"
+      sources."rgba-regex-1.0.0"
+      sources."rimraf-2.7.1"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."run-queue-1.0.3"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."schema-utils-2.7.1"
+      (sources."seek-bzip-1.0.6" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
+      sources."select-hose-2.0.0"
+      sources."selfsigned-1.10.8"
+      sources."semver-5.7.1"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."mime-1.6.0"
+          sources."ms-2.1.1"
+          sources."range-parser-1.2.1"
+        ];
+      })
+      sources."serialize-javascript-4.0.0"
+      (sources."serve-11.3.2" // {
+        dependencies = [
+          sources."ajv-6.5.3"
+          sources."chalk-2.4.1"
+          sources."fast-deep-equal-2.0.1"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."serve-handler-6.1.3" // {
+        dependencies = [
+          sources."content-disposition-0.5.2"
+          sources."mime-db-1.33.0"
+          sources."mime-types-2.1.18"
+        ];
+      })
+      (sources."serve-index-1.9.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."http-errors-1.6.3"
+          sources."inherits-2.0.3"
+          sources."ms-2.0.0"
+          sources."setprototypeof-1.1.0"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.1"
+      sources."sha.js-2.4.11"
+      sources."shallow-clone-3.0.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."shorthash-0.0.2"
+      sources."signal-exit-3.0.3"
+      (sources."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      sources."slash-2.0.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      (sources."socket.io-2.4.1" // {
+        dependencies = [
+          sources."debug-4.1.1"
+        ];
+      })
+      sources."socket.io-adapter-1.1.2"
+      (sources."socket.io-client-2.4.0" // {
+        dependencies = [
+          sources."component-emitter-1.3.0"
+          sources."debug-3.1.0"
+          sources."isarray-2.0.1"
+          sources."ms-2.0.0"
+          sources."socket.io-parser-3.3.2"
+        ];
+      })
+      (sources."socket.io-parser-3.4.1" // {
+        dependencies = [
+          sources."debug-4.1.1"
+          sources."isarray-2.0.1"
+        ];
+      })
+      sources."sockjs-0.3.21"
+      (sources."sockjs-client-1.5.1" // {
+        dependencies = [
+          sources."debug-3.2.7"
+        ];
+      })
+      sources."sort-keys-1.1.2"
+      sources."sort-keys-length-1.0.1"
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.5.7"
+      sources."source-map-resolve-0.5.3"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-url-0.4.1"
+      sources."spdy-4.0.2"
+      (sources."spdy-transport-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."ssri-6.0.2"
+      sources."stable-0.1.8"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."statuses-1.5.0"
+      sources."stream-browserify-2.0.2"
+      sources."stream-each-1.2.3"
+      sources."stream-http-2.8.3"
+      sources."stream-shift-1.0.1"
+      sources."strict-uri-encode-1.1.0"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      sources."string_decoder-1.1.1"
+      (sources."strip-ansi-5.2.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+        ];
+      })
+      sources."strip-dirs-2.1.0"
+      sources."strip-eof-1.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."strip-outer-1.0.1"
+      (sources."style-loader-0.23.1" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      (sources."stylehacks-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      sources."supports-color-6.1.0"
+      sources."svgo-1.3.2"
+      sources."swimmer-1.4.0"
+      sources."tapable-1.1.3"
+      (sources."tar-fs-2.1.1" // {
+        dependencies = [
+          sources."bl-4.1.0"
+          sources."pump-3.0.0"
+          sources."readable-stream-3.6.0"
+          sources."tar-stream-2.2.0"
+        ];
+      })
+      sources."tar-stream-1.6.2"
+      sources."term-size-1.2.0"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-1.4.5" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."thunky-1.1.0"
+      sources."timed-out-4.0.1"
+      sources."timers-browserify-2.0.12"
+      sources."timsort-0.3.0"
+      sources."tmp-0.0.33"
+      sources."to-array-0.1.4"
+      sources."to-arraybuffer-1.0.1"
+      sources."to-buffer-1.1.1"
+      sources."to-fast-properties-2.0.0"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."toposort-1.0.7"
+      sources."trim-repeated-1.0.0"
+      sources."tryer-1.0.1"
+      sources."tslib-1.14.1"
+      sources."tty-browserify-0.0.0"
+      sources."tunnel-agent-0.6.0"
+      sources."type-fest-0.21.3"
+      sources."type-is-1.6.18"
+      sources."typedarray-0.0.6"
+      (sources."uglify-js-3.4.10" // {
+        dependencies = [
+          sources."commander-2.19.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."unbox-primitive-1.0.1"
+      sources."unbzip2-stream-1.4.3"
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
+      sources."union-value-1.0.1"
+      sources."uniq-1.0.1"
+      sources."uniqs-2.0.0"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      sources."unquote-1.1.1"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."update-check-1.5.2"
+      sources."upper-case-1.1.3"
+      sources."uri-js-4.4.1"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-loader-2.3.0"
+      sources."url-parse-1.5.1"
+      sources."url-parse-lax-3.0.0"
+      sources."url-to-options-1.0.1"
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."util.promisify-1.0.0"
+      sources."utila-0.4.0"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."vary-1.1.2"
+      sources."vendors-1.0.4"
+      sources."vm-browserify-1.1.2"
+      sources."warning-4.0.3"
+      sources."watchpack-1.7.5"
+      (sources."watchpack-chokidar2-2.0.1" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-binary-path-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."wbuf-1.7.3"
+      (sources."webpack-4.46.0" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      (sources."webpack-bundle-analyzer-3.9.0" // {
+        dependencies = [
+          sources."acorn-7.4.1"
+          sources."commander-2.20.3"
+          sources."ws-6.2.1"
+        ];
+      })
+      (sources."webpack-dev-middleware-3.7.3" // {
+        dependencies = [
+          sources."range-parser-1.2.1"
+        ];
+      })
+      (sources."webpack-dev-server-3.11.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          (sources."compression-1.7.4" // {
+            dependencies = [
+              sources."debug-2.6.9"
+            ];
+          })
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-absolute-url-3.0.3"
+          sources."is-binary-path-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."ms-2.0.0"
+          sources."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+          sources."schema-utils-1.0.0"
+          sources."semver-6.3.0"
+          sources."strip-ansi-3.0.1"
+          sources."to-regex-range-2.1.1"
+          sources."ws-6.2.1"
+        ];
+      })
+      sources."webpack-flush-chunks-2.0.3"
+      sources."webpack-log-2.0.0"
+      sources."webpack-node-externals-1.7.2"
+      (sources."webpack-sources-1.4.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."websocket-driver-0.7.4"
+      sources."websocket-extensions-0.1.4"
+      sources."which-1.3.1"
+      sources."which-boxed-primitive-1.0.2"
+      sources."which-module-2.0.0"
+      sources."widest-line-2.0.1"
+      sources."worker-farm-1.7.0"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."ws-7.4.5"
+      sources."xmlhttprequest-ssl-1.5.5"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.3"
+      sources."yallist-2.1.2"
+      sources."yaml-1.10.2"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      sources."yauzl-2.10.0"
+      sources."yeast-0.1.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A progressive static site generator for React";
+      homepage = "https://github.com/react-static/react-static#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   react-tools = nodeEnv.buildNodePackage {
     name = "react-tools";
     packageName = "react-tools";
@@ -100517,7 +103270,7 @@ in
     dependencies = [
       sources."@mozilla/readability-0.4.1"
       sources."abab-2.0.5"
-      sources."acorn-8.1.1"
+      sources."acorn-8.2.1"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -100639,7 +103392,7 @@ in
       sources."whatwg-url-8.5.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -100659,14 +103412,14 @@ in
   redoc-cli = nodeEnv.buildNodePackage {
     name = "redoc-cli";
     packageName = "redoc-cli";
-    version = "0.11.3";
+    version = "0.11.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.11.3.tgz";
-      sha512 = "PqC0gPEh8iYxIrpZN1bSBma+pTjCOOChyxCH9/Zwm4YewIk4wASG2mjZgsvN4kUqTNHzS38twl3fG1P+13ZwYQ==";
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.11.4.tgz";
+      sha512 = "Ke/Lvy9fwLuZGpeILZfJOyBtwGhgOFLQdptAf0LdGt9l44DfwGVw7ppaqXoJEr1rXyu2eO0UtH2UnG5/CCigVw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
-      (sources."@babel/generator-7.13.9" // {
+      (sources."@babel/generator-7.13.16" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -100678,11 +103431,11 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.15"
-      sources."@babel/runtime-7.13.10"
+      sources."@babel/parser-7.13.16"
+      sources."@babel/runtime-7.13.17"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
       sources."@emotion/stylis-0.8.5"
@@ -100691,11 +103444,11 @@ in
       sources."@redocly/ajv-6.12.4"
       (sources."@redocly/openapi-core-1.0.0-beta.44" // {
         dependencies = [
-          sources."@types/node-14.14.37"
+          sources."@types/node-14.14.41"
         ];
       })
       sources."@redocly/react-dropdown-aria-2.0.11"
-      sources."@types/node-13.13.48"
+      sources."@types/node-13.13.50"
       (sources."ajv-5.5.2" // {
         dependencies = [
           sources."fast-deep-equal-1.1.0"
@@ -100762,7 +103515,7 @@ in
       sources."concat-map-0.0.1"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."core-js-3.10.1"
+      sources."core-js-3.11.0"
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
@@ -100865,7 +103618,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mobx-6.2.0"
+      sources."mobx-6.3.0"
       sources."mobx-react-7.1.0"
       sources."mobx-react-lite-3.2.0"
       sources."ms-2.1.2"
@@ -101020,6 +103773,146 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  remod-cli = nodeEnv.buildNodePackage {
+    name = "remod-cli";
+    packageName = "remod-cli";
+    version = "1.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/remod-cli/-/remod-cli-1.0.1.tgz";
+      sha512 = "QxvCtwgDBTeBC9V+niO9WPrnNKVEIa0osvdKhw2JkhOjFY0PK/vcFL5jrj7di6GurLIzdweXJgTWnQz2VljdQQ==";
+    };
+    dependencies = [
+      sources."@types/yoga-layout-1.9.2"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."array-find-index-1.0.2"
+      sources."arrify-2.0.1"
+      sources."astral-regex-2.0.0"
+      sources."auto-bind-4.0.0"
+      sources."camelcase-4.1.0"
+      sources."camelcase-keys-4.2.0"
+      sources."chalk-3.0.0"
+      sources."ci-info-2.0.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-truncate-2.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."currently-unhandled-0.4.1"
+      sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."error-ex-1.3.2"
+      sources."escape-string-regexp-1.0.5"
+      sources."figures-3.2.0"
+      sources."find-up-2.1.0"
+      sources."function-bind-1.1.1"
+      sources."graceful-fs-4.2.6"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."hosted-git-info-2.8.9"
+      sources."indent-string-3.2.0"
+      sources."ink-2.7.1"
+      sources."is-arrayish-0.2.1"
+      sources."is-ci-2.0.0"
+      sources."is-core-module-2.3.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-plain-obj-1.1.0"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."load-json-file-4.0.0"
+      sources."locate-path-2.0.0"
+      sources."lodash.throttle-4.1.1"
+      (sources."log-update-3.4.0" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+          sources."ansi-regex-4.1.0"
+          sources."ansi-styles-3.2.1"
+          sources."cli-cursor-2.1.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+          sources."restore-cursor-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."wrap-ansi-5.1.0"
+        ];
+      })
+      sources."loose-envify-1.4.0"
+      sources."loud-rejection-1.6.0"
+      sources."map-obj-2.0.0"
+      sources."meow-5.0.0"
+      sources."mimic-fn-2.1.0"
+      (sources."minimist-options-3.0.2" // {
+        dependencies = [
+          sources."arrify-1.0.1"
+        ];
+      })
+      sources."normalize-package-data-2.5.0"
+      sources."object-assign-4.1.1"
+      sources."onetime-5.1.2"
+      sources."p-limit-1.3.0"
+      sources."p-locate-2.0.0"
+      sources."p-try-1.0.0"
+      sources."parse-json-4.0.0"
+      sources."path-exists-3.0.0"
+      sources."path-parse-1.0.6"
+      sources."path-type-3.0.0"
+      sources."pify-3.0.0"
+      sources."prop-types-15.7.2"
+      sources."quick-lru-1.1.0"
+      sources."react-16.14.0"
+      sources."react-is-16.13.1"
+      sources."react-reconciler-0.24.0"
+      sources."read-pkg-3.0.0"
+      sources."read-pkg-up-3.0.0"
+      sources."redent-2.0.0"
+      sources."resolve-1.20.0"
+      sources."restore-cursor-3.1.0"
+      sources."scheduler-0.18.0"
+      sources."semver-5.7.1"
+      sources."signal-exit-3.0.3"
+      sources."slice-ansi-3.0.0"
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.7"
+      (sources."string-length-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."astral-regex-1.0.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-indent-2.0.0"
+      sources."supports-color-7.2.0"
+      sources."trim-newlines-2.0.0"
+      sources."type-fest-0.21.3"
+      sources."validate-npm-package-license-3.0.4"
+      sources."widest-line-3.1.0"
+      sources."wrap-ansi-6.2.0"
+      sources."yargs-parser-10.1.0"
+      sources."yoga-layout-prebuilt-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "chmod for human beings!";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
@@ -101163,11 +104056,10 @@ in
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
       sources."builtin-modules-3.2.0"
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-6.2.0"
       sources."chainsaw-0.1.0"
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -101177,7 +104069,7 @@ in
         ];
       })
       sources."cheerio-1.0.0-rc.6"
-      sources."cheerio-select-1.3.0"
+      sources."cheerio-select-1.4.0"
       sources."chokidar-3.5.1"
       sources."cliui-7.0.4"
       sources."color-convert-1.9.3"
@@ -101189,7 +104081,7 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.0.0"
+      sources."css-select-4.1.2"
       sources."css-what-5.0.0"
       sources."debug-4.3.2"
       sources."decamelize-4.0.0"
@@ -101202,8 +104094,8 @@ in
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.3.1"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.1.0"
-      sources."domutils-2.5.2"
+      sources."domhandler-4.2.0"
+      sources."domutils-2.6.0"
       sources."duplexer2-0.1.4"
       (sources."editorconfig-0.15.3" // {
         dependencies = [
@@ -101217,7 +104109,7 @@ in
       sources."entities-2.2.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.24.0" // {
+      (sources."eslint-7.25.0" // {
         dependencies = [
           sources."ignore-4.0.6"
         ];
@@ -101271,7 +104163,6 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.8.0" // {
@@ -101284,7 +104175,6 @@ in
       sources."growl-1.10.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."he-1.2.0"
       sources."htmlparser2-6.1.0"
       sources."http-proxy-agent-4.0.1"
@@ -101295,17 +104185,14 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-reference-1.2.1"
-      sources."is-string-1.0.5"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -101432,7 +104319,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
           sources."json-schema-traverse-1.0.0"
@@ -101643,10 +104530,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.32.8";
+    version = "1.32.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz";
-      sha512 = "Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.32.11.tgz";
+      sha512 = "O9tRcob/fegUVSIV1ihLLZcftIOh0AF1VpKgusUfLqnb2jQ0GLDwI5ivv1FYWivGv8eZ/AwntTyTzjcHu0c/qw==";
     };
     dependencies = [
       sources."anymatch-3.1.2"
@@ -101806,10 +104693,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.35.0";
+    version = "2.38.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.35.0.tgz";
-      sha512 = "qtPKwZ3bSO/PB9sshKlTO0lgSvk8m0B21XQ3myxr27vVgyF5AL/NKnKDYkEOutFMAWXp5eJS/3OUqaO5uXlq+A==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.38.0.tgz";
+      sha512 = "M/PAO3e3XoAdWvAd02iq+K4KkWmdxx8hLMCPg4tne0XZaLF5pTOvBWTdACgkuuikQDdo+Px8dl4idsIciEGezQ==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -101841,7 +104728,7 @@ in
         ];
       })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-3.8.2" // {
+      (sources."@serverless/components-3.9.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."js-yaml-3.14.1"
@@ -101870,13 +104757,13 @@ in
         ];
       })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-4.0.1" // {
+      (sources."@serverless/utils-4.1.0" // {
         dependencies = [
           sources."jwt-decode-3.1.2"
           sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."@serverless/utils-china-1.0.14"
+      sources."@serverless/utils-china-1.0.15"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tencent-sdk/capi-1.1.8"
@@ -101886,7 +104773,7 @@ in
       sources."@types/keyv-3.1.1"
       sources."@types/lodash-4.14.168"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/responselike-1.0.0"
@@ -101947,7 +104834,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.885.0" // {
+      (sources."aws-sdk-2.892.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -102016,7 +104903,7 @@ in
           sources."traverse-0.3.9"
         ];
       })
-      (sources."chalk-4.1.0" // {
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -102182,7 +105069,7 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-3.0.0"
-      sources."filesize-6.2.1"
+      sources."filesize-6.3.0"
       sources."fill-range-7.0.1"
       sources."find-requires-1.0.0"
       sources."flat-5.0.2"
@@ -102223,7 +105110,7 @@ in
       sources."globby-11.0.3"
       (sources."got-11.8.2" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
+          sources."@sindresorhus/is-4.0.1"
           sources."@szmarczak/http-timer-4.0.5"
           sources."cacheable-request-7.0.1"
           sources."decompress-response-6.0.0"
@@ -102300,7 +105187,7 @@ in
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
       sources."jmespath-0.15.0"
-      (sources."js-yaml-4.0.0" // {
+      (sources."js-yaml-4.1.0" // {
         dependencies = [
           sources."argparse-2.0.1"
         ];
@@ -102396,7 +105283,7 @@ in
       sources."nested-error-stacks-2.1.0"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
-      (sources."node-abi-2.21.0" // {
+      (sources."node-abi-2.26.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -102422,7 +105309,6 @@ in
       sources."p-event-2.3.1"
       sources."p-finally-1.0.0"
       sources."p-is-promise-1.1.0"
-      sources."p-limit-3.1.0"
       sources."p-timeout-2.0.1"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -102455,7 +105341,7 @@ in
       sources."promise-queue-2.2.5"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.48"
+          sources."@types/node-13.13.50"
           sources."long-4.0.0"
         ];
       })
@@ -102484,7 +105370,7 @@ in
       })
       sources."request-promise-core-1.1.4"
       sources."request-promise-native-1.0.9"
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."retry-0.10.1"
@@ -102506,7 +105392,7 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-git-2.37.0" // {
+      (sources."simple-git-2.38.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -102666,7 +105552,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmlhttprequest-ssl-1.5.5"
@@ -102676,7 +105562,6 @@ in
       sources."yamljs-0.3.0"
       sources."yauzl-2.10.0"
       sources."yeast-0.1.2"
-      sources."yocto-queue-0.1.0"
       sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -103316,10 +106201,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.535.0";
+    version = "1.563.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.535.0.tgz";
-      sha512 = "NQpGzXb66WvMGkZ2vye58LST1lJFN+diEQ76dlTdh/e2KgFb/qmevo/VgDqAsMsFW6h0rE8V6tFqVBDb8mfEBw==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.563.0.tgz";
+      sha512 = "o0Cb8JR70NzR4OLDKJDx04zj9Cq4gKhFLvQxU1MxZv0Hko7K6FmMDxdgyljd3nU5wl1QyVNdnug1H4XaHfhhvA==";
     };
     dependencies = [
       sources."@arcanis/slice-ansi-1.0.2"
@@ -103331,8 +106216,9 @@ in
       sources."@open-policy-agent/opa-wasm-1.2.0"
       sources."@sindresorhus/is-2.1.1"
       sources."@snyk/cli-interface-2.11.0"
+      sources."@snyk/cloud-config-parser-1.9.2"
       sources."@snyk/cocoapods-lockfile-parser-3.6.2"
-      (sources."@snyk/code-client-3.4.0" // {
+      (sources."@snyk/code-client-3.4.1" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
@@ -103345,7 +106231,7 @@ in
       })
       sources."@snyk/docker-registry-v2-client-1.13.9"
       sources."@snyk/fast-glob-3.2.6-patch"
-      (sources."@snyk/fix-1.526.0" // {
+      (sources."@snyk/fix-1.554.0" // {
         dependencies = [
           sources."chalk-4.1.0"
           sources."strip-ansi-6.0.0"
@@ -103357,7 +106243,7 @@ in
       (sources."@snyk/inquirer-7.3.3-patch" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -103367,7 +106253,7 @@ in
           sources."tmp-0.2.1"
         ];
       })
-      (sources."@snyk/mix-parser-1.3.0" // {
+      (sources."@snyk/mix-parser-1.3.2" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
@@ -103383,7 +106269,7 @@ in
           sources."tmp-0.1.0"
         ];
       })
-      (sources."@snyk/snyk-hex-plugin-1.1.1" // {
+      (sources."@snyk/snyk-hex-plugin-1.1.4" // {
         dependencies = [
           sources."tslib-2.2.0"
         ];
@@ -103403,7 +106289,7 @@ in
       sources."@types/lodash.omit-4.5.6"
       sources."@types/lodash.union-4.6.6"
       sources."@types/micromatch-4.0.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/responselike-1.0.0"
       sources."@types/sarif-2.1.3"
       sources."@types/semver-7.3.4"
@@ -103411,7 +106297,7 @@ in
       sources."@types/uuid-8.3.0"
       (sources."@yarnpkg/core-2.4.0" // {
         dependencies = [
-          sources."@sindresorhus/is-4.0.0"
+          sources."@sindresorhus/is-4.0.1"
           sources."chalk-3.0.0"
           sources."cross-spawn-7.0.3"
           sources."got-11.8.2"
@@ -103430,7 +106316,7 @@ in
       sources."@yarnpkg/parsers-2.3.0"
       (sources."@yarnpkg/pnp-2.3.2" // {
         dependencies = [
-          sources."@types/node-13.13.48"
+          sources."@types/node-13.13.50"
         ];
       })
       (sources."@yarnpkg/shell-2.4.1" // {
@@ -103518,7 +106404,7 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
-      sources."core-js-3.10.1"
+      sources."core-js-3.11.0"
       sources."core-util-is-1.0.2"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
@@ -103701,7 +106587,7 @@ in
       sources."lodash.values-4.3.0"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
         ];
       })
       sources."lowercase-keys-2.0.0"
@@ -103741,7 +106627,7 @@ in
       sources."open-7.4.2"
       (sources."ora-5.3.0" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -103805,7 +106691,7 @@ in
       sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
       sources."reusify-1.0.4"
@@ -103833,7 +106719,7 @@ in
       sources."snyk-config-4.0.0"
       (sources."snyk-cpp-plugin-2.2.1" // {
         dependencies = [
-          sources."chalk-4.1.0"
+          sources."chalk-4.1.1"
           sources."tslib-2.2.0"
         ];
       })
@@ -103854,7 +106740,7 @@ in
           sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.14.0" // {
+      (sources."snyk-gradle-plugin-3.14.2" // {
         dependencies = [
           sources."chalk-3.0.0"
           sources."rimraf-3.0.2"
@@ -103885,7 +106771,7 @@ in
           sources."uuid-8.3.2"
         ];
       })
-      (sources."snyk-nuget-plugin-1.21.0" // {
+      (sources."snyk-nuget-plugin-1.21.1" // {
         dependencies = [
           sources."jszip-3.4.0"
           sources."pako-1.0.11"
@@ -104028,6 +106914,7 @@ in
       sources."xtend-4.0.2"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
+      sources."yaml-js-0.3.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104051,7 +106938,7 @@ in
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
@@ -104069,7 +106956,7 @@ in
       sources."socket.io-adapter-2.2.0"
       sources."socket.io-parser-4.0.4"
       sources."vary-1.1.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104148,7 +107035,7 @@ in
       sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
@@ -104299,8 +107186,7 @@ in
       sources."async-write-2.1.0"
       sources."atob-2.1.2"
       sources."atomic-file-1.1.5"
-      sources."atomically-1.7.0"
-      sources."atomically-universal-0.1.1"
+      sources."atomic-file-rw-0.2.1"
       sources."attach-ware-1.1.1"
       sources."available-typed-arrays-1.0.2"
       sources."bail-1.0.5"
@@ -104318,7 +107204,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.5.0"
+      sources."bipf-1.5.1"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -104427,7 +107313,7 @@ in
       sources."errno-0.1.8"
       (sources."es-abstract-1.18.0" // {
         dependencies = [
-          sources."object-inspect-1.9.0"
+          sources."object-inspect-1.10.2"
         ];
       })
       (sources."es-get-iterator-1.1.2" // {
@@ -104539,6 +107425,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
+      sources."hash-wasm-4.6.0"
       sources."hashlru-2.3.0"
       sources."he-0.5.0"
       sources."heap-0.2.6"
@@ -104614,7 +107501,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      (sources."jitdb-3.0.2" // {
+      (sources."jitdb-3.1.3" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."push-stream-11.0.0"
@@ -104689,7 +107576,7 @@ in
           sources."arrify-2.0.1"
         ];
       })
-      sources."multiserver-3.7.0"
+      sources."multiserver-3.7.1"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."mutexify-1.3.1"
@@ -104771,7 +107658,7 @@ in
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."packet-stream-2.0.5"
+      sources."packet-stream-2.0.6"
       sources."packet-stream-codec-1.1.3"
       sources."parse-entities-1.2.2"
       sources."parse-glob-3.0.4"
@@ -104980,7 +107867,7 @@ in
       sources."safe-regex-1.1.0"
       sources."sanitize-filename-1.6.3"
       sources."secret-handshake-1.1.20"
-      sources."secret-stack-6.3.2"
+      sources."secret-stack-6.4.0"
       sources."semver-5.7.1"
       sources."separator-escape-0.0.1"
       (sources."set-value-2.0.1" // {
@@ -104994,7 +107881,7 @@ in
       sources."shellsubstitute-1.2.0"
       (sources."side-channel-1.0.4" // {
         dependencies = [
-          sources."object-inspect-1.9.0"
+          sources."object-inspect-1.10.2"
         ];
       })
       sources."signal-exit-3.0.3"
@@ -105026,7 +107913,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.6.0"
+      sources."socks-2.6.1"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -105046,7 +107933,7 @@ in
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.5"
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-2.0.0" // {
+      (sources."ssb-db2-2.1.1" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
           (sources."flumecodec-0.0.1" // {
@@ -105314,7 +108201,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.885.0" // {
+      (sources."aws-sdk-2.892.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -105453,14 +108340,14 @@ in
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.1.1"
-          sources."ws-7.4.4"
+          sources."ws-7.4.5"
         ];
       })
       (sources."engine.io-client-3.5.1" // {
         dependencies = [
           sources."debug-3.1.0"
           sources."ms-2.0.0"
-          sources."ws-7.4.4"
+          sources."ws-7.4.5"
         ];
       })
       sources."engine.io-parser-2.2.1"
@@ -105566,7 +108453,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       (sources."is-expression-3.0.0" // {
         dependencies = [
           sources."acorn-4.0.13"
@@ -105699,7 +108586,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."object-assign-4.1.1"
       sources."object-hash-0.3.0"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -106084,17 +108971,17 @@ in
   stylelint = nodeEnv.buildNodePackage {
     name = "stylelint";
     packageName = "stylelint";
-    version = "13.12.0";
+    version = "13.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.12.0.tgz";
-      sha512 = "P8O1xDy41B7O7iXaSlW+UuFbE5+ZWQDb61ndGDxKIt36fMH50DtlQTbwLpFLf8DikceTAb3r6nPrRv30wBlzXw==";
+      url = "https://registry.npmjs.org/stylelint/-/stylelint-13.13.0.tgz";
+      sha512 = "jvkM1iuH88vAvjdKPwPm6abiMP2/D/1chbfb+4GVONddOOskHuCXc0loyrLdxO1AwwH6jdnjYskkTKHQD7cXwQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.15"
-      sources."@babel/core-7.13.15"
-      sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.13"
+      sources."@babel/core-7.13.16"
+      sources."@babel/generator-7.13.16"
+      sources."@babel/helper-compilation-targets-7.13.16"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
@@ -106106,16 +108993,16 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helpers-7.13.10"
+      sources."@babel/helpers-7.13.17"
       (sources."@babel/highlight-7.13.10" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.15"
+      sources."@babel/parser-7.13.16"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.15"
-      sources."@babel/types-7.13.14"
+      sources."@babel/traverse-7.13.17"
+      sources."@babel/types-7.13.17"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -106134,16 +109021,19 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."balanced-match-2.0.0"
+      (sources."brace-expansion-1.1.11" // {
+        dependencies = [
+          sources."balanced-match-1.0.2"
+        ];
+      })
       sources."braces-3.0.2"
-      sources."browserslist-4.16.4"
-      sources."call-bind-1.0.2"
+      sources."browserslist-4.16.5"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001208"
-      (sources."chalk-4.1.0" // {
+      sources."caniuse-lite-1.0.30001214"
+      (sources."chalk-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -106180,7 +109070,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.713"
+      sources."electron-to-chromium-1.3.720"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -106200,7 +109090,6 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
@@ -106213,7 +109102,6 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -106226,26 +109114,22 @@ in
       sources."import-lazy-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-decimal-1.0.4"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -106322,7 +109206,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.4"
+      sources."postcss-selector-parser-6.0.5"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.1.0"
       sources."punycode-2.1.1"
@@ -106382,7 +109266,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.9"
+      sources."table-6.5.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -106390,7 +109274,6 @@ in
       sources."type-fest-0.18.1"
       sources."typedarray-to-buffer-3.1.5"
       sources."unified-9.2.1"
-      sources."uniq-1.0.1"
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-stringify-position-2.0.3"
@@ -106421,16 +109304,16 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.13.0";
+    version = "0.13.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.13.0.tgz";
-      sha512 = "ov9SZmsCdfy3GcyvrlulEkYnkCc1EK/Qoety+xLsIZtVLMBitudp0OmHx5AWHk+FF2+78A0PYL2z8PEBX6UPjA==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.13.2.tgz";
+      sha512 = "mOcSqZUM9zJORyl1FbODC4TSvlYgOgQmlEKzDj77D1JyuXfYD+XSnqxJufwa0DqI05y8uKMBKj0AWWeTu1OZjw==";
     };
     dependencies = [
       sources."@emmetio/abbreviation-2.2.2"
       sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/pug-2.0.4"
       sources."@types/sass-1.16.0"
       sources."anymatch-3.1.2"
@@ -106473,7 +109356,7 @@ in
       sources."strip-indent-3.0.0"
       sources."svelte-3.35.0"
       sources."svelte-preprocess-4.6.9"
-      sources."svelte2tsx-0.1.186"
+      sources."svelte2tsx-0.1.188"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.2.0"
       sources."typescript-4.2.4"
@@ -106511,7 +109394,7 @@ in
       sources."@trysound/sax-0.1.1"
       sources."ansi-styles-4.3.0"
       sources."boolbase-1.0.0"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-7.2.0"
@@ -106521,8 +109404,8 @@ in
       sources."csso-4.2.0"
       sources."dom-serializer-1.3.1"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.1.0"
-      sources."domutils-2.5.2"
+      sources."domhandler-4.2.0"
+      sources."domutils-2.6.0"
       sources."entities-2.2.0"
       sources."has-flag-4.0.0"
       sources."mdn-data-2.0.14"
@@ -106924,7 +109807,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
@@ -107300,6 +110183,96 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  teck-programmer = nodeEnv.buildNodePackage {
+    name = "teck-programmer";
+    packageName = "teck-programmer";
+    version = "1.1.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/teck-programmer/-/teck-programmer-1.1.1.tgz";
+      sha1 = "bd2b3b1e3b88ad3c7471bdc8a5244255564b69e1";
+    };
+    dependencies = [
+      sources."ansi-regex-2.1.1"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."base64-js-1.5.1"
+      sources."bindings-1.5.0"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."buffer-5.7.1"
+      sources."chownr-1.1.4"
+      sources."code-point-at-1.1.0"
+      sources."console-control-strings-1.1.0"
+      sources."core-util-is-1.0.2"
+      sources."decompress-response-4.2.1"
+      sources."deep-extend-0.6.0"
+      sources."delegates-1.0.0"
+      sources."detect-libc-1.0.3"
+      sources."end-of-stream-1.4.4"
+      sources."expand-template-2.0.3"
+      sources."file-uri-to-path-1.0.0"
+      sources."fs-constants-1.0.0"
+      sources."gauge-2.7.4"
+      sources."github-from-package-0.0.0"
+      sources."has-unicode-2.0.1"
+      sources."ieee754-1.2.1"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."isarray-1.0.0"
+      sources."mimic-response-2.1.0"
+      sources."minimist-1.2.5"
+      sources."mkdirp-classic-0.5.3"
+      sources."napi-build-utils-1.0.2"
+      sources."node-abi-2.26.0"
+      sources."node-addon-api-3.0.2"
+      sources."noop-logger-0.1.1"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."prebuild-install-5.3.6"
+      sources."process-nextick-args-2.0.1"
+      sources."pump-3.0.0"
+      sources."q-1.5.1"
+      sources."rc-1.2.8"
+      sources."readable-stream-2.3.7"
+      sources."safe-buffer-5.1.2"
+      sources."semver-5.7.1"
+      sources."set-blocking-2.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-3.1.0"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."tunnel-agent-0.6.0"
+      sources."usb-1.7.0"
+      sources."util-deprecate-1.0.2"
+      sources."which-pm-runs-1.0.0"
+      sources."wide-align-1.1.3"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Programmer for TECK keyboards.";
+      homepage = "https://github.com/m-ou-se/teck-programmer";
+      license = "GPL-3.0+";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   tern = nodeEnv.buildNodePackage {
     name = "tern";
     packageName = "tern";
@@ -107435,7 +110408,7 @@ in
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-date-object-1.0.2"
       sources."is-decimal-1.0.4"
       sources."is-file-1.0.0"
@@ -107648,7 +110621,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse5-5.0.3"
       sources."@types/unist-2.0.3"
-      sources."acorn-8.1.1"
+      sources."acorn-8.2.1"
       sources."acorn-jsx-5.3.1"
       sources."alex-9.1.0"
       (sources."ansi-align-3.0.0" // {
@@ -107785,7 +110758,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-decimal-1.0.4"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-2.0.0"
@@ -108146,29 +111119,50 @@ in
   textlint-rule-max-comma = nodeEnv.buildNodePackage {
     name = "textlint-rule-max-comma";
     packageName = "textlint-rule-max-comma";
-    version = "1.0.4";
+    version = "2.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-1.0.4.tgz";
-      sha1 = "f555c97e0d3039ca7da06cfd1afad0e5f5899a37";
+      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-2.0.2.tgz";
+      sha512 = "t4twAgEZWWMhIYH3xURZr/A1EcAUKiC10/N0EU6RG+ZBa9+FB5HDhMdQMS5wHqEI1FopWHTYYv/sC2PGEtvyLg==";
     };
     dependencies = [
+      sources."@textlint/ast-node-types-4.4.2"
+      sources."@types/structured-source-3.0.0"
+      sources."@types/unist-2.0.3"
+      sources."bail-1.0.5"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
-      sources."concat-stream-1.6.2"
-      sources."core-util-is-1.0.2"
-      sources."flatmap-0.0.3"
+      sources."ccount-1.1.0"
+      sources."comma-separated-tokens-1.0.8"
+      sources."concat-stream-2.0.0"
+      sources."extend-3.0.2"
+      sources."hast-util-from-parse5-5.0.3"
+      sources."hast-util-parse-selector-2.2.5"
+      sources."hastscript-5.1.2"
       sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
-      sources."sentence-splitter-2.3.2"
-      sources."string_decoder-1.1.1"
+      sources."is-buffer-2.0.5"
+      sources."is-plain-obj-2.1.0"
+      sources."object_values-0.1.2"
+      sources."parse5-5.1.1"
+      sources."property-information-5.6.0"
+      sources."readable-stream-3.6.0"
+      sources."rehype-parse-6.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."sentence-splitter-3.2.1"
+      sources."space-separated-tokens-1.1.5"
+      sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
+      sources."textlint-util-to-string-3.1.1"
+      sources."trough-1.0.5"
       sources."typedarray-0.0.6"
-      sources."unist-util-filter-0.2.1"
-      sources."unist-util-is-1.0.0"
+      sources."unified-8.4.2"
+      sources."unist-util-filter-2.0.3"
+      sources."unist-util-is-4.1.0"
+      sources."unist-util-stringify-position-2.0.3"
       sources."util-deprecate-1.0.2"
+      sources."vfile-4.2.1"
+      sources."vfile-message-2.0.4"
+      sources."web-namespaces-1.1.4"
+      sources."xtend-4.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -108250,7 +111244,7 @@ in
       sources."is-regex-1.1.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
@@ -108357,7 +111351,7 @@ in
       sources."is-regex-1.1.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
@@ -108434,7 +111428,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -108510,7 +111504,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.10.1"
+      sources."core-js-3.11.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -108688,7 +111682,7 @@ in
       })
       sources."nopt-4.0.3"
       sources."normalize-url-4.5.0"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -108761,7 +111755,7 @@ in
           sources."uuid-3.4.0"
         ];
       })
-      sources."resolve-alpn-1.1.1"
+      sources."resolve-alpn-1.1.2"
       sources."responselike-2.0.0"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
@@ -108849,7 +111843,7 @@ in
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
       sources."yarn-1.22.4"
@@ -108868,10 +111862,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.127.0";
+    version = "0.128.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.127.0.tgz";
-      sha512 = "wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==";
+      url = "https://registry.npmjs.org/three/-/three-0.128.0.tgz";
+      sha512 = "i0ap/E+OaSfzw7bD1TtYnPo3VEplkl70WX5fZqZnfZsE3k3aSFudqrrC9ldFZfYFkn1zwDmBcdGfiIm/hnbyZA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -109404,7 +112398,7 @@ in
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
@@ -109561,7 +112555,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."open-8.0.5"
+      sources."open-8.0.6"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -109659,7 +112653,7 @@ in
       })
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."y18n-5.0.8"
       sources."yallist-2.1.2"
       sources."yargs-16.2.0"
@@ -109721,7 +112715,7 @@ in
       sources."d3-interpolate-2.0.1"
       sources."d3-path-2.0.0"
       sources."d3-quadtree-2.0.0"
-      sources."d3-scale-3.2.4"
+      sources."d3-scale-3.3.0"
       sources."d3-shape-2.1.0"
       sources."d3-time-2.1.1"
       sources."d3-time-format-3.0.0"
@@ -109748,7 +112742,7 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."internmap-1.0.1"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-1.0.0"
       sources."mimic-response-2.1.0"
@@ -109763,7 +112757,7 @@ in
       sources."node-fetch-2.6.1"
       sources."node-pre-gyp-0.15.0"
       sources."nopt-4.0.3"
-      sources."npm-bundled-1.1.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
@@ -109862,10 +112856,10 @@ in
   vega-lite = nodeEnv.buildNodePackage {
     name = "vega-lite";
     packageName = "vega-lite";
-    version = "5.0.0";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.0.0.tgz";
-      sha512 = "CrMAy3D2E662qtShrOeGttwwthRxUOZUfdu39THyxkOfLNJBCLkNjfQpFekEidxwbtFTO1zMZzyFIP3AE2I8kQ==";
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.1.0.tgz";
+      sha512 = "HEyf0iHnCNmWkWFIbEmMphcJwZpcBnfnU8v+Ojrndr7ihDueojHMOSikoyz/GNpdkai+QFxLboA6DDCTtFv9iQ==";
     };
     dependencies = [
       sources."@types/clone-2.1.0"
@@ -109887,7 +112881,7 @@ in
       sources."require-directory-2.1.1"
       sources."string-width-4.2.2"
       sources."strip-ansi-6.0.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."vega-event-selector-2.0.6"
       sources."vega-expression-4.0.1"
       sources."vega-util-1.16.1"
@@ -109924,6 +112918,201 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vls = nodeEnv.buildNodePackage {
+    name = "vls";
+    packageName = "vls";
+    version = "0.7.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vls/-/vls-0.7.2.tgz";
+      sha512 = "9nKgSPtNxQlc32K5GgZV++MdsCpNuac/SfxnEmVI0DCF4E0Uekj+RUo7Zk6NnA4veiNMN+AEjAIlbXYWPHgX6Q==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      (sources."@babel/highlight-7.13.10" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      (sources."@eslint/eslintrc-0.4.0" // {
+        dependencies = [
+          sources."globals-12.4.0"
+        ];
+      })
+      sources."acorn-7.4.1"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.6"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."argparse-1.0.10"
+      sources."astral-regex-2.0.0"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."builtin-modules-1.1.1"
+      sources."callsites-3.1.0"
+      (sources."chalk-4.1.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."commander-2.20.3"
+      sources."concat-map-0.0.1"
+      sources."cross-spawn-7.0.3"
+      sources."debug-4.3.2"
+      sources."deep-is-0.1.3"
+      sources."diff-4.0.2"
+      sources."doctrine-3.0.0"
+      sources."emoji-regex-8.0.0"
+      sources."enquirer-2.3.6"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-7.25.0"
+      sources."eslint-plugin-vue-7.9.0"
+      sources."eslint-scope-5.1.1"
+      (sources."eslint-utils-2.1.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."eslint-visitor-keys-2.0.0"
+      (sources."espree-7.3.1" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."esprima-4.0.1"
+      (sources."esquery-1.4.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."file-entry-cache-6.0.1"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.1.1"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      (sources."globals-13.8.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."ignore-4.0.6"
+      sources."import-fresh-3.3.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-core-module-2.3.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."levn-0.4.1"
+      sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
+      sources."lru-cache-6.0.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."natural-compare-1.4.0"
+      sources."once-1.4.0"
+      sources."optionator-0.9.1"
+      sources."parent-module-1.0.1"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.6"
+      sources."prelude-ls-1.2.1"
+      sources."prettier-2.2.1"
+      sources."progress-2.0.3"
+      sources."punycode-2.1.1"
+      sources."regexpp-3.1.0"
+      sources."require-from-string-2.0.2"
+      sources."resolve-1.20.0"
+      sources."resolve-from-4.0.0"
+      sources."rimraf-3.0.2"
+      sources."semver-7.3.5"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      (sources."slice-ansi-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      (sources."table-6.5.1" // {
+        dependencies = [
+          sources."ajv-8.1.0"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."tslib-1.14.1"
+      (sources."tslint-6.1.3" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."tsutils-2.29.0"
+      sources."type-check-0.4.0"
+      sources."type-fest-0.8.1"
+      sources."typescript-4.2.4"
+      sources."uri-js-4.4.1"
+      sources."v8-compile-cache-2.3.0"
+      (sources."vue-eslint-parser-7.6.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+          sources."espree-6.2.1"
+        ];
+      })
+      sources."which-2.0.2"
+      sources."word-wrap-1.2.3"
+      sources."wrappy-1.0.2"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Vue Language Server";
+      homepage = "https://github.com/vuejs/vetur/tree/master/server";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vscode-css-languageserver-bin = nodeEnv.buildNodePackage {
     name = "vscode-css-languageserver-bin";
     packageName = "vscode-css-languageserver-bin";
@@ -110000,15 +113189,19 @@ in
     };
     dependencies = [
       sources."agent-base-4.3.0"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."concat-map-0.0.1"
       sources."debug-3.1.0"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."jsonc-parser-3.0.0"
+      sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."request-light-0.4.0"
-      (sources."vscode-json-languageservice-4.0.2" // {
+      (sources."vscode-json-languageservice-4.1.0" // {
         dependencies = [
           sources."vscode-nls-5.0.0"
         ];
@@ -110193,7 +113386,7 @@ in
         ];
       })
       sources."cheerio-1.0.0-rc.6"
-      sources."cheerio-select-1.3.0"
+      sources."cheerio-select-1.4.0"
       sources."chokidar-3.3.0"
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.3"
@@ -110251,7 +113444,7 @@ in
       sources."create-hmac-1.1.7"
       sources."cross-spawn-6.0.5"
       sources."crypto-browserify-3.12.0"
-      sources."css-select-4.0.0"
+      sources."css-select-4.1.2"
       sources."css-what-5.0.0"
       sources."cyclist-1.0.1"
       sources."debug-3.2.6"
@@ -110271,8 +113464,8 @@ in
       sources."dom-serializer-1.3.1"
       sources."domain-browser-1.2.0"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.1.0"
-      sources."domutils-2.5.2"
+      sources."domhandler-4.2.0"
+      sources."domutils-2.6.0"
       (sources."duplexify-3.7.1" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -110562,7 +113755,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
@@ -110814,8 +114007,8 @@ in
       sources."v8-compile-cache-2.3.0"
       sources."vm-browserify-1.1.2"
       sources."vsce-1.87.1"
-      sources."vscode-debugadapter-testsupport-1.46.0"
-      sources."vscode-debugprotocol-1.46.0"
+      sources."vscode-debugadapter-testsupport-1.47.0"
+      sources."vscode-debugprotocol-1.47.0"
       (sources."watchpack-1.7.5" // {
         dependencies = [
           sources."chokidar-3.5.1"
@@ -111201,7 +114394,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -111552,7 +114745,7 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
@@ -111584,7 +114777,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      (sources."js-beautify-1.13.5" // {
+      (sources."js-beautify-1.13.13" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -112112,10 +115305,10 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "6.0.0";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.0.0.tgz";
-      sha512 = "djjTY89kM5ULdKYQo+6TYJSlT+0zNkanW5hQJNybOqGyovUYpH7C3Ns9Pd1cy6ApbmG2VV4Gds9u4yCSuRfHUw==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.1.0.tgz";
+      sha512 = "f9sBuysFoCJAuS03wRtSBH8dPKQUZvCVT+AoqBW3tBBN6a92P0PyGF2lTwZJ5wrOOvXu7w2DvuAFOU6CnBugFw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -112137,19 +115330,20 @@ in
       (sources."@eslint/eslintrc-0.4.0" // {
         dependencies = [
           sources."debug-4.3.2"
+          sources."globals-12.4.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."@mdn/browser-compat-data-3.1.3"
+      sources."@mdn/browser-compat-data-3.2.4"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@types/yauzl-2.9.1"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
-      sources."addons-linter-2.21.0"
-      sources."addons-scanner-utils-4.2.0"
+      sources."addons-linter-3.2.0"
+      sources."addons-scanner-utils-4.4.0"
       sources."adm-zip-0.5.5"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
@@ -112166,17 +115360,6 @@ in
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
-      (sources."archiver-5.2.0" // {
-        dependencies = [
-          sources."async-3.2.0"
-        ];
-      })
-      (sources."archiver-utils-2.1.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
       sources."argparse-1.0.10"
       sources."array-differ-3.0.0"
       sources."array-filter-0.0.1"
@@ -112194,9 +115377,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
-      sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-4.1.0"
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
       (sources."boxen-5.0.1" // {
@@ -112205,7 +115386,6 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-from-1.1.1"
@@ -112220,8 +115400,8 @@ in
       sources."camelcase-6.2.0"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
-      sources."cheerio-1.0.0-rc.5"
-      sources."cheerio-select-tmp-0.1.1"
+      sources."cheerio-1.0.0-rc.6"
+      sources."cheerio-select-1.4.0"
       (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
@@ -112244,23 +115424,15 @@ in
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."common-tags-1.8.0"
-      sources."compress-commons-4.1.0"
       sources."concat-map-0.0.1"
-      (sources."concat-stream-1.6.2" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."concat-stream-1.6.2"
       sources."configstore-5.0.1"
       sources."core-js-3.8.3"
       sources."core-util-is-1.0.2"
-      sources."crc-32-1.2.0"
-      sources."crc32-stream-4.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-3.1.2"
-      sources."css-what-4.0.0"
+      sources."css-select-4.1.2"
+      sources."css-what-5.0.0"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
@@ -112275,17 +115447,16 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.61.0" // {
+      (sources."dispensary-0.62.0" // {
         dependencies = [
           sources."async-3.2.0"
-          sources."pino-6.9.0"
         ];
       })
       sources."doctrine-3.0.0"
-      sources."dom-serializer-1.2.0"
+      sources."dom-serializer-1.3.1"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.1.0"
-      sources."domutils-2.5.2"
+      sources."domhandler-4.2.0"
+      sources."domutils-2.6.0"
       sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
@@ -112294,14 +115465,14 @@ in
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
-      sources."entities-2.1.0"
+      sources."entities-2.2.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
       sources."es6-promisify-6.1.1"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.21.0" // {
+      (sources."eslint-7.24.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."debug-4.3.2"
@@ -112337,7 +115508,6 @@ in
       sources."esutils-2.0.3"
       sources."event-to-promise-0.8.0"
       sources."execa-4.1.0"
-      sources."exit-on-epipe-1.0.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -112352,10 +115522,9 @@ in
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-6.0.1"
-      (sources."firefox-profile-4.1.0" // {
+      (sources."firefox-profile-4.2.0" // {
         dependencies = [
           sources."fs-extra-9.0.1"
-          sources."uuid-8.3.2"
         ];
       })
       sources."first-chunk-stream-3.0.0"
@@ -112365,17 +115534,15 @@ in
       sources."fluent-syntax-0.13.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fs-constants-1.0.0"
       (sources."fs-extra-9.1.0" // {
         dependencies = [
           sources."universalify-2.0.0"
         ];
       })
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      (sources."fx-runner-1.0.13" // {
+      (sources."fx-runner-1.1.0" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
@@ -112390,7 +115557,11 @@ in
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."global-dirs-3.0.0"
-      sources."globals-12.4.0"
+      (sources."globals-13.8.0" // {
+        dependencies = [
+          sources."type-fest-0.20.2"
+        ];
+      })
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -112409,9 +115580,8 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
-      sources."iconv-lite-0.4.24"
-      sources."ieee754-1.2.1"
       sources."ignore-4.0.6"
+      sources."image-size-0.9.7"
       sources."immediate-3.0.6"
       sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
@@ -112423,7 +115593,6 @@ in
       sources."is-absolute-0.1.7"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
-      sources."is-boolean-object-1.1.0"
       sources."is-ci-2.0.0"
       sources."is-date-object-1.0.2"
       sources."is-docker-2.2.1"
@@ -112433,13 +115602,11 @@ in
       sources."is-installed-globally-0.4.0"
       sources."is-mergeable-object-1.1.1"
       sources."is-npm-5.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-regex-1.1.2"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-wsl-2.2.0"
@@ -112471,22 +115638,11 @@ in
         ];
       })
       sources."jsprim-1.4.1"
-      (sources."jszip-3.6.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."jszip-3.6.0"
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      (sources."lazystream-1.0.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
       sources."lcid-3.1.1"
       sources."levn-0.4.1"
       sources."lie-3.3.0"
@@ -112494,8 +115650,6 @@ in
       sources."lines-and-columns-1.1.6"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
@@ -112505,7 +115659,6 @@ in
       sources."lodash.isstring-4.0.1"
       sources."lodash.once-4.1.1"
       sources."lodash.truncate-4.4.2"
-      sources."lodash.union-4.6.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
@@ -112540,19 +115693,12 @@ in
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      (sources."needle-2.6.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
-        ];
-      })
       sources."node-forge-0.10.0"
       (sources."node-notifier-9.0.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
       })
-      sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.0.0"
@@ -112583,17 +115729,11 @@ in
       sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      (sources."pino-6.11.1" // {
-        dependencies = [
-          sources."pino-std-serializers-3.2.0"
-        ];
-      })
-      sources."pino-std-serializers-2.5.0"
-      sources."postcss-8.2.7"
+      sources."pino-6.11.2"
+      sources."pino-std-serializers-3.2.0"
+      sources."postcss-8.2.10"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
-      sources."printj-1.1.2"
-      sources."probe-image-size-6.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."psl-1.8.0"
@@ -112601,15 +115741,19 @@ in
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."qs-6.5.2"
-      sources."quick-format-unescaped-4.0.3"
+      sources."queue-6.0.2"
+      sources."quick-format-unescaped-4.0.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
           sources."strip-json-comments-2.0.1"
         ];
       })
-      sources."readable-stream-3.6.0"
-      sources."readdir-glob-1.1.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."regenerator-runtime-0.13.8"
       sources."regexp.prototype.flags-1.3.1"
       sources."regexpp-3.1.0"
@@ -112635,7 +115779,7 @@ in
       sources."safe-json-stringify-1.2.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -112657,7 +115801,6 @@ in
       sources."split-0.3.3"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
-      sources."stream-parser-0.3.1"
       sources."stream-to-array-2.3.0"
       sources."stream-to-promise-3.0.0"
       (sources."string-width-4.2.2" // {
@@ -112678,13 +115821,14 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
-      (sources."table-6.0.9" // {
+      (sources."table-6.5.1" // {
         dependencies = [
           sources."ajv-8.1.0"
+          sources."ansi-regex-5.0.0"
           sources."json-schema-traverse-1.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
-      sources."tar-stream-2.2.0"
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
@@ -112739,7 +115883,6 @@ in
           sources."async-3.2.0"
         ];
       })
-      sources."zip-stream-4.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -112754,17 +115897,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.32.0";
+    version = "5.35.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.32.0.tgz";
-      sha512 = "jB9PrNMFnPRiZGnm/j3qfNqJmP3ViRzkuQMIf8za0dgOYvSLi/cgA+UEEGvik9EQHX1KYyGng5PgBTTzGrH9xg==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.35.1.tgz";
+      sha512 = "uWKYStqJ23+N6/EnMEwUjPSSKUG1tFmcuKhALEh/QXoUxwN8eb3ATNIZB38A+fO6QZ0xfc7Cu7KNV9LXNhDCsw==";
     };
     dependencies = [
-      sources."@types/eslint-7.2.9"
+      sources."@types/eslint-7.2.10"
       sources."@types/eslint-scope-3.7.0"
-      sources."@types/estree-0.0.46"
+      sources."@types/estree-0.0.47"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -112782,17 +115925,17 @@ in
       sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.1.1"
+      sources."acorn-8.2.1"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.16.4"
+      sources."browserslist-4.16.5"
       sources."buffer-from-1.1.1"
-      sources."caniuse-lite-1.0.30001208"
+      sources."caniuse-lite-1.0.30001214"
       sources."chrome-trace-event-1.0.3"
       sources."colorette-1.2.2"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.713"
-      sources."enhanced-resolve-5.7.0"
+      sources."electron-to-chromium-1.3.720"
+      sources."enhanced-resolve-5.8.0"
       sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
       sources."eslint-scope-5.1.1"
@@ -112873,12 +116016,12 @@ in
       sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-6.0.0"
+      sources."get-stream-6.0.1"
       sources."has-1.0.3"
       sources."human-signals-2.1.0"
       sources."import-local-3.0.2"
       sources."interpret-2.2.0"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-plain-object-2.0.4"
       sources."is-stream-2.0.0"
       sources."isexe-2.0.0"
@@ -112930,7 +116073,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
+      sources."@types/node-14.14.41"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -113579,7 +116722,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.48"
+      sources."@types/node-13.13.50"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.2"
@@ -113716,6 +116859,12 @@ in
       })
       sources."long-4.0.0"
       sources."lru-3.1.0"
+      (sources."lt_donthave-1.0.1" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."magnet-uri-5.4.0"
       sources."mdns-js-0.5.0"
       sources."mdns-js-packet-0.2.0"
@@ -113848,12 +116997,12 @@ in
       sources."utp-native-2.4.0"
       sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-0.116.2" // {
+      (sources."webtorrent-0.118.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
           sources."get-stdin-8.0.0"
-          sources."magnet-uri-6.1.0"
+          sources."magnet-uri-6.1.1"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
           sources."parse-torrent-9.1.3"
@@ -113862,7 +117011,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.4"
+      sources."ws-7.4.5"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -113904,8 +117053,8 @@ in
       sha512 = "P1Ct7+DNrOcr2JAxDZ3Q5i5sx2LSveu7iLaoUL0A+YiG0GKf0l5+9j3rwMeyh6JeTL1+HfQV1rnwEvzhNIvpFw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.13.10"
-      sources."@babel/runtime-corejs3-7.13.10"
+      sources."@babel/runtime-7.13.17"
+      sources."@babel/runtime-corejs3-7.13.17"
       sources."@types/json5-0.0.29"
       sources."adverb-where-0.2.2"
       sources."aria-query-4.2.2"
@@ -113921,7 +117070,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."contains-path-0.1.0"
-      sources."core-js-pure-3.10.1"
+      sources."core-js-pure-3.11.0"
       sources."damerau-levenshtein-1.0.6"
       sources."debug-2.6.9"
       sources."define-properties-1.1.3"
@@ -113956,7 +117105,7 @@ in
       sources."is-bigint-1.0.1"
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
-      sources."is-core-module-2.2.0"
+      sources."is-core-module-2.3.0"
       sources."is-date-object-1.0.2"
       sources."is-negative-zero-2.0.1"
       sources."is-number-object-1.0.4"
@@ -113978,7 +117127,7 @@ in
       sources."no-cliches-0.3.2"
       sources."normalize-package-data-2.5.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.10.2"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.entries-1.1.3"
@@ -114031,14 +117180,17 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.17.0";
+    version = "0.18.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.17.0.tgz";
-      sha512 = "jugQKTXkLDMq9J6ZN2hl+pTR2lDdSHV+bb8sCGO7//BSX7HFXlX2C5M4jghFeL4AAodBZ5WEHUzHoI7llm5p6g==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.18.0.tgz";
+      sha512 = "Cm3UKlaEzvd+my1L4lf5NKfCqDCkdxLmuvq8jRWOPjtrGEdY41EtuY1V+lRdRREVXyurgy4NPVFWzarcl5CltQ==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
       sources."argparse-1.0.10"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."concat-map-0.0.1"
       sources."debug-3.1.0"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
@@ -114047,10 +117199,11 @@ in
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.1"
       sources."jsonc-parser-2.3.1"
+      sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      (sources."vscode-json-languageservice-4.0.2" // {
+      (sources."vscode-json-languageservice-4.1.0" // {
         dependencies = [
           sources."jsonc-parser-3.0.0"
           sources."vscode-nls-5.0.0"
@@ -114096,24 +117249,60 @@ in
   yo = nodeEnv.buildNodePackage {
     name = "yo";
     packageName = "yo";
-    version = "3.1.1";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yo/-/yo-3.1.1.tgz";
-      sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
+      url = "https://registry.npmjs.org/yo/-/yo-4.0.0.tgz";
+      sha512 = "u4nr6946GQ1HXrX0K9YAHK8wJmvVNIAYIsC/NSTIXOSK61N400UCY1HLQr5oo7TJcpZAe7aO3k3jFJXIvRb6Qw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
-      sources."@babel/runtime-7.13.10"
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
+      sources."@babel/runtime-7.13.17"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      (sources."@npmcli/arborist-2.4.0" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      (sources."@npmcli/git-2.0.8" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."semver-7.3.5"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@npmcli/installed-package-contents-1.0.7"
+      sources."@npmcli/map-workspaces-1.0.3"
+      (sources."@npmcli/metavuln-calculator-1.1.1" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      (sources."@npmcli/move-file-1.1.2" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
+      sources."@npmcli/name-from-folder-1.0.1"
+      sources."@npmcli/node-gyp-1.0.2"
+      sources."@npmcli/promise-spawn-1.3.2"
+      sources."@npmcli/run-script-1.8.5"
       sources."@sindresorhus/is-0.7.0"
-      sources."@types/glob-7.1.3"
+      sources."@tootallnate/once-1.1.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.37"
-      sources."@types/normalize-package-data-2.4.0"
-      sources."JSONStream-1.3.5"
+      sources."abbrev-1.1.1"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."agentkeepalive-4.1.4" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       sources."ansi-0.3.1"
@@ -114121,40 +117310,41 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
+      sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
+      (sources."argparse-1.0.10" // {
+        dependencies = [
+          sources."sprintf-js-1.0.3"
+        ];
+      })
       sources."array-differ-3.0.0"
       sources."array-find-index-1.0.2"
-      sources."array-union-1.0.2"
+      sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
       sources."arrify-1.0.1"
+      sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."axios-0.21.1"
       sources."balanced-match-1.0.2"
-      (sources."base-0.11.2" // {
+      sources."bcrypt-pbkdf-1.0.2"
+      (sources."bin-links-2.2.1" // {
         dependencies = [
-          sources."define-property-1.0.0"
+          sources."mkdirp-1.0.4"
+          sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."bcrypt-pbkdf-1.0.2"
       (sources."bin-version-2.0.0" // {
         dependencies = [
           sources."execa-0.1.1"
         ];
       })
       sources."bin-version-check-3.0.0"
-      sources."binaryextensions-2.3.0"
+      sources."binaryextensions-4.15.0"
       sources."boolean-3.0.3"
       (sources."boxen-1.3.0" // {
         dependencies = [
@@ -114162,44 +117352,28 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      sources."braces-3.0.2"
+      sources."buffer-from-1.1.1"
+      sources."builtins-1.0.3"
+      (sources."cacache-15.0.6" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."buffer-from-1.1.1"
-      sources."cache-base-1.0.1"
       (sources."cacheable-request-2.1.4" // {
         dependencies = [
           sources."get-stream-3.0.0"
           sources."lowercase-keys-1.0.0"
         ];
       })
-      sources."call-me-maybe-1.0.1"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
+      sources."chownr-2.0.0"
       sources."ci-info-1.6.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."clean-stack-2.2.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
@@ -114208,26 +117382,26 @@ in
       sources."cli-width-2.2.1"
       sources."clone-2.1.2"
       sources."clone-buffer-1.0.0"
-      sources."clone-deep-4.0.1"
       sources."clone-regexp-1.0.1"
       sources."clone-response-1.0.2"
       sources."clone-stats-1.0.0"
       sources."cloneable-readable-1.1.3"
+      sources."cmd-shim-4.1.0"
       sources."code-point-at-1.1.0"
-      sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
+      sources."commander-7.1.0"
+      sources."common-ancestor-path-1.0.1"
       sources."commondir-1.0.1"
-      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
       sources."conf-1.4.0"
       sources."config-chain-1.1.12"
       sources."configstore-3.1.5"
-      sources."copy-descriptor-0.1.1"
-      sources."core-js-3.10.1"
+      sources."console-control-strings-1.1.0"
+      sources."core-js-3.11.0"
       sources."core-util-is-1.0.2"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -114239,127 +117413,83 @@ in
       })
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
-      sources."dargs-6.1.0"
+      sources."cyclist-1.0.1"
       sources."dashdash-1.14.1"
-      sources."dateformat-3.0.3"
+      sources."dateformat-4.5.1"
       sources."debug-2.6.9"
+      sources."debuglog-1.0.1"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."default-uid-1.0.0"
       sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
+      sources."depd-1.1.2"
       sources."detect-node-2.0.5"
-      sources."diff-3.5.0"
-      (sources."dir-glob-2.0.0" // {
+      sources."dezalgo-1.0.3"
+      sources."diff-5.0.0"
+      (sources."dir-glob-3.0.1" // {
         dependencies = [
-          sources."path-type-3.0.0"
+          sources."path-type-4.0.0"
         ];
       })
       sources."dot-prop-4.2.1"
       sources."downgrade-root-1.2.2"
-      sources."download-stats-0.3.4"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      (sources."editions-2.3.1" // {
+      sources."editions-6.1.0"
+      sources."ejs-3.1.6"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."iconv-lite-0.6.2"
         ];
       })
-      sources."ejs-2.7.4"
-      sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."env-paths-1.0.0"
-      sources."errlop-2.2.0"
-      sources."error-7.2.1"
+      sources."err-code-2.0.3"
+      sources."errlop-4.1.0"
+      sources."error-10.4.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
       sources."es6-promise-4.2.8"
       sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
       sources."execa-1.0.0"
       sources."execall-1.0.0"
       sources."exit-hook-1.1.1"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."external-editor-3.1.0"
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.5"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fastq-1.11.0"
       sources."figures-2.0.0"
       sources."filelist-1.0.2"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."filter-obj-2.0.2"
       sources."find-up-2.1.0"
       sources."find-versions-2.0.0"
+      sources."find-yarn-workspace-root2-1.2.16"
       sources."first-chunk-stream-2.0.0"
-      sources."follow-redirects-1.13.3"
-      sources."for-in-1.0.2"
       sources."foreachasync-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fragment-cache-0.2.1"
       sources."from2-2.3.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."fullname-4.0.1"
       sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
       sources."get-stdin-4.0.1"
       sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      (sources."gh-got-5.0.0" // {
-        dependencies = [
-          sources."get-stream-3.0.0"
-          sources."got-6.7.1"
-          sources."prepend-http-1.0.4"
-          sources."url-parse-lax-1.0.0"
-        ];
-      })
-      sources."github-username-3.0.0"
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
-      sources."glob-to-regexp-0.3.0"
+      sources."glob-parent-5.1.2"
       (sources."global-agent-2.2.0" // {
         dependencies = [
           sources."semver-7.3.5"
@@ -114368,7 +117498,7 @@ in
       sources."global-dirs-0.1.1"
       sources."global-tunnel-ng-2.7.1"
       sources."globalthis-1.0.2"
-      sources."globby-8.0.2"
+      sources."globby-11.0.3"
       (sources."got-8.3.2" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -114376,7 +117506,7 @@ in
         ];
       })
       sources."graceful-fs-4.2.6"
-      sources."grouped-queue-1.1.0"
+      sources."grouped-queue-2.0.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -114389,94 +117519,95 @@ in
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."has-unicode-2.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
+      sources."hosted-git-info-2.8.9"
+      sources."http-cache-semantics-3.8.1"
+      (sources."http-proxy-agent-4.0.1" // {
         dependencies = [
-          sources."kind-of-4.0.0"
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
         ];
       })
-      sources."hosted-git-info-2.8.9"
-      sources."http-cache-semantics-3.8.1"
       sources."http-signature-1.2.0"
-      sources."human-signals-1.1.1"
+      (sources."https-proxy-agent-5.0.0" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."human-signals-2.1.0"
+      sources."humanize-ms-1.2.1"
       sources."humanize-string-1.0.2"
       sources."iconv-lite-0.4.24"
-      sources."ignore-3.3.10"
+      sources."ignore-5.1.8"
+      sources."ignore-walk-3.0.3"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."inquirer-6.5.2"
       sources."insight-0.10.3"
-      sources."interpret-1.4.0"
       (sources."into-stream-3.1.0" // {
         dependencies = [
           sources."p-is-promise-1.1.0"
         ];
       })
+      sources."ip-1.1.5"
       sources."ip-regex-2.1.0"
-      sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
-      sources."is-core-module-2.2.0"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
+      sources."is-core-module-2.3.0"
       sources."is-docker-1.1.0"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.1.0"
+      sources."is-lambda-1.0.1"
       sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-1.0.1"
       sources."is-object-1.0.2"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
-      sources."is-plain-object-2.0.4"
       sources."is-redirect-1.0.0"
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-root-1.0.0"
-      sources."is-scoped-1.0.0"
+      sources."is-scoped-2.1.0"
       sources."is-stream-1.1.0"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-utf8-0.2.1"
-      sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
       sources."isbinaryfile-4.0.6"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."istextorbinary-2.6.0"
+      sources."istextorbinary-5.12.0"
       sources."isurl-1.0.0"
       (sources."jake-10.8.2" // {
         dependencies = [
           sources."async-0.9.2"
         ];
       })
-      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-nice-1.1.3"
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
+      sources."just-diff-3.1.1"
+      sources."just-diff-apply-3.0.0"
       sources."keyv-3.0.0"
-      sources."kind-of-6.0.3"
       (sources."latest-version-3.1.0" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -114486,13 +117617,17 @@ in
           sources."url-parse-lax-1.0.0"
         ];
       })
-      sources."lazy-cache-2.0.2"
-      sources."lines-and-columns-1.1.6"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."pify-2.3.0"
         ];
       })
+      (sources."load-yaml-file-0.2.0" // {
+        dependencies = [
+          sources."pify-4.0.1"
+          sources."strip-bom-3.0.0"
+        ];
+      })
       sources."locate-path-2.0.0"
       sources."locutus-2.0.14"
       sources."lodash-4.17.21"
@@ -114506,31 +117641,25 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."make-dir-1.3.0"
+      (sources."make-fetch-happen-8.0.14" // {
+        dependencies = [
+          sources."http-cache-semantics-4.1.0"
+        ];
+      })
       sources."map-age-cleaner-0.1.3"
-      sources."map-cache-0.2.2"
       sources."map-obj-1.0.1"
-      sources."map-visit-1.0.0"
       (sources."matcher-3.0.0" // {
         dependencies = [
           sources."escape-string-regexp-4.0.0"
         ];
       })
       sources."mem-5.1.1"
-      sources."mem-fs-1.2.0"
-      (sources."mem-fs-editor-6.0.0" // {
+      (sources."mem-fs-1.2.0" // {
         dependencies = [
-          sources."dir-glob-2.2.2"
-          sources."globby-9.2.0"
-          sources."ignore-4.0.6"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-4.0.1"
-          sources."slash-2.0.0"
+          sources."through2-3.0.2"
         ];
       })
+      sources."mem-fs-editor-8.1.2"
       (sources."meow-3.7.0" // {
         dependencies = [
           sources."find-up-1.1.2"
@@ -114540,35 +117669,59 @@ in
       })
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
-      sources."micromatch-3.1.10"
+      sources."micromatch-4.0.4"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-json-stream-1.0.1"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-0.5.5"
+      (sources."mkdirp-infer-owner-2.0.0" // {
         dependencies = [
-          sources."is-extendable-1.0.1"
+          sources."mkdirp-1.0.4"
         ];
       })
-      sources."mkdirp-0.5.5"
-      sources."moment-2.29.1"
       sources."ms-2.0.0"
-      (sources."multimatch-4.0.0" // {
+      (sources."multimatch-5.0.0" // {
         dependencies = [
-          sources."array-union-2.1.0"
           sources."arrify-2.0.1"
         ];
       })
       sources."mute-stream-0.0.7"
-      sources."nanomatch-1.2.13"
       sources."nice-try-1.0.5"
-      sources."node-fetch-2.6.1"
+      (sources."node-gyp-7.1.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."env-paths-2.2.1"
+          sources."gauge-2.7.4"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."npmlog-4.1.2"
+          sources."semver-7.3.5"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
       sources."normalize-url-2.0.1"
-      sources."npm-api-1.0.1"
+      sources."npm-bundled-1.1.2"
       sources."npm-conf-1.1.3"
+      (sources."npm-install-checks-4.0.0" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
       (sources."npm-keyword-5.0.0" // {
         dependencies = [
           sources."get-stream-3.0.0"
@@ -114579,27 +117732,26 @@ in
           sources."url-parse-lax-1.0.0"
         ];
       })
+      sources."npm-normalize-package-bin-1.0.1"
+      (sources."npm-package-arg-8.1.2" // {
+        dependencies = [
+          sources."hosted-git-info-4.0.2"
+          sources."semver-7.3.5"
+        ];
+      })
+      sources."npm-packlist-2.1.5"
+      (sources."npm-pick-manifest-6.1.1" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
+      sources."npm-registry-fetch-10.1.1"
       sources."npm-run-path-2.0.2"
       sources."npmlog-2.0.4"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
       sources."once-1.4.0"
       (sources."onetime-2.0.1" // {
         dependencies = [
@@ -114618,17 +117770,21 @@ in
       sources."p-is-promise-2.1.0"
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
+      sources."p-map-4.0.0"
       sources."p-some-4.1.0"
       sources."p-timeout-2.0.1"
       sources."p-try-1.0.0"
       sources."package-json-5.0.0"
+      (sources."pacote-11.3.3" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
       sources."pad-component-0.0.1"
-      sources."paged-request-2.0.2"
+      sources."parse-conflict-json-1.1.1"
       sources."parse-help-1.0.0"
       sources."parse-json-2.2.0"
-      sources."pascalcase-0.1.1"
       sources."passwd-user-3.0.0"
-      sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
@@ -114640,14 +117796,42 @@ in
         ];
       })
       sources."performance-now-2.1.0"
+      sources."picomatch-2.2.3"
       sources."pify-3.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
+      (sources."pipeline-pipe-0.1.5" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      (sources."pkg-dir-4.2.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."p-try-2.2.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
       sources."pkg-up-2.0.0"
-      sources."posix-character-classes-0.1.1"
+      (sources."preferred-pm-3.0.3" // {
+        dependencies = [
+          sources."find-up-5.0.0"
+          sources."locate-path-6.0.0"
+          sources."p-limit-3.1.0"
+          sources."p-locate-5.0.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
       sources."prepend-http-2.0.0"
       sources."pretty-bytes-5.6.0"
       sources."process-nextick-args-2.0.1"
+      sources."promise-all-reject-late-1.0.1"
+      sources."promise-call-limit-1.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."promise-retry-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
@@ -114655,12 +117839,15 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."query-string-5.1.1"
+      sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       (sources."read-chunk-3.2.0" // {
         dependencies = [
           sources."pify-4.0.1"
         ];
       })
+      sources."read-cmd-shim-2.0.0"
+      sources."read-package-json-fast-2.0.2"
       sources."read-pkg-1.1.0"
       (sources."read-pkg-up-4.0.0" // {
         dependencies = [
@@ -114681,19 +117868,16 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."rechoir-0.6.2"
+      sources."readdir-scoped-modules-1.1.0"
       (sources."redent-1.0.0" // {
         dependencies = [
           sources."indent-string-2.1.0"
         ];
       })
       sources."regenerator-runtime-0.13.8"
-      sources."regex-not-1.0.2"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
       sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.4"
-      sources."repeat-string-1.6.1"
       sources."repeating-2.0.1"
       sources."replace-ext-1.0.1"
       (sources."request-2.88.2" // {
@@ -114702,20 +117886,20 @@ in
         ];
       })
       sources."resolve-1.20.0"
-      sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
-      sources."ret-0.1.15"
-      sources."rimraf-2.7.1"
+      sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."roarr-2.15.4"
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
+      sources."run-parallel-1.2.0"
       sources."rx-4.1.0"
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."scoped-regex-1.0.0"
+      sources."scoped-regex-2.1.0"
       sources."semver-5.7.1"
       sources."semver-compare-1.0.0"
       sources."semver-diff-2.1.0"
@@ -114726,83 +117910,35 @@ in
           sources."type-fest-0.13.1"
         ];
       })
-      sources."set-getter-0.1.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."shallow-clone-3.0.1"
+      sources."set-blocking-2.0.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."shelljs-0.8.4"
       sources."signal-exit-3.0.3"
-      sources."slash-1.0.0"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
+      sources."slash-3.0.0"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.1"
+      (sources."socks-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
         ];
       })
       sources."sort-keys-2.0.0"
       sources."sort-on-3.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.1"
       sources."spawn-sync-1.0.15"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
-      sources."split-string-3.1.0"
       sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
+      sources."ssri-8.0.1"
       sources."strict-uri-encode-1.1.0"
       (sources."string-length-2.0.0" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
         ];
       })
-      sources."string-template-0.2.1"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
@@ -114856,6 +117992,11 @@ in
         ];
       })
       sources."taketalk-1.0.0"
+      (sources."tar-6.1.0" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
       (sources."term-size-1.2.0" // {
         dependencies = [
           sources."cross-spawn-5.1.0"
@@ -114866,20 +118007,19 @@ in
         ];
       })
       sources."text-table-0.2.0"
-      sources."textextensions-2.6.0"
+      sources."textextensions-5.12.0"
       sources."through-2.3.8"
-      sources."through2-3.0.2"
-      sources."timed-out-4.0.1"
-      sources."titleize-1.0.1"
-      sources."tmp-0.0.33"
-      (sources."to-object-path-0.3.0" // {
+      (sources."through2-4.0.2" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."readable-stream-3.6.0"
         ];
       })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."timed-out-4.0.1"
+      sources."titleize-1.0.1"
+      sources."tmp-0.0.33"
+      sources."to-regex-range-5.0.1"
       sources."tough-cookie-3.0.1"
+      sources."treeverse-1.0.4"
       sources."trim-newlines-1.0.0"
       sources."tslib-1.14.1"
       sources."tunnel-0.0.6"
@@ -114888,31 +118028,24 @@ in
       sources."twig-1.15.4"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."union-value-1.0.1"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."unique-string-1.0.0"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."untildify-3.0.3"
+      sources."untildify-4.0.0"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
       sources."uri-js-4.4.1"
-      sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
-      sources."use-3.1.1"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
+      sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
+      sources."version-compare-1.1.0"
+      sources."version-range-1.1.0"
       sources."vinyl-2.2.1"
       (sources."vinyl-file-3.0.0" // {
         dependencies = [
@@ -114920,7 +118053,14 @@ in
         ];
       })
       sources."walk-2.3.14"
+      sources."walk-up-path-1.0.0"
       sources."which-1.3.1"
+      (sources."which-pm-2.0.0" // {
+        dependencies = [
+          sources."path-exists-4.0.0"
+        ];
+      })
+      sources."wide-align-1.1.3"
       sources."widest-line-2.0.1"
       sources."windows-release-3.3.3"
       (sources."with-open-file-0.1.7" // {
@@ -114948,46 +118088,58 @@ in
         ];
       })
       sources."yeoman-doctor-4.0.0"
-      (sources."yeoman-environment-2.10.3" // {
+      (sources."yeoman-environment-3.2.0" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-2.1.1"
           sources."ansi-styles-4.3.0"
+          sources."arrify-2.0.1"
+          sources."chalk-4.1.1"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.3"
-          sources."debug-3.2.7"
-          sources."execa-4.1.0"
-          sources."figures-3.2.0"
-          sources."get-stream-5.2.0"
-          sources."has-flag-4.0.0"
-          (sources."inquirer-7.3.3" // {
+          sources."debug-4.3.2"
+          sources."escape-string-regexp-4.0.0"
+          sources."execa-5.0.0"
+          (sources."figures-3.2.0" // {
+            dependencies = [
+              sources."escape-string-regexp-1.0.5"
+            ];
+          })
+          sources."find-up-5.0.0"
+          (sources."gauge-2.7.4" // {
             dependencies = [
-              sources."chalk-4.1.0"
-              sources."strip-ansi-6.0.0"
+              sources."is-fullwidth-code-point-1.0.0"
+              sources."string-width-1.0.2"
+              sources."strip-ansi-3.0.1"
             ];
           })
+          sources."get-stream-6.0.1"
+          sources."has-flag-4.0.0"
+          sources."inquirer-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."is-stream-2.0.0"
-          sources."ms-2.1.3"
+          sources."locate-path-6.0.0"
+          sources."log-symbols-4.1.0"
+          sources."ms-2.1.2"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
+          sources."npmlog-4.1.2"
           sources."onetime-5.1.2"
+          sources."p-limit-3.1.0"
+          sources."p-locate-5.0.0"
+          sources."path-exists-4.0.0"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
           sources."semver-7.3.5"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          (sources."string-width-4.2.2" // {
-            dependencies = [
-              sources."strip-ansi-6.0.0"
-            ];
-          })
-          (sources."strip-ansi-4.0.0" // {
+          sources."string-width-4.2.2"
+          (sources."strip-ansi-6.0.0" // {
             dependencies = [
-              sources."ansi-regex-3.0.0"
+              sources."ansi-regex-5.0.0"
             ];
           })
           sources."supports-color-7.2.0"
@@ -114995,45 +118147,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.13.0" // {
-        dependencies = [
-          sources."debug-4.3.2"
-          sources."diff-4.0.2"
-          sources."dir-glob-2.2.2"
-          sources."ejs-3.1.6"
-          sources."find-up-3.0.0"
-          sources."globby-9.2.0"
-          sources."ignore-4.0.6"
-          sources."locate-path-3.0.0"
-          (sources."make-dir-3.1.0" // {
-            dependencies = [
-              sources."semver-6.3.0"
-            ];
-          })
-          (sources."mem-fs-editor-7.1.0" // {
-            dependencies = [
-              sources."rimraf-3.0.2"
-            ];
-          })
-          sources."mkdirp-1.0.4"
-          sources."ms-2.1.2"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."parse-json-5.2.0"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-4.0.1"
-          sources."read-pkg-5.2.0"
-          sources."read-pkg-up-5.0.0"
-          sources."semver-7.3.5"
-          sources."slash-2.0.0"
-          sources."type-fest-0.6.0"
-        ];
-      })
+      sources."yocto-queue-0.1.0"
       (sources."yosay-2.0.2" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
diff --git a/pkgs/development/ocaml-modules/cairo2/default.nix b/pkgs/development/ocaml-modules/cairo2/default.nix
index 93de77fb322..020006b19c5 100644
--- a/pkgs/development/ocaml-modules/cairo2/default.nix
+++ b/pkgs/development/ocaml-modules/cairo2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, buildDunePackage, ocaml
+{ stdenv, lib, fetchurl, buildDunePackage, ocaml, dune-configurator
 , pkg-config, cairo
 }:
 
@@ -6,13 +6,15 @@ buildDunePackage rec {
   pname = "cairo2";
   version = "0.6.1";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/Chris00/ocaml-cairo/releases/download/${version}/cairo2-${version}.tbz";
     sha256 = "1ik4qf4b9443sliq2z7x9acd40rmzvyzjh3bh98wvjklxbb84a9i";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ cairo ];
+  buildInputs = [ cairo dune-configurator ];
 
   doCheck = !(stdenv.isDarwin
   # https://github.com/Chris00/ocaml-cairo/issues/19
diff --git a/pkgs/development/ocaml-modules/caqti/default.nix b/pkgs/development/ocaml-modules/caqti/default.nix
index 6df0af597c2..105a6a9dfe1 100644
--- a/pkgs/development/ocaml-modules/caqti/default.nix
+++ b/pkgs/development/ocaml-modules/caqti/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "caqti";
-  version = "1.3.0";
+  version = "1.5.1";
   useDune2 = true;
 
   minimumOCamlVersion = "4.04";
@@ -11,7 +11,7 @@ buildDunePackage rec {
     owner = "paurkedal";
     repo = "ocaml-${pname}";
     rev = "v${version}";
-    sha256 = "1ksjchfjnh059wvd95my1sv9b0ild0dfaiynbf2xsaz7zg1y4xmw";
+    sha256 = "1vl61kdyj89whc3mh4k9bis6rbj9x2scf6hnv9afyalp4j65sqx1";
   };
 
   buildInputs = [ cppo ];
diff --git a/pkgs/development/ocaml-modules/dap/default.nix b/pkgs/development/ocaml-modules/dap/default.nix
new file mode 100644
index 00000000000..6d14945ee15
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dap/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildDunePackage, fetchurl
+, angstrom-lwt-unix, lwt, logs, lwt_ppx, ppx_deriving_yojson, ppx_expect, ppx_here, react
+}:
+
+buildDunePackage rec {
+  pname = "dap";
+  version = "1.0.6";
+  useDune2 = true;
+  src = fetchurl {
+    url = "https://github.com/hackwaly/ocaml-dap/releases/download/${version}/dap-${version}.tbz";
+    sha256 = "1zq0f8429m38a4x3h9n3rv7n1vsfjbs72pfi5902a89qwyilkcp0";
+  };
+
+  minimumOCamlVersion = "4.08";
+
+  buildInputs = [
+    lwt_ppx
+  ];
+
+  propagatedBuildInputs = [
+    angstrom-lwt-unix
+    logs
+    lwt
+    ppx_deriving_yojson
+    ppx_expect
+    ppx_here
+    react
+  ];
+
+  meta = {
+    description = "Debug adapter protocol";
+    homepage = "https://github.com/hackwaly/ocaml-dap";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dtoa/default.nix b/pkgs/development/ocaml-modules/dtoa/default.nix
index da075f5c798..44bc5d7498b 100644
--- a/pkgs/development/ocaml-modules/dtoa/default.nix
+++ b/pkgs/development/ocaml-modules/dtoa/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
     sha256 = "0zkhn0rdq82g6gamsv6nkx6i44s8104nh6jg5xydazl9jl1704xn";
   };
 
-  hardeningDisable = lib.optional stdenv.isDarwin "strictoverflow";
+  hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-dtoa";
diff --git a/pkgs/development/ocaml-modules/earlybird/default.nix b/pkgs/development/ocaml-modules/earlybird/default.nix
index b36874d49da..07e9b5a3546 100644
--- a/pkgs/development/ocaml-modules/earlybird/default.nix
+++ b/pkgs/development/ocaml-modules/earlybird/default.nix
@@ -1,25 +1,25 @@
-{ lib, fetchurl, ocaml, buildDunePackage, angstrom, angstrom-lwt-unix,
-  batteries, cmdliner, lwt_ppx, ocaml_lwt, ppx_deriving_yojson,
-  ppx_tools_versioned, yojson }:
+{ lib, fetchurl, ocaml, buildDunePackage
+, cmdliner, dap, fmt, iter, logs, lru, lwt_ppx, lwt_react, menhir, path_glob, ppx_deriving_yojson
+}:
 
-if lib.versionAtLeast ocaml.version "4.08"
+if lib.versionAtLeast ocaml.version "4.13"
 then throw "earlybird is not available for OCaml ${ocaml.version}"
 else
 
 buildDunePackage rec {
   pname = "earlybird";
-  version = "0.1.5";
+  version = "1.1.0";
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.04";
+  minimumOCamlVersion = "4.11";
 
   src = fetchurl {
     url = "https://github.com/hackwaly/ocamlearlybird/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "10yflmsicw4sdmm075zjpbmxpwm9fvibnl3sl18zjpwnm6l9sv7d";
+    sha256 = "1pwzhcr3pw24ra4j4d23vz71h0psz4xkyp7b12l2wl1slxzjbrxa";
   };
 
-  buildInputs = [ angstrom angstrom-lwt-unix batteries cmdliner lwt_ppx ocaml_lwt ppx_deriving_yojson ppx_tools_versioned yojson ];
+  buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir path_glob ppx_deriving_yojson ];
 
   meta = {
     homepage = "https://github.com/hackwaly/ocamlearlybird";
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index 5c93c111040..38ba8f478bd 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, fetchzip, buildDunePackage, camlp5
 , ppxlib, ppx_deriving, re, perl, ncurses
-, version ? "1.13.0"
+, version ? "1.13.1"
 }:
 with lib;
 let fetched = import ../../../build-support/coq/meta-fetch/default.nix
   {inherit lib stdenv fetchzip; } ({
+    release."1.13.1".sha256 = "12a9nbdvg9gybpw63lx3nw5wnxfznpraprb0wj3l68v1w43xq044";
     release."1.13.0".sha256 = "0dmzy058m1mkndv90byjaik6lzzfk3aaac7v84mpmkv6my23bygr";
     release."1.12.0".sha256 = "1agisdnaq9wrw3r73xz14yrq3wx742i6j8i5icjagqk0ypmly2is";
     release."1.11.4".sha256 = "1m0jk9swcs3jcrw5yyw5343v8mgax238cjb03s8gc4wipw1fn9f5";
diff --git a/pkgs/development/ocaml-modules/extlib/1.7.7.nix b/pkgs/development/ocaml-modules/extlib/1.7.7.nix
new file mode 100644
index 00000000000..d27fe085569
--- /dev/null
+++ b/pkgs/development/ocaml-modules/extlib/1.7.7.nix
@@ -0,0 +1,14 @@
+# Older version of extlib for Haxe 4.0 and 4.1.
+# May be replaceable by the next extlib + extlib-base64 release.
+{ lib, fetchurl, ocaml, ocaml_extlib }:
+
+ocaml_extlib.overrideAttrs (x: rec {
+  version = "1.7.7";
+  src = fetchurl {
+    url = "https://github.com/ygrek/ocaml-extlib/releases/download/${version}/extlib-${version}.tar.gz";
+    sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1";
+  };
+  meta = x.meta // {
+    broken = lib.versionAtLeast ocaml.version "4.12";
+  };
+})
diff --git a/pkgs/development/ocaml-modules/ezxmlm/default.nix b/pkgs/development/ocaml-modules/ezxmlm/default.nix
index 6d5fe28a8c0..b146b2349cd 100644
--- a/pkgs/development/ocaml-modules/ezxmlm/default.nix
+++ b/pkgs/development/ocaml-modules/ezxmlm/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, buildDunePackage, xmlm }:
+{ lib, fetchurl, buildDunePackage, xmlm }:
 
 buildDunePackage rec {
   pname = "ezxmlm";
-  version = "1.0.2";
+  version = "1.1.0";
 
-  src = fetchFromGitHub {
-    owner = "avsm";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1dgr61f0hymywikn67inq908x5adrzl3fjx3v14l9k46x7kkacl9";
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ezxmlm/releases/download/v${version}/ezxmlm-v${version}.tbz";
+    sha256 = "123dn4h993mlng9gzf4nc6mw75ja7ndcxkbkwfs48j5jk1z05j6d";
   };
 
   propagatedBuildInputs = [ xmlm ];
@@ -27,7 +27,7 @@ buildDunePackage rec {
       just fine with it if you decide to switch over.
     '';
     maintainers = [ maintainers.carlosdagos ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/mirage/ezxmlm/";
     license = licenses.isc;
   };
 }
diff --git a/pkgs/development/ocaml-modules/h2/default.nix b/pkgs/development/ocaml-modules/h2/default.nix
new file mode 100644
index 00000000000..dd96e0ecc44
--- /dev/null
+++ b/pkgs/development/ocaml-modules/h2/default.nix
@@ -0,0 +1,59 @@
+{ buildDunePackage
+, lib
+, fetchFromGitHub
+, ocaml
+, hpack
+, angstrom
+, faraday
+, base64
+, psq
+, httpaf
+, alcotest
+, yojson
+, hex
+}:
+
+let
+  http2-frame-test-case = fetchFromGitHub {
+    owner = "http2jp";
+    repo = "http2-frame-test-case";
+    rev = "5c67db0d4d68e1fb7d3a241d6e01fc04d981f465";
+    sha256 = "16yyb37f8mk9saw7ndjs5is67yq7qa6b6y7k0c75ibxi4n9aw1r3";
+  };
+in
+
+buildDunePackage rec {
+  pname = "h2";
+
+  inherit (hpack)
+    version
+    src
+    useDune2
+    ;
+
+  minimumOCamlVersion = "4.06";
+
+  propagatedBuildInputs = [
+    angstrom
+    faraday
+    base64
+    psq
+    hpack
+    httpaf
+  ];
+
+  # Tests fail with 4.06
+  doCheck = lib.versionAtLeast ocaml.version "4.07";
+  preCheck = ''
+    ln -s "${http2-frame-test-case}" lib_test/http2-frame-test-case
+  '';
+  checkInputs = [
+    alcotest
+    yojson
+    hex
+  ];
+
+  meta = hpack.meta // {
+    description = "A high-performance, memory-efficient, and scalable HTTP/2 library for OCaml";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/hpack/default.nix b/pkgs/development/ocaml-modules/hpack/default.nix
new file mode 100644
index 00000000000..ec967312b87
--- /dev/null
+++ b/pkgs/development/ocaml-modules/hpack/default.nix
@@ -0,0 +1,37 @@
+{ buildDunePackage
+, lib
+, fetchurl
+, angstrom
+, faraday
+}:
+
+buildDunePackage rec {
+  pname = "hpack";
+  version = "0.8.0";
+
+  src = fetchurl {
+    url = "https://github.com/anmonteiro/ocaml-h2/releases/download/${version}/h2-${version}.tbz";
+    sha256 = "0qcn3yvyz0h419fjg9nb20csfmwmh3ihz0zb0jfzdycf5w4mlry6";
+  };
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.04";
+
+  propagatedBuildInputs = [
+    angstrom
+    faraday
+  ];
+
+  # circular dependency
+  doCheck = false;
+
+  meta = {
+    license = lib.licenses.bsd3;
+    description = "An HPACK (Header Compression for HTTP/2) implementation in OCaml";
+    homepage = "https://github.com/anmonteiro/ocaml-h2";
+    maintainers = with lib.maintainers; [
+      sternenseemann
+      anmonteiro
+    ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix
index abb21fd7c53..7c59e1eaef3 100644
--- a/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "ppx_irmin";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchurl {
     url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "ac8d75144cafdaf4b5e106b540a27338245510b7e33a8c412d393c9d50cae490";
+    sha256 = "2c8ef24cc57379c3a138f121fea350ee7b6077abc22a4fdc6a47d0c81585f3f6";
   };
 
   minimumOCamlVersion = "4.08";
diff --git a/pkgs/development/ocaml-modules/janestreet/0.14.nix b/pkgs/development/ocaml-modules/janestreet/0.14.nix
index eb429b2bb6d..e348c5d9325 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.14.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.14.nix
@@ -1,4 +1,5 @@
 { self
+, lib
 , openssl
 , zstd
 }:
@@ -40,6 +41,7 @@ with self;
     version = "0.14.1";
     hash = "1cdkv34m6czhacivpbb2sasj83fgcid6gnqk30ig9i84z8nh2gw2";
     meta.description = "Accessors for Core types, for use with the Accessor library";
+    meta.broken = lib.versionAtLeast ocaml.version "4.12";
     propagatedBuildInputs = [ accessor_base core_kernel ];
   };
 
diff --git a/pkgs/development/ocaml-modules/lablgtk3/default.nix b/pkgs/development/ocaml-modules/lablgtk3/default.nix
index 1f6b0ad76b9..b14f5b736b4 100644
--- a/pkgs/development/ocaml-modules/lablgtk3/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk3/default.nix
@@ -1,9 +1,11 @@
-{ lib, fetchurl, pkg-config, buildDunePackage, gtk3, cairo2 }:
+{ lib, fetchurl, pkg-config, buildDunePackage, dune-configurator, gtk3, cairo2 }:
 
 buildDunePackage rec {
   version = "3.1.1";
   pname = "lablgtk3";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.05";
 
   src = fetchurl {
@@ -12,6 +14,7 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ gtk3 cairo2 ];
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/lablgtk3/gtkspell3.nix b/pkgs/development/ocaml-modules/lablgtk3/gtkspell3.nix
index be57c7e7146..b037f7d989f 100644
--- a/pkgs/development/ocaml-modules/lablgtk3/gtkspell3.nix
+++ b/pkgs/development/ocaml-modules/lablgtk3/gtkspell3.nix
@@ -4,5 +4,5 @@ buildDunePackage {
   pname = "lablgtk3-gtkspell3";
   buildInputs = [ gtkspell3 ] ++ lablgtk3.buildInputs;
   propagatedBuildInputs = [ lablgtk3 ];
-  inherit (lablgtk3) src version meta nativeBuildInputs;
+  inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
 }
diff --git a/pkgs/development/ocaml-modules/lablgtk3/sourceview3.nix b/pkgs/development/ocaml-modules/lablgtk3/sourceview3.nix
index 0e8ba3ef3ff..a0560029880 100644
--- a/pkgs/development/ocaml-modules/lablgtk3/sourceview3.nix
+++ b/pkgs/development/ocaml-modules/lablgtk3/sourceview3.nix
@@ -4,5 +4,5 @@ buildDunePackage {
   pname = "lablgtk3-sourceview3";
   buildInputs = lablgtk3.buildInputs ++ [ gtksourceview ];
   propagatedBuildInputs = [ lablgtk3 ];
-  inherit (lablgtk3) src version meta nativeBuildInputs;
+  inherit (lablgtk3) src version useDune2 meta nativeBuildInputs;
 }
diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix
index 3ee09b2d51c..5a6daa54de3 100644
--- a/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/pkgs/development/ocaml-modules/labltk/default.nix
@@ -1,46 +1,24 @@
-{ stdenv, lib, fetchurl, fetchzip, ocaml, findlib, tcl, tk }:
+{ stdenv, lib, makeWrapper, fetchzip, ocaml, findlib, tcl, tk }:
 
-let OCamlVersionAtLeast = lib.versionAtLeast ocaml.version; in
-
-if !OCamlVersionAtLeast "4.04"
-then throw "labltk is not available for OCaml ${ocaml.version}"
-else
-
-let param =
-  let mkNewParam = { version, sha256 }: {
+let
+ params =
+  let mkNewParam = { version, sha256, rev ? version }: {
     inherit version;
     src = fetchzip {
-      url = "https://github.com/garrigue/labltk/archive/${version}.tar.gz";
-      inherit sha256;
-    };
-  }; in
-  let mkOldParam = { version, key, sha256 }: {
-    src = fetchurl {
-      url = "https://forge.ocamlcore.org/frs/download.php/${key}/labltk-${version}.tar.gz";
+      url = "https://github.com/garrigue/labltk/archive/${rev}.tar.gz";
       inherit sha256;
     };
-    inherit version;
   }; in
  rec {
-  "4.04" = mkOldParam {
-    version = "8.06.2";
-    key = "1628";
-    sha256 = "1p97j9s33axkb4yyl0byhmhlyczqarb886ajpyggizy2br3a0bmk";
-  };
-  "4.05" = mkOldParam {
-    version = "8.06.3";
-    key = "1701";
-    sha256 = "1rka9jpg3kxqn7dmgfsa7pmsdwm16x7cn4sh15ijyyrad9phgdxn";
-  };
-  "4.06" = mkOldParam {
+  "4.06" = mkNewParam {
     version = "8.06.4";
-    key = "1727";
-    sha256 = "0j3rz0zz4r993wa3ssnk5s416b1jhj58l6z2jk8238a86y7xqcii";
+    rev = "labltk-8.06.4";
+    sha256 = "03xwnnnahb2rf4siymzqyqy8zgrx3h26qxjgbp5dh1wdl7n02c7g";
   };
-  "4.07" = mkOldParam {
+  "4.07" = mkNewParam {
     version = "8.06.5";
-    key = "1764";
-    sha256 = "0wgx65y1wkgf22ihpqmspqfp95fqbj3pldhp1p3b1mi8rmc37zwj";
+    rev = "1b71e2c6f3ae6847d3d5e79bf099deb7330fb419";
+    sha256 = "02vchmrm3izrk7daldd22harhgrjhmbw6i1pqw6hmfmrmrypypg2";
   };
   _8_06_7 = mkNewParam {
     version = "8.06.7";
@@ -60,14 +38,16 @@ let param =
     version = "8.06.10";
     sha256 = "06cck7wijq4zdshzhxm6jyl8k3j0zglj2axsyfk6q1sq754zyf4a";
   };
-}.${builtins.substring 0 4 ocaml.version};
+ };
+ param = params . ${lib.versions.majorMinor ocaml.version}
+   or (throw "labltk is not available for OCaml ${ocaml.version}");
 in
 
 stdenv.mkDerivation rec {
   inherit (param) version src;
   name = "ocaml${ocaml.version}-labltk-${version}";
 
-  buildInputs = [ ocaml findlib tcl tk ];
+  buildInputs = [ ocaml findlib tcl tk makeWrapper ];
 
   configureFlags = [ "--use-findlib" "--installbindir" "$(out)/bin" ];
   dontAddPrefix = true;
@@ -79,6 +59,10 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $OCAMLFIND_DESTDIR/stublibs
     mv $OCAMLFIND_DESTDIR/labltk/dlllabltk.so $OCAMLFIND_DESTDIR/stublibs/
+    for p in $out/bin/*
+    do
+      wrapProgram $p --set CAML_LD_LIBRARY_PATH $OCAMLFIND_DESTDIR/stublibs
+    done
   '';
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/letsencrypt/default.nix b/pkgs/development/ocaml-modules/letsencrypt/default.nix
new file mode 100644
index 00000000000..b3c0d4f8941
--- /dev/null
+++ b/pkgs/development/ocaml-modules/letsencrypt/default.nix
@@ -0,0 +1,84 @@
+{ buildDunePackage
+, lib
+, fetchurl
+, astring
+, asn1-combinators
+, uri
+, rresult
+, base64
+, cmdliner
+, cohttp
+, cohttp-lwt
+, cohttp-lwt-unix
+, zarith
+, logs
+, fmt
+, lwt
+, mirage-crypto
+, mirage-crypto-pk
+, mirage-crypto-rng
+, x509
+, yojson
+, ounit
+, dns
+, dns-tsig
+, ptime
+, bos
+, fpath
+, randomconv
+, domain-name
+}:
+
+buildDunePackage rec {
+  pname = "letsencrypt";
+  version = "0.2.4";
+
+  src = fetchurl {
+    url = "https://github.com/mmaker/ocaml-letsencrypt/releases/download/v${version}/letsencrypt-v${version}.tbz";
+    sha256 = "91c79828a50243804da29c17563c54d2d528a79207e5b874dce6a3e7fedf7567";
+  };
+
+  minimumOCamlVersion = "4.08";
+  useDune2 = true;
+
+  buildInputs = [
+    cmdliner
+    cohttp
+    cohttp-lwt-unix
+    zarith
+    fmt
+    mirage-crypto-rng
+    ptime
+    bos
+    fpath
+    randomconv
+    domain-name
+  ];
+
+  propagatedBuildInputs = [
+    logs
+    yojson
+    lwt
+    base64
+    mirage-crypto
+    mirage-crypto-pk
+    asn1-combinators
+    x509
+    uri
+    dns
+    dns-tsig
+    rresult
+    astring
+    cohttp-lwt
+  ];
+
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  meta = {
+    description = "ACME implementation in OCaml";
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.sternenseemann ];
+    homepage = "https://github.com/mmaker/ocaml-letsencrypt";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-bootvar-xen/default.nix b/pkgs/development/ocaml-modules/mirage-bootvar-xen/default.nix
new file mode 100644
index 00000000000..c280853488d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-bootvar-xen/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mirage-xen
+, parse-argv
+, lwt
+}:
+
+buildDunePackage rec {
+  pname = "mirage-bootvar-xen";
+  version = "0.8.0";
+
+  minimumOCamlVersion = "4.08";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage-bootvar-xen/releases/download/v${version}/mirage-bootvar-xen-v${version}.tbz";
+    sha256 = "0nk80giq9ng3svbnm68fjby2f1dnarddm3lk7mw7w59av71q0rcv";
+  };
+
+  propagatedBuildInputs = [
+    mirage-xen
+    lwt
+    parse-argv
+  ];
+
+  meta = with lib; {
+    description = "Handle boot-time arguments for Xen platform";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/mirage/mirage-bootvar-xen";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index eec6f447dc4..549838db396 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, bigarray-compat, pkg-config
 , withFreestanding ? false
 , ocaml-freestanding
 }:
@@ -7,11 +7,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.9.2";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "da200c0afdbe63474ab19f2bc616e26c10b0e4fbb53fb97fefb2794212f5d442";
+    sha256 = "028e2fc1f0a3e9b06603c6a253ecd043100099bc1c12c0567d8bc46d3781499c";
   };
 
   useDune2 = true;
@@ -21,7 +21,7 @@ buildDunePackage rec {
 
   nativeBuildInputs = [ dune-configurator pkg-config ];
   propagatedBuildInputs = [
-    cstruct eqaf
+    cstruct eqaf bigarray-compat
   ] ++ lib.optionals withFreestanding [
     ocaml-freestanding
   ];
diff --git a/pkgs/development/ocaml-modules/mirage-net-xen/default.nix b/pkgs/development/ocaml-modules/mirage-net-xen/default.nix
new file mode 100644
index 00000000000..0d7a7e53fb1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-net-xen/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildDunePackage
+, netchannel
+, ppx_sexp_conv
+, lwt
+, cstruct
+, mirage-net
+, mirage-xen
+, io-page
+, lwt-dllist
+, logs
+}:
+
+buildDunePackage {
+  pname = "mirage-net-xen";
+
+  inherit (netchannel)
+    src
+    version
+    useDune2
+    minimumOCamlVersion
+    meta
+    ;
+
+  nativeBuildInputs = [
+    ppx_sexp_conv
+  ];
+
+  propagatedBuildInputs = [
+    lwt
+    cstruct
+    netchannel
+    mirage-net
+    mirage-xen
+    io-page
+    lwt-dllist
+    logs
+  ];
+}
diff --git a/pkgs/development/ocaml-modules/mirage-xen/default.nix b/pkgs/development/ocaml-modules/mirage-xen/default.nix
new file mode 100644
index 00000000000..0d53d0f9c3b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-xen/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, pkg-config
+, cstruct
+, lwt
+, shared-memory-ring-lwt
+, xenstore
+, lwt-dllist
+, mirage-profile
+, mirage-runtime
+, logs
+, fmt
+, ocaml-freestanding
+, bheap
+, duration
+, io-page
+}:
+
+buildDunePackage rec {
+  pname = "mirage-xen";
+  version = "6.0.0";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage-xen/releases/download/v${version}/mirage-xen-v${version}.tbz";
+    sha256 = "f991e972059b27993c287ad010d9281fee061efaa1dd475d0955179f93710fbd";
+  };
+
+  patches = [
+    ./makefile-no-opam.patch
+    ./pkg-config.patch
+  ];
+
+  # can't handle OCAMLFIND_DESTDIR with substituteAll
+  postPatch = ''
+    substituteInPlace lib/bindings/mirage-xen.pc \
+      --replace "@out@" "$out" \
+      --replace "@OCAMLFIND_DESTDIR@" "$OCAMLFIND_DESTDIR"
+  '';
+
+  minimumOCamlVersion = "4.08";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    cstruct
+    lwt
+    shared-memory-ring-lwt
+    xenstore
+    lwt-dllist
+    mirage-profile
+    mirage-runtime
+    io-page
+    logs
+    fmt
+    bheap
+    duration
+    (ocaml-freestanding.override { target = "xen"; })
+  ];
+
+  # Move pkg-config files into their well-known location.
+  # This saves us an extra setup hook and causes no issues
+  # since we patch all relative paths out of the .pc file.
+  postInstall = ''
+    mv $OCAMLFIND_DESTDIR/pkgconfig $out/lib/pkgconfig
+  '';
+
+  meta = with lib; {
+    description = "Xen core platform libraries for MirageOS";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/mirage/mirage-xen";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-xen/makefile-no-opam.patch b/pkgs/development/ocaml-modules/mirage-xen/makefile-no-opam.patch
new file mode 100644
index 00000000000..905e6efc3f4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-xen/makefile-no-opam.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/bindings/Makefile b/lib/bindings/Makefile
+index 4e413c0..67c7bdc 100644
+--- a/lib/bindings/Makefile
++++ b/lib/bindings/Makefile
+@@ -1,4 +1,6 @@
+-PKG_CONFIG_PATH := $(shell opam config var prefix)/lib/pkgconfig
++ifneq (, $(shell command -v opam))
++	PKG_CONFIG_PATH ?= $(shell opam config var prefix)/lib/pkgconfig
++endif
+ 
+ CC ?= cc
+ FREESTANDING_CFLAGS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) pkg-config --cflags ocaml-freestanding)
diff --git a/pkgs/development/ocaml-modules/mirage-xen/pkg-config.patch b/pkgs/development/ocaml-modules/mirage-xen/pkg-config.patch
new file mode 100644
index 00000000000..19205cf7ee4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-xen/pkg-config.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/bindings/mirage-xen.pc b/lib/bindings/mirage-xen.pc
+index a03a217..8499aa4 100644
+--- a/lib/bindings/mirage-xen.pc
++++ b/lib/bindings/mirage-xen.pc
+@@ -1,6 +1,6 @@
+-prefix=${pcfiledir}/../..
++prefix=@out@
+ exec_prefix=${prefix}
+-libdir=${exec_prefix}/lib
++libdir=@OCAMLFIND_DESTDIR@
+ 
+ Name: mirage-xen
+ Version: 6.0.0
diff --git a/pkgs/development/ocaml-modules/netchannel/default.nix b/pkgs/development/ocaml-modules/netchannel/default.nix
new file mode 100644
index 00000000000..e7b021d6fbe
--- /dev/null
+++ b/pkgs/development/ocaml-modules/netchannel/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppx_sexp_conv
+, ppx_cstruct
+, lwt
+, mirage-net
+, io-page
+, mirage-xen
+, ipaddr
+, mirage-profile
+, shared-memory-ring
+, sexplib
+, logs
+, rresult
+}:
+
+buildDunePackage rec {
+  pname = "netchannel";
+  version = "2.0.0";
+
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.08";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage-net-xen/releases/download/v${version}/mirage-net-xen-v${version}.tbz";
+    sha256 = "ec3906ef1804ef6a9e36b91f4ae73ce4849e9e0d1d36a80fe66b5f905fab93ad";
+  };
+
+  nativeBuildInputs = [
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    ppx_sexp_conv
+    lwt
+    mirage-net
+    io-page
+    mirage-xen
+    ipaddr
+    mirage-profile
+    shared-memory-ring
+    sexplib
+    logs
+    rresult
+  ];
+
+  meta = with lib; {
+    description = "Network device for reading and writing Ethernet frames via then Xen netfront/netback protocol";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/mirage/mirage-net-xen";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/paf/default.nix b/pkgs/development/ocaml-modules/paf/default.nix
new file mode 100644
index 00000000000..0c91051e243
--- /dev/null
+++ b/pkgs/development/ocaml-modules/paf/default.nix
@@ -0,0 +1,82 @@
+{ buildDunePackage
+, lib
+, fetchurl
+, fetchpatch
+, mirage-stack
+, mirage-time
+, httpaf
+, tls-mirage
+, mimic
+, cohttp-lwt
+, letsencrypt
+, emile
+, ke
+, bigstringaf
+, domain-name
+, duration
+, faraday
+, ipaddr
+, tls
+, x509
+, lwt
+, logs
+, fmt
+, mirage-crypto-rng
+, tcpip
+, mirage-time-unix
+, ptime
+, uri
+, alcotest-lwt
+}:
+
+buildDunePackage rec {
+  pname = "paf";
+  version = "0.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/dinosaure/paf-le-chien/releases/download/${version}/paf-${version}.tbz";
+    sha256 = "7a794c21ce458bda302553b0f5ac128c067579fbb3b7b8fba9b410446c43e790";
+  };
+
+  useDune2 = true;
+  minimumOCamlVersion = "4.08";
+
+  propagatedBuildInputs = [
+    mirage-stack
+    mirage-time
+    httpaf
+    tls-mirage
+    mimic
+    cohttp-lwt
+    letsencrypt
+    emile
+    ke
+    bigstringaf
+    domain-name
+    ipaddr
+    duration
+    faraday
+    tls
+    x509
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    lwt
+    logs
+    fmt
+    mirage-crypto-rng
+    tcpip
+    mirage-time-unix
+    ptime
+    uri
+    alcotest-lwt
+  ];
+
+  meta = {
+    description = "HTTP/AF and MirageOS";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.sternenseemann ];
+    homepage = "https://github.com/dinosaure/paf-le-chien";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/path_glob/default.nix b/pkgs/development/ocaml-modules/path_glob/default.nix
new file mode 100644
index 00000000000..ed6363bad26
--- /dev/null
+++ b/pkgs/development/ocaml-modules/path_glob/default.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage, fetchurl }:
+
+buildDunePackage rec {
+  pname = "path_glob";
+  version = "0.2";
+  useDune2 = true;
+  src = fetchurl {
+    url = "https://gasche.gitlab.io/path_glob/releases/path_glob-${version}.tbz";
+    sha256 = "01ra20bzjiihbgma74axsp70gqmid6x7jmiizg48mdkni0aa42ay";
+  };
+
+  meta = {
+    homepage = "https://gitlab.com/gasche/path_glob";
+    description = "Checking glob patterns on paths";
+    license = lib.licenses.lgpl2Only;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/postgresql/default.nix b/pkgs/development/ocaml-modules/postgresql/default.nix
index 82875dbd8b3..a63876ec5bb 100644
--- a/pkgs/development/ocaml-modules/postgresql/default.nix
+++ b/pkgs/development/ocaml-modules/postgresql/default.nix
@@ -1,8 +1,10 @@
-{ lib, fetchFromGitHub, buildDunePackage, postgresql }:
+{ lib, fetchFromGitHub, buildDunePackage, dune-configurator, postgresql }:
 
 buildDunePackage rec {
   pname = "postgresql";
-  version = "4.6.3";
+  version = "5.0.0";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.08";
 
@@ -10,10 +12,10 @@ buildDunePackage rec {
     owner = "mmottl";
     repo = "postgresql-ocaml";
     rev = version;
-    sha256 = "0fd96qqwkwjhv6pawk4wivwncszkif0sq05f0g5gd28jzwrsvpqr";
+    sha256 = "1i4pnh2v00i0s7s9pcwz1x6s4xcd77d08gjjkvy0fmda6mqq6ghn";
   };
 
-  buildInputs = [ postgresql ];
+  buildInputs = [ dune-configurator postgresql ];
 
   meta = {
     description = "Bindings to the PostgreSQL library";
diff --git a/pkgs/development/ocaml-modules/safepass/default.nix b/pkgs/development/ocaml-modules/safepass/default.nix
index 04c494403be..e8a50f45119 100644
--- a/pkgs/development/ocaml-modules/safepass/default.nix
+++ b/pkgs/development/ocaml-modules/safepass/default.nix
@@ -2,13 +2,15 @@
 
 buildDunePackage rec {
   pname = "safepass";
-  version = "3.0";
+  version = "3.1";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "darioteixeira";
     repo = "ocaml-safepass";
     rev = "v${version}";
-    sha256 = "0i127gs9x23wzwa1q3dxa2j6hby07hvxdg1c98fc3j09rg6vy2bs";
+    sha256 = "1cwslwdb1774lfmhcclj9kymvidbcpjx1vp16jnjirqdqgl4zs5q";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/sedlex/2.nix b/pkgs/development/ocaml-modules/sedlex/2.nix
index 927acc1819e..6db40dd9c7e 100644
--- a/pkgs/development/ocaml-modules/sedlex/2.nix
+++ b/pkgs/development/ocaml-modules/sedlex/2.nix
@@ -4,12 +4,11 @@
 , buildDunePackage
 , ocaml
 , gen
-, ppx_tools_versioned
-, ocaml-migrate-parsetree
+, ppxlib
 , uchar
 }:
 
-if lib.versionOlder ocaml.version "4.02.3"
+if lib.versionOlder ocaml.version "4.08"
 then throw "sedlex is not available for OCaml ${ocaml.version}"
 else
 
@@ -32,7 +31,7 @@ let
 in
 buildDunePackage rec {
   pname = "sedlex";
-  version = "2.2";
+  version = "2.3";
 
   useDune2 = true;
 
@@ -40,11 +39,11 @@ buildDunePackage rec {
     owner = "ocaml-community";
     repo = "sedlex";
     rev = "v${version}";
-    sha256 = "18dwl2is5j26z6b1c47b81wvcpxw44fasppdadsrs9vsw63rwcm3";
+    sha256 = "0iw3phlaqr27jdf857hmj5v5hdl0vngbb2h37p2ll18sw991fxar";
   };
 
   propagatedBuildInputs = [
-    gen uchar ocaml-migrate-parsetree ppx_tools_versioned
+    gen uchar ppxlib
   ];
 
   preBuild = ''
@@ -60,6 +59,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocaml-community/sedlex";
+    changelog = "https://github.com/ocaml-community/sedlex/raw/v${version}/CHANGES";
     description = "An OCaml lexer generator for Unicode";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.marsam ];
diff --git a/pkgs/development/ocaml-modules/shared-memory-ring/default.nix b/pkgs/development/ocaml-modules/shared-memory-ring/default.nix
new file mode 100644
index 00000000000..3a96d4adee4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/shared-memory-ring/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppx_cstruct
+, mirage-profile
+, cstruct
+, ounit
+}:
+
+buildDunePackage rec {
+  pname = "shared-memory-ring";
+  version = "3.1.0";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/shared-memory-ring/releases/download/v${version}/shared-memory-ring-v${version}.tbz";
+    sha256 = "06350ph3rdfvybi0cgs3h3rdkmjspk3c4375rxvbdg0kza1w22x1";
+  };
+
+  nativeBuildInputs = [
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    mirage-profile
+    cstruct
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    ounit
+  ];
+
+  meta = with lib; {
+    description = "Shared memory rings for RPC and bytestream communications";
+    license = licenses.isc;
+    homepage = "https://github.com/mirage/shared-memory-ring";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix b/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix
new file mode 100644
index 00000000000..8f41253bab8
--- /dev/null
+++ b/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildDunePackage
+, shared-memory-ring
+, ppx_cstruct
+, cstruct
+, lwt
+, lwt-dllist
+, mirage-profile
+, ounit
+}:
+
+buildDunePackage {
+  pname = "shared-memory-ring-lwt";
+
+  inherit (shared-memory-ring) version src useDune2;
+
+  buildInputs = [
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    shared-memory-ring
+    cstruct
+    lwt
+    lwt-dllist
+    mirage-profile
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    ounit
+  ];
+
+  meta = shared-memory-ring.meta // {
+    description = "Shared memory rings for RPC and bytestream communications using Lwt";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/wayland/default.nix b/pkgs/development/ocaml-modules/wayland/default.nix
new file mode 100644
index 00000000000..82764af64f5
--- /dev/null
+++ b/pkgs/development/ocaml-modules/wayland/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, xmlm
+, lwt
+, logs
+, fmt
+, cstruct
+, cmdliner
+, alcotest-lwt
+}:
+
+buildDunePackage rec {
+  pname = "wayland";
+  version = "0.2";
+
+  minimumOCamlVersion = "4.08";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/talex5/ocaml-wayland/releases/download/v${version}/wayland-v${version}.tbz";
+    sha256 = "4eb323e42a8c64e9e49b15a588342bfcc1e99640305cb261d128c75612d9458c";
+  };
+
+  propagatedBuildInputs = [
+    lwt
+    logs
+    fmt
+    cstruct
+  ];
+
+  buildInputs = [
+    cmdliner
+    xmlm
+  ];
+
+  checkInputs = [
+    alcotest-lwt
+  ];
+  doCheck = true;
+
+  meta = {
+    description = "Pure OCaml Wayland protocol library";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.sternenseemann ];
+    homepage = "https://github.com/talex5/ocaml-wayland";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index 23efd4bb9fc..637105361fd 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchurl, buildDunePackage, fetchpatch
+{ lib, fetchurl, buildDunePackage
 , alcotest, cstruct-unix
-, asn1-combinators, domain-name, fmt, gmap, rresult, mirage-crypto, mirage-crypto-pk
+, asn1-combinators, domain-name, fmt, gmap, pbkdf, rresult, mirage-crypto, mirage-crypto-ec, mirage-crypto-pk
 , logs, base64
 }:
 
@@ -8,25 +8,17 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
 
   pname = "x509";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
-    sha256 = "1b4lcphmlyjhdgqi0brakgjp3diwmrj1y9hx87svi5xklw3zik22";
+    sha256 = "04g59j8sn8am0z0a94h8cyvr6cqzd5gkn2lj6g51nb5dkwajj19h";
   };
 
-  patches = [
-    # fix tests for mirage-crypto >= 0.8.9, can be removed at next release
-    (fetchpatch {
-      url = "https://github.com/mirleft/ocaml-x509/commit/ba1fdd4432950293e663416a0c454c8c04a71c0f.patch";
-      sha256 = "1rbjf7408772ns3ypk2hyw9v17iy1kcx84plr1rqc56iwk9zzxmr";
-    })
-  ];
-
   useDune2 = true;
 
   buildInputs = [ alcotest cstruct-unix ];
-  propagatedBuildInputs = [ asn1-combinators domain-name fmt gmap mirage-crypto mirage-crypto-pk rresult  logs base64 ];
+  propagatedBuildInputs = [ asn1-combinators domain-name fmt gmap mirage-crypto mirage-crypto-pk mirage-crypto-ec pbkdf rresult logs base64 ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/xenstore_transport/default.nix b/pkgs/development/ocaml-modules/xenstore_transport/default.nix
index f0bb908e5db..1981f2d5cab 100644
--- a/pkgs/development/ocaml-modules/xenstore_transport/default.nix
+++ b/pkgs/development/ocaml-modules/xenstore_transport/default.nix
@@ -22,6 +22,6 @@ buildDunePackage rec {
   meta = with lib; {
     description = "Low-level libraries for connecting to a xenstore service on a xen host";
     license = licenses.lgpl21Only;
-    homepage = "http://github.com/xapi-project/ocaml-xenstore-clients";
+    homepage = "https://github.com/xapi-project/ocaml-xenstore-clients";
   };
 }
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index c7b57eae906..9beacd65a64 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -5,10 +5,8 @@
 assert attrs?pname -> attrs?version;
 assert attrs?pname -> !(attrs?name);
 
-(if attrs ? name then
-  lib.trivial.warn "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
- else
-  (x: x))
+lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
+
 toPerlModule(stdenv.mkDerivation (
   (
   lib.recursiveUpdate
diff --git a/pkgs/development/php-packages/composer/1.x.nix b/pkgs/development/php-packages/composer/1.x.nix
index 4660da9532d..35cee92972e 100644
--- a/pkgs/development/php-packages/composer/1.x.nix
+++ b/pkgs/development/php-packages/composer/1.x.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "1.10.15";
+  version = "1.10.22";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "1shsxsrc2kq74s1jbq3njn9wzidcz7ak66n9vyz8z8d0hqpg37d6";
+    sha256 = "00073smi1jja00d4bqfs6p4fqs38mki2ziy7b1kwsmiv5lcsw9v1";
   };
 
   dontUnpack = true;
@@ -16,11 +16,13 @@ mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     install -D $src $out/libexec/composer/composer.phar
     makeWrapper ${php}/bin/php $out/bin/composer \
       --add-flags "$out/libexec/composer/composer.phar" \
       --prefix PATH : ${lib.makeBinPath [ unzip ]}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix
index d704b5f9a27..6a9cffa8ae7 100644
--- a/pkgs/development/php-packages/composer/default.nix
+++ b/pkgs/development/php-packages/composer/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "2.0.11";
+  version = "2.0.13";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "sha256-6r8pFwcglqlGeRk3YlATGeYh4rNppKElaywn9OaYRHc=";
+    sha256 = "sha256-EW/fB8ySavZGY1pqvJLYiv97AqXcNlOPgcUKfSc2bb8=";
   };
 
   dontUnpack = true;
@@ -16,11 +16,13 @@ mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/bin
     install -D $src $out/libexec/composer/composer.phar
     makeWrapper ${php}/bin/php $out/bin/composer \
       --add-flags "$out/libexec/composer/composer.phar" \
       --prefix PATH : ${lib.makeBinPath [ unzip ]}
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/php-packages/couchbase/default.nix b/pkgs/development/php-packages/couchbase/default.nix
index 3566c7916e5..24d4e02a328 100644
--- a/pkgs/development/php-packages/couchbase/default.nix
+++ b/pkgs/development/php-packages/couchbase/default.nix
@@ -17,7 +17,7 @@ buildPecl {
   broken = lib.versionAtLeast php.version "8.0";
 
   buildInputs = [ libcouchbase zlib ];
-  internalDeps = [] ++ lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
+  internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
   peclDeps = [ php.extensions.igbinary ];
 
   patches = [
diff --git a/pkgs/development/python-modules/Fabric/default.nix b/pkgs/development/python-modules/Fabric/default.nix
index 1025ed6a05e..2e70d3aa121 100644
--- a/pkgs/development/python-modules/Fabric/default.nix
+++ b/pkgs/development/python-modules/Fabric/default.nix
@@ -9,13 +9,19 @@
 
 buildPythonPackage rec {
   pname = "fabric";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19nzdibjfndzcwvby20p59igqwyzw7skrb45v2mxqsjma5yjv114";
+    sha256 = "47f184b070272796fd2f9f0436799e18f2ccba4ee8ee587796fca192acd46cd2";
   };
 
+  # only relevant to python < 3.4
+  postPatch = ''
+    substituteInPlace setup.py \
+        --replace ', "pathlib2"' ' '
+  '';
+
   propagatedBuildInputs = [ invoke paramiko cryptography ];
   checkInputs = [ pytest mock pytest-relaxed ];
 
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index 0081051628d..547be5dc4dc 100644
--- a/pkgs/development/python-modules/GitPython/default.nix
+++ b/pkgs/development/python-modules/GitPython/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "GitPython";
-  version = "3.1.13";
+  version = "3.1.14";
   disabled = isPy27; # no longer supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hiGn53fidqXsg4tZKAulJy3RRKGBacNskD2LOLmfdQo=";
+    sha256 = "be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/Markups/default.nix b/pkgs/development/python-modules/Markups/default.nix
index eb802989a5c..012f31c266b 100644
--- a/pkgs/development/python-modules/Markups/default.nix
+++ b/pkgs/development/python-modules/Markups/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "Markups";
-  version = "3.0.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ea19458dfca6a4562044e701aa8698089a0c659fc535689ed260f89a04f8d39";
+    sha256 = "e309d79dde0935576ce1def6752f2127a12e2c2ea2ae8b0c69f99ff8bc12181d";
   };
 
   checkInputs = [ markdown docutils pygments ];
diff --git a/pkgs/development/python-modules/Pygments/2_5.nix b/pkgs/development/python-modules/Pygments/2_5.nix
index 965e6f0ec34..aa59c370d2e 100644
--- a/pkgs/development/python-modules/Pygments/2_5.nix
+++ b/pkgs/development/python-modules/Pygments/2_5.nix
@@ -3,7 +3,6 @@
 , fetchPypi
 , fetchpatch
 , docutils
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -26,7 +25,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ docutils ];
 
-  checkInputs = [ pytestCheckHook ];
+  # Circular dependency with sphinx
+  doCheck = false;
 
   meta = {
     homepage = "https://pygments.org/";
diff --git a/pkgs/development/python-modules/Pygments/default.nix b/pkgs/development/python-modules/Pygments/default.nix
index 48d74fddd43..1f4795ac382 100644
--- a/pkgs/development/python-modules/Pygments/default.nix
+++ b/pkgs/development/python-modules/Pygments/default.nix
@@ -2,23 +2,22 @@
 , buildPythonPackage
 , fetchPypi
 , docutils
-, pytestCheckHook
-, doCheck ? true
 }:
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.7.4";
+  version = "2.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337";
+    sha256 = "153zyxigm879sk2n71lfv03y2pgxb7dl0dlsbwkz9aydxnkf2mi6";
   };
 
   propagatedBuildInputs = [ docutils ];
 
-  inherit doCheck;
-  checkInputs = [ pytestCheckHook ];
+  # Circular dependency with sphinx
+  doCheck = false;
+  pythonImportsCheck = [ "pygments" ];
 
   meta = {
     homepage = "https://pygments.org/";
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index e70d830b7be..ddb6ae1c2e9 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "absl-py";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "673cccb88d810e5627d0c1c818158485d106f65a583880e2f730c997399bcfa7";
+    sha256 = "b44f68984a5ceb2607d135a615999b93924c771238a63920d17d3387b0d229d5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index ac4768c31d8..5d0ee6f7c42 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.5.0";
+  version = "3.8.0";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-QJeb9+iiS4QZ7poOBp5oKD5KuagkG6cfTalbNRwrI1M=";
+    sha256 = "sha256-AjUpxdY/5IoWMBtufP3OVnMpUwpxgpCNWoydH1w+t+Y=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/adb-enhanced/default.nix b/pkgs/development/python-modules/adb-enhanced/default.nix
index 59eb468868a..62922efa530 100644
--- a/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "adb-enhanced";
-  version = "2.5.10";
+  version = "2.5.11";
 
   disabled = pythonOlder "3.4";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "ashishb";
     repo = pname;
     rev = version;
-    sha256 = "sha256-JMbcOk9Yr4WbfVUMKe5zZZWvvjKwhpPMdBt9d7xE6ek=";
+    sha256 = "sha256-jb5O7Qxk2xAX5sax6nqywcGBJao5Xfff9s1yvdfvDCs=";
   };
 
   postPatch = ''
@@ -30,5 +30,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ashishb/adb-enhanced";
     license = licenses.asl20;
     maintainers = with maintainers; [ vtuan10 ];
+    mainProgram = "adbe";
   };
 }
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 13386eb12a6..51419440792 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.0.5903";
+  version = "9.0.6885";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-75Ul9JfMFYv3AfBlgmer6IDyfgOAS4AdXexznoxi35Y=";
+    sha256 = "sha256-AtaAVfMCIzStgwwPEt+6tAzjgpSK+KhhMksYK4BH9V0=";
   };
 
   propagatedBuildInputs = [ pyvex ];
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 5d9c3fe1669..f75a0d6bb60 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "1.1.2";
+  version = "1.2.2";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fn9hgcg3qr9f7srjxc21bzkiix4al9308531slwlm99r0x3xcjl";
+    sha256 = "37c23166603a3bd134e5f6fc22dbbf8c274d4d24c71418fba292ed2cd7a0bf43";
   };
 
   # relax version constraints: aiobotocore works with newer botocore versions
diff --git a/pkgs/development/python-modules/aiodiscover/default.nix b/pkgs/development/python-modules/aiodiscover/default.nix
index e724d53bfe7..8a7f72f8b86 100644
--- a/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/pkgs/development/python-modules/aiodiscover/default.nix
@@ -2,22 +2,23 @@
 , async-dns
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , ifaddr
 , pyroute2
+, pytest-asyncio
+, pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.3.3";
+  version = "1.3.4";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "186agrjx818vn00d3pqlka5ir48rgpbfyn1cifkn9ylsxg9cz3ph";
+    sha256 = "sha256-TmWl5d5HwyqWPUjwtEvc5FzVfxV/K1pekljcMkGN0Ag=";
   };
 
   propagatedBuildInputs = [
@@ -30,9 +31,21 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace '"pytest-runner>=5.2",' ""
   '';
 
-  # Tests require access to /etc/resolv.conf
-  # pythonImportsCheck doesn't work as async-dns wants to create its CONFIG_DIR
-  doCheck = false;
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  disabledTests = [
+    # Tests require access to /etc/resolv.conf
+    "test_async_discover_hosts"
+  ];
+
+  pythonImportsCheck = ["aiodiscover"];
 
   meta = with lib; {
     description = "Python module to discover hosts via ARP and PTR lookup";
diff --git a/pkgs/development/python-modules/aiodns/default.nix b/pkgs/development/python-modules/aiodns/default.nix
index 1adc6f81524..b2d725e8378 100644
--- a/pkgs/development/python-modules/aiodns/default.nix
+++ b/pkgs/development/python-modules/aiodns/default.nix
@@ -1,9 +1,11 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
-, isPy27, isPyPy, python, pycares, typing, trollius }:
+, python, pycares, typing ? null
+}:
 
 buildPythonPackage rec {
   pname = "aiodns";
   version = "2.0.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -11,8 +13,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pycares ]
-    ++ lib.optional (pythonOlder "3.7") typing
-    ++ lib.optional (isPy27 || isPyPy) trollius;
+    ++ lib.optional (pythonOlder "3.7") typing;
 
   checkPhase = ''
     ${python.interpreter} tests.py
diff --git a/pkgs/development/python-modules/aioeventlet/default.nix b/pkgs/development/python-modules/aioeventlet/default.nix
deleted file mode 100644
index 0d6796706cb..00000000000
--- a/pkgs/development/python-modules/aioeventlet/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, eventlet
-, trollius
-, mock
-, python
-}:
-
-buildPythonPackage rec {
-  pname = "aioeventlet";
-  # version is called 0.5.1 on PyPI, but the filename is aioeventlet-0.5.2.tar.gz
-  version = "0.5.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cecb51ea220209e33b53cfb95124d90e4fcbee3ff8ba8a179a57120b8624b16a";
-  };
-
-  propagatedBuildInputs = [ eventlet trollius ];
-  buildInputs = [ mock ];
-
-  # 2 tests error out
-  doCheck = false;
-  checkPhase = ''
-    ${python.interpreter} runtests.py
-  '';
-
-  meta = with lib; {
-    description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes";
-    homepage = "https://pypi.org/project/aioeventlet/";
-    license = licenses.asl20;
-  };
-
-}
diff --git a/pkgs/development/python-modules/aiohttp-cors/default.nix b/pkgs/development/python-modules/aiohttp-cors/default.nix
index 00198cd27cf..fc5dc87f4ef 100644
--- a/pkgs/development/python-modules/aiohttp-cors/default.nix
+++ b/pkgs/development/python-modules/aiohttp-cors/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
-, typing, aiohttp
+, typing ? null, aiohttp
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aioimaplib/default.nix b/pkgs/development/python-modules/aioimaplib/default.nix
index 6345755bffc..a94818aee5c 100644
--- a/pkgs/development/python-modules/aioimaplib/default.nix
+++ b/pkgs/development/python-modules/aioimaplib/default.nix
@@ -8,20 +8,19 @@
 , nose
 , pyopenssl
 , pytestCheckHook
-, pythonOlder
 , pytz
 , tzlocal
 }:
 
 buildPythonPackage rec {
   pname = "aioimaplib";
-  version = "0.7.18";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "bamthomas";
     repo = pname;
     rev = version;
-    sha256 = "037fxwmkdfb95cqcykrhn37p138wg9pvlsgdf45vyn1mhz5crky5";
+    sha256 = "sha256-xxZAeJDuqrPv4kGgDr0ypFuZJk1zcs/bmgeEzI0jpqY=";
   };
 
   checkInputs = [
@@ -36,9 +35,6 @@ buildPythonPackage rec {
     tzlocal
   ];
 
-  # Project is using asynctest with doesn't work with Python 3.8 and above
-  # https://github.com/bamthomas/aioimaplib/issues/54
-  doCheck = pythonOlder "3.8";
   pythonImportsCheck = [ "aioimaplib" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiorecollect/default.nix b/pkgs/development/python-modules/aiorecollect/default.nix
index 53daf1f2269..1bce60ce6af 100644
--- a/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/pkgs/development/python-modules/aiorecollect/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiohttp
 , aresponses
-, async-timeout
 , buildPythonPackage
 , fetchFromGitHub
 , freezegun
@@ -13,19 +12,23 @@
 
 buildPythonPackage rec {
   pname = "aiorecollect";
-  version = "1.0.3";
+  version = "1.0.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-S4HL8vJS/dTKsR5egKRSHqZYPClcET5Le06euHPyIkU=";
+    sha256 = "sha256-A4qk7eo4maCRP4UmtWrRCPvG6YrLVSOiOcfN8pEj5Po=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
 
   checkInputs = [
     aresponses
@@ -35,8 +38,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Ignore the examples as they are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "aiorecollect" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiosmb/default.nix b/pkgs/development/python-modules/aiosmb/default.nix
index 49c67a0aa04..ce20341eae1 100644
--- a/pkgs/development/python-modules/aiosmb/default.nix
+++ b/pkgs/development/python-modules/aiosmb/default.nix
@@ -1,6 +1,7 @@
 { lib
 , asysocks
 , buildPythonPackage
+, colorama
 , fetchPypi
 , minikerberos
 , prompt_toolkit
@@ -13,22 +14,23 @@
 
 buildPythonPackage rec {
   pname = "aiosmb";
-  version = "0.2.37";
+  version = "0.2.41";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0daf1fk7406vpywc0yxv0wzf4nw986js9lc2agfyfxz0q7s29lf0";
+    sha256 = "sha256-hiLLoFswh0rm5f5TsaX+zyRDkOIyzGXVO0M5J5d/gtQ=";
   };
 
   propagatedBuildInputs = [
+    asysocks
+    colorama
     minikerberos
-    winsspi
+    prompt_toolkit
     six
-    asysocks
     tqdm
-    prompt_toolkit
     winacl
+    winsspi
   ];
 
   # Project doesn't have tests
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index 5a4ef5e0bc6..899bea2acb8 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.4.3";
+  version = "1.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5334f32314fb2a56d86b4c4dd1ae34b08c03cae4cb888bc699942104d66bc245";
+    sha256 = "e27fd67732c97a1c370c33169ef4578cf96436fa0e7dcfaeeef4a917d0737d56";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/pkgs/development/python-modules/altair/default.nix b/pkgs/development/python-modules/altair/default.nix
index 99ee559da6b..6e686d9fc90 100644
--- a/pkgs/development/python-modules/altair/default.nix
+++ b/pkgs/development/python-modules/altair/default.nix
@@ -12,7 +12,7 @@
 , six
 , sphinx
 , toolz
-, typing
+, typing ? null
 , vega_datasets
 }:
 
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
new file mode 100644
index 00000000000..5f545c96c9c
--- /dev/null
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, ailment
+, archinfo
+, buildPythonPackage
+, cachetools
+, capstone
+, cffi
+, claripy
+, cle
+, cppheaderparser
+, dpkt
+, fetchFromGitHub
+, GitPython
+, itanium_demangler
+, mulpyplexer
+, networkx
+, progressbar2
+, protobuf
+, psutil
+, pycparser
+, pythonOlder
+, pyvex
+, sqlalchemy
+, rpyc
+, sortedcontainers
+, unicorn
+}:
+
+let
+  # Only the pinned release in setup.py works properly
+  unicorn' = unicorn.overridePythonAttrs (old: rec {
+      pname = "unicorn";
+      version = "1.0.2-rc4";
+      src =  fetchFromGitHub {
+        owner = "unicorn-engine";
+        repo = pname;
+        rev = version;
+        sha256 = "17nyccgk7hpc4hab24yn57f1xnmr7kq4px98zbp2bkwcrxny8gwy";
+    };
+  });
+in
+
+buildPythonPackage rec {
+  pname = "angr";
+  version = "9.0.6885";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-+d1CtouaGv2GussG3QlQMzX0qcmJht9V3QW8RwH6da8=";
+  };
+
+  propagatedBuildInputs = [
+    ailment
+    archinfo
+    cachetools
+    capstone
+    cffi
+    claripy
+    cle
+    cppheaderparser
+    dpkt
+    GitPython
+    itanium_demangler
+    mulpyplexer
+    networkx
+    progressbar2
+    protobuf
+    psutil
+    sqlalchemy
+    pycparser
+    pyvex
+    sqlalchemy
+    rpyc
+    sortedcontainers
+    unicorn'
+  ];
+
+  # Tests have additional requirements, e.g., pypcode and angr binaries
+  # cle is executing the tests with the angr binaries
+  doCheck = false;
+
+  # See http://angr.io/api-doc/
+  pythonImportsCheck = [ "angr" "claripy" "cle" "pyvex" "archinfo" ];
+
+  meta = with lib; {
+    description = "Powerful and user-friendly binary analysis platform";
+    homepage = "https://angr.io/";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
new file mode 100644
index 00000000000..d1c80772bc3
--- /dev/null
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, angr
+, buildPythonPackage
+, fetchFromGitHub
+, progressbar
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "angrop";
+  version = "9.0.6885";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "angr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-B/1BO0MnqklMbyXqdBPA2Dfhr4pMjIIrzXmTzr81OdY=";
+  };
+
+  propagatedBuildInputs = [
+    angr
+    progressbar
+  ];
+
+  # Tests have additional requirements, e.g., angr binaries
+  # cle is executing the tests with the angr binaries already and is a requirement of angr
+  doCheck = false;
+  pythonImportsCheck = [ "angrop" ];
+
+  meta = with lib; {
+    description = "ROP gadget finder and chain builder";
+    homepage = "https://github.com/angr/angrop";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aniso8601/default.nix b/pkgs/development/python-modules/aniso8601/default.nix
index 90d34951e44..f28668a8912 100644
--- a/pkgs/development/python-modules/aniso8601/default.nix
+++ b/pkgs/development/python-modules/aniso8601/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "aniso8601";
-  version = "8.1.1";
+  version = "9.0.1";
 
   meta = with lib; {
     description = "Parses ISO 8601 strings.";
@@ -17,6 +17,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "be08b19c19ca527af722f2d4ba4dc569db292ec96f7de963746df4bb0bff9250";
+    sha256 = "72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973";
   };
 }
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index e404edddbcf..8388cd33e08 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchPypi
 , buildPythonPackage
 , isPy27
@@ -63,6 +64,9 @@ buildPythonPackage rec {
     "test_role_handler_positive"
   ];
 
+  # fails to run tests due to issues with temporary directory
+  doCheck = !stdenv.isDarwin;
+
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ansible ]}" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/arabic-reshaper/default.nix b/pkgs/development/python-modules/arabic-reshaper/default.nix
index ad5f64146a6..88675337b4c 100644
--- a/pkgs/development/python-modules/arabic-reshaper/default.nix
+++ b/pkgs/development/python-modules/arabic-reshaper/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "arabic_reshaper";
-  version = "2.1.1";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "zzGPpdUdLSJPpJv2vbu0aE9r0sBot1z84OYH+JrBmdw=";
+    sha256 = "a236fc6e9dde2a61cc6a5ca962b522e42694e1bb2a2d86894ed7a4eba4ce1890";
   };
 
   propagatedBuildInputs = [ future ]
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index b06e0320dc9..3a5db77cd47 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.0.5903";
+  version = "9.0.6885";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4e+ZGIt/ouZj5rsmaVxUrz8gAq4Yq2+Qx4jdOojB4Sw=";
+    sha256 = "sha256-j0Hxao04ctcV8xCjQjzyQEM4Y3VCFRPuEc9NIhDRut0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/arrow/2.nix b/pkgs/development/python-modules/arrow/2.nix
new file mode 100644
index 00000000000..d87f1ede3cc
--- /dev/null
+++ b/pkgs/development/python-modules/arrow/2.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, nose, chai, simplejson, backports_functools_lru_cache
+, python-dateutil, pytz, pytest-mock, sphinx, dateparser, pytestcov
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "arrow";
+  version = "0.17.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4";
+  };
+
+  propagatedBuildInputs = [ python-dateutil ]
+    ++ lib.optionals isPy27 [ backports_functools_lru_cache ];
+
+  checkInputs = [
+    dateparser
+    pytestCheckHook
+    pytestcov
+    pytest-mock
+    pytz
+    simplejson
+    sphinx
+  ];
+
+  # ParserError: Could not parse timezone expression "America/Nuuk"
+  disabledTests = [
+    "test_parse_tz_name_zzz"
+  ];
+
+  meta = with lib; {
+    description = "Python library for date manipulation";
+    homepage = "https://github.com/crsmithdev/arrow";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index d87f1ede3cc..93347d7a4b4 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "0.17.0";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4";
+    sha256 = "399c9c8ae732270e1aa58ead835a79a40d7be8aa109c579898eb41029b5a231d";
   };
 
   propagatedBuildInputs = [ python-dateutil ]
diff --git a/pkgs/development/python-modules/arviz/default.nix b/pkgs/development/python-modules/arviz/default.nix
index 4005c866811..39a0d38a0e9 100644
--- a/pkgs/development/python-modules/arviz/default.nix
+++ b/pkgs/development/python-modules/arviz/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "arviz";
-  version = "0.10.0";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "arviz-devs";
     repo = "arviz";
     rev = "v${version}";
-    sha256 = "1cnj972knkvi084cfcpc12lv0wxm8xm9clfd55r3hvv42g1ms5d9";
+    sha256 = "0npwrpy262y6zqd0znz4w7ikfdyz4kc4gikmkpj6h1j6vxggrfaa";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index ec630c40d03..f1128c01095 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -9,7 +9,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.3.1";
+  version = "3.3.4";
   pname = "asgiref";
 
   disabled = pythonOlder "3.5";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "00r4l9x425wkbac6b6c2ksm2yjinrvvdf0ajizrzq32h0jg82016";
+    sha256 = "1rr76252l6p12yxc0q4k9wigg1jz8nsqga9c0nixy9q77zhvh9n2";
   };
 
   propagatedBuildInputs = [ async-timeout ];
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index 468488ec0ca..77ac408076c 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.5";
+  version = "2.5.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03dzhjrsc5d2whyjngfrwvxn42058k0cjjr85x2wqzai8psr475k";
+    sha256 = "cfc35498ee64017be059ceffab0a25bedf7548ab76f2bea691c5565896e7128d";
   };
 
   # From astroid/__pkginfo__.py
diff --git a/pkgs/development/python-modules/astropy-healpix/default.nix b/pkgs/development/python-modules/astropy-healpix/default.nix
index 61f49322d3b..e82faba9758 100644
--- a/pkgs/development/python-modules/astropy-healpix/default.nix
+++ b/pkgs/development/python-modules/astropy-healpix/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "astropy-healpix";
-  version = "0.5";
+  version = "0.6";
 
   doCheck = false; # tests require pytest-astropy
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bfdq33mj6mwk5fkc6n23f9bc9z8j7kmvql3zchz4h58jskmvqas";
+    sha256 = "409a6621c383641456c074f0f0350a24a4a58e910eaeef14e9bbce3e00ad6690";
   };
 
   propagatedBuildInputs = [ numpy astropy astropy-helpers ];
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index a25916bc99c..2fa186a07d1 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.16.0";
+  version = "0.16.2";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "sha256-vgy/zn1Xm7Fm7u/YMe/nJa3tyRNKx/WHz0AHfhFaVKo=";
+    sha256 = "0raq3jgh2aqllycvvi0x2j5f602vv8ggmyd3879jzqbz2znngsgb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index b1f0df0b3bc..617d5562b43 100755
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "2.1.2";
+  version = "3.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f852bfd293fdcb0ab2d7a9ea907f8303cf14fe6f55e90c103d4de00393ea9555";
+    sha256 = "7ef384a91a790c807336e2bd6b7554284691aadd6d7413d199baf752dd84c53e";
   };
 
   checkInputs = [ pytestrunner pytest ];
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 12aa86774d8..19015a5729a 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -1,18 +1,18 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k,
-  six, txaio, twisted, zope_interface, cffi, trollius, futures,
+  six, txaio, twisted, zope_interface, cffi,
   mock, pytest, cryptography, pynacl
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "20.12.3";
+  version = "21.3.1";
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15b8zm7jalwisfwc08szxy3bh2bnn0hd41dbsnswi0lqwbh962j1";
+    sha256 = "e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03";
   };
 
-  propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
-    (lib.optionals (!isPy3k) [ trollius futures ]);
+  propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ];
 
   checkInputs = [ mock pytest ];
   checkPhase = ''
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index fa3482c0795..491663b56cd 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.5";
+  version = "1.5.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cae4bc0fb616408191af41d062d7ec7ef8679c7f27b068875ca3a9e2878d5443";
+    sha256 = "5454e6e9a3d02aae38f866eec0d9a7de4ab9f93c10a273fb0340f3d6d09f7514";
   };
 
   propagatedBuildInputs = [ pycodestyle toml ];
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index a343306a5b9..2acec8ccc6f 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.1.2";
+  version = "1.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ae8371d9e6d5bd3e90f3686b433cebc0541c88072655d2c75ec58e79b5d6943";
+    sha256 = "89f126a072d3a6eee091e1afeed87e0b2ed3c34ed31a1814062174de3cab8d9b";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 804ad078acb..30059fe5a93 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.1.0";
+  version = "1.3.0";
 
   # No tests available in PyPI tarball
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "v${version}";
-    sha256 = "1r4939m5k1nj6l9bv972z4fkmkl0z5f5r29bq7588yk113kkqr0c";
+    sha256 = "1cfacp0a5qsaf3crcybslhbfwm1mqfyafj71dlvnidzx7b9bm60v";
   };
 
   # Package is not compatible with Python 3.5
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index 1c067bcec28..d996c34b503 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.32.0";
+  version = "1.35.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "jL+sAlKbeXA1QeJVQbAcgIaPEbD/Ko+QMrI1Ew2dVq4=";
+    sha256 = "5cf7faab3566843f3b44ef1a42a9c106ffb50809da4002faab818076dcc7bff8";
   };
 
   # Tests are not included in the PyPI package
diff --git a/pkgs/development/python-modules/aws-xray-sdk/default.nix b/pkgs/development/python-modules/aws-xray-sdk/default.nix
index 313dd4241d5..0e1c272b3c8 100644
--- a/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "abf5b90f740e1f402e23414c9670e59cb9772e235e271fef2bce62b9100cbc77";
+    sha256 = "697c9068e84dd5d2c1456def3fd0865f226046b5db4db56d738050e425960adf";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-cosmosdb-table/default.nix b/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
index 5c580ccd3e2..8d92e1559d5 100644
--- a/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
+++ b/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
@@ -5,7 +5,7 @@
 , azure-common
 , azure-storage-common
 , azure-cosmosdb-nspkg
-, futures
+, futures ? null
 , isPy3k
 }:
 
diff --git a/pkgs/development/python-modules/azure-datalake-store/default.nix b/pkgs/development/python-modules/azure-datalake-store/default.nix
index 0e97752ae57..f2c57d76623 100644
--- a/pkgs/development/python-modules/azure-datalake-store/default.nix
+++ b/pkgs/development/python-modules/azure-datalake-store/default.nix
@@ -4,7 +4,7 @@
 , requests
 , adal
 , azure-common
-, futures
+, futures ? null
 , pathlib2
 , isPy3k
 }:
diff --git a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
index fcde20b9bf7..1b26495e9b7 100644
--- a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -1,22 +1,24 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
 , azure-common
+, azure-mgmt-core
 , msrest
 , msrestazure
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-synapse";
-  version = "0.7.0";
+  version = "1.0.0";
   disabled = pythonOlder "3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3cf37df471f75441b0afe98a0f3a548434e9bc6a6426dca8c089950b5423f63f";
+    sha256 = "d5514dfef93294a2d9b8ff6fdb353b3102abd5750f147d904e6012f24113ff9c";
     extension = "zip";
   };
 
   propagatedBuildInputs = [
     azure-common
+    azure-mgmt-core
     msrest
     msrestazure
   ];
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index b0c0a9e96cb..d885166daa9 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -5,7 +5,7 @@
 , azure-common
 , azure-core
 , msrestazure
-, futures
+, futures ? null
 , isPy3k
 }:
 
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index 7367e9604b9..bbcf84ef6ac 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -6,7 +6,7 @@
 , azure-storage-common
 , msrest
 , isPy3k
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix
index c6413f191fc..fc98e4207e8 100644
--- a/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -7,7 +7,7 @@
 , azure-core
 , cryptography
 , msrest
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-storage-file/default.nix b/pkgs/development/python-modules/azure-storage-file/default.nix
index 088b5260e65..8ce1d572e8e 100644
--- a/pkgs/development/python-modules/azure-storage-file/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file/default.nix
@@ -4,7 +4,7 @@
 , azure-common
 , azure-storage-common
 , isPy3k
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-storage/default.nix b/pkgs/development/python-modules/azure-storage/default.nix
index e2037bb7d21..258a5ebabb2 100644
--- a/pkgs/development/python-modules/azure-storage/default.nix
+++ b/pkgs/development/python-modules/azure-storage/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , python
 , azure-common
-, futures
+, futures ? null
 , dateutil
 , requests
 , isPy3k
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index cd695132d7a..b4a3e7acaec 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -1,20 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools_scm, isPy27, pytestCheckHook
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm, isPy27, pytestCheckHook
 , requests, arrow, logfury, tqdm }:
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.2.0";
+  version = "1.6.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e46ff9d47a9b90d8b9beab1969fcf4920300b02e20e6bf0745be04e09e8a6ff";
+    sha256 = "sha256-6fjreuMUC056ljddfAidfBbJkvEDndB/dIkx1bF7efs=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace 'setuptools_scm<6.0' 'setuptools_scm'
+    substituteInPlace requirements.txt \
+      --replace 'arrow>=0.8.0,<1.0.0' 'arrow'
+  '';
+
   pythonImportsCheck = [ "b2sdk" ];
 
-  nativebuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
   propagatedBuildInputs = [ requests arrow logfury tqdm ];
 
   # requires unpackaged dependencies like liccheck
diff --git a/pkgs/development/python-modules/backports-entry-points-selectable/default.nix b/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
new file mode 100644
index 00000000000..02117f7282e
--- /dev/null
+++ b/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, importlib-metadata
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "backports.entry-points-selectable";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit version;
+    # pypi project name and tarball name differ
+    pname = builtins.replaceStrings [ "-" ] [ "_" ] pname;
+    sha256 = "4acda84d96855beece3bf9aad9a1030aceb5f744b8ce9af7d5ee6dd672cdd3bd";
+  };
+
+  format = "pyproject";
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Compatibility shim providing selectable entry points for older implementations";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    homepage = "https://github.com/jaraco/backports.entry_points_selectable";
+  };
+}
diff --git a/pkgs/development/python-modules/backports_functools_lru_cache/default.nix b/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
index 79e11ecae4f..6c0d1df81f3 100644
--- a/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
+++ b/pkgs/development/python-modules/backports_functools_lru_cache/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "backports.functools_lru_cache";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a";
+    sha256 = "d84e126e2a29e4fde8931ff8131240bbf30a0e7dbcc3897a8dbd8ea5ac11419c";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/banal/default.nix b/pkgs/development/python-modules/banal/default.nix
new file mode 100644
index 00000000000..793de7d3a76
--- /dev/null
+++ b/pkgs/development/python-modules/banal/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+buildPythonPackage rec {
+  pname = "banal";
+  version = "1.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2fe02c9305f53168441948f4a03dfbfa2eacc73db30db4a93309083cb0e250a5";
+  };
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "banal"
+  ];
+
+  meta = with lib; {
+    description = "Commons of banal micro-functions for Python";
+    homepage = "https://github.com/pudo/banal";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/beaker/default.nix b/pkgs/development/python-modules/beaker/default.nix
index a429ab682f7..60823b4c077 100644
--- a/pkgs/development/python-modules/beaker/default.nix
+++ b/pkgs/development/python-modules/beaker/default.nix
@@ -15,8 +15,8 @@
 , cryptography
 , isPy27
 , isPy3k
-, funcsigs
-, pycryptopp
+, funcsigs ? null
+, pycryptopp ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/beautifultable/default.nix b/pkgs/development/python-modules/beautifultable/default.nix
new file mode 100644
index 00000000000..def8f207ee8
--- /dev/null
+++ b/pkgs/development/python-modules/beautifultable/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "beautifultable";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "pri22296";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12ci6jy8qmbphsvzvj98466nlhclfzs0a0pmbsv3mf5bfcdwvbh7";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "test.py" ];
+
+  pythonImportsCheck = [ "beautifultable" ];
+
+  meta = with lib; {
+    description = "Python package for printing visually appealing tables";
+    homepage = "https://github.com/CERT-Polska/mwdblib";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index a3e48d20c60..609c0392c77 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "binwalk";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "ReFirmLabs";
     repo = "binwalk";
     rev = "v${version}";
-    sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
+    sha256 = "108mj4jjffdmaz6wjvglbv44j7fkhspaxz1rj2bi1fcnwsri5wsm";
   };
 
   propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract squashfsTools xz pycrypto ]
@@ -53,5 +53,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ReFirmLabs/binwalk";
     description = "A tool for searching a given binary image for embedded files";
     maintainers = [ maintainers.koral ];
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/bip_utils/default.nix b/pkgs/development/python-modules/bip_utils/default.nix
index 1854bd4f71b..94f6e3df8f2 100644
--- a/pkgs/development/python-modules/bip_utils/default.nix
+++ b/pkgs/development/python-modules/bip_utils/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "bip_utils";
-  version = "1.7.0";
+  version = "1.9.0";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "ebellocchia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dj0c9sj0c4dkdf7rbz3s1z5kfzw22hpncm4bnwqigjzi6nrk81z";
+    sha256 = "0i1jdpdsrc8cal5x0b1am9mgbca69ymxlaqpkw0y4d0m3m6vs33k";
   };
 
   propagatedBuildInputs = [ ecdsa pysha3 ];
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index dc09aa2c6bc..c3965b10a2a 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -1,14 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, python }:
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "1.8.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e02f79fba7a470d438eb39017d503498faaf760b17b6b46af1a9de12fd58d311";
+    sha256 = "sha256-7DpPbXEaee0jrqlUFjjTNT3D8IPyk6ExgLFLSC4+Ge8=";
   };
 
+  checkPhase = ''
+    cd $out
+    ${python.interpreter} -c 'import bitarray; bitarray.test()'
+  '';
+
   pythonImportsCheck = [ "bitarray" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bitmath/default.nix b/pkgs/development/python-modules/bitmath/default.nix
index 5643ea29bc2..66a42858650 100644
--- a/pkgs/development/python-modules/bitmath/default.nix
+++ b/pkgs/development/python-modules/bitmath/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, progressbar231, progressbar33, mock }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, progressbar231 ? null, progressbar33, mock }:
 
 buildPythonPackage rec {
   pname = "bitmath";
diff --git a/pkgs/development/python-modules/blessed/default.nix b/pkgs/development/python-modules/blessed/default.nix
index f0167625cf6..6be290f0f79 100644
--- a/pkgs/development/python-modules/blessed/default.nix
+++ b/pkgs/development/python-modules/blessed/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "blessed";
-  version = "1.17.12";
+  version = "1.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "580429e7e0c6f6a42ea81b0ae5a4993b6205c6ccbb635d034b4277af8175753e";
+    sha256 = "1312879f971330a1b7f2c6341f2ae7e2cbac244bfc9d0ecfbbecd4b0293bc755";
   };
 
   checkInputs = [ pytest mock glibcLocales ];
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index cbe00ec32f9..18fea103664 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -1,6 +1,6 @@
 { buildPythonPackage
 , fetchPypi
-, futures
+, futures ? null
 , isPy27
 , isPyPy
 , jinja2
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index b7988d47e8d..afeefbdf55b 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -4,7 +4,7 @@
 , botocore
 , jmespath
 , s3transfer
-, futures
+, futures ? null
 , docutils
 , nose
 , mock
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.49"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.17.52"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-pIITXDD6B+r0NwMU3Q+0kRciKiZtBCOyB1rtODXtHwQ=";
+    sha256 = "sha256-7WQMF8l68om+RpN0DBy/laRW6cSV45c6Htb1GjloRtI=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 391a4a8b539..f34cc34334d 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.49"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.52"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-9/ED+gZRxp3TYMfQ7Nh0hUMD3lzAhp4MvCgYpSuqzGk=";
+    sha256 = "sha256-3V9YCOxIqZm5Y0s4etarehojuh+XEqh1Bm0jSAj4qmI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index 8a37ed0bd97..55e66545538 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "bpython";
-  version = "0.20.1";
+  version = "0.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e7738806013b469be57b0117082b9c4557ed7c92c70ceb79f96d674d89c7503";
+    sha256 = "88aa9b89974f6a7726499a2608fa7ded216d84c69e78114ab2ef996a45709487";
   };
 
   patches = [ (substituteAll {
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index e4f9d63bd6b..9f41ed5756f 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "0.2.2";
+  version = "1.0.0";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bieniu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vIefcL3K3ZbAUxMFM7gbbTFdrnmufWZHcq4OA19SYXE=";
+    sha256 = "sha256-0NfqPlQiOkNhR+H55E9LE4dGa9R8vcSyPNbbIeiRJV8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/brotli/default.nix b/pkgs/development/python-modules/brotli/default.nix
index 0da53ab5ca2..1edc62317a6 100644
--- a/pkgs/development/python-modules/brotli/default.nix
+++ b/pkgs/development/python-modules/brotli/default.nix
@@ -2,14 +2,16 @@
 
 buildPythonPackage rec {
   pname = "brotli";
-  version = "1.0.7";
+  version = "1.0.9";
 
   # PyPI doesn't contain tests so let's use GitHub
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1811b55wdfg4kbsjcgh1kc938g118jpvif97ilgrmbls25dfpvvw";
+    sha256 = "1rdp9rx197q467ixp53g4cgc3jbsdaxr62pz0a8ayv2lvm944azh";
+    # for some reason, the test data isn't captured in releases, force a git checkout
+    deepClone = true;
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/python-modules/btrfs/default.nix b/pkgs/development/python-modules/btrfs/default.nix
index adaf1f610e3..9bcb8f37330 100644
--- a/pkgs/development/python-modules/btrfs/default.nix
+++ b/pkgs/development/python-modules/btrfs/default.nix
@@ -5,18 +5,22 @@
 
 buildPythonPackage rec {
   pname = "btrfs";
-  version = "11";
+  version = "13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w92sj47wy53ygz725xr613k32pk5khi0g9lrpp6img871241hrx";
+    sha256 = "sha256-NSyzhpHYDkunuU104XnbVCcVRNDoVBz4KuJRrE7WMO0=";
   };
 
+  # no tests (in v12)
+  doCheck = false;
+  pythonImportsCheck = [ "btrfs" ];
+
   meta = with lib; {
     description = "Inspect btrfs filesystems";
     homepage = "https://github.com/knorrie/python-btrfs";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.evils ];
+    maintainers = with maintainers; [ evils Luflosi ];
   };
 }
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
index b5dce09d516..639dc53babf 100644
--- a/pkgs/development/python-modules/build/default.nix
+++ b/pkgs/development/python-modules/build/default.nix
@@ -12,7 +12,7 @@
 , pytestCheckHook
 , pythonOlder
 , toml
-, typing
+, typing ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/can/default.nix b/pkgs/development/python-modules/can/default.nix
index ea49c9b4a77..255a100ec68 100644
--- a/pkgs/development/python-modules/can/default.nix
+++ b/pkgs/development/python-modules/can/default.nix
@@ -5,7 +5,7 @@
 , isPy27
 , aenum
 , wrapt
-, typing
+, typing ? null
 , pyserial
 , nose
 , mock
diff --git a/pkgs/development/python-modules/canmatrix/default.nix b/pkgs/development/python-modules/canmatrix/default.nix
index 8ffacc1a99d..d36f6805cc3 100644
--- a/pkgs/development/python-modules/canmatrix/default.nix
+++ b/pkgs/development/python-modules/canmatrix/default.nix
@@ -7,7 +7,7 @@
 , click
 , future
 , pathlib2
-, typing
+, typing ? null
 , lxml
 , xlwt
 , xlrd
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index af6b9031e66..6ab2ed91fe5 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -1,7 +1,7 @@
-{ stdenv
-, lib
+{ lib
 , buildPythonPackage
 , capstone
+, stdenv
 , fetchpatch
 , fetchPypi
 , setuptools
@@ -33,5 +33,7 @@ buildPythonPackage rec {
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
     maintainers = with maintainers; [ bennofs ris ];
+    # creates a manylinux2014-x86_64 wheel
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index 55468ba0fdf..16479302221 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, buildPythonPackage, fetchFromGitHub, python, pythonOlder
 , cython
 , eventlet
-, futures
+, futures ? null
 , iana-etc
 , geomet
 , libev
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index f55042c58d2..a5f22908993 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.42.0";
+  version = "0.48.0";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = "cfn-python-lint";
     rev = "v${version}";
-    sha256 = "0cqpq7pxpslpd7am6mp6nmwhsb2p2a5lq3hjjxi8imv3wv7zql98";
+    sha256 = "03j5w9cyvpbxh634jd2dhkgfs3c2hmgqh77w664855lgy2ph9zll";
   };
 
   postPatch = ''
@@ -67,6 +67,9 @@ buildPythonPackage rec {
     "TestQuickStartTemplates"
     # requires git directory
     "test_update_docs"
+    # Tests depend on network access (fails in getaddrinfo)
+    "test_update_resource_specs_python_2"
+    "test_update_resource_specs_python_3"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 9115b1d57c3..e99f321df37 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -15,18 +15,18 @@
 , pyyaml
 , setuptools
 , six
-, typing
+, typing ? null
 , watchdog
 , wheel
 }:
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.21.9";
+  version = "1.22.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "312f88838c8ea4b4ac79dce0e5b4ba3125130ca66ea99a4694f535501dca95e3";
+    sha256 = "5a84a73c4a8d8b22bb64e06ff99060d7f222097db4237e58749dcad5165f082d";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
diff --git a/pkgs/development/python-modules/chardet/2.nix b/pkgs/development/python-modules/chardet/2.nix
new file mode 100644
index 00000000000..65381d40268
--- /dev/null
+++ b/pkgs/development/python-modules/chardet/2.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, fetchpatch
+, pytest, pytestrunner, hypothesis }:
+
+buildPythonPackage rec {
+  pname = "chardet";
+  version = "3.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4";
+  };
+
+  patches = [
+    # Add pytest 4 support. See: https://github.com/chardet/chardet/pull/174
+    (fetchpatch {
+      url = "https://github.com/chardet/chardet/commit/0561ddcedcd12ea1f98b7ddedb93686ed8a5ffa4.patch";
+      sha256 = "1y1xhjf32rdhq9sfz58pghwv794f3w2f2qcn8p6hp4pc8jsdrn2q";
+    })
+  ];
+
+  checkInputs = [ pytest pytestrunner hypothesis ];
+
+  meta = with lib; {
+    homepage = "https://github.com/chardet/chardet";
+    description = "Universal encoding detector";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+}
diff --git a/pkgs/development/python-modules/chardet/default.nix b/pkgs/development/python-modules/chardet/default.nix
index 65381d40268..7753d6ccfde 100644
--- a/pkgs/development/python-modules/chardet/default.nix
+++ b/pkgs/development/python-modules/chardet/default.nix
@@ -1,29 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch
-, pytest, pytestrunner, hypothesis }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, hypothesis
+, pythonOlder
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "chardet";
-  version = "3.0.4";
+  version = "4.0.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4";
+    sha256 = "sha256-DW9ToV20Eg8rCMlPEefZPSyRHuEYtrMKBOw+6DEBefo=";
   };
 
-  patches = [
-    # Add pytest 4 support. See: https://github.com/chardet/chardet/pull/174
-    (fetchpatch {
-      url = "https://github.com/chardet/chardet/commit/0561ddcedcd12ea1f98b7ddedb93686ed8a5ffa4.patch";
-      sha256 = "1y1xhjf32rdhq9sfz58pghwv794f3w2f2qcn8p6hp4pc8jsdrn2q";
-    })
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
   ];
 
-  checkInputs = [ pytest pytestrunner hypothesis ];
+  pythonImportsCheck = [ "chardet" ];
 
   meta = with lib; {
-    homepage = "https://github.com/chardet/chardet";
     description = "Universal encoding detector";
-    license = licenses.lgpl2;
+    homepage = "https://github.com/chardet/chardet";
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
 }
diff --git a/pkgs/development/python-modules/chart-studio/default.nix b/pkgs/development/python-modules/chart-studio/default.nix
index 6679f13b119..e059725cad2 100644
--- a/pkgs/development/python-modules/chart-studio/default.nix
+++ b/pkgs/development/python-modules/chart-studio/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "1.1.0";
+  version = "4.14.3";
 
   # chart-studio was split from plotly
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "plotly.py";
-    rev = "${pname}-v${version}";
-    sha256 = "1q3j3ih5k0jhr8ilwffkfxp1nifpnjnx7862bzhxfg4d386hfg4i";
+    rev = "v${version}";
+    sha256 = "1yrrcn9032r3l8y2cc1wvpydg4rkqvgkpyv1s7znby5mrxa1rjma";
   };
 
   sourceRoot = "source/packages/python/chart-studio";
diff --git a/pkgs/development/python-modules/cheetah3/default.nix b/pkgs/development/python-modules/cheetah3/default.nix
index a705bffa810..5efb2629084 100644
--- a/pkgs/development/python-modules/cheetah3/default.nix
+++ b/pkgs/development/python-modules/cheetah3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Cheetah3";
-  version = "3.2.6";
+  version = "3.2.6.post1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1c2b693cdcac2ded2823d363f8459ae785261e61c128d68464c8781dba0466b";
+    sha256 = "58b5d84e5fbff6cf8e117414b3ea49ef51654c02ee887d155113c5b91d761967";
   };
 
   doCheck = false; # Circular dependency
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 4d6c71a7e2a..7e79d5c63a3 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "cheroot";
-  version = "8.4.8";
+  version = "8.5.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r98qqdp9ww5r5ma6wf1n66r9813rrmfvc54z7yij39jkj5c528h";
+    sha256 = "f137d03fd5155b1364bea557a7c98168665c239f6c8cedd8f80e81cdfac01567";
   };
 
   nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
diff --git a/pkgs/development/python-modules/cjkwrap/default.nix b/pkgs/development/python-modules/cjkwrap/default.nix
new file mode 100644
index 00000000000..43e5909ec47
--- /dev/null
+++ b/pkgs/development/python-modules/cjkwrap/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "CJKwrap";
+  version = "2.2";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1b603sg6c2gv9vmlxwr6r1qvhadqk3qp6vifmijris504zjx5ix2";
+  };
+
+  pythonImportsCheck = [ "cjkwrap" ];
+
+  meta = with lib; {
+    description = "A library for wrapping and filling CJK text";
+    homepage = "https://f.gallai.re/cjkwrap";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.kaction ];
+  };
+}
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 61b72e8cf31..4d8a79a8c99 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.0.5903";
+  version = "9.0.6885";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NIKWUx1VT5TjnuqppuT6VzwNRwcBLc0xI5k3F2Nmj8A=";
+    sha256 = "sha256-UCO6kXI4W/fCFgevXaRrGMjMH3ZhG7dXmFi+pemX9sE=";
   };
 
   # Use upstream z3 implementation
diff --git a/pkgs/development/python-modules/class-registry/default.nix b/pkgs/development/python-modules/class-registry/default.nix
index 93c41cadea6..3faf07966d0 100644
--- a/pkgs/development/python-modules/class-registry/default.nix
+++ b/pkgs/development/python-modules/class-registry/default.nix
@@ -4,7 +4,7 @@
   lib,
   nose,
   six,
-  typing,
+  typing ? null,
   isPy27,
 }:
 
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
new file mode 100644
index 00000000000..51d0c263d30
--- /dev/null
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -0,0 +1,79 @@
+{ lib
+, buildPythonPackage
+, cffi
+, fetchFromGitHub
+, minidump
+, nose
+, pefile
+, pyelftools
+, pytestCheckHook
+, pythonOlder
+, pyvex
+, pyxbe
+, sortedcontainers
+}:
+
+let
+  # The binaries are following the argr projects release cycle
+  version = "9.0.6885";
+
+  # Binary files from https://github.com/angr/binaries (only used for testing and only here)
+  binaries = fetchFromGitHub {
+    owner = "angr";
+    repo = "binaries";
+    rev = "v${version}";
+    sha256 = "1qlrxfj1n34xvwkac6mbcc7zmixxbp34fj7lkf0fvp7zcz1rpla1";
+  };
+
+in
+buildPythonPackage rec {
+  pname = "cle";
+  inherit version;
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "angr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-ubBs55ZIGssAwD+3YsZYzDA7/dwQ+UD9GtWPDGQrO80=";
+  };
+
+  propagatedBuildInputs = [
+    cffi
+    minidump
+    pefile
+    pyelftools
+    pyvex
+    pyxbe
+    sortedcontainers
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  # Place test binaries in the right location (location is hard-coded in the tests)
+  preCheck = ''
+    export HOME=$TMPDIR
+    cp -r ${binaries} $HOME/binaries
+  '';
+
+  disabledTests = [
+    # PPC tests seems to fails
+    "test_ppc_rel24_relocation"
+    "test_ppc_addr16_ha_relocation"
+    "test_ppc_addr16_lo_relocation"
+    # Binary not found, seems to be missing in the current binaries release
+    "test_plt_full_relro"
+  ];
+
+  pythonImportsCheck = [ "cle" ];
+
+  meta = with lib; {
+    description = "Python loader for many binary formats";
+    homepage = "https://github.com/angr/cle";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/clevercsv/default.nix b/pkgs/development/python-modules/clevercsv/default.nix
new file mode 100644
index 00000000000..233b7164989
--- /dev/null
+++ b/pkgs/development/python-modules/clevercsv/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, chardet
+, cleo
+, clikit
+, pandas
+, regex
+, tabview
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "clevercsv";
+  version = "0.6.8";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "alan-turing-institute";
+    repo = "CleverCSV";
+    rev = "v${version}";
+    sha256 = "0jpgyh65zqr76sz2s63zsjyb49dpg2xdmf72jvpicw923bdzhqvp";
+  };
+
+  propagatedBuildInputs = [
+    chardet
+    cleo
+    clikit
+    pandas
+    regex
+    tabview
+  ];
+
+  pythonImportsCheck = [
+    "clevercsv"
+    "clevercsv.cparser"
+  ];
+
+  checkPhase = ''
+    # by linking the installed version the tests also have access to compiled native libraries
+    rm -r clevercsv
+    ln -s $out/${python.sitePackages}/clevercsv/ clevercsv
+    # their ci only runs unit tests, there are also integration and fuzzing tests
+    ${python.interpreter} -m unittest discover -v -f -s ./tests/test_unit
+  '';
+
+  meta = with lib; {
+    description = "CleverCSV is a Python package for handling messy CSV files";
+    longDescription = ''
+       CleverCSV is a Python package for handling messy CSV files. It provides
+       a drop-in replacement for the builtin CSV module with improved dialect
+       detection, and comes with a handy command line application for working
+       with CSV files.
+    '';
+    homepage = "https://github.com/alan-turing-institute/CleverCSV";
+    changelog = "https://github.com/alan-turing-institute/CleverCSV/blob/master/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/click-threading/default.nix b/pkgs/development/python-modules/click-threading/default.nix
index 6943a3dcfd1..1579a6a6a89 100644
--- a/pkgs/development/python-modules/click-threading/default.nix
+++ b/pkgs/development/python-modules/click-threading/default.nix
@@ -4,7 +4,7 @@
 , pytest
 , click
 , isPy3k
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/clickhouse-cli/default.nix b/pkgs/development/python-modules/clickhouse-cli/default.nix
new file mode 100644
index 00000000000..07ddca0680a
--- /dev/null
+++ b/pkgs/development/python-modules/clickhouse-cli/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, prompt_toolkit
+, pygments
+, requests
+, sqlparse
+}:
+
+buildPythonPackage rec {
+  pname = "clickhouse-cli";
+  version = "0.3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-fDvUdL6LzgCv6LDmB0R0M7v6BbnbL68p9pHMebP58h8=";
+  };
+
+  propagatedBuildInputs = [
+    click
+    prompt_toolkit
+    pygments
+    requests
+    sqlparse
+  ];
+
+  pythonImportsCheck = [ "clickhouse_cli" ];
+
+  meta = with lib; {
+    description = "A third-party client for the Clickhouse DBMS server";
+    homepage = "https://github.com/hatarist/clickhouse-cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ivan-babrou ];
+  };
+}
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index 7b07b094591..1f6be754be1 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
 , isPy27, pythonAtLeast
-, pylev, pastel, typing, enum34, crashtest }:
+, pylev, pastel, typing ? null, enum34 ? null, crashtest }:
 
 buildPythonPackage rec {
   pname = "clikit";
diff --git a/pkgs/development/python-modules/clldutils/default.nix b/pkgs/development/python-modules/clldutils/default.nix
index 96e6b86c150..2271337dc98 100644
--- a/pkgs/development/python-modules/clldutils/default.nix
+++ b/pkgs/development/python-modules/clldutils/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "clldutils";
-  version = "3.7.0";
+  version = "3.8.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "clld";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13shas7krf7j04gqxjn09ipy318hmrp1s3b5d576d5r1xfxakam4";
+    sha256 = "18sjcqzprf96s7bkn5zm3lh83hxfxj56nycxyldrwz7ndgkgxxx2";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/cloudscraper/default.nix b/pkgs/development/python-modules/cloudscraper/default.nix
index 591d1aac2e6..cd11aa03f86 100644
--- a/pkgs/development/python-modules/cloudscraper/default.nix
+++ b/pkgs/development/python-modules/cloudscraper/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "cloudscraper";
-  version = "1.2.56";
+  version = "1.2.58";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84c5910023dd393619b2b793fdb154392c5c8887b55e4bcac3ad2646f1cfe212";
+    sha256 = "1wnzv2k8cm8q1x18r4zg8pcnpm4gsdp82hywwjimp2v2qll918nx";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cocotb/default.nix b/pkgs/development/python-modules/cocotb/default.nix
index ec5cbe82776..b6343238383 100644
--- a/pkgs/development/python-modules/cocotb/default.nix
+++ b/pkgs/development/python-modules/cocotb/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cocotb";
-  version = "1.4.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fv0mg8zh40ffq0q39s195y6hvjrzihpx0i3f7ba5881syw3x7p4";
+    sha256 = "02bw2i03vd4rcvdk10qdjl2lbvvy81cn9qpr8vzq8cm9h45689mv";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/commoncode/default.nix b/pkgs/development/python-modules/commoncode/default.nix
new file mode 100644
index 00000000000..dfb82cccea3
--- /dev/null
+++ b/pkgs/development/python-modules/commoncode/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, click
+, requests
+, attrs
+, intbitset
+, saneyaml
+, text-unidecode
+, beautifulsoup4
+, pytestCheckHook
+, pytest-xdist
+}:
+buildPythonPackage rec {
+  pname = "commoncode";
+  version = "21.1.21";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6e2daa34fac2d91307b23d9df5f01a6168fdffb12bf5d161bd6776bade29b479";
+  };
+
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    click
+    requests
+    attrs
+    intbitset
+    saneyaml
+    text-unidecode
+    beautifulsoup4
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
+
+  pythonImportsCheck = [
+    "commoncode"
+  ];
+
+  meta = with lib; {
+    description = "A set of common utilities, originally split from ScanCode";
+    homepage = "https://github.com/nexB/commoncode";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/configparser/default.nix b/pkgs/development/python-modules/configparser/default.nix
index e8610f053da..47fe88d4e61 100644
--- a/pkgs/development/python-modules/configparser/default.nix
+++ b/pkgs/development/python-modules/configparser/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "005c3b102c96f4be9b8f40dafbd4997db003d07d1caa19f37808be8031475f2a";
+    sha256 = "85d5de102cfe6d14a5172676f09d19c465ce63d6019cf0a4ef13385fc535e828";
   };
 
   # No tests available
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index 589753cd1cb..d07930b5e54 100644
--- a/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro ? null, futures ? null, enum34 ? null }:
 
 buildPythonPackage rec {
   version = "1.6.0";
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index 6b212be3bb7..25925f56069 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -26,7 +26,7 @@
 , six
 , swagger-ui-bundle
 , testfixtures
-, typing
+, typing ? null
 , ujson
 }:
 
diff --git a/pkgs/development/python-modules/construct/default.nix b/pkgs/development/python-modules/construct/default.nix
index 8d0c83ca9e8..3a3a3d32718 100644
--- a/pkgs/development/python-modules/construct/default.nix
+++ b/pkgs/development/python-modules/construct/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , six, pytestCheckHook, pytest-benchmark, numpy, arrow, ruamel_yaml
+, lz4, cloudpickle
 }:
 
 buildPythonPackage rec {
   pname   = "construct";
-  version = "2.10.56";
+  version = "2.10.63";
 
   disabled = pythonOlder "3.6";
 
@@ -13,10 +14,15 @@ buildPythonPackage rec {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1j4mqwyxkbdcsnnk5bbdcljv855w4fglaqc94q1xdzm8kgjxk4mr";
+    sha256 = "0dnj815qdxrn0q6bpwsmkca2jy02gjy6d3amqg4y6gha1kc1mymv";
   };
 
-  checkInputs = [ pytestCheckHook pytest-benchmark numpy arrow ruamel_yaml ];
+  # not an explicit dependency, but it's imported by an entrypoint
+  propagatedBuildInputs = [
+    lz4
+  ];
+
+  checkInputs = [ pytestCheckHook pytest-benchmark numpy arrow ruamel_yaml cloudpickle ];
 
   disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix
index b7bb3c81134..5a7fe9a534e 100644
--- a/pkgs/development/python-modules/coverage/default.nix
+++ b/pkgs/development/python-modules/coverage/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "5.3.1";
+  version = "5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38f16b1317b8dd82df67ed5daa5f5e7c959e46579840d77a67a4ceb9cef0a50b";
+    sha256 = "ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index 55032864c3f..46002fae4f2 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "coveralls";
-  version = "2.2.0";
+  version = "3.0.1";
   disabled = isPy27;
 
   # wanted by tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b990ba1f7bc4288e63340be0433698c1efe8217f78c689d254c2540af3d38617";
+    sha256 = "cbb942ae5ef3d2b55388cb5b43e93a269544911535f1e750e1c656aef019ce60";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 4671f607bba..1bf3602a7b1 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "1wisxmq26b8ml144m2458sgcbk8jpv419j01qmffsrfy50x9i1yw";
+    sha256 = "1m6smky4nahwlp4hn6yzibrcxlbsw4nx162dsq48vlw8h1lgjl62";
   };
 
   cargoRoot = "src/rust";
diff --git a/pkgs/development/python-modules/css-html-js-minify/default.nix b/pkgs/development/python-modules/css-html-js-minify/default.nix
new file mode 100644
index 00000000000..d05941e1cfb
--- /dev/null
+++ b/pkgs/development/python-modules/css-html-js-minify/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "css-html-js-minify";
+  version = "2.5.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "4a9f11f7e0496f5284d12111f3ba4ff5ff2023d12f15d195c9c48bd97013746c";
+  };
+
+  doCheck = false; # Tests are useless and broken
+
+  pythonImportsCheck = [ "css_html_js_minify" ];
+
+  meta = with lib; {
+    description = "StandAlone Async cross-platform Minifier for the Web";
+    homepage = "https://github.com/juancarlospaco/css-html-js-minify";
+    license = with licenses; [ gpl3Plus lgpl3Plus mit ];
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/python-modules/curtsies/default.nix b/pkgs/development/python-modules/curtsies/default.nix
index 62f1435df30..dc32bcdf74c 100644
--- a/pkgs/development/python-modules/curtsies/default.nix
+++ b/pkgs/development/python-modules/curtsies/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, blessings, mock, nose, pyte, wcwidth, typing }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, blessings, mock, nose, pyte, wcwidth, typing ? null}:
 
 buildPythonPackage rec {
   pname = "curtsies";
diff --git a/pkgs/development/python-modules/cve-bin-tool/default.nix b/pkgs/development/python-modules/cve-bin-tool/default.nix
new file mode 100644
index 00000000000..61ae8976815
--- /dev/null
+++ b/pkgs/development/python-modules/cve-bin-tool/default.nix
@@ -0,0 +1,83 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, jsonschema
+, plotly
+, pytest
+, pytest-xdist
+, pytest-cov
+, pytest-asyncio
+, beautifulsoup4
+, pyyaml
+, isort
+, py
+, jinja2
+, rpmfile
+, reportlab
+, zstandard
+, rich
+, aiohttp
+, toml
+  # aiohttp[speedups]
+, aiodns
+, brotlipy
+, cchardet
+, pillow
+, pytestCheckHook
+}:
+buildPythonPackage {
+  pname = "cve-bin-tool";
+  version = "unstable-2021-04-15";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "cve-bin-tool";
+    rev = "10cb6fd0baffe35babfde024bc8c70aa58629237";
+    sha256 = "STf0tJBpadBqsbC+MghBai8zahDkrXfLoFRJ+84wvvY=";
+  };
+
+  # Wants to open a sqlite database, access the internet, etc
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    jsonschema
+    plotly
+    pytest
+    pytest-xdist
+    pytest-cov
+    pytest-asyncio
+    beautifulsoup4
+    pyyaml
+    isort
+    py
+    jinja2
+    rpmfile
+    reportlab
+    zstandard
+    rich
+    aiohttp
+    toml
+
+    # aiohttp[speedups]
+    aiodns
+    brotlipy
+    cchardet
+    # needed by brotlipy
+    pillow
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cve_bin_tool"
+  ];
+
+  meta = with lib; {
+    description = "CVE Binary Checker Tool";
+    homepage = "https://github.com/intel/cve-bin-tool";
+    license = licenses.gpl3Only;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/cx_freeze/default.nix b/pkgs/development/python-modules/cx_freeze/default.nix
index 53f0ef656e2..c3c3618033e 100644
--- a/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.4.2";
+  version = "6.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fe0af7c658442402bcd209f993219a6ab98a951459495b4a141eb03b552a1c68";
+    sha256 = "e0d03cabcdf9b9c21354807ed9f06fa9481a8fd5a0838968a830f01a70820ff1";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/cxxfilt/default.nix b/pkgs/development/python-modules/cxxfilt/default.nix
new file mode 100644
index 00000000000..580d698d8da
--- /dev/null
+++ b/pkgs/development/python-modules/cxxfilt/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, gcc-unwrapped
+}:
+buildPythonPackage rec {
+  pname = "cxxfilt";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ef6810e76d16c95c11b96371e2d8eefd1d270ec03f9bcd07590e8dcc2c69e92b";
+  };
+
+  postPatch = ''
+    substituteInPlace cxxfilt/__init__.py \
+      --replace "find_any_library('stdc++', 'c++')" '"${lib.getLib gcc-unwrapped}/lib/libstdc++.so"'
+  '';
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "cxxfilt"
+  ];
+
+  meta = with lib; {
+    description = "Demangling C++ symbols in Python / interface to abi::__cxa_demangle ";
+    homepage = "https://github.com/afq984/python-cxxfilt";
+    license = licenses.bsd2;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index 86bc2da1565..ca25e05bb1e 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -5,6 +5,7 @@
 , dask
 , numpy, toolz # dask[array]
 , multipledispatch
+, setuptools-scm
 , scipy
 , scikitlearn
 , pytest
@@ -19,6 +20,7 @@ buildPythonPackage rec {
     sha256 = "58b86cebf04fe5b9e58092e1c467e32e60d01e11b71fdc628baaa9fc6d1adee5";
   };
 
+  nativeBuildInputs = [ setuptools-scm ];
   checkInputs = [ pytest ];
   propagatedBuildInputs = [ cloudpickle dask numpy toolz multipledispatch scipy scikitlearn ];
 
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index a68c86538ee..a38350f0f6a 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -11,12 +11,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.5.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6873a39af21b856a4eb7efee6838e6897b1399f21ab9e65403e69eb62f96c2d";
+    sha256 = "0bf7ea8dcd9d795505b498bd632394720c048f50761e23c574d9a6bacfb27cbb";
   };
 
   nativeBuildInputs = [ pytest-flake8 ];
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 4f4b7b705c4..517056866bb 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -13,6 +13,7 @@
 , multipledispatch
 , packaging
 , distributed
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -38,6 +39,7 @@ buildPythonPackage rec {
     scipy
     six
     toolz
+    setuptools-scm
   ];
 
   # has non-standard build from source, and pypi doesn't include tests
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 8f3e4d08583..1c6d37681a6 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -1,6 +1,7 @@
 { lib
 , bokeh
 , buildPythonPackage
+, fetchpatch
 , fetchFromGitHub
 , fsspec
 , pytestCheckHook
@@ -42,7 +43,7 @@ buildPythonPackage rec {
     distributed
   ];
 
-  doCheck = false;
+  doCheck = true;
 
   checkInputs = [
     pytestCheckHook
@@ -52,6 +53,16 @@ buildPythonPackage rec {
 
   dontUseSetuptoolsCheck = true;
 
+  patches = [
+    # dask dataframe cannot be imported in sandboxed builds
+    # See https://github.com/dask/dask/pull/7601
+    (fetchpatch {
+      url = "https://github.com/dask/dask/commit/9ce5b0d258cecb3ef38fd844135ad1f7ac3cea5f.patch";
+      sha256 = "sha256-1EVRYwAdTSEEH9jp+UOnrijzezZN3iYR6q6ieYJM3kY=";
+      name = "fix-dask-dataframe-imports-in-sandbox.patch";
+    })
+  ];
+
   postPatch = ''
     # versioneer hack to set version of github package
     echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
@@ -61,13 +72,23 @@ buildPythonPackage rec {
       --replace "cmdclass=versioneer.get_cmdclass()," ""
   '';
 
-  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+  pytestFlagsArray = [
+    "-n $NIX_BUILD_CORES"
+    "-m 'not network'"
+  ];
 
   disabledTests = [
     "test_annotation_pack_unpack"
     "test_annotations_blockwise_unpack"
+    # this test requires features of python3Packages.psutil that are
+    # blocked in sandboxed-builds
+    "test_auto_blocksize_csv"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
+  pythonImportsCheck = [ "dask.dataframe" "dask" "dask.array" ];
+
   meta = with lib; {
     description = "Minimal task scheduling abstraction";
     homepage = "https://dask.org/";
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 3e9f02e2f72..ad3f66b5d65 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -4,7 +4,7 @@
 , pythonOlder
 , decorator
 , requests
-, typing
+, typing ? null
 , configparser
 , click
 , freezegun
@@ -21,7 +21,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Q4wd3lRi5oxceSt7Sh2HoN3ZcK89sxs88VmA7tDEQxE=";
+    sha256 = "438c1dde5462e68c5c792b7b4a1d87a0ddd970af3db31b3cf15980eed0c44311";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/debian-inspector/default.nix b/pkgs/development/python-modules/debian-inspector/default.nix
new file mode 100644
index 00000000000..8064a35ffee
--- /dev/null
+++ b/pkgs/development/python-modules/debian-inspector/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+, fetchpatch
+, chardet
+, attrs
+, commoncode
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "debian-inspector";
+  version = "0.9.10";
+
+  src = fetchPypi {
+    pname = "debian_inspector";
+    inherit version;
+    sha256 = "fd29a02b925a4de0d7bb00c29bb05f19715a304bc10ef7b9ad06a93893dc3a8c";
+  };
+
+  patches = lib.optionals (pythonAtLeast "3.9") [
+    # https://github.com/nexB/debian-inspector/pull/15
+    # fixes tests on Python 3.9
+    (fetchpatch {
+      name = "drop-encoding-argument.patch";
+      url = "https://github.com/nexB/debian-inspector/commit/ff991cdb788671ca9b81f1602b70a439248fd1aa.patch";
+      sha256 = "bm3k7vb9+Rm6+YicQEeDOOUVut8xpDaNavG+t2oLZkI=";
+    })
+  ];
+
+  dontConfigure = true;
+
+  propagatedBuildInputs = [
+    chardet
+    attrs
+    commoncode
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "debian_inspector"
+  ];
+
+  meta = with lib; {
+    description = "Utilities to parse Debian package, copyright and control files";
+    homepage = "https://github.com/nexB/debian-inspector";
+    license = with licenses; [ asl20 bsd3 mit ];
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/debut/default.nix b/pkgs/development/python-modules/debut/default.nix
new file mode 100644
index 00000000000..02eece2fc24
--- /dev/null
+++ b/pkgs/development/python-modules/debut/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, chardet
+, attrs
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "debut";
+  version = "0.9.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a3a71e475295f4cf4292440c9c7303ebca0309d395536d2a7f86a5f4d7465dc1";
+  };
+
+  dontConfigure = true;
+
+  propagatedBuildInputs = [
+    chardet
+    attrs
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "debut"
+  ];
+
+  meta = with lib; {
+    description = "Python library to parse Debian deb822-style control and copyright files ";
+    homepage = "https://github.com/nexB/debut";
+    license = with licenses; [ asl20 bsd3 mit ];
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index e8d2731eb55..e414d863350 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -1,34 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, mock
-, jsonpickle
-, mmh3
+, fetchFromGitHub
+, click
 , ordered-set
+, clevercsv
+, jsonpickle
 , numpy
 , pytestCheckHook
+, pyyaml
 }:
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "5.0.2";
+  version = "5.5.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e2b74af4da0ef9cd338bb6e8c97242c1ec9d81fcb28298d7bb24acdc19ea79d7";
+  # pypi source does not contain all fixtures required for tests
+  src = fetchFromGitHub {
+    owner = "seperman";
+    repo = "deepdiff";
+    rev = version;
+    sha256 = "sha256-PQijGub0sAW0aBYI+Ir89SraXaWx7OcQ+txZSqodJ6w=";
   };
 
-  # # Extra packages (may not be necessary)
-  checkInputs = [
-    mock
-    numpy
-    pytestCheckHook
+  propagatedBuildInputs = [
+    click
+    ordered-set
   ];
 
-  propagatedBuildInputs = [
+  pythonImportsCheck = [
+    "deepdiff"
+  ];
+
+  checkInputs = [
+    clevercsv
     jsonpickle
-    mmh3
-    ordered-set
+    numpy
+    pytestCheckHook
+    pyyaml
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/deepmerge/default.nix b/pkgs/development/python-modules/deepmerge/default.nix
index c29737595af..da4b72d2ff4 100644
--- a/pkgs/development/python-modules/deepmerge/default.nix
+++ b/pkgs/development/python-modules/deepmerge/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "deepmerge";
-  version = "0.2.1";
+  version = "0.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "082bvlk65pkf9qzkzzl8fq7s6zfz1b2v5pcb0ikwg1nx0xspggaz";
+    sha256 = "1zfl8rkw98vj7jdpb29ably50x46pq6pazhrkrczndf5jc97zzgn";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
new file mode 100644
index 00000000000..cff9a666691
--- /dev/null
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, requests
+, tornado
+, poetry-core
+, pytestCheckHook
+, pytest-cov
+, pytest-vcr
+}:
+
+buildPythonPackage rec {
+  pname = "deezer-python";
+  version = "2.2.2";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "browniebroke";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1l8l4lxlqsj921gk1mxcilp11jx31addiyd9pk604aldgqma709y";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+    pytest-vcr
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    tornado
+  ];
+
+  meta = with lib; {
+    description = "A friendly Python wrapper around the Deezer API";
+    homepage = "https://github.com/browniebroke/deezer-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ synthetica ];
+  };
+}
diff --git a/pkgs/development/python-modules/defusedxml/default.nix b/pkgs/development/python-modules/defusedxml/default.nix
index 797fee025be..c39ca96bfe1 100644
--- a/pkgs/development/python-modules/defusedxml/default.nix
+++ b/pkgs/development/python-modules/defusedxml/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "defusedxml";
-  version = "0.7.0";
+  version = "0.7.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "183fz8xwclhkirwpvpldyypn47r8lgzfz2mk9jgyg7b37jg5vcc6";
+    sha256 = "1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/dependency-injector/default.nix b/pkgs/development/python-modules/dependency-injector/default.nix
index 5ed5a3eb152..9c977ecc5f0 100644
--- a/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/pkgs/development/python-modules/dependency-injector/default.nix
@@ -9,11 +9,11 @@ in
 
 buildPythonPackage rec {
   pname = "dependency-injector";
-  version = "4.10.3";
+  version = "4.31.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93db83fac85bcb861469c0db1af11f4bc874aa2f9380151189a05d38c21afd60";
+    sha256 = "b6b28b9571f44d575367c6005ba8aaa9fd2b70310e1c15410925d6f1ee2769ad";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/diff_cover/default.nix b/pkgs/development/python-modules/diff_cover/default.nix
index 91832bc88ff..5c340bf7ac8 100644
--- a/pkgs/development/python-modules/diff_cover/default.nix
+++ b/pkgs/development/python-modules/diff_cover/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, fetchPypi
+, chardet
 , inflect
 , jinja2
 , jinja2_pluralize
@@ -16,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "diff_cover";
-  version = "4.0.1";
+  version = "5.0.1";
 
   preCheck = ''
     export LC_ALL=en_US.UTF-8;
@@ -24,10 +25,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "61a98ec126552d985c0e3e3c33cc72e79d7577f91f6edba99f635411a173d3b9";
+    sha256 = "e80f7a4979b7a9d373903776588279ed2898f17729e608255c4119462c822edb";
   };
 
-  propagatedBuildInputs = [ jinja2 jinja2_pluralize pygments six inflect ];
+  propagatedBuildInputs = [ chardet jinja2 jinja2_pluralize pygments six inflect ];
 
   checkInputs = [ mock coverage pytest nose pylint pyflakes pycodestyle ];
 
diff --git a/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix
index 9bd72965cf8..8ee903bedc2 100644
--- a/pkgs/development/python-modules/django-extensions/default.nix
+++ b/pkgs/development/python-modules/django-extensions/default.nix
@@ -11,20 +11,20 @@
 , shortuuid
 , six
 , tox
-, typing
+, typing ? null
 , vobject
 , werkzeug
 }:
 
 buildPythonPackage rec {
   pname = "django-extensions";
-  version = "3.1.1";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0ss5x3d21c3g8i1s79l4akazlf116yp4y50gx4vrk1dxh3jb29zj";
+    sha256 = "03mhikhh49z8bxajbjf1j790b9c9vl4zf4f86iwz7g0zrd7jqlvm";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix
index 54cde59a4bd..7e99d22693f 100644
--- a/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/pkgs/development/python-modules/django-mailman3/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Django library for Mailman UIs";
     homepage = "https://gitlab.com/mailman/django-mailman3";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ globin peti ];
+    maintainers = with maintainers; [ globin peti qyliss ];
   };
 }
diff --git a/pkgs/development/python-modules/django-pipeline/default.nix b/pkgs/development/python-modules/django-pipeline/default.nix
index 3276f7a065c..92aefe4a408 100644
--- a/pkgs/development/python-modules/django-pipeline/default.nix
+++ b/pkgs/development/python-modules/django-pipeline/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, django, futures, mock, jinja2, jsmin, slimit }:
+, django, futures ? null, mock ? null, jinja2, jsmin, slimit }:
 
 buildPythonPackage rec {
   pname = "django-pipeline";
diff --git a/pkgs/development/python-modules/django/2.nix b/pkgs/development/python-modules/django/2.nix
index 7d28d30e862..991c353df17 100644
--- a/pkgs/development/python-modules/django/2.nix
+++ b/pkgs/development/python-modules/django/2.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.2.19";
+  version = "2.2.20";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hysjf8bz4g8xrn2cdx6pmawimpyr6ag2fg3jxsnc1byr3g3bhih";
+    sha256 = "0r3a6gbhwngxl172yy6n0sq5knibl2vxc0wbk1g8licfbzfgjs95";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index 7f2db712f00..62ca390eac5 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.1.7";
+  version = "3.2";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "32ce792ee9b6a0cbbec340123e229ac9f765dff8c2a4ae9247a14b2ba3a365a7";
+    sha256 = "179qdxa438fnycnnf1j5z6359h1kbp2q7djf01v5jrr26xjgkw11";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/django_silk/default.nix b/pkgs/development/python-modules/django_silk/default.nix
index 653bcdc5551..b1d4eaec5c9 100644
--- a/pkgs/development/python-modules/django_silk/default.nix
+++ b/pkgs/development/python-modules/django_silk/default.nix
@@ -9,6 +9,7 @@
 , simplejson
 , dateutil
 , requests
+, setuptools-scm
 , sqlparse
 , jinja2
 , autopep8
@@ -52,6 +53,7 @@ buildPythonPackage rec {
       --replace 'use_scm_version=True' 'version="${version}"'
   '';
 
+  nativeBuildInputs = [ setuptools-scm ];
   buildInputs = [ mock ];
   propagatedBuildInputs = [
     django pygments simplejson dateutil requests
diff --git a/pkgs/development/python-modules/django_treebeard/default.nix b/pkgs/development/python-modules/django_treebeard/default.nix
index 88536b210d2..be63c1e9e3c 100644
--- a/pkgs/development/python-modules/django_treebeard/default.nix
+++ b/pkgs/development/python-modules/django_treebeard/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-treebeard";
-  version = "4.4";
+  version = "4.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f50e4eea146f7af6702decf7ef198ac1eee1fb9bb4af2c5dba276c3c48f76623";
+    sha256 = "80150017725239702054e5fa64dc66e383dc13ac262c8d47ee5a82cb005969da";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/dnspython/default.nix b/pkgs/development/python-modules/dnspython/default.nix
index 1d224af0354..afb85fb61f5 100644
--- a/pkgs/development/python-modules/dnspython/default.nix
+++ b/pkgs/development/python-modules/dnspython/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "dnspython";
-  version = "2.0.0";
+  version = "2.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "044af09374469c3a39eeea1a146e8cac27daec951f1f1f157b1962fc7cb9d1b7";
+    sha256 = "e4a87f0b573201a0f3727fa18a516b055fd1107e0e5477cded4a2de497df1dd4";
   };
 
   # needs networking for some tests
diff --git a/pkgs/development/python-modules/docplex/default.nix b/pkgs/development/python-modules/docplex/default.nix
index 54af81d5d8b..0d2b355b38a 100644
--- a/pkgs/development/python-modules/docplex/default.nix
+++ b/pkgs/development/python-modules/docplex/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, futures
+, futures ? null
 , docloud
 , requests
 }:
diff --git a/pkgs/development/python-modules/dparse/default.nix b/pkgs/development/python-modules/dparse/default.nix
index 6433e0d17a7..59fed703e22 100644
--- a/pkgs/development/python-modules/dparse/default.nix
+++ b/pkgs/development/python-modules/dparse/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, toml, pyyaml }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, toml
+, pyyaml
+, packaging
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "dparse";
@@ -10,13 +18,24 @@ buildPythonPackage rec {
     sha256 = "a1b5f169102e1c894f9a7d5ccf6f9402a836a5d24be80a986c7ce9eaed78f367";
   };
 
-  propagatedBuildInputs = [ toml pyyaml ];
+  propagatedBuildInputs = [
+    toml
+    pyyaml
+    packaging
+  ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # requires unpackaged dependency pipenv
+    "test_update_pipfile"
+  ];
 
   meta = with lib; {
     description = "A parser for Python dependency files";
-    homepage = "https://github.com/pyupio/safety";
+    homepage = "https://github.com/pyupio/dparse";
     license = licenses.mit;
     maintainers = with maintainers; [ thomasdesr ];
   };
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index ca0283b2cbd..8fc4ee1358b 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -1,20 +1,25 @@
 { lib, buildPythonPackage, fetchPypi
-, pytestrunner, requests, urllib3, mock, setuptools }:
+, pytestrunner, requests, urllib3, mock, setuptools, stone }:
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "10.10.0";
+  version = "11.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df43e9e0bdcae6d610dd754a5ec72f2f91a311bbc2c8a28d076df69695b18398";
+    sha256 = "7ba43384029424779a4b3ec8d5832362c5c0f37cd644be2fb87e2b30a569849e";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner == 5.2.0" "pytest-runner"
+  '';
+
   # Set DROPBOX_TOKEN environment variable to a valid token.
   doCheck = false;
 
-  buildInputs = [ pytestrunner ];
-  propagatedBuildInputs = [ requests urllib3 mock setuptools ];
+  nativeBuildInputs = [ pytestrunner ];
+  propagatedBuildInputs = [ requests urllib3 mock setuptools stone ];
 
   meta = with lib; {
     description = "A Python library for Dropbox's HTTP-based Core and Datastore APIs";
diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix
new file mode 100644
index 00000000000..155927368ee
--- /dev/null
+++ b/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pyserial-asyncio
+, pytestCheckHook
+, pytz
+, tailer
+}:
+
+buildPythonPackage rec {
+  pname = "dsmr-parser";
+  version = "0.29";
+
+  src = fetchFromGitHub {
+    owner = "ndokter";
+    repo = "dsmr_parser";
+    rev = "v${version}";
+    sha256 = "11d6cwmabzc8p6jkqwj72nrj7p6cxbvr0x3jdrxyx6zki8chyw4p";
+  };
+
+  propagatedBuildInputs = [
+    pyserial
+    pyserial-asyncio
+    pytz
+    tailer
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "dsmr_parser" ];
+
+  meta = with lib; {
+    description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
+    homepage = "https://github.com/ndokter/dsmr_parser";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index 465e8f6c772..8fe4686f7a7 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.11.0";
+  version = "7.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e24b33a82bf381b42d3b0d390f76fdb9d6a9d47b310dea8eaeb0a5933c394c0";
+    sha256 = "9a77172be02bc4855210d83f0f1346a1e7d421e3cb2ca47ba81ac0c5a717b3a0";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/eth-hash/default.nix b/pkgs/development/python-modules/eth-hash/default.nix
index ad58ee3ae2f..da57aa50e07 100644
--- a/pkgs/development/python-modules/eth-hash/default.nix
+++ b/pkgs/development/python-modules/eth-hash/default.nix
@@ -1,18 +1,29 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, pytest, pysha3, pycrypto,
-  pycryptodome }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder, pytest, pysha3, pycrypto
+, pycryptodome
+, eth-utils
+}:
 
 buildPythonPackage rec {
   pname = "eth-hash";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xpiz0wrxxj11ki9yapvsibl25qnki90bl3d39nqascg14nw17a9";
+    sha256 = "aee46d9c43b98ac6d4ddf957cf75d4d0a5174ee814cc6b53dd6134dcedb459bf";
   };
 
   checkInputs = [ pytest ];
 
-  propagatedBuildInputs = [ pysha3 pycrypto pycryptodome ];
+  propagatedBuildInputs = [
+    pysha3
+    pycrypto
+    pycryptodome
+  ];
+
+  pipInstallFlags = [
+    # Circular dependency on eth-utils
+    "--no-dependencies"
+  ];
 
   # setuptools-markdown uses pypandoc which is broken at the moment
   preConfigure = ''
diff --git a/pkgs/development/python-modules/eth-utils/default.nix b/pkgs/development/python-modules/eth-utils/default.nix
index 9c67f0816e3..172647f0da7 100644
--- a/pkgs/development/python-modules/eth-utils/default.nix
+++ b/pkgs/development/python-modules/eth-utils/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "eth-utils";
-  version = "1.9.5";
+  version = "1.10.0";
 
   # Tests are missing from the PyPI source tarball so let's use GitHub
   # https://github.com/ethereum/eth-utils/issues/130
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h3xlw74zdf6cfvqf9193lx05bpdm05pmy9ap1g7q2kx0j2b6352";
+    sha256 = "sha256-sq3H4HmUFUipqVYleZxWLG1gBsQEoNwcZAXiKckacek=";
   };
 
   checkInputs = [ pytestCheckHook hypothesis ];
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 9966dd81d2e..4eaba48922a 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.30.1";
+  version = "0.30.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d00649a7e17de0bcddff1a96311ed3baf1b295b3223d4b71aceafe7b45e6d6f8";
+    sha256 = "1811b122d9a45eb5bafba092d36911bca825f835cb648a862bbf984030acff9d";
   };
 
   propagatedBuildInputs = [ dnspython greenlet monotonic six ]
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index 706e4d8137f..0cccedd54a9 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "3.2.1";
+  version = "4.1.0";
   disabled = pythonOlder "3.5";
 
   # tests are not present in the PyPI version
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sh780q2iwdm3bnlnfdacracf0n7jhbv0g39cdx65v3d510zp4jv";
+    sha256 = "0lkhjiz78x00d5gzn455660f31f8y4fcrqcn6rh0m41r1ar5im17";
   };
 
   checkInputs = [ psutil requests-mock pyyaml
diff --git a/pkgs/development/python-modules/extractcode/7z.nix b/pkgs/development/python-modules/extractcode/7z.nix
new file mode 100644
index 00000000000..e3318b426ec
--- /dev/null
+++ b/pkgs/development/python-modules/extractcode/7z.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, plugincode
+, p7zip
+}:
+buildPythonPackage rec {
+  pname = "extractcode-7z";
+  version = "21.4.4";
+
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = "scancode-plugins";
+    rev = "v${version}";
+    sha256 = "xnUGDMS34iMVMGo/nZwRarGzzbj3X4Rt+YHvvKpmy6A=";
+  };
+
+  sourceRoot = "source/builtins/extractcode_7z-linux";
+
+  propagatedBuildInputs = [
+    plugincode
+  ];
+
+  preBuild = ''
+    pushd src/extractcode_7z/bin
+
+    rm 7z 7z.so
+    ln -s ${p7zip}/bin/7z 7z
+    ln -s ${p7zip}/lib/p7zip/7z.so 7z.so
+
+    popd
+  '';
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "extractcode_7z"
+  ];
+
+  meta = with lib; {
+    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_7z-linux";
+    license = with licenses; [ asl20 lgpl21 ];
+    maintainers = teams.determinatesystems.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/extractcode/default.nix b/pkgs/development/python-modules/extractcode/default.nix
new file mode 100644
index 00000000000..481324d7292
--- /dev/null
+++ b/pkgs/development/python-modules/extractcode/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, typecode
+, patch
+, extractcode-libarchive
+, extractcode-7z
+, pytestCheckHook
+, pytest-xdist
+}:
+buildPythonPackage rec {
+  pname = "extractcode";
+  version = "21.2.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f91638dbf523b80df90ac184c25d5cd1ea24cac53f67a6bb7d7b389867e0744b";
+  };
+
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    typecode
+    patch
+    extractcode-libarchive
+    extractcode-7z
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
+
+  # cli test tests the cli which we can't do until after install
+  disabledTestPaths = [
+    "tests/test_extractcode_cli.py"
+  ];
+
+  # test_uncompress_* wants to use a binary to extract instead of the provided library
+  disabledTests = [
+    "test_uncompress_lz4_basic"
+    "test_extract_tarlz4_basic"
+  ];
+
+  pythonImportsCheck = [
+    "extractcode"
+  ];
+
+  meta = with lib; {
+    description = "A mostly universal archive extractor using z7zip, libarchve, other libraries and the Python standard library for reliable archive extraction";
+    homepage = "https://github.com/nexB/extractcode";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/extractcode/libarchive.nix b/pkgs/development/python-modules/extractcode/libarchive.nix
new file mode 100644
index 00000000000..0d5e7f31858
--- /dev/null
+++ b/pkgs/development/python-modules/extractcode/libarchive.nix
@@ -0,0 +1,62 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, libarchive
+, libb2
+, bzip2
+, expat
+, lz4
+, lzma
+, zlib
+, zstd
+, plugincode
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "extractcode-libarchive";
+  version = "21.4.4";
+
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = "scancode-plugins";
+    rev = "v${version}";
+    sha256 = "xnUGDMS34iMVMGo/nZwRarGzzbj3X4Rt+YHvvKpmy6A=";
+  };
+
+  sourceRoot = "source/builtins/extractcode_libarchive-linux";
+
+  preBuild = ''
+    pushd src/extractcode_libarchive/lib
+
+    rm *.so *.so.*
+    ln -s ${lib.getLib libarchive}/lib/libarchive.so libarchive.so
+    ln -s ${lib.getLib libb2}/lib/libb2.so libb2-la3511.so.1
+    ln -s ${lib.getLib bzip2}/lib/libbz2.so libbz2-la3511.so.1.0
+    ln -s ${lib.getLib expat}/lib/libexpat.so libexpat-la3511.so.1
+    ln -s ${lib.getLib lz4}/lib/liblz4.so liblz4-la3511.so.1
+    ln -s ${lib.getLib lzma}/lib/liblzma.so liblzma-la3511.so.5
+    ln -s ${lib.getLib zlib}/lib/libz.so libz-la3511.so.1
+    ln -s ${lib.getLib zstd}/lib/libzstd.so libzstd-la3511.so.1
+
+    popd
+  '';
+
+  propagatedBuildInputs = [
+    plugincode
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "extractcode_libarchive"
+  ];
+
+  meta = with lib; {
+    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_libarchive-linux";
+    license = with licenses; [ asl20 bsd2 ];
+    maintainers = teams.determinatesystems.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/faadelays/default.nix b/pkgs/development/python-modules/faadelays/default.nix
index 3175aabcae8..7cd0e291999 100644
--- a/pkgs/development/python-modules/faadelays/default.nix
+++ b/pkgs/development/python-modules/faadelays/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "faadelays";
-  version = "0.0.6";
+  version = "0.0.7";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02z8p0n9d6n4l6v1m969009gxwmy5v14z108r4f3swd6yrk0h2xd";
+    sha256 = "sha256-osZqfSYlKPYZMelBR6YB331iRB4DTjCUlmX7pcrIiGk=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index 990908efe03..8175e1ffb83 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "5.5.1";
+  version = "6.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bskhmiir1ajipj7j535j2mxgnp6s3mxbvlag4aryj9zbhgg1c19";
+    sha256 = "f43ac743c34affb1c7fccca8b06450371cd482b6ddcb4110e420acb24356e70b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fasteners/default.nix b/pkgs/development/python-modules/fasteners/default.nix
index 55b9d3b3023..1cf4c6b30d4 100644
--- a/pkgs/development/python-modules/fasteners/default.nix
+++ b/pkgs/development/python-modules/fasteners/default.nix
@@ -3,24 +3,36 @@
 , fetchPypi
 , six
 , monotonic
+, diskcache
+, more-itertools
 , testtools
 , isPy3k
 , nose
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
   pname = "fasteners";
-  version = "0.15";
+  version = "0.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a176da6b70df9bb88498e1a18a9e4a8579ed5b9141207762368a1017bf8f5ef";
+    sha256 = "c995d8c26b017c5d6a6de9ad29a0f9cdd57de61ae1113d28fac26622b06a0933";
   };
 
-  propagatedBuildInputs = [ six monotonic ];
+  propagatedBuildInputs = [
+    six
+    monotonic
+  ];
 
-  checkInputs = [ testtools nose ] ++ lib.optionals (!isPy3k) [ futures ];
+  checkInputs = [
+    diskcache
+    more-itertools
+    testtools
+    nose
+  ] ++ lib.optionals (!isPy3k) [
+    futures
+  ];
 
   checkPhase = ''
     nosetests
diff --git a/pkgs/development/python-modules/fastrlock/default.nix b/pkgs/development/python-modules/fastrlock/default.nix
index 0821778d024..3ad45be5322 100644
--- a/pkgs/development/python-modules/fastrlock/default.nix
+++ b/pkgs/development/python-modules/fastrlock/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fastrlock";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f";
+    sha256 = "9f5d6ec9fe130b7490bb04572134392420b72bd0842185e02d461a797d6bc749";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
new file mode 100644
index 00000000000..5d264197072
--- /dev/null
+++ b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, colorama
+, tqdm
+, pytestCheckHook
+, ffmpeg
+}:
+
+buildPythonPackage rec {
+  pname = "ffmpeg-progress-yield";
+  version = "0.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e944093e2c1b213da8fa4f0c276c1bad44e0b8ba8be7e4fd001f5132d16baef5";
+  };
+
+  propagatedBuildInputs = [ colorama tqdm ];
+
+  checkInputs = [ pytestCheckHook ffmpeg ];
+
+  pytestFlagsArray = [ "test/test.py" ];
+
+  pythonImportsCheck = [ "ffmpeg_progress_yield" ];
+
+  meta = with lib; {
+    description = "Run an ffmpeg command with progress";
+    homepage = "https://github.com/slhck/ffmpeg-progress-yield";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/ffmpeg-python/default.nix b/pkgs/development/python-modules/ffmpeg-python/default.nix
index 51b0060cb2d..f845ca6a5d3 100644
--- a/pkgs/development/python-modules/ffmpeg-python/default.nix
+++ b/pkgs/development/python-modules/ffmpeg-python/default.nix
@@ -2,9 +2,9 @@
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
-, ffmpeg_3
+, pytestCheckHook
+, ffmpeg
 , future
-, pytest
 , pytestrunner
 , pytest-mock
 }:
@@ -21,23 +21,20 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (
-      substituteAll {
-        src = ./ffmpeg-location.patch;
-        ffmpeg = ffmpeg_3;
-      }
-    )
+    (substituteAll {
+      src = ./ffmpeg-location.patch;
+      inherit ffmpeg;
+    })
   ];
 
   buildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ future ];
-  checkInputs = [ pytest pytest-mock ];
+  checkInputs = [ pytestCheckHook pytest-mock ];
 
   meta = with lib; {
     description = "Python bindings for FFmpeg - with complex filtering support";
     homepage = "https://github.com/kkroening/ffmpeg-python";
     license = licenses.asl20;
     maintainers = [ maintainers.AluisioASG ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix
index 1e1af8e9591..984a3743f0b 100644
--- a/pkgs/development/python-modules/fido2/default.nix
+++ b/pkgs/development/python-modules/fido2/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hoDuJSOOIwdZbrOQCg+MDZzJEYkUbtgDlUTxo6ad/m4=";
+    sha256 = "8680ee25238e2307596eb3900a0f8c0d9cc91189146ed8039544f1a3a69dfe6e";
   };
 
   propagatedBuildInputs = [ six cryptography ];
diff --git a/pkgs/development/python-modules/fingerprints/default.nix b/pkgs/development/python-modules/fingerprints/default.nix
new file mode 100644
index 00000000000..ea68c6fa8d4
--- /dev/null
+++ b/pkgs/development/python-modules/fingerprints/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, normality
+, mypy
+, coverage
+, nose
+}:
+buildPythonPackage rec {
+  pname = "fingerprints";
+  version = "1.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cafd5f92b5b91e4ce34af2b954da9c05b448a4778947785abb19a14f363352d0";
+  };
+
+  propagatedBuildInputs = [
+    normality
+  ];
+
+  checkInputs = [
+    mypy
+    coverage
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [
+    "fingerprints"
+  ];
+
+  meta = with lib; {
+    description = "A library to generate entity fingerprints";
+    homepage = "https://github.com/alephdata/fingerprints";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index 6f1d8181a58..7c81967d070 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -1,15 +1,15 @@
 { lib, buildPythonPackage, fetchPypi, pythonOlder
 , mock, pytest, pytestrunner
-, configparser, enum34, mccabe, pycodestyle, pyflakes, functools32, typing, importlib-metadata
+, configparser, enum34, mccabe, pycodestyle, pyflakes, functools32, typing ? null, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "3.8.4";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b";
+    sha256 = "78873e372b12b093da7b5e5ed302e8ad9e988b38b063b61ad937f26ca58fc5f0";
   };
 
   checkInputs = [ pytest mock pytestrunner ];
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 57c95cf8800..708c5c351ea 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,23 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytestCheckHook, pytestcov, pytest-xprocess, pytestcache }:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.9.0";
+  version = "1.10.1";
   disabled = isPy27; # invalid python2 syntax
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0356ad868b1d8ec2d0e675a6fe891c41303128f8904d5d79e180d8b3f952aff";
+    sha256 = "cf19b722fcebc2ba03e4ae7c55b532ed53f0cbf683ce36fafe5e881789a01c00";
   };
 
   propagatedBuildInputs = [ flask ];
 
-  checkInputs = [ pytest pytestcov pytest-xprocess pytestcache ];
+  checkInputs = [ pytestCheckHook pytestcov pytest-xprocess pytestcache ];
 
-  # backend_cache relies on pytest-cache, which is a stale package from 2013
-  checkPhase = ''
-    pytest -k 'not backend_cache'
-  '';
+  disabledTests = [
+    # backend_cache relies on pytest-cache, which is a stale package from 2013
+    "backend_cache"
+    # optional backends
+    "Redis"
+    "Memcache"
+  ];
 
   meta = with lib; {
     description = "Adds caching support to your Flask application";
diff --git a/pkgs/development/python-modules/flask-jwt-extended/default.nix b/pkgs/development/python-modules/flask-jwt-extended/default.nix
index dd018d84a6d..a49aefd5ebc 100644
--- a/pkgs/development/python-modules/flask-jwt-extended/default.nix
+++ b/pkgs/development/python-modules/flask-jwt-extended/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-JWT-Extended";
-  version = "3.25.1";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bbf4467f41c56cf1fd8a5870d2556f419c572aad2b4085757581c3f9b4d7767a";
+    sha256 = "77ca23f23e80480ea42b9c1d9b0fca214e08db7192583e782c2421416b4a4655";
   };
 
   propagatedBuildInputs = [ dateutil flask pyjwt werkzeug ];
diff --git a/pkgs/development/python-modules/flask-mongoengine/default.nix b/pkgs/development/python-modules/flask-mongoengine/default.nix
index ad435331236..f7cb7224dc5 100644
--- a/pkgs/development/python-modules/flask-mongoengine/default.nix
+++ b/pkgs/development/python-modules/flask-mongoengine/default.nix
@@ -8,20 +8,22 @@
 , nose
 , rednose
 , coverage
+, email_validator
 }:
 
 buildPythonPackage rec {
   pname = "flask-mongoengine";
-  version = "0.9.5";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "MongoEngine";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05hfddf1dm594wnjyqhj0zmjfsf1kpmx1frjwhypgzx4hf62qcmr";
+    sha256 = "10g9b13ls2msnhv8j44gslrfxa2ppqz2y1xjn2a4gg4m9mdjv8b2";
   };
 
   propagatedBuildInputs = [
+    email_validator
     flask
     flask_wtf
     mongoengine
diff --git a/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index 1bac82fb44f..421bc95332b 100644
--- a/pkgs/development/python-modules/flask-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SQLAlchemy";
-  version = "2.4.4";
+  version = "2.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rgsj49gnx361hnb3vn6c1h17497qh22yc3r70l1r6w0mw71bixz";
+    sha256 = "2bda44b43e7cacb15d4e05ff3cc1f8bc97936cc464623424102bfc2c35e95912";
   };
 
   propagatedBuildInputs = [ flask sqlalchemy ];
diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix
index 53a1e0651f3..a4c6b99b07f 100644
--- a/pkgs/development/python-modules/flit-core/default.nix
+++ b/pkgs/development/python-modules/flit-core/default.nix
@@ -3,12 +3,13 @@
 , flit
 , isPy3k
 , toml
+, pytestCheckHook
+, testpath
 }:
 
 buildPythonPackage rec {
   pname = "flit-core";
-  version = "2.3.0";
-  disabled = !isPy3k;
+  version = "3.2.0";
   format = "pyproject";
 
   inherit (flit) src patches;
@@ -21,6 +22,11 @@ buildPythonPackage rec {
     toml
   ];
 
+  checkInputs = [
+    pytestCheckHook
+    testpath
+  ];
+
   passthru.tests = {
     inherit flit;
   };
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index c63fd1edeaf..38369dfd4d2 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -21,30 +21,20 @@
 
 buildPythonPackage rec {
   pname = "flit";
-  version = "3.0.0";
-  disabled = !isPy3k;
+  version = "3.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "takluyver";
     repo = "flit";
     rev = version;
-    sha256 = "zk6mozS3Q9U43PQe/DxgwwsBRJ6Qwb+rSUVGXHijD+g=";
+    sha256 = "sha256-zN+/oAyXBo6Ho7n/xhOQ2mjtPGKA1anCvl3sVf7t+Do=";
   };
 
   nativeBuildInputs = [
     flit-core
   ];
 
-  # Use toml instead of pytoml
-  # Resolves infinite recursion since packaging started using flit.
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/takluyver/flit/commit/b81b1da55ef0f2768413669725d2874fcb0c29fb.patch";
-      sha256 = "11oNaYsm00/j2046V9C0idpSeG7TpY3JtLuxX3ZL/OI=";
-    })
-  ];
-
   propagatedBuildInputs = [
     docutils
     requests
diff --git a/pkgs/development/python-modules/flufl/lock.nix b/pkgs/development/python-modules/flufl/lock.nix
index 1be5d9a7c4c..b44a7f3cdfe 100644
--- a/pkgs/development/python-modules/flufl/lock.nix
+++ b/pkgs/development/python-modules/flufl/lock.nix
@@ -1,13 +1,24 @@
-{ buildPythonPackage, fetchPypi, atpublic }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook
+, atpublic, psutil, pytestcov, sybil
+}:
 
 buildPythonPackage rec {
   pname = "flufl.lock";
-  version = "3.2";
-
-  propagatedBuildInputs = [ atpublic ];
+  version = "5.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nzzd6l30ff6cwsrlrb94xzfja4wkyrqv3ydc6cz0hdbr766mmm8";
+    sha256 = "1bnapkg99r6mixn3kh314bqcfk8q54y0cvhjpj87j7dhjpsakfpz";
+  };
+
+  propagatedBuildInputs = [ atpublic psutil ];
+  checkInputs = [ pytestCheckHook pytestcov sybil ];
+
+  meta = with lib; {
+    homepage = "https://flufllock.readthedocs.io/";
+    description = "NFS-safe file locking with timeouts for POSIX and Windows";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.asl20;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix
index aa6831441d8..c14b169bea9 100644
--- a/pkgs/development/python-modules/fs/default.nix
+++ b/pkgs/development/python-modules/fs/default.nix
@@ -4,9 +4,9 @@
 , fetchPypi
 , six
 , appdirs
-, scandir
-, backports_os
-, typing
+, scandir ? null
+, backports_os ? null
+, typing ? null
 , pytz
 , enum34
 , pyftpdlib
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 1734ad2f507..fbcf09de2eb 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -5,34 +5,36 @@
 , pytestCheckHook
 , numpy
 , stdenv
+, aiohttp
+, pytest-vcr
+, requests
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "0.8.3";
+  version = "2021.04.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "0mfy0wxjfwwnp5q2afhhfbampf0fk71wsv512pi9yvrkzzfi1hga";
+    sha256 = "sha256-9072kb1VEQ0xg9hB8yEzJMD2Ttd3UGjBmTuhE+Uya1k=";
   };
 
-  checkInputs = [
-    pytestCheckHook
-    numpy
-  ];
+  checkInputs = [ pytestCheckHook numpy pytest-vcr ];
+
+  __darwinAllowLocalNetworking = true;
+
+  propagatedBuildInputs = [ aiohttp requests ];
 
   disabledTests = [
     # Test assumes user name is part of $HOME
     # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
     "test_strip_protocol_expanduser"
-    # flaky: works locally but fails on hydra
-    # as it uses the install dir for tests instead of a temp dir
-    # resolved in https://github.com/intake/filesystem_spec/issues/432 and
-    # can be enabled again from version 0.8.4
-    "test_pathobject"
+    # test accesses this remote ftp server:
+    # https://ftp.fau.de/debian-cd/current/amd64/log/success
+    "test_find"
   ] ++ lib.optionals (stdenv.isDarwin) [
     # works locally on APFS, fails on hydra with AssertionError comparing timestamps
     # darwin hydra builder uses HFS+ and has only one second timestamp resolution
diff --git a/pkgs/development/python-modules/fusepy/default.nix b/pkgs/development/python-modules/fusepy/default.nix
index 45b70863042..03a5248e8e1 100644
--- a/pkgs/development/python-modules/fusepy/default.nix
+++ b/pkgs/development/python-modules/fusepy/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pkgs
@@ -18,7 +19,9 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  patchPhase = ''
+  # On macOS, users are expected to install macFUSE. This means fusepy should
+  # be able to find libfuse in /usr/local/lib.
+  patchPhase = lib.optionalString (!stdenv.isDarwin) ''
     substituteInPlace fuse.py --replace \
       "find_library('fuse')" "'${pkgs.fuse}/lib/libfuse.so'"
   '';
diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix
new file mode 100644
index 00000000000..483e4a61084
--- /dev/null
+++ b/pkgs/development/python-modules/gcsfs/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage, fetchFromGitHub, lib, pytestCheckHook, google-auth
+, google-auth-oauthlib, requests, decorator, fsspec, ujson, aiohttp, crcmod
+, pytest-vcr, vcrpy }:
+
+buildPythonPackage rec {
+  pname = "gcsfs";
+  version = "2021.04.0";
+
+  # github sources needed for test data
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-OA43DaQue7R5d6SzfKThEQFEwJndjLfznu1LMubs5fs=";
+  };
+
+  propagatedBuildInputs = [
+    google-auth
+    google-auth-oauthlib
+    requests
+    decorator
+    fsspec
+    aiohttp
+    ujson
+    crcmod
+  ];
+
+  checkInputs = [ pytestCheckHook pytest-vcr vcrpy ];
+  pythonImportsCheck = [ "gcsfs" ];
+
+  meta = with lib; {
+    description = "Convenient Filesystem interface over GCS";
+    homepage = "https://github.com/dask/gcsfs";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.nbren12 ];
+  };
+}
diff --git a/pkgs/development/python-modules/gemfileparser/default.nix b/pkgs/development/python-modules/gemfileparser/default.nix
new file mode 100644
index 00000000000..8aa4b819231
--- /dev/null
+++ b/pkgs/development/python-modules/gemfileparser/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "gemfileparser";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "839592e49ea3fd985cec003ef58f8e77009a69ed7644a0c0acc94cf6dd9b8d6e";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "gemfileparser"
+  ];
+
+  meta = with lib; {
+    description = "A library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
+    homepage = "https://github.com/gemfileparser/gemfileparser";
+    license = with licenses; [ gpl3Plus /* or */ mit ];
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/gentools/default.nix b/pkgs/development/python-modules/gentools/default.nix
index 129eaae340a..14e1fc1c609 100644
--- a/pkgs/development/python-modules/gentools/default.nix
+++ b/pkgs/development/python-modules/gentools/default.nix
@@ -1,5 +1,5 @@
 { buildPythonPackage, lib, fetchFromGitHub, pytest
-, typing, funcsigs, pythonOlder
+, typing ? null, funcsigs ? null, pythonOlder
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ghp-import/default.nix b/pkgs/development/python-modules/ghp-import/default.nix
new file mode 100644
index 00000000000..37a35febdf0
--- /dev/null
+++ b/pkgs/development/python-modules/ghp-import/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, dateutil
+}:
+
+buildPythonPackage rec {
+  pname = "ghp-import";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-wiqc4Qw3dT4miNFk12WnANrkuNefptsKLDEyuniBiU8=";
+  };
+
+  propagatedBuildInputs = [ dateutil ];
+
+  # Does not include any unit tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "ghp_import" ];
+
+  meta = with lib; {
+    description = "Copy your docs directly to the gh-pages branch";
+    homepage = "https://github.com/c-w/ghp-import";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index a28bcfb0ec1..9d9cc2095e6 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "gidgethub";
-  version = "4.2.0";
+  version = "5.0.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5526cc2a06bfad707d10ec118393e0d33c2aa524605255d96958c22c93e8e7aa";
+    sha256 = "a4a8d8b1ab629757b557d3bcb98a5a77790a3d00b320f5f881a1754cf0e21086";
   };
 
   nativeBuildInputs = [ setuptools pytestrunner ];
diff --git a/pkgs/development/python-modules/gitdb/default.nix b/pkgs/development/python-modules/gitdb/default.nix
index 5c3bd4ac43f..1ad0b320da8 100644
--- a/pkgs/development/python-modules/gitdb/default.nix
+++ b/pkgs/development/python-modules/gitdb/default.nix
@@ -17,6 +17,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ smmap ];
 
+  postPatch = ''
+    substituteInPlace setup.py --replace ",<4" ""
+  '';
+
   # Bunch of tests fail because they need an actual git repo
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/goocalendar/default.nix b/pkgs/development/python-modules/goocalendar/default.nix
index b0eea600384..6c371496ffa 100644
--- a/pkgs/development/python-modules/goocalendar/default.nix
+++ b/pkgs/development/python-modules/goocalendar/default.nix
@@ -4,7 +4,6 @@
 , pkg-config
 , gtk3
 , gobject-introspection
-, pygtk
 , pygobject3
 , goocanvas2
 , isPy3k
diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix
index 05ea601330d..ceaec714176 100644
--- a/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-oHw5/WMr7KzT8HcY39YCG/OWl48DrTzkMh0GABXMMKw=";
+    sha256 = "a07c39fd632becacd3f07718dfd6021bf396978f03ad3ce4321d060015cc30ac";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 37752601e26..6e4c139d8dd 100644
--- a/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , click
@@ -28,6 +29,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_run_local_server" ];
+
   meta = with lib; {
     description = "Google Authentication Library: oauthlib integration";
     homepage = "https://github.com/GoogleCloudPlatform/google-auth-library-python-oauthlib";
diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix
index addd67f9faa..81753d11b35 100644
--- a/pkgs/development/python-modules/google-auth/default.nix
+++ b/pkgs/development/python-modules/google-auth/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchpatch
 , fetchPypi
@@ -22,7 +23,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-m9Q20ZqwRwAaE0ByDStinrlt1QMljFJJIewq8+6IqA4=";
+    sha256 = "9bd436d19ab047001a1340720d2b629eb96dd503258c524921ec2af3ee88a80e";
   };
 
   propagatedBuildInputs = [
@@ -48,6 +49,14 @@ buildPythonPackage rec {
     "google.oauth2"
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [
+    "test_request_with_timeout_success"
+    "test_request_with_timeout_failure"
+    "test_request_headers"
+    "test_request_error"
+    "test_request_basic"
+  ];
+
   meta = with lib; {
     description = "Google Auth Python Library";
     longDescription = ''
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index 3b194dae92c..8aff4915472 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-mAZSVxiTiLbMeXR4xLK9+G6ejNyspdFw3tAnZGREpYY=";
+    sha256 = "98065257189388b6cc797478c4b2bdf86e9e8cdcaca5d170ded027646444a586";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-core/default.nix b/pkgs/development/python-modules/google-cloud-core/default.nix
index 1c70d1dc266..3ac6544c156 100644
--- a/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-xquxhSdUU3n8gu/E3nXOmjdyzK0vxkWtrOWTugl8uwI=";
+    sha256 = "c6abb18527545379fc82efc4de75ce9a3772ccad2fc645adace593ba097cbb02";
   };
 
   propagatedBuildInputs = [ google-api-core ];
diff --git a/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 206e740aa46..7ca698b6645 100644
--- a/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-tGNwSv+rMnwdP6SvKAqFhjW19ZqIRWsqCNtiozajUqo=";
+    sha256 = "b463704affab327c1d3fa4af280a858635b5f59a88456b2a08db62a336a352aa";
   };
 
   propagatedBuildInputs = [ google-api-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 62139b81c26..cf8bb20e61e 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ojvnzCO8yxrm3rt0pH3FtRhYtjIvzwNMqS/npKy4lvM=";
+    sha256 = "a23be7cc23bccb1ae6debb74a47dc5b51858b6322fcf034ca92fe7a4acb896f3";
   };
 
   propagatedBuildInputs = [ click google-auth six ];
diff --git a/pkgs/development/python-modules/googleapis-common-protos/default.nix b/pkgs/development/python-modules/googleapis-common-protos/default.nix
index 1b54d64f1a2..3a7c0510ad0 100644
--- a/pkgs/development/python-modules/googleapis-common-protos/default.nix
+++ b/pkgs/development/python-modules/googleapis-common-protos/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qI7okDqgqB9sPOwtXPYtPIqmfAZDmwSWtJBI+xhU6/Q=";
+    sha256 = "a88ee8903aa0a81f6c3cec2d5cf62d3c8aa67c06439b0496b49048fb1854ebf4";
   };
 
   propagatedBuildInputs = [ grpc protobuf ];
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 81260110f92..d2d6a78436a 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib
+, buildPythonPackage
+, fetchPypi
 , django
 , memcached
 , txamqp
@@ -9,7 +11,6 @@
 , cairocffi
 , whisper
 , whitenoise
-, scandir
 , urllib3
 , six
 }:
@@ -38,7 +39,6 @@ buildPythonPackage rec {
     cairocffi
     whisper
     whitenoise
-    scandir
     urllib3
     six
   ];
diff --git a/pkgs/development/python-modules/graphql-core/default.nix b/pkgs/development/python-modules/graphql-core/default.nix
index 5c29a1135a9..85021d126a1 100644
--- a/pkgs/development/python-modules/graphql-core/default.nix
+++ b/pkgs/development/python-modules/graphql-core/default.nix
@@ -1,27 +1,21 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, lib
-, pythonOlder
-
-, coveralls
-, promise
-, pytestCheckHook
 , pytest-benchmark
-, pytest-mock
-, rx
-, six
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "graphql-core";
-  version = "3.1.3";
+  version = "3.1.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qy1i6vffwad74ymdsh1qjf5b6ph4z0vyxzkkc6yppwczhzmi1ps";
+    sha256 = "sha256-lamV5Rd37WvFBJ+zJUb+UhqxoNUrRhoMJx1NodbQUjs=";
   };
 
   checkInputs = [
@@ -29,12 +23,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "graphql" ];
+
   meta = with lib; {
     description = "Port of graphql-js to Python";
     homepage = "https://github.com/graphql-python/graphql-core";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index 0fe6b9343eb..dadb9b52762 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -3,8 +3,8 @@
 , grpc
 , six
 , protobuf
-, enum34
-, futures
+, enum34 ? null
+, futures ? null
 , isPy27
 , pkg-config
 , cython
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index 9a1d54e6b5e..4a98008f790 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "sha256-x86/KMcXChPLzoCqR9xwemusWktf/seHLQmEKLco3GQ=";
+    sha256 = "0r6w52vji1095n3wgzjz9ddaqsvsf3f4gal0rv5i62hpqwlbzkn7";
   };
 
   # It's used to locate headers
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index d0c1e74ee29..0450dfd07e5 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "guessit";
-  version = "3.1.1";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c530pb0h34z0ziym256qps21b8mh533ia1lcnx9wqwx9rnqriki";
+    sha256 = "8305e0086129614a8820a508303f98f56c584811489499bcc54a7ea6f1b0391e";
   };
 
   # Tests require more packages.
diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix
index 263bdfa2f47..a1cd76cd38e 100644
--- a/pkgs/development/python-modules/gym/default.nix
+++ b/pkgs/development/python-modules/gym/default.nix
@@ -1,19 +1,32 @@
 { lib
-, buildPythonPackage, fetchPypi
-, numpy, requests, six, pyglet, scipy, cloudpickle
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, requests
+, pyglet
+, scipy
+, pillow
+, cloudpickle
 }:
 
 buildPythonPackage rec {
   pname = "gym";
-  version = "0.17.3";
+  version = "0.18.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "96a7dd4e9cdb39e30c7a79e5773570fd9408f7fdb58c714c293cfbb314818eb6";
+  src = fetchFromGitHub {
+    owner = "openai";
+    repo = pname;
+    rev = version;
+    sha256 = "0mv4af2y9d1y97bsda94f21nis2jm1zkzv7c806vmvzh5s4r8nfn";
   };
 
   propagatedBuildInputs = [
-    numpy requests six pyglet scipy cloudpickle
+    cloudpickle
+    numpy
+    pillow
+    pyglet
+    requests
+    scipy
   ];
 
   # The test needs MuJoCo that is not free library.
@@ -22,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gym" ];
 
   meta = with lib; {
-    description = "A toolkit by OpenAI for developing and comparing your reinforcement learning agents";
+    description = "A toolkit for developing and comparing your reinforcement learning agents";
     homepage = "https://gym.openai.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/ha-ffmpeg/default.nix b/pkgs/development/python-modules/ha-ffmpeg/default.nix
index 84810fd2b53..9fd1295733c 100644
--- a/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k
-, ffmpeg_3, async-timeout }:
+, async-timeout }:
 
 buildPythonPackage rec {
   pname = "ha-ffmpeg";
@@ -12,17 +12,21 @@ buildPythonPackage rec {
     sha256 = "8d92f2f5790da038d828ac862673e0bb43e8e972e4c70b1714dd9a0fb776c8d1";
   };
 
-  buildInputs = [ ffmpeg_3 ];
-
   propagatedBuildInputs = [ async-timeout ];
 
   # only manual tests
   doCheck = false;
 
+  pythonImportsCheck = [
+    "haffmpeg.camera"
+    "haffmpeg.sensor"
+    "haffmpeg.tools"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/pvizeli/ha-ffmpeg";
     description = "Library for home-assistant to handle ffmpeg";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/pkgs/development/python-modules/habanero/default.nix b/pkgs/development/python-modules/habanero/default.nix
index a7ec358ffd7..e24f2fc0969 100644
--- a/pkgs/development/python-modules/habanero/default.nix
+++ b/pkgs/development/python-modules/habanero/default.nix
@@ -1,21 +1,21 @@
 { buildPythonPackage, lib, fetchFromGitHub
-, requests
+, requests, tqdm
 , nose, vcrpy
 }:
 
 buildPythonPackage rec {
   pname = "habanero";
-  version = "0.6.0";
+  version = "0.7.4";
 
   # Install from Pypi is failing because of a missing file (Changelog.rst)
   src = fetchFromGitHub {
     owner = "sckott";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l2cgl6iiq8jff2w2pib6w8dwaj8344crhwsni2zzq0p44dwi13d";
+    sha256 = "1d8yj9xz5qabcj57rpjzvg0jcscvzrpb0739mll29nijbsaimfr1";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests tqdm ];
 
   checkInputs = [ nose vcrpy ];
   checkPhase = "make test";
diff --git a/pkgs/development/python-modules/hachoir/default.nix b/pkgs/development/python-modules/hachoir/default.nix
new file mode 100644
index 00000000000..2c46b14a274
--- /dev/null
+++ b/pkgs/development/python-modules/hachoir/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, urwid
+}:
+
+buildPythonPackage rec {
+  pname = "hachoir";
+  version = "3.1.2";
+
+  src = fetchFromGitHub {
+    owner = "vstinner";
+    repo = pname;
+    rev = version;
+    sha256 = "06544qmmimvaznwcjs8wwfih1frdd7anwcw5z07cf69l8p146p0y";
+  };
+
+  propagatedBuildInputs = [
+    urwid
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "hachoir" ];
+
+  meta = with lib; {
+    description = "Python library to view and edit a binary stream";
+    homepage = "https://hachoir.readthedocs.io/";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix
index 961137ed9ab..f75891c2600 100644
--- a/pkgs/development/python-modules/hatasmota/default.nix
+++ b/pkgs/development/python-modules/hatasmota/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "hatasmota";
-  version = "0.2.9";
+  version = "0.2.11";
 
   src = fetchFromGitHub {
     owner = "emontnemery";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+4jlzemF5f4Qz4QHDaErsmVHq1Pjn/vsvoq/oCbW/hI=";
+    sha256 = "sha256-S2pVxYpB8NcZIbhC+gnGrJxM6tvoPS1Uh87HTYiksWI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix
index 4c74621b483..b7bd002c367 100644
--- a/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.2.0.post1";
+  version = "10.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "391aa877a61ed04c58b8d82d465b3771f632bb9b19f22cbf18f0e5a1f42f8d4e";
+    sha256 = "5d7f73fc1c357134ae9b4a3ed2d844ab8e75a4ca1303679a9e150e87617e7bc7";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/homeconnect/default.nix b/pkgs/development/python-modules/homeconnect/default.nix
new file mode 100644
index 00000000000..98aab26ffac
--- /dev/null
+++ b/pkgs/development/python-modules/homeconnect/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "homeconnect";
+  version = "0.6.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0n4h4mi23zw3v6fbkz17fa6kkl5v9bfmj0p57jvfzcfww511y9mn";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "homeconnect" ];
+
+  meta = with lib; {
+    description = "Python client for the BSH Home Connect REST API";
+    homepage = "https://github.com/DavidMStraub/homeconnect";
+    changelog = "https://github.com/DavidMStraub/homeconnect/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index 55aafc62042..90cb27be843 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2021.3.29";
+  version = "2021.4.26";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-F5EXwCoXYmFkV0VWT5leIWZU2xH1t6T0LuxodAANS8E=";
+    sha256 = "sha256-bjyOsZIsYE3xF2/imp+4HPOZzh5wIehAru/uqfijleE=";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index ce3b3aa1f67..40bfe4d3e88 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
@@ -14,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.19.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "04y2bc2yv3q84llxnafqrciqxjqpxbrd8glbnvvr16c20fwc3r4q";
+    sha256 = "sha256-e0Mq9AVJEWQ9GEtYFXk2fMIs7GtAUsyJN6XheqAnD3I=";
   };
 
   postPatch = ''
@@ -29,6 +30,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyparsing ];
 
+  pythonImportsCheck = [ "httplib2" ];
+
+  # Don't run tests for Python 2.7
+  doCheck = !isPy27;
+
   checkInputs = [
     mock
     pytest-forked
@@ -39,10 +45,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Don't run tests for Python 2.7
-  doCheck = !isPy27;
+  disabledTests = lib.optionals (stdenv.isDarwin) [
+    # fails with HTTP 408 Request Timeout, instead of expected 200 OK
+    "test_timeout_subsequent"
+  ];
+
   pytestFlagsArray = [ "--ignore python2" ];
-  pythonImportsCheck = [ "httplib2" ];
 
   meta = with lib; {
     description = "A comprehensive HTTP client library";
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index ef66870ddfd..5db7d6d0254 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -9,13 +9,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.2.0";
+  version = "3.3.0";
   pname = "humanize";
   disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09ph6fd1362xdn2hgwdgh30z0zqjp3bgvr1akyvm36b8jm400sdb";
+    sha256 = "8bf7abd672b867f38b8b04593829b85b9b6199a61ef6586bf3629cc06458ff35";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix
new file mode 100644
index 00000000000..c282be29c65
--- /dev/null
+++ b/pkgs/development/python-modules/hyperion-py/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, poetry-core
+, pytest-aiohttp
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "hyperion-py";
+  version = "0.7.4";
+  disabled = pythonOlder "3.8";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "dermotduffy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "00x12ppmvlxs3qbdxq06wnzakvwm2m39qhmpp27qfpl137b0qqyj";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace " --timeout=9 --cov=hyperion" ""
+  '';
+
+  pythonImportsCheck = [ "hyperion" ];
+
+  meta = with lib; {
+    description = "Python package for Hyperion Ambient Lighting";
+    homepage = "https://github.com/dermotduffy/hyperion-py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hyperlink/default.nix b/pkgs/development/python-modules/hyperlink/default.nix
index bab7986eda2..ad56de86782 100644
--- a/pkgs/development/python-modules/hyperlink/default.nix
+++ b/pkgs/development/python-modules/hyperlink/default.nix
@@ -1,12 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, idna, typing }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, idna, typing ? null }:
 
 buildPythonPackage rec {
   pname = "hyperlink";
-  version = "20.0.1";
+  version = "21.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47fcc7cd339c6cb2444463ec3277bdcfe142c8b1daf2160bdd52248deec815af";
+    sha256 = "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b";
   };
 
   propagatedBuildInputs = [ idna ]
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 5b2869e10d1..86b43465fb6 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "hyppo";
-  version = "0.1.3";
+  version = "0.2.1";
 
   disabled = isPy27;
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "neurodata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qdnb1l4hz4dgwhapz1fp9sb2vxxvr8h2ngsbvyf50h3kapcn19r";
+    sha256 = "0izjc68rb6sr3x55c3zzraakzspgzh80qykfax9zj868zypfm365";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/idna/2.nix b/pkgs/development/python-modules/idna/2.nix
new file mode 100644
index 00000000000..9a1c1dc271f
--- /dev/null
+++ b/pkgs/development/python-modules/idna/2.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "idna";
+  version = "2.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = {
+    homepage = "https://github.com/kjd/idna/";
+    description = "Internationalized Domain Names in Applications (IDNA)";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/idna/default.nix b/pkgs/development/python-modules/idna/default.nix
index 613fde773a7..9bb639f95d5 100644
--- a/pkgs/development/python-modules/idna/default.nix
+++ b/pkgs/development/python-modules/idna/default.nix
@@ -1,17 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "idna";
-  version = "2.10";
+  version = "3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6";
+    sha256 = "c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1";
   };
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = {
     homepage = "https://github.com/kjd/idna/";
     description = "Internationalized Domain Names in Applications (IDNA)";
diff --git a/pkgs/development/python-modules/ignite/default.nix b/pkgs/development/python-modules/ignite/default.nix
index 307c25e724e..71bed73f9d7 100644
--- a/pkgs/development/python-modules/ignite/default.nix
+++ b/pkgs/development/python-modules/ignite/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "ignite";
-  version = "0.4.2";
+  version = "0.4.4.post1";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00vcmhnp14s54g386izgaxzrdr2nqv3pz9nvpyiwrn33zawr308z";
+    sha256 = "1a7vs4dzm5lmyck50ygi3j2d2wd6nxr5x91dpx0rmf97i6lywpyb";
   };
 
   checkInputs = [ pytestCheckHook matplotlib mock pytest_xdist ];
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 67920dc7b7d..2b334fd121c 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -10,7 +10,7 @@
 , numpy
 , isPy3k
 , ffmpeg_3
-, futures
+, futures ? null
 , enum34
 }:
 
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 136415eb54e..700c23827fa 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.39.0";
+  version = "0.40.0";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "sha256-PyksCYVe7Ij/+bZpntHgY51I/ZVnC6L20TcKfTLr2CY=";
+    sha256 = "sha256-7qLiVN3pBkbZQlA12ZOkgpiV/JybrPTmEIeJjy4ZS3A=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/imapclient/default.nix b/pkgs/development/python-modules/imapclient/default.nix
index 27667f860ff..ea4f388b6c7 100644
--- a/pkgs/development/python-modules/imapclient/default.nix
+++ b/pkgs/development/python-modules/imapclient/default.nix
@@ -1,35 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, mock
 , six
+, pytestCheckHook
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "IMAPClient";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "mjs";
     repo = "imapclient";
     rev = version;
-    sha256 = "1zc8qj8ify2zygbz255b6fcg7jhprswf008ccwjmbrnj08kh9l4x";
+    sha256 = "sha256-q/8LFKHgrY3pQV7Coz+5pZAw696uABMTEkYoli6C2KA=";
   };
 
-  # fix test failing in python 36
-  postPatch = ''
-    substituteInPlace tests/test_imapclient.py \
-      --replace "if sys.version_info >= (3, 7):" "if sys.version_info >= (3, 6, 4):"
-  '';
-
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ mock ];
+  checkInputs = [ pytestCheckHook mock ];
 
   meta = with lib; {
     homepage = "https://imapclient.readthedocs.io";
     description = "Easy-to-use, Pythonic and complete IMAP client library";
     license = licenses.bsd3;
-    maintainers = [ maintainers.almac ];
+    maintainers = with maintainers; [ almac dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/importlib-metadata/2.nix b/pkgs/development/python-modules/importlib-metadata/2.nix
new file mode 100644
index 00000000000..71dcd950db2
--- /dev/null
+++ b/pkgs/development/python-modules/importlib-metadata/2.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+, zipp
+, pathlib2
+, contextlib2
+, configparser
+, isPy3k
+, importlib-resources
+, packaging
+}:
+
+buildPythonPackage rec {
+  pname = "importlib-metadata";
+  version = "2.1.1";
+
+  src = fetchPypi {
+    pname = "importlib_metadata";
+    inherit version;
+    sha256 = "1pdmsmwagimn0lsl4x7sg3skcr2fvzqpv2pjd1rh7yrm5gzrxpmq";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ zipp ]
+    ++ lib.optionals (!isPy3k) [ pathlib2 contextlib2 configparser ];
+
+  # Cyclic dependencies
+  doCheck = false;
+
+  pythonImportsCheck = [ "importlib_metadata" ];
+
+  meta = with lib; {
+    description = "Read metadata from Python packages";
+    homepage = "https://importlib-metadata.readthedocs.io/";
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index edab68aa18a..4149de3f43a 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -1,42 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools_scm
+, pythonOlder
+, setuptools-scm
+, typing-extensions
+, toml
 , zipp
-, pathlib2
-, contextlib2
-, configparser
-, isPy3k
-, importlib-resources
-, packaging
 }:
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "1.7.0";
+  version = "3.7.3";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "10vz0ydrzspdhdbxrzwr9vhs693hzh4ff71lnqsifvdzvf66bfwh";
+    sha256 = "742add720a20d0467df2f444ae41704000f50e1234f46174b51f9c6031a1bd71";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ zipp ]
-    ++ lib.optionals (!isPy3k) [ pathlib2 contextlib2 configparser ];
+  propagatedBuildInputs = [
+    toml
+    zipp
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
 
-  doCheck = false; # Cyclic dependencies.
-
-  # removing test_main.py - it requires 'pyflakefs'
-  # and adding `pyflakefs` to `checkInputs` causes infinite recursion.
-  preCheck = ''
-    rm importlib_metadata/tests/test_main.py
-  '';
+  # Cyclic dependencies due to pyflakefs
+  doCheck = false;
+  pythonImportsCheck = [ "importlib_metadata" ];
 
   meta = with lib; {
     description = "Read metadata from Python packages";
     homepage = "https://importlib-metadata.readthedocs.io/";
     license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index ccb2190cf04..cd8fec1e54e 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -4,19 +4,19 @@
 , setuptools_scm
 , toml
 , importlib-metadata
-, typing
-, singledispatch
+, typing ? null
+, singledispatch ? null
 , pythonOlder
 , python
 }:
 
 buildPythonPackage rec {
   pname = "importlib_resources";
-  version = "3.3.1";
+  version = "5.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ed250dbd291947d1a298e89f39afcc477d5a6624770503034b72588601bcc05";
+    sha256 = "642586fc4740bd1cad7690f836b3321309402b20b332529f25617ff18e8e1370";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/pkgs/development/python-modules/incremental/default.nix b/pkgs/development/python-modules/incremental/default.nix
index 6241bc869c1..6cbed7221a8 100644
--- a/pkgs/development/python-modules/incremental/default.nix
+++ b/pkgs/development/python-modules/incremental/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "incremental";
-  version = "17.5.0";
+  version = "21.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3";
+    sha256 = "02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index 49cf660bf56..41207295a2c 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.6.1";
+  version = "0.6.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f09800203fcaf1512f9234e54dbd07ec2b5217aafd21716385725ec052f5a52e";
+    sha256 = "b0cab1d185a703acb38eecb9cff3edd5cc7004fe18a36d5e42a8f7fffc9cca1c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/intbitset/default.nix b/pkgs/development/python-modules/intbitset/default.nix
new file mode 100644
index 00000000000..db98be8276c
--- /dev/null
+++ b/pkgs/development/python-modules/intbitset/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, six
+, nose
+}:
+buildPythonPackage rec {
+  pname = "intbitset";
+  version = "2.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "44bca80b8cc702d5a56f0686f2bb5e028ab4d0c2c1761941589d46b7fa2c701c";
+  };
+
+  patches = [
+    # fixes compilation on aarch64 and determinism (uses -march=core2 and
+    # -mtune=native)
+    ./remove-impure-tuning.patch
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [
+    "intbitset"
+  ];
+
+  meta = with lib; {
+    description = "C-based extension implementing fast integer bit sets";
+    homepage = "https://github.com/inveniosoftware/intbitset";
+    license = licenses.lgpl3Only;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch b/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch
new file mode 100644
index 00000000000..4747b87b806
--- /dev/null
+++ b/pkgs/development/python-modules/intbitset/remove-impure-tuning.patch
@@ -0,0 +1,24 @@
+From 2ea60bdf4d7b0344fc6ff5c97c675842fedccfa8 Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Fri, 23 Apr 2021 09:02:22 -0700
+Subject: [PATCH] setup.py: remove impure tuning
+
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 7840022..3922aa5 100644
+--- a/setup.py
++++ b/setup.py
+@@ -48,7 +48,6 @@ setup(
+     ext_modules=[
+         Extension("intbitset",
+                   ["intbitset/intbitset.c", "intbitset/intbitset_impl.c"],
+-                  extra_compile_args=['-O3', '-march=core2', '-mtune=native']
+                   # For debug -> '-ftree-vectorizer-verbose=2'
+                   )
+     ],
+-- 
+2.30.1
+
diff --git a/pkgs/development/python-modules/invoke/default.nix b/pkgs/development/python-modules/invoke/default.nix
index 45f3ee7a04d..08d72cec496 100644
--- a/pkgs/development/python-modules/invoke/default.nix
+++ b/pkgs/development/python-modules/invoke/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "invoke";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d";
+    sha256 = "f0c560075b5fb29ba14dad44a7185514e94970d1b9d57dcd3723bec5fed92650";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/ipdb/default.nix b/pkgs/development/python-modules/ipdb/default.nix
index 7b8c877371c..fbdfd5b7900 100644
--- a/pkgs/development/python-modules/ipdb/default.nix
+++ b/pkgs/development/python-modules/ipdb/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "ipdb";
-  version = "0.13.4";
+  version = "0.13.7";
   disabled = isPyPy || isPy27;  # setupterm: could not find terminfo database
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c85398b5fb82f82399fc38c44fe3532c0dde1754abee727d8f5cfcc74547b334";
+    sha256 = "178c367a61c1039e44e17c56fcc4a6e7dc11b33561261382d419b6ddb4401810";
   };
 
   propagatedBuildInputs = [ ipython ];
diff --git a/pkgs/development/python-modules/ipfsapi/default.nix b/pkgs/development/python-modules/ipfsapi/default.nix
deleted file mode 100644
index c97eafb6054..00000000000
--- a/pkgs/development/python-modules/ipfsapi/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, six
-, requests
-}:
-
-buildPythonPackage {
-  pname = "ipfsapi";
-  version = "0.4.2.post1";
-  disabled = isPy27;
-
-  src = fetchFromGitHub {
-    owner = "ipfs";
-    repo = "py-ipfs-api";
-    rev = "0c485544a114f580c65e2ffbb5782efbf7fd9f61";
-    sha256 = "1v7f77cv95yv0v80gisdh71mj7jcq41xcfip6bqm57zfdbsa0xpn";
-  };
-
-  propagatedBuildInputs = [ six requests ];
-
-  meta = with lib; {
-    description = "A python client library for the IPFS API";
-    license = licenses.mit;
-    maintainers = with maintainers; [ mguentner ];
-    homepage = "https://pypi.python.org/pypi/ipfsapi";
-  };
-
-}
diff --git a/pkgs/development/python-modules/ipfshttpclient/default.nix b/pkgs/development/python-modules/ipfshttpclient/default.nix
new file mode 100644
index 00000000000..aec8f1ec117
--- /dev/null
+++ b/pkgs/development/python-modules/ipfshttpclient/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, python
+, py-multiaddr
+, requests
+, pytestCheckHook
+, pytest-cov
+, pytest-dependency
+, pytest-localserver
+, pytest-mock
+, pytest-order
+, pytest-cid
+, mock
+, ipfs
+, httpx
+, httpcore
+}:
+
+buildPythonPackage rec {
+  pname = "ipfshttpclient";
+  version = "0.7.0";
+  format = "flit";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "ipfs-shipyard";
+    repo = "py-ipfs-http-client";
+    rev = version;
+    sha256 = "sha256-0lMoZo/9kZUXkaKvD9ZAZDQdGX7eNLzJVszZdlM/3Qs=";
+  };
+
+  propagatedBuildInputs = [
+    py-multiaddr
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+    pytest-dependency
+    pytest-localserver
+    pytest-mock
+    pytest-order
+    pytest-cid
+    mock
+    ipfs
+    httpcore
+    httpx
+  ];
+
+  postPatch = ''
+    # Remove when the package supports the latest IPFS version by default
+    substituteInPlace ipfshttpclient/client/__init__.py \
+      --replace 'VERSION_MAXIMUM   = "0.8.0"' \
+                'VERSION_MAXIMUM   = "0.9.0"'
+
+    # Use pytest-order instead of pytest-ordering since the latter is unmaintained and broken
+    substituteInPlace test/run-tests.py \
+      --replace 'pytest_ordering' 'pytest_order'
+    substituteInPlace test/functional/test_miscellaneous.py \
+      --replace '@pytest.mark.last' '@pytest.mark.order("last")'
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    ${python.interpreter} -X utf8 test/run-tests.py
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "ipfshttpclient" ];
+
+  meta = with lib; {
+    description = "A python client library for the IPFS API";
+    homepage = "https://github.com/ipfs-shipyard/py-ipfs-http-client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mguentner Luflosi ];
+  };
+}
diff --git a/pkgs/development/python-modules/ipydatawidgets/default.nix b/pkgs/development/python-modules/ipydatawidgets/default.nix
index e6e1e605cca..a0efa9b575d 100644
--- a/pkgs/development/python-modules/ipydatawidgets/default.nix
+++ b/pkgs/development/python-modules/ipydatawidgets/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "ipydatawidgets";
-  version = "4.1.0";
+  version = "4.2.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9f94828c11e3b40350fb14a02e027f42670a7c372bcb30db18d552dcfab7c01";
+    sha256 = "d0e4b58b59b508165e8562b8f5d1dbfcd739855847ec0477bd9185a5e9b7c5bc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index 4efe8b176c5..44c8c7bfd06 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.5.8";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e2f2e540a2dfea61524b7993fc8552c9236b1aaa3826e1f382c75cb2fa5c382";
+    sha256 = "f0f1f356d8cb9d4fb51bb86dbbf837c190145316cb72f66081872ebc4d6db0a1";
   };
 
   propagatedBuildInputs = [ ipywidgets matplotlib ];
diff --git a/pkgs/development/python-modules/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix
index 297b87d5745..2c5692bf26a 100644
--- a/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/pkgs/development/python-modules/ipyparallel/default.nix
@@ -11,7 +11,7 @@
 , ipykernel
 , tornado
 , isPy3k
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index c63cee79123..b581c49d43f 100644
--- a/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ipyvuetify";
-  version = "1.5.1";
+  version = "1.6.2";
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    sha256 = "593f5d6761e304cbb78bca967030485d8835e8d310ef7d83ac1b0e6a13e4911c";
+    sha256 = "056776d359b55343442f707cb4ccd5607800599a36bee06e1f01ef0277f03ddc";
   };
 
   propagatedBuildInputs = [ ipyvue ];
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index 5f2b3299a02..a0087131b1a 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -7,6 +7,7 @@
 , mock
 , ipython
 , ipykernel
+, jupyterlab-widgets
 , traitlets
 , notebook
 , widgetsnbextension
@@ -14,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "7.5.1";
+  version = "7.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e945f6e02854a74994c596d9db83444a1850c01648f1574adf144fbbabe05c97";
+    sha256 = "9f1a43e620530f9e570e4a493677d25f08310118d315b00e25a18f12913c41f0";
   };
 
   # Tests are not distributed
@@ -28,6 +29,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     ipython
     ipykernel
+    jupyterlab-widgets
     traitlets
     notebook
     widgetsnbextension
diff --git a/pkgs/development/python-modules/iterm2/default.nix b/pkgs/development/python-modules/iterm2/default.nix
index a62d5068f77..da44563208e 100644
--- a/pkgs/development/python-modules/iterm2/default.nix
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.18";
+  version = "1.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "88ca7dd76242205dc82761bf98932a42e6c1ba338cb065f1cc775413ef4e0dc2";
+    sha256 = "04fad95b2258135814677317529654ab0de92b0a4576e4410689181a6a535805";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/pkgs/development/python-modules/jaraco_collections/default.nix b/pkgs/development/python-modules/jaraco_collections/default.nix
index 3c37755366d..eac4e2ca328 100644
--- a/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.collections";
-  version = "3.0.0";
+  version = "3.2.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "be570ef4f2e7290b757449395238fa63d70a9255574624e73c5ff9f1ee554721";
+    sha256 = "6d179770493c4f5802395ae5a29e07c66d826dc3cd680ad0b0f0fb9fd6cdf533";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/jaraco_functools/default.nix b/pkgs/development/python-modules/jaraco_functools/default.nix
index eb176d0d857..3fa4de9f3d9 100644
--- a/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.functools";
-  version = "3.0.1";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fedc4be3117512ca3e03e1b2ffa7a6a6ffa589bfb7d02bfb324e55d493b94f4";
+    sha256 = "97cf88b46ab544c266e2d81fa17bb183622268722a7dd1a3711ea426e9c26f94";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch b/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
deleted file mode 100644
index 2dcf7d64862..00000000000
--- a/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fd56b0d85393d684bd3bf99f33d8638da884282f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Thu, 25 Jun 2020 09:52:11 +0100
-Subject: [PATCH] disable flake8/black8/coverage from tests
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- pytest.ini | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pytest.ini b/pytest.ini
-index 5027d34..4e2a2d2 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,5 +1,5 @@
- [pytest]
- norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8 --black --cov
-+addopts=--doctest-modules
- doctest_optionflags=ALLOW_UNICODE ELLIPSIS ALLOW_BYTES
- filterwarnings=
--- 
-2.27.0
-
diff --git a/pkgs/development/python-modules/jaraco_itertools/default.nix b/pkgs/development/python-modules/jaraco_itertools/default.nix
index f5d0b0538b6..91bb83fdb5a 100644
--- a/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -4,21 +4,17 @@
 
 buildPythonPackage rec {
   pname = "jaraco.itertools";
-  version = "5.0.0";
+  version = "6.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6447d567f57efe5efea386265c7864652e9530830a1b80f43e60b4f222b9ab84";
+    sha256 = "6939e47806a39330a9f9772bf9ea910da39abc159ff2579d454a763358553439";
   };
 
   pythonNamespaces = [ "jaraco" ];
 
   nativeBuildInputs = [ setuptools_scm ];
 
-  patches = [
-    ./0001-Don-t-run-flake8-checks-during-the-build.patch
-  ];
-
   propagatedBuildInputs = [ inflect more-itertools six ];
   checkInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/jaraco_logging/default.nix b/pkgs/development/python-modules/jaraco_logging/default.nix
index 4a6391fbc48..e378240e6cc 100644
--- a/pkgs/development/python-modules/jaraco_logging/default.nix
+++ b/pkgs/development/python-modules/jaraco_logging/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.logging";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "31716fe84d3d5df39d95572942513bd4bf8ae0a478f64031eff4c2ea9e83434e";
+    sha256 = "150dc8701207b28bc65a16f0e91c07250a8d1b9da324ce674c0e375774944f13";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/jaraco_stream/default.nix b/pkgs/development/python-modules/jaraco_stream/default.nix
index 9a4f6d97245..f62cb1db8ba 100644
--- a/pkgs/development/python-modules/jaraco_stream/default.nix
+++ b/pkgs/development/python-modules/jaraco_stream/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.stream";
-  version = "3.0.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "287e1cba9f278e0146fdded6bc40518930813a5584579769aeaa1d0bfd178a73";
+    sha256 = "86c57fedffd4d5a4b18817f99ddf62ac8ed0a1bc31a1c41b9a88df9c6bb56e0b";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/jaraco_text/default.nix b/pkgs/development/python-modules/jaraco_text/default.nix
index c61c8f689dd..fb945d5b3f6 100644
--- a/pkgs/development/python-modules/jaraco_text/default.nix
+++ b/pkgs/development/python-modules/jaraco_text/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.text";
-  version = "3.2.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v0hz3h74m31jlbc5bxwkvrx1h2n7887bajrg1n1c3yc4q8qn1z5";
+    sha256 = "f07f1076814a17a98eb915948b9a0dc71b1891c833588066ec1feb04ea4389b1";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/javaproperties/default.nix b/pkgs/development/python-modules/javaproperties/default.nix
index a9acf380da1..dd3c027bca2 100644
--- a/pkgs/development/python-modules/javaproperties/default.nix
+++ b/pkgs/development/python-modules/javaproperties/default.nix
@@ -5,14 +5,15 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.8.0";
   pname = "javaproperties";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jwodder";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14dlzwr4gxlbgjy012i4pqs2rn2rmp21w8n1k1wwjkf26mcvrq5s";
+    sha256 = "0n6dz6rnpq8wdwqyxqwv0q7vrl26vfmvvysdjvy557fck1q2l0kf";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index b06db621b73..84ea65a7477 100644
--- a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/jellyfin/jellyfin-apiclient-python";
     description = "Python API client for Jellyfin";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix
index 9c54418bafe..e8d2ced7602 100644
--- a/pkgs/development/python-modules/joblib/default.nix
+++ b/pkgs/development/python-modules/joblib/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "joblib";
-  version = "1.0.0";
+  version = "1.0.1";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092bnvr724cfvka8267z687bf086fvm7i1hwslkyrzf1g836dn3s";
+    sha256 = "9c17567692206d2f3fb9ecf5e991084254fe631665c450b443761c4186a613f7";
   };
 
   checkInputs = [ sphinx numpydoc pytestCheckHook ];
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index 3f30da8da9b..c46e937194d 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -1,31 +1,31 @@
-{ lib, fetchPypi, buildPythonPackage
-# buildInputs
-, six
-, setuptools
-, pyopenssl
+{ lib
+, fetchPypi
+, buildPythonPackage
 , cryptography
+, pyopenssl
+, setuptools
 , mock
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d265414fa16d7a8b7a1d1833b4ebb19a22bd0deae5d44413cf9040fd8491d85a";
+    sha256 = "a5a182eb499665d99e7ec54bb3fe389f9cbc483d429c9651f20384ba29564269";
   };
 
   postPatch = ''
     # remove coverage flags
     sed -i '/addopts/d' pytest.ini
+    sed -i '/flake8-ignore/d' pytest.ini
   '';
 
   propagatedBuildInputs = [
     pyopenssl
     cryptography
-    six
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/jpylyzer/default.nix b/pkgs/development/python-modules/jpylyzer/default.nix
index 6f9ceb96e3f..442267b52ea 100644
--- a/pkgs/development/python-modules/jpylyzer/default.nix
+++ b/pkgs/development/python-modules/jpylyzer/default.nix
@@ -2,24 +2,24 @@
 , fetchFromGitHub
 , buildPythonPackage
 , six
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "jpylyzer";
-  version = "1.18.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "openpreserve";
     repo = pname;
     rev = version;
-    sha256 = "0vhrq15l6jd5fm6vj7mczjzjpl2ph1dk8jp89dw4vlccky8660ll";
+    sha256 = "01wfbb1bgby9b7m6q7483kvpyc1qhj80dg8d5a6smcxvmy8y6x5n";
   };
 
   propagatedBuildInputs = [ six ];
 
-  # there don't appear to be any in-tree tests as such, but the builder's automatic
-  # runner seems to be upset by the project layout
-  doCheck = false;
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "jpylyzer" ];
 
   meta = with lib; {
     description = "JP2 (JPEG 2000 Part 1) image validator and properties extractor";
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index 8971bac4b49..f77412e4cc1 100644
--- a/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/pkgs/development/python-modules/jsonpatch/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpatch";
-  version = "1.27";
+  version = "1.32";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4d08af10d71723b5b2924da6ba90f273a4d1a5c6accfb605eb970cb2f9b29cf9";
+    sha256 = "b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2";
   };
 
   # test files are missing
diff --git a/pkgs/development/python-modules/jsonpickle/default.nix b/pkgs/development/python-modules/jsonpickle/default.nix
index abf3c27e98f..78d2a5f6c8c 100644
--- a/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/pkgs/development/python-modules/jsonpickle/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "1.4.2";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9b99b28a9e6a3043ec993552db79f4389da11afcb1d0246d93c79f4b5e64062";
+    sha256 = "0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/jsonpointer/default.nix b/pkgs/development/python-modules/jsonpointer/default.nix
index e1eaaed6c17..39249c648f5 100644
--- a/pkgs/development/python-modules/jsonpointer/default.nix
+++ b/pkgs/development/python-modules/jsonpointer/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpointer";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qjkjy1qlyc1nl3k95wd03ssxac0a717x8889ypgs1cfcj3bm4n1";
+    sha256 = "5a34b698db1eb79ceac454159d3f7c12a451a91f6334a4f638454327b7a89962";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jug/default.nix b/pkgs/development/python-modules/jug/default.nix
index 7646c007818..0750744885d 100644
--- a/pkgs/development/python-modules/jug/default.nix
+++ b/pkgs/development/python-modules/jug/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "Jug";
-  version = "2.0.3";
+  version = "2.1.1";
   buildInputs = [ nose numpy ];
   propagatedBuildInputs = [
     bottle
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3656355c1f9cd1731065c9d589f66d33653cbe5e0879cbe5d8447b51e4ddb4ec";
+    sha256 = "8ae7bb45d4495cf3d0dc5dd9df104a35bba2ca83eb4576732cadf8469e7cf1a1";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/jupyter-packaging/default.nix b/pkgs/development/python-modules/jupyter-packaging/default.nix
index fdc28f08ef4..da45616dfad 100644
--- a/pkgs/development/python-modules/jupyter-packaging/default.nix
+++ b/pkgs/development/python-modules/jupyter-packaging/default.nix
@@ -1,22 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, deprecation
 , pythonOlder
 , packaging
 , pytestCheckHook
+, tomlkit
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-packaging";
-  version = "0.7.12";
+  version = "0.8.2";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-sUAyV3GIGn33t/LRSZe2GQY/51rnVrkCWFLkNGAAu7g=";
+    pname = "jupyter_packaging";
+    inherit version;
+    sha256 = "sha256-ddzJDcFyY5Iida4QvpACh0FRBIy95IQHCEF5HQl5QbI=";
   };
 
-  propagatedBuildInputs = [ packaging ];
+  propagatedBuildInputs = [ deprecation packaging tomlkit ];
 
   checkInputs = [ pytestCheckHook ];
 
@@ -24,8 +27,16 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  # disable tests depending on network connection
-  disabledTests = [ "test_develop" "test_install" ];
+  disabledTests = [
+    # disable tests depending on network connection
+    "test_develop"
+    "test_install"
+    # Avoid unmainted "mocker" fixture library, and calls to dependent "build" module
+    "test_build"
+    "test_npm_build"
+    "test_create_cmdclass"
+    "test_ensure_with_skip_npm"
+  ];
 
   pythonImportsCheck = [ "jupyter_packaging" ];
 
diff --git a/pkgs/development/python-modules/jupyter-repo2docker/default.nix b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index 027ae2e40c8..7597df0d76a 100644
--- a/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -12,13 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2021.1.0";
+  version = "2021.3.0";
   pname = "jupyter-repo2docker";
   disabled = !(pythonAtLeast "3.4");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e3e671407ef2a7f7695338dc6ce2ca9cc75683ffc7a543829cf119564aca802";
+    sha256 = "42e0cf67181bdd03b54dabde695befec0586ed68a4ec1240104e209997d776c4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter_client/default.nix b/pkgs/development/python-modules/jupyter_client/default.nix
index 456e82e75f1..5f534557a9a 100644
--- a/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/pkgs/development/python-modules/jupyter_client/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "6.1.11";
+  version = "6.1.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "649ca3aca1e28f27d73ef15868a7c7f10d6e70f761514582accec3ca6bb13085";
+    sha256 = "c4bca1d0846186ca8be97f4d2fa6d2bae889cce4892a167ffa1ba6bd1f73e782";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter_console/default.nix b/pkgs/development/python-modules/jupyter_console/default.nix
index 712117d5011..22e057a5654 100644
--- a/pkgs/development/python-modules/jupyter_console/default.nix
+++ b/pkgs/development/python-modules/jupyter_console/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_console";
-  version = "6.3.0";
+  version = "6.4.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "947f66bbdeee2221b4fb3a6b78225d337b8f10832f14cecf7932183635abe1d9";
+    sha256 = "242248e1685039cd8bff2c2ecb7ce6c1546eb50ee3b08519729e6e881aec19c7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter_server/default.nix b/pkgs/development/python-modules/jupyter_server/default.nix
index a9f98781b4f..50f193c2058 100644
--- a/pkgs/development/python-modules/jupyter_server/default.nix
+++ b/pkgs/development/python-modules/jupyter_server/default.nix
@@ -4,6 +4,7 @@
 , pythonOlder
 , pytestCheckHook
 , pytest-tornasync
+, argon2_cffi
 , jinja2
 , tornado
 , pyzmq
@@ -22,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_server";
-  version = "1.4.1";
+  version = "1.5.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-sBJvI39nlTPuxGJEz8ZtYeOh+OwPrS1HNS+hnT51Tkc=";
+    sha256 = "ff127713a57ab7aa7b23f7df9b082951cc4b05d8d64cc0949d01ea02ac24c70c";
   };
 
   postPatch = ''
@@ -36,6 +37,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    argon2_cffi
     jinja2
     tornado
     pyzmq
@@ -64,7 +66,12 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "jupyter_server/tests/" ];
 
   # disabled failing tests
-  disabledTests = [ "test_server_extension_list" "test_list_formats" "test_base_url" ];
+  disabledTests = [
+    "test_server_extension_list"
+    "test_list_formats"
+    "test_base_url"
+    "test_culling"
+  ];
 
   meta = with lib; {
     description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.";
diff --git a/pkgs/development/python-modules/jupyterlab-widgets/default.nix b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
new file mode 100644
index 00000000000..c4589ce1b93
--- /dev/null
+++ b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchPypi
+, jupyter-packaging
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterlab-widgets";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    pname = "jupyterlab_widgets";
+    inherit version;
+    sha256 = "0y7vhhas3qndiypcpcfnhrj9n92v2w4hdc86nn620s9h9nl2j6jw";
+  };
+
+  nativeBuildInputs = [
+    jupyter-packaging
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "jupyterlab_widgets" ];
+
+  meta = with lib; {
+    description = "Jupyter Widgets JupyterLab Extension";
+    homepage = "https://github.com/jupyter-widgets/ipywidgets";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jonringer SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 513cce507e3..ba2c0ed4883 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "3.0.12";
+  version = "3.0.14";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "929c60d7fb4aa704084c02d8ededc209b8b378e0b3adab46158b7fa6acc24230";
+    sha256 = "sha256-cTqEmR38yowLwmCRHxvVSsJaOGqGKFcTuVVaYPeVBZs=";
   };
 
   nativeBuildInputs = [ jupyter-packaging ];
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index ba627449c12..eedfcfbcb6e 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.7.1";
+  version = "1.11.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23123b90c267c67716fe6a022dfae49b84fd3809370d83211f2920eb3106bf40";
+    sha256 = "9062d001baaa32430fbb94a2c9394ac906db0a58da94e7aa4e414b73fd7d51bc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kaitaistruct/default.nix b/pkgs/development/python-modules/kaitaistruct/default.nix
index 1050ae88e43..714f51c0d3d 100644
--- a/pkgs/development/python-modules/kaitaistruct/default.nix
+++ b/pkgs/development/python-modules/kaitaistruct/default.nix
@@ -1,5 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchFromGitHub
+, lz4
+}:
 
+let
+  kaitai_compress = fetchFromGitHub {
+    owner = "kaitai-io";
+    repo = "kaitai_compress";
+    rev = "434fb42220ff58778bb9fbadb6152cad7e4f5dd0";
+    sha256 = "zVnkVl3amUDOB+pnw5SkMGSrVL/dTQ82E8IWfJvKC4Q=";
+  };
+in
 buildPythonPackage rec {
   pname = "kaitaistruct";
   version = "0.9";
@@ -9,9 +22,27 @@ buildPythonPackage rec {
     sha256 = "3d5845817ec8a4d5504379cc11bd570b038850ee49c4580bc0998c8fb1d327ad";
   };
 
+  preBuild = ''
+    ln -s ${kaitai_compress}/python/kaitai kaitai
+    sed '28ipackages = kaitai/compress' -i setup.cfg
+  '';
+
+  propagatedBuildInputs = [
+    lz4
+  ];
+
+  # no tests
+  dontCheck = true;
+
+  pythonImportsCheck = [
+    "kaitaistruct"
+    "kaitai.compress"
+  ];
+
   meta = with lib; {
     description = "Kaitai Struct: runtime library for Python";
     homepage = "https://github.com/kaitai-io/kaitai_struct_python_runtime";
     license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
   };
 }
diff --git a/pkgs/development/python-modules/karton-config-extractor/default.nix b/pkgs/development/python-modules/karton-config-extractor/default.nix
new file mode 100644
index 00000000000..9144a4026f6
--- /dev/null
+++ b/pkgs/development/python-modules/karton-config-extractor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, karton-core
+, malduck
+}:
+
+buildPythonPackage rec {
+  pname = "karton-config-extractor";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "14592b9vq2iza5agxr29z1mh536if7a9p9hvyjnibsrv22mzwz7l";
+  };
+
+  propagatedBuildInputs = [
+    karton-core
+    malduck
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "karton-core==4.2.0" "karton-core"
+    substituteInPlace requirements.txt \
+      --replace "malduck==4.1.0" "malduck"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "karton.config_extractor" ];
+
+  meta = with lib; {
+    description = "Static configuration extractor for the Karton framework";
+    homepage = "https://github.com/CERT-Polska/karton-config-extractor";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/karton-dashboard/default.nix b/pkgs/development/python-modules/karton-dashboard/default.nix
new file mode 100644
index 00000000000..c82cb895782
--- /dev/null
+++ b/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, karton-core
+, mistune
+, prometheus_client
+}:
+
+buildPythonPackage rec {
+  pname = "karton-dashboard";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "101qmx6nmiim0vrz2ldk973ns498hnxla1xy7nys9kh9wijg4msk";
+  };
+
+  propagatedBuildInputs = [
+    flask
+    karton-core
+    mistune
+    prometheus_client
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "Flask==1.1.1" "Flask" \
+      --replace "karton-core==4.1.0" "karton-core"
+  '';
+
+  # Project has no tests. pythonImportsCheck requires MinIO configuration
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Web application that allows for Karton task and queue introspection";
+    homepage = "https://github.com/CERT-Polska/karton-dashboard";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
new file mode 100644
index 00000000000..68b28bffe6f
--- /dev/null
+++ b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, karton-core
+, mwdblib
+}:
+
+buildPythonPackage rec {
+  pname = "karton-mwdb-reporter";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ks8jrc4v87q6zhwqg40w6xv2wfkzslmnfmsmmkfjj8mak8nk70f";
+  };
+
+  propagatedBuildInputs = [
+    karton-core
+    mwdblib
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "karton-core==4.0.4" "karton-core" \
+      --replace "mwdblib==3.3.1" "mwdblib"
+  '';
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "karton.mwdb_reporter" ];
+
+  meta = with lib; {
+    description = "Karton service that uploads analyzed artifacts and metadata to MWDB Core";
+    homepage = "https://github.com/CERT-Polska/karton-mwdb-reporter";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/karton-yaramatcher/default.nix b/pkgs/development/python-modules/karton-yaramatcher/default.nix
new file mode 100644
index 00000000000..f64ee17f843
--- /dev/null
+++ b/pkgs/development/python-modules/karton-yaramatcher/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, karton-core
+, python
+, yara-python
+}:
+
+buildPythonPackage rec {
+  pname = "karton-yaramatcher";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yb9l5z826zli5cpcj234dmjdjha2g1lcwxyvpxm95whkhapc2cf";
+  };
+
+  propagatedBuildInputs = [
+    karton-core
+    yara-python
+  ];
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "karton-core==4.0.5" "karton-core" \
+      --replace "yara-python==4.0.2" "yara-python" \
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "karton.yaramatcher" ];
+
+  meta = with lib; {
+    description = "File and analysis artifacts yara matcher for the Karton framework";
+    homepage = "https://github.com/CERT-Polska/karton-yaramatcher";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/keepkey/default.nix b/pkgs/development/python-modules/keepkey/default.nix
index 6b4568cd748..cd51661bde0 100644
--- a/pkgs/development/python-modules/keepkey/default.nix
+++ b/pkgs/development/python-modules/keepkey/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "keepkey";
-  version = "6.6.0";
+  version = "6.7.0";
 
   src = fetchFromGitHub {
     owner = "keepkey";
     repo = "python-keepkey";
     rev = "v${version}";
-    sha256 = "1v0ns26ykskn0dpbvz9g6lz4q740qmahvddj3pc3rfbjvg43p3vh";
+    sha256 = "0yi27wzb4q371y4bywi4hz37h4x63wjsyaa2mbx0rgc8xl2wm6yz";
   };
 
   propagatedBuildInputs = [ protobuf hidapi trezor ];
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index 3e26079f123..cea38abee39 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -1,43 +1,64 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy27, pythonOlder
-, dbus-python
-, entrypoints
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools-scm
 , importlib-metadata
-, pytest
-, pytest-flake8
+, dbus-python
+, jeepney
 , secretstorage
-, setuptools_scm
-, toml
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "21.5.0";
-  disabled = isPy27;
+  version = "23.0.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "207bd66f2a9881c835dad653da04e196c678bf104f8252141d2d3c4f31051579";
+    sha256 = "045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8";
   };
 
   nativeBuildInputs = [
-    setuptools_scm
-    toml
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    # this should be optional, however, it has a different API
+    importlib-metadata # see https://github.com/jaraco/keyring/issues/503#issuecomment-798973205
+
+    dbus-python
+    jeepney
+    secretstorage
   ];
 
-  checkInputs = [ pytest pytest-flake8 ];
+  pythonImportsCheck = [
+    "keyring"
+    "keyring.backend"
+  ];
 
-  propagatedBuildInputs = [ dbus-python entrypoints ]
-  ++ lib.optional stdenv.isLinux secretstorage
-  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # checks try to access a darwin path on linux
-  doCheck = false;
+  # Keychain communications isn't possible in our build environment
+  # keyring.errors.KeyringError: Can't get password from keychain: (-25307, 'Unknown Error')
+  disabledTests = lib.optionals (stdenv.isDarwin) [
+    "test_multiprocess_get"
+    "test_multiprocess_get_after_native_get"
+  ];
+
+  disabledTestPaths = [
+    "tests/backends/test_macOS.py"
+  ];
 
   meta = with lib; {
     description = "Store and access your passwords safely";
-    homepage    = "https://pypi.python.org/pypi/keyring";
-    license     = licenses.psfl;
-    maintainers = with maintainers; [ lovek323 ];
+    homepage    = "https://github.com/jaraco/keyring";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ lovek323 dotlambda ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/kmapper/default.nix b/pkgs/development/python-modules/kmapper/default.nix
index 548896b4728..6c173661084 100644
--- a/pkgs/development/python-modules/kmapper/default.nix
+++ b/pkgs/development/python-modules/kmapper/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "kmapper";
-  version = "1.4.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3bb09d016ae0dc3308c2901f0775139a26e7f689afacea564a74e5627de35cd7";
+    sha256 = "3708d889f96f6bbe89c52000dd9378ca4c35638180ff894b64ebbdfcfe62aab2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 1c29d747368..ce7cff4d79b 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.4.11";
+  version = "2.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5a631a94ac2059648a884bebf39f7ca1e689baef4a2497f9aa5ec598e24deb7";
+    sha256 = "7f2cbc5d4869d8acde865ad519fc1cc85338247cd7cf534334f988a040679219";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/langcodes/default.nix b/pkgs/development/python-modules/langcodes/default.nix
index f9d90e42686..485bc44ff6e 100644
--- a/pkgs/development/python-modules/langcodes/default.nix
+++ b/pkgs/development/python-modules/langcodes/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "langcodes";
-  version = "2.1.0";
+  version = "3.1.0";
   disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75bcaca8825e1a321965b136815dee53083c63314975e024ad0ccff8545e681f";
+    sha256 = "1ccd37e3a68760d29ec3b17f5962cd1d8f242f4d9705ad1601c5cb7fab48199c";
   };
 
   propagatedBuildInputs = [ marisa-trie ];
diff --git a/pkgs/development/python-modules/lazy-object-proxy/default.nix b/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 82a784cfe3c..9eaae90f46e 100644
--- a/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -1,26 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 , setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "lazy-object-proxy";
-  version = "1.5.2";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5944a9b95e97de1980c65f03b79b356f30a43de48682b8bdd90aa5089f0ec1f4";
+    sha256 = "489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test tests
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace ",<6.0" ""
+    substituteInPlace setup.cfg --replace ",<6.0" ""
   '';
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   # Broken tests. Seem to be fixed upstream according to Travis.
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/ldap3/default.nix b/pkgs/development/python-modules/ldap3/default.nix
index 71af0d294a2..3c613d74e27 100644
--- a/pkgs/development/python-modules/ldap3/default.nix
+++ b/pkgs/development/python-modules/ldap3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ldap3";
-  version = "2.8.1";
+  version = "2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "37d633e20fa360c302b1263c96fe932d40622d0119f1bddcb829b03462eeeeb7";
+    sha256 = "18c3ee656a6775b9b0d60f7c6c5b094d878d1d90fc03d56731039f0a4b546a91";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index 6e5d8f771e8..edea85876a8 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "4.8.0";
+  version = "4.9.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1dvz1rkvm4309yzvj7vy49v1vskr5yfq4nzqdiydp1jb7zpvhqqm";
+    sha256 = "0wq72nf680bwxijjajb4piw563rnvflshmw96kqln4lsny7ydjj2";
   };
 
   disabled = pythonOlder "3.4.0";
diff --git a/pkgs/development/python-modules/libgpuarray/default.nix b/pkgs/development/python-modules/libgpuarray/default.nix
index 567ad2cf489..d061356490c 100644
--- a/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/pkgs/development/python-modules/libgpuarray/default.nix
@@ -17,13 +17,13 @@ assert cudaSupport -> nvidia_x11 != null
 
 buildPythonPackage rec {
   pname = "libgpuarray";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "Theano";
     repo = "libgpuarray";
     rev = "v${version}";
-    sha256 = "0zkdwjq3k6ciiyf8y5w663fbsnmzhgy27yvpxfhkpxazw9vg3l5v";
+    sha256 = "0ksil18c9ign4xrv5k323flhvdy6wdxh8szdd3nivv31jc3zsdri";
   };
 
   # requires a GPU
diff --git a/pkgs/development/python-modules/liblzfse/default.nix b/pkgs/development/python-modules/liblzfse/default.nix
new file mode 100644
index 00000000000..72159fa5f13
--- /dev/null
+++ b/pkgs/development/python-modules/liblzfse/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lzfse
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "pyliblzfse";
+  version = "0.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d";
+  };
+
+  preBuild = ''
+    rm -r lzfse
+    ln -s ${lzfse.src} lzfse
+  '';
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "liblzfse"
+  ];
+
+  meta = with lib; {
+    description = "Python bindings for LZFSE";
+    homepage = "https://github.com/ydkhatri/pyliblzfse";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index 7ef22e3f6ee..f6aa1b378f5 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "4.8.0";
+  version = "4.9.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "1mxkvnhn8k1a86jlnjnlpf0b8dvrcg3n7pslf60s13cgb7w3sfzh";
+    sha256 = "0434cb19v9phc9xicbmgpbig18ivplcpqhnsjgca4p8n8c715k9h";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/libversion/default.nix b/pkgs/development/python-modules/libversion/default.nix
index 4bc2dfa2ffd..fb77eeed4c2 100644
--- a/pkgs/development/python-modules/libversion/default.nix
+++ b/pkgs/development/python-modules/libversion/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libversion";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf9ef702d0bc750f0ad44a2cffe8ebd83cd356b92cc25f767846509f84ea7e73";
+    sha256 = "e6e903cc6307c3eda90401373eb81bfd0dd2dc93772ddab3d23705bed0c6f6e9";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix
index 97d80fbbbda..ecf5990e74b 100644
--- a/pkgs/development/python-modules/liquidctl/default.nix
+++ b/pkgs/development/python-modules/liquidctl/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "liquidctl";
-  version = "1.4.2";
+  version = "1.5.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1h5kqpvlx7xppd2wli986lkslqkcrlz1wixv7fvrppzjc2nfz5d4";
+    sha256 = "1l6cvm8vs2gkmg4qwg5m5vqjql1gah2vd9vs7pcj2v5hf0cm5v9x";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/livestreamer/default.nix b/pkgs/development/python-modules/livestreamer/default.nix
index 98878c90640..b77cf430717 100644
--- a/pkgs/development/python-modules/livestreamer/default.nix
+++ b/pkgs/development/python-modules/livestreamer/default.nix
@@ -4,8 +4,8 @@
 , isPyPy
 , pycrypto
 , requests
-, singledispatch
-, futures
+, singledispatch ? null
+, futures ? null
 , isPy27
 }:
 
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index 609dcb82237..b5e6847a9f0 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.35.0";
+  version = "0.36.0";
 
   disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "80e51d5aa02ad72da9870e89d21f9b152b0220ca551b4596a6c0614bcde336fc";
+    sha256 = "765128fdf5f149ed0b889ffbe2b05eb1717f8e20a5c87fa2b4018fbcce0fcfc9";
   };
 
   nativeBuildInputs = [ llvm ];
diff --git a/pkgs/development/python-modules/lmdb/default.nix b/pkgs/development/python-modules/lmdb/default.nix
index f3e7a86a2aa..3e78626238a 100644
--- a/pkgs/development/python-modules/lmdb/default.nix
+++ b/pkgs/development/python-modules/lmdb/default.nix
@@ -4,22 +4,19 @@
 , pytestCheckHook
 , cffi
 , lmdb
-, ludios_wpull
 }:
 
 buildPythonPackage rec {
   pname = "lmdb";
-  version = "1.0.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4136ffdf0aad61da86d1402808029d002a771b2a9ccc9b39c6bcafa7847c21b6";
+    sha256 = "5f76a90ebd08922acca11948779b5055f7a262687178e9e94f4e804b9f8465bc";
   };
 
   buildInputs = [ lmdb ];
 
-  propogatedBuildInputs = [ ludios_wpull ];
-
   checkInputs = [ cffi pytestCheckHook ];
 
   LMDB_FORCE_SYSTEM=1;
diff --git a/pkgs/development/python-modules/logzero/default.nix b/pkgs/development/python-modules/logzero/default.nix
index 015d387f27d..4e3ffd255e0 100644
--- a/pkgs/development/python-modules/logzero/default.nix
+++ b/pkgs/development/python-modules/logzero/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "logzero";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1435284574e409b8ec8b680f276bca04cab41f93d6eff4dc8348b7630cddf560";
+    sha256 = "7f73ddd3ae393457236f081ffebd044a3aa2e423a47ae6ddb5179ab90d0ad082";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix
index 94b575f3f46..219a9066dc7 100644
--- a/pkgs/development/python-modules/mail-parser/default.nix
+++ b/pkgs/development/python-modules/mail-parser/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "mail-parser";
-  version = "3.12.0";
+  version = "3.15.0";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "SpamScope";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p851jlly6bzcs70kd1lcjwmg4scwh1icymfc0f2y6rkh4kfsdhk";
+    sha256 = "0da2qr4p8jnjw6jdhbagm6slfcjnjyyjkszwfcfqvcywh1zm1sdw";
   };
 
   LC_ALL = "en_US.utf-8";
diff --git a/pkgs/development/python-modules/mailman-hyperkitty/default.nix b/pkgs/development/python-modules/mailman-hyperkitty/default.nix
index 1d3b69f6bf2..d5bf6457336 100644
--- a/pkgs/development/python-modules/mailman-hyperkitty/default.nix
+++ b/pkgs/development/python-modules/mailman-hyperkitty/default.nix
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "Mailman archiver plugin for HyperKitty";
     homepage = "https://gitlab.com/mailman/mailman-hyperkitty";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ globin peti ];
+    maintainers = with maintainers; [ globin peti qyliss ];
   };
 }
diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index 0c981a6789d..c19daed1b9f 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     description = "REST client for driving Mailman 3";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ peti globin ];
+    maintainers = with maintainers; [ peti globin qyliss ];
   };
 }
diff --git a/pkgs/development/python-modules/malduck/default.nix b/pkgs/development/python-modules/malduck/default.nix
new file mode 100644
index 00000000000..a9a8419a04d
--- /dev/null
+++ b/pkgs/development/python-modules/malduck/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, capstone
+, click
+, cryptography
+, fetchFromGitHub
+, pefile
+, pycryptodomex
+, pyelftools
+, pythonOlder
+, typing-extensions
+, yara-python
+}:
+
+buildPythonPackage rec {
+  pname = "malduck";
+  version = "4.1.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04d8bhzax9ynbl83hif9i8gcs29zrvcay2r6n7mcxiixlxcqciak";
+  };
+
+  propagatedBuildInputs = [
+    capstone
+    click
+    cryptography
+    pefile
+    pycryptodomex
+    pyelftools
+    typing-extensions
+    yara-python
+  ];
+
+  # Project has no tests. They will come with the next release
+  doCheck = false;
+  pythonImportsCheck = [ "malduck" ];
+
+  meta = with lib; {
+    description = "Helper for malware analysis";
+    homepage = "https://github.com/CERT-Polska/malduck";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/markdown-it-py/default.nix b/pkgs/development/python-modules/markdown-it-py/default.nix
index 2d915762fca..c7a8a3e17f3 100644
--- a/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "markdown-it-py";
-  version = "0.5.6";
+  version = "0.6.2";
 
   disabled = pythonOlder "3.7";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = "markdown-it-py";
     rev = "v${version}";
-    sha256 = "1m9g8xvd7jiz80x9hl8bw9x0ppndqq5nlcn5y8bjxnfj5s31vpbi";
+    sha256 = "1g9p8pdnvjya436lii63r5gjajhmbhmyh9ngbjqf9dqny05nagz1";
   };
 
   propagatedBuildInputs = [ attrs ];
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index 22b0d5c27f8..c0175a2e888 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "Markdown";
-  version = "3.3.3";
+  version = "3.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d9f2b5ca24bc4c7a390d22323ca4bad200368612b5aaa7796babf971d2b2f18";
+    sha256 = "31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index afc378d4aaa..a7ca14beb94 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.9.1";
+  version = "3.10.0";
   disabled = isPy27;
 
   meta = {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73facc37462dfc0b27f571bdaffbef7709e19f7a616beb3802ea425b07843f4e";
+    sha256 = "4ab2fdb7f36eb61c3665da67a7ce281c8900db08d72ba6bf0e695828253581f7";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
diff --git a/pkgs/development/python-modules/mcstatus/default.nix b/pkgs/development/python-modules/mcstatus/default.nix
index 7ed7a0ff328..1ea14c35510 100644
--- a/pkgs/development/python-modules/mcstatus/default.nix
+++ b/pkgs/development/python-modules/mcstatus/default.nix
@@ -5,6 +5,7 @@
 , dnspython
 , fetchFromGitHub
 , mock
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
 , six
@@ -12,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "mcstatus";
-  version = "5.1.2";
+  version = "5.1.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Dinnerbone";
     repo = pname;
-    rev = "release-${version}";
-    sha256 = "16k5vcqpd9r7mm1cg9khzba42rcxs491h8gk2klymav249yzrwk7";
+    rev = "v${version}";
+    sha256 = "1k8hjv965svbm95m7jaawlhdbxqpkjchlwvjwn1n7z90dfgn5kih";
   };
 
   propagatedBuildInputs = [
@@ -31,6 +32,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     mock
+    pytest-asyncio
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/md2gemini/default.nix b/pkgs/development/python-modules/md2gemini/default.nix
new file mode 100644
index 00000000000..7b4686dcac4
--- /dev/null
+++ b/pkgs/development/python-modules/md2gemini/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, mistune_2_0, cjkwrap, wcwidth
+, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "md2gemini";
+  version = "1.8.1";
+
+  propagatedBuildInputs = [ mistune_2_0 cjkwrap wcwidth ];
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "md2gemini" ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mfa0f0m762168fbsxjr1cx9yhj82dr8z1d28jl6hj9bkqnvvwiy";
+  };
+
+  meta = with lib; {
+    description = "Markdown to Gemini text format conversion library";
+    homepage = "https://github.com/makeworld-the-better-one/md2gemini";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.kaction ];
+  };
+}
diff --git a/pkgs/development/python-modules/mido/default.nix b/pkgs/development/python-modules/mido/default.nix
index 8312ea783cb..ae737dc7166 100644
--- a/pkgs/development/python-modules/mido/default.nix
+++ b/pkgs/development/python-modules/mido/default.nix
@@ -1,6 +1,13 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll
-, portmidi, pygame, python-rtmidi, rtmidi-python
-, pytest
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, portmidi
+, pygame
+, python-rtmidi
+, rtmidi-python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -25,15 +32,18 @@ buildPythonPackage rec {
     rtmidi-python
   ];
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test . -rs -q
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "mido"
+  ];
 
   meta = with lib; {
     description = "MIDI Objects for Python";
     homepage = "https://mido.readthedocs.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/minidump/default.nix b/pkgs/development/python-modules/minidump/default.nix
index 45adc7adb74..864e58839f4 100644
--- a/pkgs/development/python-modules/minidump/default.nix
+++ b/pkgs/development/python-modules/minidump/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "minidump";
-  version = "0.0.16";
+  version = "0.0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "65a71ca1da2b73ee96daa9d52e4fb9c9b80a849475502c6a1c2a80a68bd149b0";
+    sha256 = "sha256-nlPW83Tr3aec1tSYHgcZTwd+ydN12S6WNwK7gdwdatY=";
   };
 
   # Upstream doesn't have tests
diff --git a/pkgs/development/python-modules/minikerberos/default.nix b/pkgs/development/python-modules/minikerberos/default.nix
index 481f302d66a..ee0812eacec 100644
--- a/pkgs/development/python-modules/minikerberos/default.nix
+++ b/pkgs/development/python-modules/minikerberos/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "minikerberos";
-  version = "0.2.9";
+  version = "0.2.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-woYs8EYUfALCtqHUCVfF5z1v1UIc9D8Iep9n4NrNIlg=";
+    sha256 = "sha256-OC+Cnk47GFzK1QaDEDxntRVrakpFiBuNelM/R5t/AUY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 09389f7cf1b..b23d264f72d 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "6.0.2";
+  version = "7.0.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "acae9bfae0aec1b92025bd63e18135ebb4994c84600716c5323e14cb0c9a0b03";
+    sha256 = "f2f6022cfe4694d946972efef2a752f87d08cc030940faa50a640088772953c8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mistune/common.nix b/pkgs/development/python-modules/mistune/common.nix
new file mode 100644
index 00000000000..7aba4ade414
--- /dev/null
+++ b/pkgs/development/python-modules/mistune/common.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi, nose, version, sha256 }:
+
+buildPythonPackage rec {
+  inherit version;
+  pname = "mistune";
+
+  src = fetchPypi {
+    inherit pname version sha256;
+  };
+
+  buildInputs = [ nose ];
+  pythonImportsCheck = [ "mistune" ];
+
+  meta = with lib; {
+    description = "The fastest markdown parser in pure Python";
+    homepage = "https://github.com/lepture/mistune";
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/mistune/default.nix b/pkgs/development/python-modules/mistune/default.nix
index cde668bd5fb..3020eca4eed 100644
--- a/pkgs/development/python-modules/mistune/default.nix
+++ b/pkgs/development/python-modules/mistune/default.nix
@@ -1,23 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "mistune";
-  version = "0.8.4";
-
-  src = fetchPypi {
-    inherit pname version;
+self: rec {
+  mistune_0_8 = self.callPackage ./common.nix {
+    version = "0.8.4";
     sha256 = "59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e";
   };
-
-  buildInputs = [ nose ];
-
-  meta = with lib; {
-    description = "The fastest markdown parser in pure Python";
-    homepage = "https://github.com/lepture/mistune";
-    license = licenses.bsd3;
+  mistune_2_0 = self.callPackage ./common.nix {
+    version = "2.0.0a4";
+    sha256 = "0i6cblmjl58kdmaa21xm0l1ls0kvjpfy45sf73fw3ws6305f628k";
   };
+  mistune = mistune_0_8;
 }
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index 5ffde397337..13cfc0b63df 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.12.1";
+  version = "1.14.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b8af18d6e779fbbb094edfeb963691e485bba62eeec39fd62dfbe34bc12afeb";
+    sha256 = "e3abff0831564d9a4b5d5a15e5ee76b0f5b4580b362c24a58ee821634c8fb1a3";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index 84babe17189..bed191c39e3 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "0.21.2";
+  version = "0.22.0";
 
   disabled = isPy27;
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "mne-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18nfdbkffmxzkkbp3d4w8r2kfi0sxip3hy997d3mx6dy74jc7nmg";
+    sha256 = "1s9pshrl40gkcsdwf4qdga3hjfmdbrvbgjcz0cfx3kl796x3im11";
   };
 
   propagatedBuildInputs = [ numpy scipy ];
diff --git a/pkgs/development/python-modules/mock-services/default.nix b/pkgs/development/python-modules/mock-services/default.nix
new file mode 100644
index 00000000000..2917b21dcfe
--- /dev/null
+++ b/pkgs/development/python-modules/mock-services/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, attrs
+, funcsigs
+, requests-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "mock-services";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "peopledoc";
+    repo = "mock-services";
+    rev = version;
+    sha256 = "1rqyyfwngi1xsd9a81irjxacinkj1zf6nqfvfxhi55ky34x5phf9";
+  };
+
+  patches = [
+    # Fix issues due to internal API breaking in latest versions of requests-mock
+    (fetchpatch {
+      url = "https://github.com/peopledoc/mock-services/commit/88d3a0c9ef4dd7d5e011068ed2fdbbecc4a1a03a.patch";
+      sha256 = "0a4pwxr33kr525sp8q4mb4cr3n2b51mj2a3052lhg6brdbi4gnms";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    funcsigs
+    requests-mock
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # require networking
+    "test_real_http_1"
+    "test_restart_http_mock"
+    "test_start_http_mock"
+    "test_stop_http_mock"
+  ];
+
+  pythonImportsCheck = [ "mock_services" ];
+
+  meta = with lib; {
+    description = "Mock an entire service API based on requests-mock";
+    homepage = "https://github.com/peopledoc/mock-services";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/moderngl/default.nix b/pkgs/development/python-modules/moderngl/default.nix
index 48abc30c9f7..f32f541573e 100644
--- a/pkgs/development/python-modules/moderngl/default.nix
+++ b/pkgs/development/python-modules/moderngl/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "moderngl";
-  version = "5.5.4";
+  version = "5.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08badabb6a1bbc9aa9e65fae8ecd3275d8342cb45d9c457b19e32b3312a8b663";
+    sha256 = "8c6d04559f5e3bf75a18525cd46d213c0f3a8409363718978e6de691bdb551fb";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/mongoengine/default.nix b/pkgs/development/python-modules/mongoengine/default.nix
index c8969d9e2d4..06f2c210415 100644
--- a/pkgs/development/python-modules/mongoengine/default.nix
+++ b/pkgs/development/python-modules/mongoengine/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "mongoengine";
-  version = "0.22.0";
+  version = "0.23.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "MongoEngine";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14n9rl8w3i1fq96f3jzsg7gy331d7fmrapva6m38ih53rnf38bdf";
+    sha256 = "0mzh5pv0n81ms046yxb9rzql8bpbsf26jv6dihmhi0ds4yqkw836";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 77448d0e15f..a2398ce750d 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "3.0.2";
+  version = "2021.3.3";
   disabled = isPy27; # uses type annotations
 
   # No tests in Pypi
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "materialsvirtuallab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wxqxp0j7i6czdpr2r1imgmy3qbgn2l7d4za2h1lg3hllvx6jra1";
+    sha256 = "1nbv0ys0fv70rgzskkk8gsfr9dsmm7ykim5wv36li840zsj83b1l";
   };
 
   checkInputs = [ lsof nose numpy msgpack coverage coveralls pymongo];
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index ddc3896c6a5..7f9b7010c52 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -37,7 +37,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "ecdsa<0.15" "ecdsa"
+      --replace "ecdsa<0.15" "ecdsa" \
+      --replace "idna<3,>=2.5" "idna" \
   '';
 
   patches = [
diff --git a/pkgs/development/python-modules/mpmath/default.nix b/pkgs/development/python-modules/mpmath/default.nix
index 42de3d2da9a..59ebfc7091e 100644
--- a/pkgs/development/python-modules/mpmath/default.nix
+++ b/pkgs/development/python-modules/mpmath/default.nix
@@ -1,17 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "mpmath";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6";
+    sha256 = "79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   # error: invalid command 'test'
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/msldap/default.nix b/pkgs/development/python-modules/msldap/default.nix
index e9790db9f5e..12bfb7d7603 100644
--- a/pkgs/development/python-modules/msldap/default.nix
+++ b/pkgs/development/python-modules/msldap/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "msldap";
-  version = "0.3.28";
+  version = "0.3.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0sMi5PpwMWf/W+Hu0akQVF/1ZkbanfOzYDC3R6lZrSE=";
+    sha256 = "0khwyhylh28qvz35pdckr5fdd82zsybv0xmzlzjbgcv99cyy1a94";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/msrest/default.nix b/pkgs/development/python-modules/msrest/default.nix
index acdcf69e301..6eb6e49cddd 100644
--- a/pkgs/development/python-modules/msrest/default.nix
+++ b/pkgs/development/python-modules/msrest/default.nix
@@ -6,14 +6,14 @@
 , requests_oauthlib
 , isodate
 , certifi
-, enum34
+, enum34 ? null
 , typing
 , aiohttp
 , aiodns
 , pytest
 , httpretty
 , mock
-, futures
+, futures ? null
 , trio
 }:
 
diff --git a/pkgs/development/python-modules/multimethod/default.nix b/pkgs/development/python-modules/multimethod/default.nix
new file mode 100644
index 00000000000..ded279cd860
--- /dev/null
+++ b/pkgs/development/python-modules/multimethod/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pytest-cov
+}:
+buildPythonPackage rec {
+  pname = "multimethod";
+  version = "1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b9c6f85ecf187f14a3951fff319643e1fac3086d757dec64f2469e1fd136b65d";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+  ];
+
+  pythomImportsCheck = [
+    "multimethod"
+  ];
+
+  meta = with lib; {
+    description = "Multiple argument dispatching";
+    homepage = "https://github.com/coady/multimethod";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/mwdblib/default.nix b/pkgs/development/python-modules/mwdblib/default.nix
new file mode 100644
index 00000000000..e73cf06194f
--- /dev/null
+++ b/pkgs/development/python-modules/mwdblib/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, beautifultable
+, buildPythonPackage
+, click
+, click-default-group
+, fetchFromGitHub
+, humanize
+, keyring
+, python
+, python-dateutil
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "mwdblib";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "CERT-Polska";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0dbdmps4a3mav02m4h37bj2bw8pg6h52yf3gpdkhi3k9hl9f942h";
+  };
+
+  propagatedBuildInputs = [
+    beautifultable
+    click
+    click-default-group
+    humanize
+    keyring
+    python-dateutil
+    requests
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "mwdblib" ];
+
+  meta = with lib; {
+    description = "Python client library for the mwdb service";
+    homepage = "https://github.com/CERT-Polska/mwdblib";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 692c021a64f..0856b30758d 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@ let
   py = python;
 in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.23";
+  version = "8.0.24";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "sha256-YVtcHbDsW1mTjbCY1YhqgtqWv4keKlLExn2AhlOzNEw=";
+    sha256 = "1zb5wf65rnpbk0lw31i4piy0bq09hqa62gx7bh241zc5310zccc7";
   };
 
   propagatedBuildInputs = with py.pkgs; [ protobuf dnspython ];
@@ -20,6 +20,8 @@ in buildPythonPackage rec {
   # But the library should be working as expected.
   doCheck = false;
 
+  pythonImportsCheck = [ "mysql" ];
+
   meta = {
     description = "A MySQL driver";
     longDescription = ''
@@ -28,7 +30,7 @@ in buildPythonPackage rec {
     '';
     homepage = "https://github.com/mysql/mysql-connector-python";
     changelog = "https://raw.githubusercontent.com/mysql/mysql-connector-python/${version}/CHANGES.txt";
-    license = [ lib.licenses.gpl2 ];
-    maintainers = with lib.maintainers; [ primeos ];
+    license = [ lib.licenses.gpl2Only ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix
index 2622b815f1e..c02baa571ed 100644
--- a/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/pkgs/development/python-modules/nbsphinx/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "nbsphinx";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19lf036h0d9ryqasrh91myhn3dq5zcw4rik9jy6sayq7l6irmm94";
+    sha256 = "53352237e2363079f6e38637a8ce90b47e720c8e2eb133a6a6f66fc13ff494cb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index ba3b9e4b087..2e352be412c 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.9";
+  version = "0.6.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0112f2ad41fb658f52446d870853a63691d69299c73c7351c520d38dbd8dc0c4";
+    sha256 = "67b1eba5a6c7c6075746d8c33d4e8f4ded17604034c1fcd1c78996ef52bf66ff";
   };
 
   checkInputs = [ nose rednose ];
diff --git a/pkgs/development/python-modules/nclib/default.nix b/pkgs/development/python-modules/nclib/default.nix
new file mode 100644
index 00000000000..0e15bfb6cc4
--- /dev/null
+++ b/pkgs/development/python-modules/nclib/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nclib";
+  version = "1.0.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kf8x30lrwhijab586i54g70s3sxvm2945al48zj27grj0pagh7g";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "nclib" ];
+
+  meta = with lib; {
+    description = "Python module that provides netcat features";
+    homepage = "https://nclib.readthedocs.io/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index 56c6044ba74..33c37d5e980 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.3";
+  version = "1.5.1";
   pname = "nest_asyncio";
   disabled = !(pythonAtLeast "3.5");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eaa09ef1353ebefae19162ad423eef7a12166bcc63866f8bff8f3635353cd9fa";
+    sha256 = "afc5a1c515210a23c461932765691ad39e8eba6551c055ac8d5546e69250d0aa";
   };
 
   # tests not packaged with source dist as of 1.3.2/1.3.2, and
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index e1efdf26de8..e3ce770398e 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "nilearn";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rhpy6na7hkhc211ri14zghvmb2fxkh995wi09pkc68klf1dzjg7";
+    sha256 = "8b1409a5e1f0f6d1a1f02555c2f11115a2364f45f1e57bcb5fb3c9ea11f346fa";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/nltk/default.nix b/pkgs/development/python-modules/nltk/default.nix
index 298b32ed8b8..c87a935a306 100644
--- a/pkgs/development/python-modules/nltk/default.nix
+++ b/pkgs/development/python-modules/nltk/default.nix
@@ -1,4 +1,4 @@
-{ fetchPypi, buildPythonPackage, lib, six, singledispatch, isPy3k
+{ fetchPypi, buildPythonPackage, lib, six, singledispatch ? null, isPy3k
 , click
 , joblib
 , regex
diff --git a/pkgs/development/python-modules/normality/default.nix b/pkgs/development/python-modules/normality/default.nix
new file mode 100644
index 00000000000..ece47afad4e
--- /dev/null
+++ b/pkgs/development/python-modules/normality/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, text-unidecode
+, chardet
+, banal
+, PyICU
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "normality";
+  version = "2.1.3";
+
+  src = fetchFromGitHub {
+    owner = "pudo";
+    repo = "normality";
+    rev = version;
+    sha256 = "WvpMs02vBGnCSPkxo6r6g4Di2fKkUr2SsBflTBxlhkU=";
+  };
+
+  propagatedBuildInputs = [
+    text-unidecode
+    chardet
+    banal
+    PyICU
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "normality"
+  ];
+
+  meta = with lib; {
+    description = "Micro-library to normalize text strings";
+    homepage = "https://github.com/pudo/normality";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index bfc5d8c60c1..c7dc40d7079 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.2.0";
+  version = "6.3.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0464b28e18e7a06cec37e6177546c2322739be07962dd13bf712bcb88361f013";
+    sha256 = "cbc9398d6c81473e9cdb891d2cae9c0d3718fca289dda6d26df5cb660fcadc7d";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 44ee4597dbe..548565ff1d3 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -1,28 +1,29 @@
 { lib, stdenv
 , buildPythonPackage
-, fetchurl
+, fetchFromGitHub
 , vmprof
 , pyqt4
 , isPyPy
 , pkgs
+, scons
+, chrpath
 }:
 
-let
-  # scons is needed but using it requires Python 2.7
-  # Therefore we create a separate env for it.
-  scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
-in buildPythonPackage rec {
-  version = "0.6.8.4";
+buildPythonPackage rec {
+  version = "0.6.14.5";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
-  src = fetchurl {
-    url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "0awhwksnmqmbciimqmd11wygp7bnq57khcg4n9r4ld53s147rmqm";
+  src = fetchFromGitHub {
+    owner = "kayhayen";
+    repo = "Nuitka";
+    rev = version;
+    sha256 = "08kcp22zdgp25kk4bp56z196mn6bdi3z4x0q2y9vyz0ywfzp9zap";
   };
 
   checkInputs = [ vmprof pyqt4 ];
   nativeBuildInputs = [ scons ];
+  propagatedBuildInputs = [ chrpath ];
 
   postPatch = ''
     patchShebangs tests/run-tests
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index 48ed52499c5..211e9d6185f 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -12,14 +12,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.52.0";
+  version = "0.53.0";
   pname = "numba";
   # uses f-strings, python 3.9 is not yet supported
   disabled = pythonOlder "3.6" || pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44661c5bd85e3d3619be0a40eedee34e397e9ccb3d4c458b70e10bf95d1ce933";
+    sha256 = "55c11d7edbba2ba715f2b56f5294cad55cfd87bff98e2627c3047c2d5cc52d16";
   };
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index e5a36fe454f..c2630d75eb4 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.7.2";
+  version = "2.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ai3i5n07csnzfsxf2dxp8cpdk6ajl5iv8rv0fj6n9ag7qphixac";
+    sha256 = "43616529f9b7d1afc83386f943dc66c4da5e052f00217ba7e3ad8dd1b5f3a825";
   };
 
   # Remove existing site.cfg, use the one we built for numpy.
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index ed6f80b34a6..c5f6053058d 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -40,14 +40,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.20.1";
+  version = "1.20.2";
   format = "pyproject.toml";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "02m6sms6wb4flfg8y4h0msan4y7w7qgfqxhdk21lcabhm2339iiv";
+    sha256 = "1vkc1739lwqx0n9dwxzmy18axlz22za034xa8jh0lmfpbazj52c7";
   };
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
index df831ab6b53..5bb173b9153 100644
--- a/pkgs/development/python-modules/nunavut/default.nix
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -7,12 +7,12 @@
 
  buildPythonPackage rec {
   pname = "nunavut";
-  version = "1.0.2";
+  version = "1.0.3";
   disabled = pythonOlder "3.5"; # only python>=3.5 is supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6fe0a1b92c44bb64b2427f944fee663fe1aaf3d4d4080d04ad9c212b40a8763";
+    sha256 = "474392035e9e20b2c74dced7df8bda135fd5c0ead2b2cf64523a4968c785ea73";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
new file mode 100644
index 00000000000..41c6ffb7228
--- /dev/null
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, certifi
+, configparser
+, cryptography
+, pyopenssl
+, dateutil
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "oci";
+  version = "2.36.0";
+
+  src = fetchFromGitHub {
+    owner = "oracle";
+    repo = "oci-python-sdk";
+    rev = "v${version}";
+    hash = "sha256-scG/ZhWeiCgXp7iD6arWIN8KZecSjKLsCW4oXeJvx6M=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "configparser==4.0.2" "configparser" \
+      --replace "cryptography==3.2.1" "cryptography" \
+      --replace "pyOpenSSL>=17.5.0,<=19.1.0" "pyOpenSSL"
+  '';
+
+  propagatedBuildInputs = [
+    certifi configparser cryptography pyopenssl dateutil pytz
+  ];
+
+  # Tests fail: https://github.com/oracle/oci-python-sdk/issues/164
+  doCheck = false;
+
+  pythonImportsCheck = [ "oci" ];
+
+  meta = with lib; {
+    description = "Oracle Cloud Infrastructure Python SDK";
+    homepage = "https://oracle-cloud-infrastructure-python-sdk.readthedocs.io/en/latest/index.html";
+    maintainers = with maintainers; [ ilian ];
+    license = with licenses; [ asl20 upl ];
+  };
+}
diff --git a/pkgs/development/python-modules/omnilogic/default.nix b/pkgs/development/python-modules/omnilogic/default.nix
index 6e12e573706..96d0d7e19c6 100644
--- a/pkgs/development/python-modules/omnilogic/default.nix
+++ b/pkgs/development/python-modules/omnilogic/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "omnilogic";
-  version = "0.4.3";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "djtimca";
     repo = "omnilogic-api";
-    rev = "v${version}";
-    sha256 = "19pmbykq0mckk23aj33xbhg3gjx557xy9a481mp6pkmihf2lsc8z";
+    rev = version;
+    sha256 = "081awb0fl40b5ighc9yxfq1xkgxz7l5dvz5544hx965q2r20wvsg";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ondilo/default.nix b/pkgs/development/python-modules/ondilo/default.nix
new file mode 100644
index 00000000000..7010bd473ab
--- /dev/null
+++ b/pkgs/development/python-modules/ondilo/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, oauthlib
+, pythonOlder
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "ondilo";
+  version = "0.2.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "JeromeHXP";
+    repo = pname;
+    rev = version;
+    sha256 = "0k7c9nacf7pxvfik3hkv9vvvda2sx5jrf6zwq7r077x7fw5l8d2b";
+  };
+
+  propagatedBuildInputs = [
+    oauthlib
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ondilo" ];
+
+  meta = with lib; {
+    description = "Python package to access Ondilo ICO APIs";
+    homepage = "https://github.com/JeromeHXP/ondilo";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix
index 90683a84f46..cf1d595d90c 100644
--- a/pkgs/development/python-modules/onnx/default.nix
+++ b/pkgs/development/python-modules/onnx/default.nix
@@ -8,25 +8,21 @@
 , numpy
 , six
 , typing-extensions
-, typing
-, pytestrunner
-, pytest
+, pytestCheckHook
 , nbval
 , tabulate
 }:
 
 buildPythonPackage rec {
   pname = "onnx";
-  version = "1.8.1";
+  version = "1.9.0";
 
-  # Due to Protobuf packaging issues this build of Onnx with Python 2 gives
-  # errors on import.
-  # Also support for Python 2 will be deprecated from Onnx v1.8.
+  # Python 2 is not supported as of Onnx v1.8
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d65c52009a90499f8c25fdfe5acda3ac88efe0788eb1d5f2575a989277145fb";
+    sha256 = "0yjv2axz2vc2ysniwislsp53fsb8f61y1warrr2ppn2d9ijml1d9";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -36,11 +32,10 @@ buildPythonPackage rec {
     numpy
     six
     typing-extensions
-  ] ++ lib.optional (pythonOlder "3.5") [ typing ];
+  ];
 
   checkInputs = [
-    pytestrunner
-    pytest
+    pytestCheckHook
     nbval
     tabulate
   ];
@@ -48,6 +43,9 @@ buildPythonPackage rec {
   postPatch = ''
     chmod +x tools/protoc-gen-mypy.sh.in
     patchShebangs tools/protoc-gen-mypy.sh.in tools/protoc-gen-mypy.py
+
+    substituteInPlace setup.py \
+      --replace "setup_requires.append('pytest-runner')" ""
   '';
 
   preBuild = ''
diff --git a/pkgs/development/python-modules/openapi-schema-validator/default.nix b/pkgs/development/python-modules/openapi-schema-validator/default.nix
new file mode 100644
index 00000000000..f09a42ddd69
--- /dev/null
+++ b/pkgs/development/python-modules/openapi-schema-validator/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, isodate
+, jsonschema
+, pytest-flake8
+, pytestcov
+, rfc3339-validator
+, six
+, strict-rfc3339
+}:
+
+buildPythonPackage rec {
+  pname = "openapi-schema-validator";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a4b2712020284cee880b4c55faa513fbc2f8f07f365deda6098f8ab943c9f0df";
+  };
+
+  propagatedBuildInputs = [ isodate jsonschema six strict-rfc3339 rfc3339-validator ];
+
+  checkInputs = [ pytestCheckHook pytestcov pytest-flake8 ];
+  pythonImportsCheck = [ "openapi_schema_validator" ];
+
+  meta = with lib; {
+    description = "Validates OpenAPI schema against the OpenAPI Schema Specification v3.0";
+    homepage = "https://github.com/p1c2u/openapi-schema-validator";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 02f51bc3e66..88455e72610 100644
--- a/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -1,17 +1,17 @@
 { lib, buildPythonPackage, isPy27, fetchPypi
-, jsonschema, pyyaml, six, pathlib
+, jsonschema, openapi-schema-validator, pyyaml, six, pathlib
 , mock, pytest, pytestcov, pytest-flake8, tox, setuptools }:
 
 buildPythonPackage rec {
   pname = "openapi-spec-validator";
-  version = "0.2.9";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jw59mmd3n1d5zihdqz2a3j2axxf3m34lqp1190fw8rlndlilf3r";
+    sha256 = "53ba3d884e98ff2062d5ada025aa590541dcd665b8f81067dc82dd61c0923759";
   };
 
-  propagatedBuildInputs = [ jsonschema pyyaml six setuptools ]
+  propagatedBuildInputs = [ jsonschema openapi-schema-validator pyyaml six setuptools ]
     ++ (lib.optionals (isPy27) [ pathlib ]);
 
   checkInputs = [ mock pytest pytestcov pytest-flake8 tox ];
diff --git a/pkgs/development/python-modules/openerz-api/default.nix b/pkgs/development/python-modules/openerz-api/default.nix
new file mode 100644
index 00000000000..9cbe89e26a3
--- /dev/null
+++ b/pkgs/development/python-modules/openerz-api/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, testfixtures
+}:
+
+buildPythonPackage rec {
+  pname = "openerz-api";
+  version = "0.1.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "misialq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10kxsmaz2rn26jijaxmdmhx8vjdz8hrhlrvd39gc8yvqbjwhi3nw";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    testfixtures
+  ];
+
+  pythonImportsCheck = [ "openerz_api" ];
+
+  meta = with lib; {
+    description = "Python module to interact with the OpenERZ API";
+    homepage = "https://github.com/misialq/openerz-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index 48941c80816..317aba65621 100644
--- a/pkgs/development/python-modules/openpyxl/default.nix
+++ b/pkgs/development/python-modules/openpyxl/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "openpyxl";
-  version = "3.0.6";
+  version = "3.0.7";
   disabled = isPy27; # 2.6.4 was final python2 release
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b229112b46e158b910a5d1b270b212c42773d39cab24e8db527f775b82afc041";
+    sha256 = "6456a3b472e1ef0facb1129f3c6ef00713cebf62e736cd7a75bcc3247432f251";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/openshift/default.nix b/pkgs/development/python-modules/openshift/default.nix
new file mode 100644
index 00000000000..052d364982b
--- /dev/null
+++ b/pkgs/development/python-modules/openshift/default.nix
@@ -0,0 +1,39 @@
+{
+  lib
+  , buildPythonPackage
+  , fetchPypi
+  , jinja2
+  , kubernetes
+  , ruamel-yaml
+  , six
+  , python-string-utils
+}:
+
+buildPythonPackage rec {
+  pname = "openshift";
+  version = "0.12.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-aggRnD4goiZJPp4cngp8AIrJC/V46378cwUSfq8Xml4=";
+  };
+
+  propagatedBuildInputs = [
+    jinja2
+    kubernetes
+    python-string-utils
+    ruamel-yaml
+    six
+  ];
+
+  # tries to connect to the network
+  doCheck = false;
+  pythonImportsCheck = ["openshift"];
+
+  meta = with lib; {
+    description = "Python client for the OpenShift API";
+    homepage = "https://github.com/openshift/openshift-restclient-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ teto ];
+  };
+}
diff --git a/pkgs/development/python-modules/opentracing/default.nix b/pkgs/development/python-modules/opentracing/default.nix
index 8e4ece43fd7..381b0d76b14 100644
--- a/pkgs/development/python-modules/opentracing/default.nix
+++ b/pkgs/development/python-modules/opentracing/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, futures
+, futures ? null
 , gevent
 , mock
 , pytest
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index aa61b18291d..78694618f73 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "optuna";
-  version = "0.19.0";
+  version = "2.6.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "optuna";
     repo = pname;
     rev = "v${version}";
-    sha256 = "179x2lsckpmkrkkdnvvbzky86g1ba882z677qwbayhsc835wbp0y";
+    sha256 = "11mskhb7i55i04cy0vkxi7kpaifbz8zc2m8x9s5y6yyyjinvly36";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index 92a78ce0cf3..661754d89c3 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest, pyyaml } :
 buildPythonPackage rec {
   pname = "OWSLib";
-  version = "0.21.0";
+  version = "0.23.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "408d40b3a6a210bcb3f3609b607960eeedaa63ffd574dde7896906691c354814";
+    sha256 = "0a03a9978673f377df45107024e2aae006f85afe7ef7bf4640ef663167a4386f";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index fa8dbddd04e..58ae09af14b 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -15,7 +15,7 @@ let
   node = callPackage ./node {};
 in buildPythonPackage rec {
   pname = "panel";
-  version = "0.11.1";
+  version = "0.11.3";
 
   # Don't forget to also update the node packages
   # 1. retrieve the package.json file
@@ -23,7 +23,7 @@ in buildPythonPackage rec {
   # 3. node2nix
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce531e5c0c8a8ae74d523762aeb1666650caebbe1867aba16129d29791e921f9";
+    sha256 = "sha256-HpHYHysPE6MRxR0kek5C7sunHMfBsUGdZfxamz2jcLc=";
   };
 
   # Since 0.10.0 panel attempts to fetch from the web.
diff --git a/pkgs/development/python-modules/panel/node/node-packages.nix b/pkgs/development/python-modules/panel/node/node-packages.nix
index 7b591b6e469..6e45b64d5c6 100644
--- a/pkgs/development/python-modules/panel/node/node-packages.nix
+++ b/pkgs/development/python-modules/panel/node/node-packages.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@bokeh/bokehjs-2.3.0" = {
+    "@bokeh/bokehjs-2.3.1" = {
       name = "_at_bokeh_slash_bokehjs";
       packageName = "@bokeh/bokehjs";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bokeh/bokehjs/-/bokehjs-2.3.0.tgz";
-        sha512 = "geKBhYUVJ5IaY0UNk9k2P0yiYLCj+DOeNjdDneuTJ8K5R9fs0Rpp4iiaQKUGr1yUyQHGHLU8sk4CFZ+Bd5ZILg==";
+        url = "https://registry.npmjs.org/@bokeh/bokehjs/-/bokehjs-2.3.1.tgz";
+        sha512 = "DlNZaqAJFUw38IuSk2TUOcfyiK8Ya3kDRpYt/RgVUftIDW2CWLbBo47kbug9+ykEF49rcnlxcCXhNXzpg4V7gw==";
       };
     };
     "@bokeh/numbro-1.6.2" = {
@@ -476,10 +476,10 @@ let
   args = {
     name = "_at_holoviz_slash_panel";
     packageName = "@holoviz/panel";
-    version = "0.11.1";
+    version = "0.11.3";
     src = ./.;
     dependencies = [
-      sources."@bokeh/bokehjs-2.3.0"
+      sources."@bokeh/bokehjs-2.3.1"
       sources."@bokeh/numbro-1.6.2"
       (sources."@bokeh/slickgrid-2.4.2702" // {
         dependencies = [
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index 0311e783d39..9af09d56946 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -14,7 +14,7 @@
 , requests
 , entrypoints
 , tenacity
-, futures
+, futures ? null
 , black
 , backports_tempfile
 , isPy27
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "papermill";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ptwZXypS9b7Y1CkszqOa8PMzgyS+r9VikPlhbJUDNiM=";
+    sha256 = "349aecd526c15c39f73a08df836467e2fead877c474d82c7df349f27ad272525";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/parse/default.nix b/pkgs/development/python-modules/parse/default.nix
index c5c0c1d7ae6..1ce34bfaab6 100644
--- a/pkgs/development/python-modules/parse/default.nix
+++ b/pkgs/development/python-modules/parse/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "parse";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4";
+    sha256 = "9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/path.py/default.nix b/pkgs/development/python-modules/path.py/default.nix
index 56e856cff9a..5a0322edf65 100644
--- a/pkgs/development/python-modules/path.py/default.nix
+++ b/pkgs/development/python-modules/path.py/default.nix
@@ -6,9 +6,7 @@
 , pytest-flake8
 , glibcLocales
 , packaging
-, isPy27
 , isPy38
-, backports_os
 , importlib-metadata
 , fetchpatch
 }:
@@ -26,8 +24,7 @@ buildPythonPackage rec {
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [
     importlib-metadata
-  ] ++ lib.optional isPy27 backports_os
-  ;
+  ];
 
   LC_ALL = "en_US.UTF-8";
 
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index 6e04f2e7a03..b21536060d3 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -3,9 +3,9 @@
 , fetchPypi
 , six
 , pythonOlder
-, scandir
+, scandir ? null
 , glibcLocales
-, mock
+, mock ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index bd6432db534..058fb863883 100644
--- a/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "pc-ble-driver-py";
-  version = "0.14.2";
+  version = "0.15.0";
   disabled = pythonOlder "3.6" || pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-ble-driver-py";
-    rev = "v${version}";
-    sha256 = "1zbi3v4jmgq1a3ml34dq48y1hinw2008vwqn30l09r5vqvdgnj8m";
+    rev = version;
+    sha256 = "1ckbsq9dwca8hpx9frf9xd80b4z4kn9j7jx94hza9bwzrh26x5ji";
   };
 
   # doCheck tries to write to the global python directory to install things
diff --git a/pkgs/development/python-modules/pecan/default.nix b/pkgs/development/python-modules/pecan/default.nix
index 50b62503ff8..d19fc101134 100644
--- a/pkgs/development/python-modules/pecan/default.nix
+++ b/pkgs/development/python-modules/pecan/default.nix
@@ -5,7 +5,7 @@
 # Python deps
 , logutils
 , Mako
-, singledispatch
+, singledispatch ? null
 , six
 , webtest
 # Test Inputs
diff --git a/pkgs/development/python-modules/perfplot/default.nix b/pkgs/development/python-modules/perfplot/default.nix
index 371eff249c2..70af6cc9c8a 100644
--- a/pkgs/development/python-modules/perfplot/default.nix
+++ b/pkgs/development/python-modules/perfplot/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "perfplot";
-  version = "0.8.4";
+  version = "0.8.10";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "nschloe";
     repo = "perfplot";
     rev = "v${version}";
-    sha256 = "0avb0inx8qh8ss3j460v3z6mmn863hswa3bl19vkh475ndsjwmp0";
+    sha256 = "17xx33fk95fpkd8h2whblpwfls9vyqbv7anq34kpigjy8zxfi2qk";
   };
   format = "pyproject";
 
diff --git a/pkgs/development/python-modules/persim/default.nix b/pkgs/development/python-modules/persim/default.nix
index 0979afa92f4..65f3529e60c 100644
--- a/pkgs/development/python-modules/persim/default.nix
+++ b/pkgs/development/python-modules/persim/default.nix
@@ -1,44 +1,44 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, scikitlearn
-, numpy
+, deprecated
+, hopcroftkarp
+, joblib
 , matplotlib
+, numpy
+, scikitlearn
 , scipy
-, hopcroftkarp
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "persim";
-  version = "0.1.3";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "be4ea4bfc2a0c6fcfc28ebd52e23a351ee00b0ef0ddaf527526bd0f919145348";
+    sha256 = "5db2f7f65b1ad7b2cbfa254afb692ca0a91aeb686e82d6905838c41f516e6a13";
   };
 
   propagatedBuildInputs = [
-    scikitlearn
-    numpy
+    deprecated
+    hopcroftkarp
+    joblib
     matplotlib
+    numpy
+    scikitlearn
     scipy
-    hopcroftkarp
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
+  preCheck = ''
     # specifically needed for darwin
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.matplotlib
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
-
-    # ignore tests due to python 2.7 fail
-    pytest --ignore test/test_plots.py \
-           --ignore test/test_visuals.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 588a27159e8..f8374a02a9b 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.30";
+  version = "2.1.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ac170d656d2083d02048850005415d03d1767087e4f5037bc86defb6b23e712d";
+    sha256 = "988e6a4e12933522e0c647da78c6e30fc42e3a172ba52cfb0332affcfc9ee29e";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index efa4c3005fc..a03452d7862 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -8,19 +8,22 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.19.0";
+  version = "1.19.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-EexwwLIOpECAfiyGmUDxSE7qk9cbQ1gHtjhW3YK3RN0=";
+    sha256 = "sha256-RMu008kS8toWfKAr+YoAQPfpMmDk7xFMKNXWFSAS6gc=";
   };
 
-  propagatedBuildInputs = [passlib scramp ];
+  propagatedBuildInputs = [
+    passlib
+    scramp
+  ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "scramp==1.3.0" "scramp>=1.3.0"
+      --replace "scramp==1.4.0" "scramp>=1.4.0"
   '';
 
   # Tests require a running PostgreSQL instance
diff --git a/pkgs/development/python-modules/pgpy/default.nix b/pkgs/development/python-modules/pgpy/default.nix
index 2c527d87d18..b3fde72baec 100644
--- a/pkgs/development/python-modules/pgpy/default.nix
+++ b/pkgs/development/python-modules/pgpy/default.nix
@@ -1,5 +1,5 @@
 { lib, isPy3k, fetchFromGitHub, buildPythonPackage
-, six, enum34, pyasn1, cryptography, singledispatch
+, six, enum34, pyasn1, cryptography, singledispatch ? null
 , fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pgspecial/default.nix b/pkgs/development/python-modules/pgspecial/default.nix
index 476921da632..d0cbf5bafe4 100644
--- a/pkgs/development/python-modules/pgspecial/default.nix
+++ b/pkgs/development/python-modules/pgspecial/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pgspecial";
-  version = "1.11.10";
+  version = "1.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jrq6bhzwvz6db8ays8zff15hbk1iazs2qxrzvrnlkgxxjkp8p7n";
+    sha256 = "b68feb0005f57861573d3fbb82c5c777950decfbb2d1624af57aec825db02c02";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 72c61e08ce4..64884393b79 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.18";
+  version = "8.12.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aa0f5e1382d292a7ff2f8bc08673126521461c7f908e0220756449a734d8fef";
+    sha256 = "ee5a8508c4a414262abad92ec33f050347f681973ed0fb36e98b52bfe159f6b8";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index e68516fb07f..1c401b62647 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.9.1";
+  version = "2.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jaizhkb59ixknvc75nrhfq51bh75912q8ay36bxpf4g5hzyhw3a";
+    sha256 = "389dd33f5bfe35733c8346af6cc43bbd015ccf0efa947eb04b38bd5cb9d0b89b";
   };
 
   propagatedBuildInputs = [ numpy pyyaml matplotlib h5py spglib ];
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
index c1bfe5297d7..ef325073216 100644
--- a/pkgs/development/python-modules/pika/default.nix
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pika";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gqx9avb9nwgiyw5nz08bf99v9b0hvzr1pmqn9wbhd2hnsj6p9wz";
+    sha256 = "f023d6ac581086b124190cb3dc81dd581a149d216fa4540ac34f9be1e3970b89";
   };
 
   checkInputs = [ nose mock twisted tornado ];
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 565822c3355..c536f4c69f0 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -17,18 +17,19 @@
 , python-dateutil
 , python-xmp-toolkit
 , qpdf
+, setuptools
 , setuptools-scm
 , setuptools-scm-git-archive
 }:
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "2.8.0";
+  version = "2.11.1";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74ff96fddd21cd4c0830eb549137ea9eccbdbff8cef4f684322b9afb8e42ccb5";
+    sha256 = "0vs7qa3s4scfhyldfw99hhxpna6rj49rsbr2k0j6b4qx1bw8h141";
   };
 
   buildInputs = [
@@ -58,6 +59,7 @@ buildPythonPackage rec {
     defusedxml
     lxml
     pillow
+    setuptools
   ];
 
   preBuild = ''
@@ -71,5 +73,6 @@ buildPythonPackage rec {
     description = "Read and write PDFs with Python, powered by qpdf";
     license = licenses.mpl20;
     maintainers = [ maintainers.kiwi ];
+    changelog = "https://github.com/pikepdf/pikepdf/blob/${version}/docs/release_notes.rst";
   };
 }
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index 5fef39ebef0..0f747a8d73e 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -5,13 +5,13 @@
 
 import ./generic.nix (rec {
   pname = "Pillow";
-  version = "8.1.2";
+  version = "8.2.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i7w0fi24za3naz3k3qav6lrhf034nzdy6m9025djlj80476cz5h";
+    sha256 = "1qf3bz1sfz58ff6hclg8phgqyy210x3aqdk5yzjr8m5vsw8ap1x7";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pillowfight/default.nix b/pkgs/development/python-modules/pillowfight/default.nix
index c022fdb988d..b0a8d6d913c 100644
--- a/pkgs/development/python-modules/pillowfight/default.nix
+++ b/pkgs/development/python-modules/pillowfight/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pillowfight";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "913869b0563c5982bcf08cb1ea56fb0f87e3573d738e3e3692301bf45dba6252";
+    sha256 = "4923f4d1e78be15f19f03a608fb34ba9cb71bf5205de3c9fe7461c49078167a7";
   };
 
   propagatedBuildInputs = [ pillow ];
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 4ea6f75932c..48f15181ce0 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "5.4.0";
+  version = "6.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4d3990df2d65961af8b41dacc242e600fdc8a65a2e155ed3d2fc18a5c209f20";
+    sha256 = "3b0c7b95e8d3dfb011bb42cb38f356fcf5d0630480462b59c4d0a112b8d90281";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pkginfo/default.nix b/pkgs/development/python-modules/pkginfo/default.nix
index 5216ab17879..1b1834e324b 100644
--- a/pkgs/development/python-modules/pkginfo/default.nix
+++ b/pkgs/development/python-modules/pkginfo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pkginfo";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6a4ac943b496745cec21f14f021bbd869d5e9b4f6ec06918cffea5a2f4b9193";
+    sha256 = "029a70cb45c6171c329dfc890cde0879f8c52d6f3922794796e06f577bb03db4";
   };
 
   doCheck = false; # I don't know why, but with doCheck = true it fails.
diff --git a/pkgs/development/python-modules/plac/default.nix b/pkgs/development/python-modules/plac/default.nix
index 9261133bc92..bf66f7d01f1 100644
--- a/pkgs/development/python-modules/plac/default.nix
+++ b/pkgs/development/python-modules/plac/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "plac";
-  version = "1.2.0";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ca03587234e5bdd2a3fa96f19a04a01ebb5b0cd66d48ecb5a54d42bc9b287320";
+    sha256 = "51e332dabc2aed2cd1f038be637d557d116175101535f53eaa7ae854a00f2a74";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index aa329953a39..040b51b9f6e 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "7.2.0";
+  version = "7.2.1";
   pname = "plaid-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd599b384f94d8883344925f0ef223e1ab50f218872434aa40ba8c645937699c";
+    sha256 = "af2ad326e8377c8c86d97184f60c0be41cd71f5075201dfdb3331cc85d4de513";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/plugincode/default.nix b/pkgs/development/python-modules/plugincode/default.nix
new file mode 100644
index 00000000000..7270685f41b
--- /dev/null
+++ b/pkgs/development/python-modules/plugincode/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, click
+, commoncode
+, pluggy
+, pytestCheckHook
+, pytest-xdist
+}:
+buildPythonPackage rec {
+  pname = "plugincode";
+  version = "21.1.21";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "97b5a2c96f0365c80240be103ecd86411c68b11a16f137913cbea9129c54907a";
+  };
+
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    click
+    commoncode
+    pluggy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
+
+  pythonImportsCheck = [
+    "plugincode"
+  ];
+
+  meta = with lib; {
+    description = "A library that provides plugin functionality for ScanCode toolkit";
+    homepage = "https://github.com/nexB/plugincode";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/plugnplay/default.nix b/pkgs/development/python-modules/plugnplay/default.nix
new file mode 100644
index 00000000000..259fe96028a
--- /dev/null
+++ b/pkgs/development/python-modules/plugnplay/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+buildPythonPackage rec {
+  pname = "plugnplay";
+  version = "0.5.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "877e2d2500a45aaf31e5175f9f46182088d3e2d64c1c6b9ff6c778ae0ee594c8";
+  };
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "plugnplay"
+  ];
+
+  meta = with lib; {
+    description = "A Generic plug-in system for python applications";
+    homepage = "https://github.com/daltonmatos/plugnplay";
+    license = licenses.gpl2Only;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix
index e08537ff1ab..278caa44b14 100644
--- a/pkgs/development/python-modules/plumbum/default.nix
+++ b/pkgs/development/python-modules/plumbum/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "plumbum";
-  version = "1.6.9";
+  version = "1.7.0";
 
   checkInputs = [ pytest ];
 
@@ -14,6 +14,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ps37vamqav6p277dlp51jnacd5q4x4z1x8y0nfjw3y8jsfy3f8n";
+    sha256 = "317744342c755319907c773cc87c3a30adaa3a41b0d34c0ce02d9d1904922dce";
   };
 }
diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix
index 80c4b5acfe8..4d8c444dcd2 100644
--- a/pkgs/development/python-modules/poetry-core/default.nix
+++ b/pkgs/development/python-modules/poetry-core/default.nix
@@ -7,22 +7,29 @@
 , pytest-mock
 , pytestCheckHook
 , tomlkit
-, typing
+, typing ? null
 , virtualenv
 }:
 
 buildPythonPackage rec {
   pname = "poetry-core";
-  version = "1.0.2";
+  version = "1.0.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OE6oc/3HYrMmgPnINxvSZ27m8YeZk5Gnn9ok8GlSIZ0=";
+    sha256 = "07x0zagf9cfr7g3132jjd5byywkbnzpfbxjfjzpzpj70fqw70qrc";
   };
 
+  postPatch = lib.optionalString (pythonOlder "3.8") ''
+    # remove >1.0.3
+    substituteInPlace pyproject.toml \
+      --replace 'importlib-metadata = {version = "^1.7.0", python = "~2.7 || >=3.5, <3.8"}' \
+        'importlib-metadata = {version = ">=1.7.0", python = "~2.7 || >=3.5, <3.8"}'
+  '';
+
   nativeBuildInputs = [
     intreehooks
   ];
diff --git a/pkgs/development/python-modules/poetry/default.nix b/pkgs/development/python-modules/poetry/default.nix
index 95e45020d46..ad043e9f59e 100644
--- a/pkgs/development/python-modules/poetry/default.nix
+++ b/pkgs/development/python-modules/poetry/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.1.5";
+  version = "1.1.6";
   format = "pyproject";
   disabled = isPy27;
 
@@ -32,13 +32,14 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "0bv6irpscpak6pldkzrx4j12dqnpfz5h8fy5lliglizv0avh60hf";
+    sha256 = "sha256-3Nx9xuQMIho+oRjqskHL9eQGKDAWntEGZcWe7evnmNU=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
      --replace 'importlib-metadata = {version = "^1.6.0", python = "<3.8"}' \
-       'importlib-metadata = {version = ">=1.6,<2", python = "<3.8"}'
+       'importlib-metadata = {version = ">=1.6", python = "<3.8"}' \
+     --replace 'version = "^21.2.0"' 'version = ">=21.2"'
   '';
 
   nativeBuildInputs = [ intreehooks ];
diff --git a/pkgs/development/python-modules/ppdeep/default.nix b/pkgs/development/python-modules/ppdeep/default.nix
new file mode 100644
index 00000000000..bbb5c3fc923
--- /dev/null
+++ b/pkgs/development/python-modules/ppdeep/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ppdeep";
+  version = "20200505";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zx1h0ff0wjjkgd0dzjv31i6ag09jw2p9vcssc1iplp60awlpixc";
+  };
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ppdeep" ];
+
+  meta = with lib; {
+    description = "Python library for computing fuzzy hashes (ssdeep)";
+    homepage = "https://github.com/elceef/ppdeep";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index f5fe7ff96b8..f664d9c6d25 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pre-commit-hooks";
-  version = "3.3.0";
+  version = "3.4.0";
   disabled = isPy27;
 
   # fetchPypi does not provide tests
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "pre-commit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1sppwcqsbr9gv2cpjslngcbggsxvdr84zgrin94yjr40jgkjzdpq";
+    sha256 = "1aqkmprdc2lhds9c59pkkf2js65j63197flanaggk7cm8k0kz7zs";
   };
 
   propagatedBuildInputs = [ toml ruamel_yaml ];
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
index 5463403dec7..d349a58960a 100644
--- a/pkgs/development/python-modules/prettytable/default.nix
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "prettytable";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e37acd91976fe6119172771520e58d1742c8479703489321dc1d9c85e7259922";
+    sha256 = "5882ed9092b391bb8f6e91f59bcdbd748924ff556bb7c634089d5519be87baa0";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/prompt_toolkit/default.nix b/pkgs/development/python-modules/prompt_toolkit/default.nix
index e43931d914c..ac128c098ec 100644
--- a/pkgs/development/python-modules/prompt_toolkit/default.nix
+++ b/pkgs/development/python-modules/prompt_toolkit/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "prompt_toolkit";
-  version = "3.0.16";
+  version = "3.0.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974";
+    sha256 = "e1b4f11b9336a28fa11810bc623c357420f69dfdb6d2dac41ca2c21a55c033bc";
   };
   checkPhase = ''
     py.test -k 'not test_pathcompleter_can_expanduser'
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index 120d5215b2f..3fa782cb471 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-z8RUdMftoP48S57KJUISTyoP9VQyQr7GHo0IvOD1vUg=";
+    sha256 = "cfc45474c7eda0fe3c4b9eca2542124f2a0ff5543242bec61e8d08bce0f5bd48";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index 60c6f333275..e3e66294a8f 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -5,7 +5,7 @@
 , buildPythonPackage
 , isPy37
 , protobuf
-, google-apputils
+, google-apputils ? null
 , six
 , pyext
 , libcxx
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index 51ad2e85ff2..65915c85869 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.16";
+  version = "3.0.17";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b0f6e381a8251ec8d6aa94fe12f3400bf6edf789f89c8a6099f8a91d4a5d2e1";
+    sha256 = "911d25cca31a8e4f9b2ecd16dcdad793b8859e94fca1275f3485d8cdf20b13de";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ptyprocess/default.nix b/pkgs/development/python-modules/ptyprocess/default.nix
index 233dc6fb314..d969a679a1a 100644
--- a/pkgs/development/python-modules/ptyprocess/default.nix
+++ b/pkgs/development/python-modules/ptyprocess/default.nix
@@ -1,17 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "ptyprocess";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0";
+    sha256 = "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220";
   };
 
+  patches = [
+    # Remove after https://github.com/pexpect/ptyprocess/pull/64 is merged.
+    (fetchpatch {
+      url = "https://github.com/pexpect/ptyprocess/commit/40c1ccf3432a6787be1801ced721540e34c6cd87.patch";
+      sha256 = "sha256-IemngBqBq3QRCmVscWtsuXHiFgvTOJIIB9SyAvsqHd0=";
+    })
+  ];
+
   meta = {
     description = "Run a subprocess in a pseudo terminal";
     homepage = "https://github.com/pexpect/ptyprocess";
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
index db48fbf1e48..af653f260cd 100644
--- a/pkgs/development/python-modules/pudb/default.nix
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pudb";
-  version = "2019.2";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p2qizb35f9lfhklldzrn8g9mwiar3zmpc44463h5n1ln40ymw78";
+    sha256 = "2ef23d3371439f13fffbe7f8b9fc180a19d4183dc9cab204d878d7c7766464bf";
   };
 
   propagatedBuildInputs = [ pygments urwid ];
diff --git a/pkgs/development/python-modules/pulsectl/default.nix b/pkgs/development/python-modules/pulsectl/default.nix
index 2a66357f849..6b05f383ec6 100644
--- a/pkgs/development/python-modules/pulsectl/default.nix
+++ b/pkgs/development/python-modules/pulsectl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pulsectl";
-  version = "20.5.1";
+  version = "21.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "39b0a0e7974a7d6468d826a838822f78b00ac9c3803f0d7bfa9b1cad08ee22db";
+    sha256 = "sha256-+qi5M2I3VlmQKY8ghw4T3RZ4pFhoR8paf/Kr8QdS81Y=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pur/default.nix b/pkgs/development/python-modules/pur/default.nix
new file mode 100644
index 00000000000..7d79be68b60
--- /dev/null
+++ b/pkgs/development/python-modules/pur/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pur";
+  version = "5.4.0";
+
+  src = fetchFromGitHub {
+    owner = "alanhamlett";
+    repo = "pip-update-requirements";
+    rev = version;
+    sha256 = "1p2g0kz9l0rb59b3rkclb6wwidc93kwqh2hm4xc22b1w9r946six";
+  };
+
+  propagatedBuildInputs = [
+    click
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pur" ];
+
+  meta = with lib; {
+    description = "Python library for update and track the requirements";
+    homepage = "https://github.com/alanhamlett/pip-update-requirements";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/py-vapid/default.nix b/pkgs/development/python-modules/py-vapid/default.nix
index 2f4a60b420a..dd8cbdcc5f0 100644
--- a/pkgs/development/python-modules/py-vapid/default.nix
+++ b/pkgs/development/python-modules/py-vapid/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "py-vapid";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f05cecaa9fc009515086d04b6117324f30eedf1a196f67fb1ec360a9dbdad4ee";
+    sha256 = "9e8de790cce397d9bc567a2148c3c5d88740f668342c59aaff9ed004f716a111";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index aa12deabb37..26afa14c1ef 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "py";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342";
+    sha256 = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3";
   };
 
   # Circular dependency on pytest
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library with cross-python path, ini-parsing, io, code, log facilities";
-    homepage = "https://pylib.readthedocs.org/";
+    homepage = "https://py.readthedocs.io/";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/py3exiv2/default.nix b/pkgs/development/python-modules/py3exiv2/default.nix
index 0c2ae128827..236a38c7e69 100644
--- a/pkgs/development/python-modules/py3exiv2/default.nix
+++ b/pkgs/development/python-modules/py3exiv2/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "py3exiv2";
-  version = "0.8.0";
+  version = "0.9.3";
   disabled = !(isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v419f1kkqw8hqyc3yhzslnbzk52j8j3wfknfkjg308n5mf5bn09";
+    sha256 = "838836e58ca22557d83d1f0ef918bcce899b4c2666340b924b940dcdebf1d18c";
   };
 
   buildInputs = [ exiv2 boost ];
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index bd0f179dc85..9967394d28e 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.31";
+  version = "3.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "426cff33c1d3a5ee6ae388089fd41dc47c4221800f43bd51779f823c781fb83b";
+    sha256 = "1508fa481a2f1b55b9a9792f0480c7f54cad107c668ffc98a7c73622676e1c23";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index 8eb1649fcc5..6ad9673b975 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   pname = "py4j";
 
-  version = "0.10.9.1";
+  version = "0.10.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7605e512bf9b002245f5a9121a8c2df9bfd1a6004fe6dd3ff29d46f901719d53";
+    sha256 = "624f97c363b8dd84822bc666b12fa7f7d97824632b2ff3d852cc491359ce7615";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/pyGithub/default.nix b/pkgs/development/python-modules/pyGithub/default.nix
index c214b375ff3..02656968d68 100644
--- a/pkgs/development/python-modules/pyGithub/default.nix
+++ b/pkgs/development/python-modules/pyGithub/default.nix
@@ -3,36 +3,41 @@
 , cryptography
 , deprecated
 , fetchFromGitHub
-, httpretty
-, isPy3k
-, parameterized
+, pynacl
 , pyjwt
-, pytestCheckHook
-, requests }:
+, pythonOlder
+, requests
+}:
 
 buildPythonPackage rec {
   pname = "PyGithub";
-  version = "1.54.1";
-  disabled = !isPy3k;
+  version = "1.55";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "v${version}";
-    sha256 = "1nl74bp5ikdnrc8xq0qr25ryl1mvarf0xi43k8w5jzlrllhq0nkq";
+    sha256 = "sha256-PuGCBFSbM91NtSzuyf0EQUr3LiuHDq90OwkSf53rSyA=";
   };
 
-  checkInputs = [ httpretty parameterized pytestCheckHook ];
-  propagatedBuildInputs = [ cryptography deprecated pyjwt requests ];
+  propagatedBuildInputs = [
+    cryptography
+    deprecated
+    pynacl
+    pyjwt
+    requests
+  ];
 
   # Test suite makes REST calls against github.com
   doCheck = false;
+  pythonImportsCheck = [ "github" ];
 
   meta = with lib; {
+    description = "Python library to access the GitHub API v3";
     homepage = "https://github.com/PyGithub/PyGithub";
-    description = "A Python (2 and 3) library to access the GitHub API v3";
     platforms = platforms.all;
-    license = licenses.gpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jhhuh ];
   };
 }
diff --git a/pkgs/development/python-modules/pyaftership/default.nix b/pkgs/development/python-modules/pyaftership/default.nix
index 4deee467f84..e65812cb313 100644
--- a/pkgs/development/python-modules/pyaftership/default.nix
+++ b/pkgs/development/python-modules/pyaftership/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyaftership";
-  version = "0.1.2";
+  version = "21.1.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "057dwzacc0lmsq00ipfbnxkq4rc2by8glmza6s8i6dzi1cc68v98";
+    sha256 = "28b62c323d06492399b60d8135a58d6feaa1d60837eddc14e57ea2b69d356c0a";
   };
 
   propagatedBuildInputs = [ aiohttp async-timeout ];
diff --git a/pkgs/development/python-modules/pyairvisual/default.nix b/pkgs/development/python-modules/pyairvisual/default.nix
index bcbb672f5c8..65f70efb7c5 100644
--- a/pkgs/development/python-modules/pyairvisual/default.nix
+++ b/pkgs/development/python-modules/pyairvisual/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyairvisual";
-  version = "5.0.7";
+  version = "5.0.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r/AJl36dv6+C92tc3kpX4/VzG69qdh4ERCyQxDOHdVU=";
+    sha256 = "sha256-QgMc0O5jk5LgKQg9ZMCZd3dNLv1typm1Rp2u8kSsqYk=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -43,8 +43,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Ignore the examples as they are prefixed with test_
-  pytestFlagsArray = [ "--ignore examples/" ];
+  disabledTestPaths = [ "examples/" ];
+
   pythonImportsCheck = [ "pyairvisual" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index aa65d7ccadf..048d218a9ea 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pybase64";
-  version = "1.0.2";
+  version = "1.1.4";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c430b36751dd89820c867aadd0130bbe8ce007ee570cbe91bb23012fb6f52e87";
+    sha256 = "f0e0db1dee2a2cbf35e6710ea138594ecc1e0f491ff9103f136de83d8f159315";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 3fd93493860..0ae0b26e12d 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "pybind11";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "pybind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "TXljeRFonQwEmlIGMnTHwdfPsd9cMOVn5/1zb3tYBfI=";
+    sha256 = "1lsacpawl2gb5qlh0cawj9swsyfbwhzhwiv6553a7lsigdbadqpy";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/pybtex/default.nix b/pkgs/development/python-modules/pybtex/default.nix
index fb6fbf8dd38..0ce28e57492 100644
--- a/pkgs/development/python-modules/pybtex/default.nix
+++ b/pkgs/development/python-modules/pybtex/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchPypi, latexcodec, pyyaml }:
 
 buildPythonPackage rec {
-  version = "0.23.0";
+  version = "0.24.0";
   pname = "pybtex";
 
   doCheck = false;
@@ -9,7 +9,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "b92be18ccd5e9a37895949dcf359a1f6890246b73646dddf1129178ee12e4bef";
+    sha256 = "818eae35b61733e5c007c3fcd2cfb75ed1bc8b4173c1f70b56cc4c0802d34755";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index 554a6ab0b02..195167b2437 100644
--- a/pkgs/development/python-modules/pybullet/default.nix
+++ b/pkgs/development/python-modules/pybullet/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "3.0.8";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "623061d305bd5513a911abb2cbd0e37670be166a270123b43ca757bf78e4b438";
+    sha256 = "ced62167216c75b58d5550adc74a0d328a166ded8b37b52ce90bc9736f597187";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pycairo/1.18.nix b/pkgs/development/python-modules/pycairo/1.18.nix
new file mode 100644
index 00000000000..0a51c78c584
--- /dev/null
+++ b/pkgs/development/python-modules/pycairo/1.18.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, meson
+, ninja
+, buildPythonPackage
+, pytestCheckHook
+, pkg-config
+, cairo
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pycairo";
+  version = "1.18.2";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "pygobject";
+    repo = "pycairo";
+    rev = "v${version}";
+    sha256 = "142145a2whvlk92jijrbf3i2bqrzmspwpysj0bfypw0krzi0aa6j";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  mesonFlags = [
+    "-Dpython=${python.interpreter}"
+  ];
+
+  meta = with lib; {
+    description = "Python 2 bindings for cairo";
+    homepage = "https://pycairo.readthedocs.io/";
+    license = with licenses; [ lgpl21Only mpl11 ];
+    platforms = lib.platforms.linux ++ lib.platforms.darwin;
+  };
+}
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 24e0f9792d7..c8df65c2b7e 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -1,4 +1,5 @@
 { lib
+, pythonOlder
 , fetchFromGitHub
 , meson
 , ninja
@@ -6,12 +7,14 @@
 , pytestCheckHook
 , pkg-config
 , cairo
-, isPy3k
+, python
 }:
 
 buildPythonPackage rec {
   pname = "pycairo";
-  version = "1.18.2";
+  version = "1.20.0";
+
+  disabled = pythonOlder "3.6";
 
   format = "other";
 
@@ -19,7 +22,7 @@ buildPythonPackage rec {
     owner = "pygobject";
     repo = "pycairo";
     rev = "v${version}";
-    sha256 = "142145a2whvlk92jijrbf3i2bqrzmspwpysj0bfypw0krzi0aa6j";
+    sha256 = "0ifw4wjbml512w9kqj80y9gfqa7fkgfa1zkvi478k5krghjgk3lr";
   };
 
   nativeBuildInputs = [
@@ -37,11 +40,11 @@ buildPythonPackage rec {
   ];
 
   mesonFlags = [
-    "-Dpython=${if isPy3k then "python3" else "python"}"
+    "-Dpython=${python.interpreter}"
   ];
 
   meta = with lib; {
-    description = "Python 2/3 bindings for cairo";
+    description = "Python 3 bindings for cairo";
     homepage = "https://pycairo.readthedocs.io/";
     license = with licenses; [ lgpl21Only mpl11 ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
index 7e06b18e32b..7dee3229f77 100644
--- a/pkgs/development/python-modules/pycdio/default.nix
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -40,7 +40,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://www.gnu.org/software/libcdio/";
     description = "Wrapper around libcdio (CD Input and Control library)";
-    maintainers = with maintainers; [ rycee ];
     license = licenses.gpl3Plus;
   };
 
diff --git a/pkgs/development/python-modules/pycm/default.nix b/pkgs/development/python-modules/pycm/default.nix
index 8e0a9e3b152..b750bd30b0a 100644
--- a/pkgs/development/python-modules/pycm/default.nix
+++ b/pkgs/development/python-modules/pycm/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pycm";
-  version = "2.5";
+  version = "3.1";
 
   disabled = !isPy3k;
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner  = "sepandhaghighi";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0zfv20hd7zq95sflsivjk47b0sm7q76w7fv2i2mafn83ficzx0p0";
+    sha256 = "1aspd3vkjasb4wxs9czwjw42fmd4027wsmm4vlj09yp7sl57gary";
   };
 
   # remove a trivial dependency on the author's `art` Python ASCII art library
diff --git a/pkgs/development/python-modules/pycmarkgfm/default.nix b/pkgs/development/python-modules/pycmarkgfm/default.nix
index f1d92a63d40..36b171c22b1 100644
--- a/pkgs/development/python-modules/pycmarkgfm/default.nix
+++ b/pkgs/development/python-modules/pycmarkgfm/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pycmarkgfm";
-  version = "1.0.1";
+  version = "1.1.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wkbbma214f927ikn3cijxsrzkmm5cqz1x4fimrwx9s2wfphj250";
+    sha256 = "694cb242f4961437c30b5b015dfbce9d1a1fa48305c2e39f902ce7c65b4cbe0e";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/pycocotools/default.nix b/pkgs/development/python-modules/pycocotools/default.nix
new file mode 100644
index 00000000000..a6cdf877a07
--- /dev/null
+++ b/pkgs/development/python-modules/pycocotools/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cython
+, matplotlib
+}:
+
+buildPythonPackage rec {
+  pname = "pycocotools";
+  version = "2.0.2";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06hz0iz4kqxhqby4j7bah8l41kg68bb118jawp172i4vg497lw94";
+  };
+
+  propagatedBuildInputs = [
+    cython
+    matplotlib
+  ];
+
+  pythonImportsCheck = [
+    "pycocotools.coco"
+    "pycocotools.cocoeval"
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Official APIs for the MS-COCO dataset";
+    homepage = "https://github.com/cocodataset/cocoapi/tree/master/PythonAPI";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ hexa piegames ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index e1d21a6a2eb..0e92196f745 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycodestyle";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e";
+    sha256 = "c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef";
   };
 
   dontUseSetuptoolsCheck = true;
diff --git a/pkgs/development/python-modules/pycomfoconnect/default.nix b/pkgs/development/python-modules/pycomfoconnect/default.nix
new file mode 100644
index 00000000000..0c35dc4d5ba
--- /dev/null
+++ b/pkgs/development/python-modules/pycomfoconnect/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, protobuf
+}:
+
+buildPythonPackage rec {
+  pname = "pycomfoconnect";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "michaelarnauts";
+    repo = "comfoconnect";
+    rev = version;
+    sha256 = "0bipzv68yw056iz9m2g9h40hzrwd058a7crxp0xbq4rw2d8j0jn6";
+  };
+
+  propagatedBuildInputs = [
+    protobuf
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pycomfoconnect" ];
+
+  meta = with lib; {
+    description = "Python module to interact with ComfoAir Q350/450/600 units";
+    homepage = "https://github.com/michaelarnauts/comfoconnect";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index e88b8529a35..0c57ad9c96f 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
-  version = "3.9.9";
+  version = "3.10.1";
   pname = "pycryptodome";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "910e202a557e1131b1c1b3f17a63914d57aac55cf9fb9b51644962841c3995c4";
+    sha256 = "3e2e3a06580c5f190df843cdb90ea28d61099cf4924334d5297a995de68e4673";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index 1db5df28e32..5bf9114d693 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -1,4 +1,5 @@
 { buildPythonPackage
+, addOpenGLRunpath
 , fetchPypi
 , fetchFromGitHub
 , Mako
@@ -40,6 +41,13 @@ buildPythonPackage rec {
     ln -s ${compyte} $out/${python.sitePackages}/pycuda/compyte
   '';
 
+  postFixup = ''
+    find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting opengl runpath for $lib..."
+      addOpenGLRunpath "$lib"
+    done
+  '';
+
   # Requires access to libcuda.so.1 which is provided by the driver
   doCheck = false;
 
@@ -47,6 +55,10 @@ buildPythonPackage rec {
     py.test
   '';
 
+  nativeBuildInputs = [
+    addOpenGLRunpath
+  ];
+
   propagatedBuildInputs = [
     numpy
     pytools
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index d3c6e37bbe4..11879159b4f 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.8";
+  version = "1.8.1";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "samuelcolvin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+HfnM/IrFlUyQJdiOYyaJUNenh8dLtd8CUJWSbn6hwQ=";
+    sha256 = "1zvcmx3927fgx37gdhi8g8igvrkri1v78rn3118p4wssqhgfwa6n";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index 73d989468c5..c202e5df19b 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -3,21 +3,21 @@
 , aioresponses
 , buildPythonPackage
 , fetchFromGitHub
-, pytest-asyncio
+, pytest-aiohttp
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "78";
+  version = "79";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "v${version}";
-    sha256 = "sha256-uIRuLNGFX7gq59/ntfks9pECiGkX7jjKh2jmjxFRcv4=";
+    sha256 = "sha256-I29UIyHjsIymZxcE084hQoyaEMTXIIQPFcB8lsxY+UI=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     aioresponses
-    pytest-asyncio
+    pytest-aiohttp
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/pydroid-ipcam/default.nix b/pkgs/development/python-modules/pydroid-ipcam/default.nix
new file mode 100644
index 00000000000..ca171edde44
--- /dev/null
+++ b/pkgs/development/python-modules/pydroid-ipcam/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "pydroid-ipcam";
+  version = "unstable-2021-04-16";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-libs";
+    repo = pname;
+    rev = "9f22682c6f9182aa5e42762f52223337b8b6909c";
+    sha256 = "1lvppyzmwg0fp8zch11j51an4sb074yl9shzanakvjmbqpnif6s6";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pydroid_ipcam" ];
+
+  meta = with lib; {
+    description = "Python library for Android IP Webcam";
+    homepage = "https://github.com/home-assistant-libs/pydroid-ipcam";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index 884df63ce03..6b67814a222 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydub";
-  version = "0.24.1";
+  version = "0.25.1";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pv4n54kkjpbjlvwh9b6a7zyq1ylg0fjmd2q4ws9nc2a6mrcivhc";
+    sha256 = "0xskllq66wqndjfmvp58k26cv3w480sqsil6ifwp4gghir7hqc8m";
   };
 
 
diff --git a/pkgs/development/python-modules/pyee/default.nix b/pkgs/development/python-modules/pyee/default.nix
index 7e388b93971..833b83b3913 100644
--- a/pkgs/development/python-modules/pyee/default.nix
+++ b/pkgs/development/python-modules/pyee/default.nix
@@ -1,4 +1,20 @@
-{ buildPythonPackage, fetchPypi, lib, vcversioner, pytestrunner, mock, pytest, pytest-asyncio, pytest-trio, twisted, zipp, pyparsing, pyhamcrest, futures, attrs, isPy27 }:
+{ buildPythonPackage
+, fetchPypi
+, lib
+, vcversioner
+, pytestrunner
+, mock
+, pytest
+, pytest-asyncio
+, pytest-trio
+, twisted
+, zipp ? null
+, pyparsing ? null
+, pyhamcrest
+, futures ? null
+, attrs ? null
+, isPy27
+}:
 
 buildPythonPackage rec {
   pname = "pyee";
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
index fe4182fd53d..fec3efb9b3a 100644
--- a/pkgs/development/python-modules/pyenchant/default.nix
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyenchant";
-  version = "3.1.1";
+  version = "3.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce0915d7acd771fde6e8c2dce8ad0cb0e6f7c4fa8430cc96e3e7134e99aeb12f";
+    sha256 = "6b97e9a9f132fa7c9029a6635d821ccad67d4980e68186d02c765b4256b6f152";
   };
 
   propagatedBuildInputs = [ enchant2 ];
diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix
index d317ebdf21b..3a29fd79f77 100644
--- a/pkgs/development/python-modules/pyface/default.nix
+++ b/pkgs/development/python-modules/pyface/default.nix
@@ -1,20 +1,22 @@
 { lib, fetchPypi, buildPythonPackage
-, setuptools, six, traits
+, importlib-metadata, importlib-resources, six, traits
 }:
 
 buildPythonPackage rec {
   pname = "pyface";
-  version = "7.1.0";
+  version = "7.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a3e22a4d31429f0d5b9ff50aaac3fb47e4f7da678b6b0439a7b91ef40675f88d";
+    sha256 = "a7031ec4cfff034affc822e47ff5e6c1a0272e576d79465cdbbe25f721740322";
   };
 
-  propagatedBuildInputs = [ setuptools six traits ];
+  propagatedBuildInputs = [ importlib-metadata importlib-resources six traits ];
 
   doCheck = false; # Needs X server
 
+  pythonImportsCheck = [ "pyface" ];
+
   meta = with lib; {
     description = "Traits-capable windowing framework";
     homepage = "https://github.com/enthought/pyface";
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index 9e21854a7c4..13c00d80a62 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.5.9.2";
+  version = "0.5.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73e740eaa45c097a09e543450f88d5ed06c0ece4b6936dad7e71077f67797b74";
+    sha256 = "9965644c5bd62bedc0ff7f336cbb2baef6406a36b4ec5c786b199872ce46192b";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index 8ba9b3fc46f..cc7031db54a 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.3.3";
+  version = "4.4.0";
   pname = "pyfakefs";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/7KrJkoLg69Uii2wxQl5jiCDYd85YBuomK5lzs+1nLs=";
+    sha256 = "082d863e0e2a74351f697da404e329a91e18e5055942e59d1b836e8459b2c94c";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyflakes/default.nix b/pkgs/development/python-modules/pyflakes/default.nix
index cf1b8878183..1f098ed781c 100644
--- a/pkgs/development/python-modules/pyflakes/default.nix
+++ b/pkgs/development/python-modules/pyflakes/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyflakes";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8";
+    sha256 = "f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/pyflume/default.nix b/pkgs/development/python-modules/pyflume/default.nix
index a1d36670a39..36980ddbadf 100644
--- a/pkgs/development/python-modules/pyflume/default.nix
+++ b/pkgs/development/python-modules/pyflume/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyflume";
-  version = "0.6.2";
+  version = "0.6.4";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ChrisMandich";
     repo = "PyFlume";
     rev = "v${version}";
-    sha256 = "0i181c8722j831bjlcjwv5ccy20hl8zzlv7bfp8w0976gdmv4iz8";
+    sha256 = "1dm560hh6fl1waiwsq8m31apmvvwhc3y95bfdb7449bs8k96dmxq";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pygccxml/default.nix b/pkgs/development/python-modules/pygccxml/default.nix
index 7e06b27a23f..7d7bc459b62 100644
--- a/pkgs/development/python-modules/pygccxml/default.nix
+++ b/pkgs/development/python-modules/pygccxml/default.nix
@@ -2,13 +2,13 @@
 llvmPackages }:
 buildPythonPackage rec {
   pname = "pygccxml";
-  version = "1.9.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner  = "gccxml";
     repo   = "pygccxml";
     rev    = "v${version}";
-    sha256 = "02ip03s0vmp7czzflbvf7qnybibfrd0rzqbc5zfmq3zmpnck3hvm";
+    sha256 = "1vsxnfzz6qhiv8ac98qgk6w3s4j1jp661qy48gc9plcg2r952453";
   };
 
   buildInputs = [ castxml llvmPackages.libcxxStdenv];
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 5326a1963aa..46117d13f41 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pygit2";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbeb38ab1df9b5d8896548a11e63aae8a064763ab5f1eabe4475e6b8a78ee1c8";
+    sha256 = "9711367bd05f96ad6fc9c91d88fa96126ba2d1f1c3ea6f23c11402c243d66a20";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index 318706edd93..130be6d44c3 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pygmt";
-  version = "0.2.0";
+  version = "0.3.1";
 
   disabled = pythonOlder "3.6";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "GenericMappingTools";
     repo = "pygmt";
     rev = "v${version}";
-    sha256 = "1yx1n6mxfmwg69ls5560nm6d3jxyghv27981iplz7m7990bbp468";
+    sha256 = "0v57n3by9dwckjfmrgf1km4y3gwzj2gk0s9ly64hlaf05zihqnvc";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix
index 75bbcde09cd..efb7467e485 100644
--- a/pkgs/development/python-modules/pyicu/default.nix
+++ b/pkgs/development/python-modules/pyicu/default.nix
@@ -24,7 +24,6 @@ buildPythonPackage rec {
     description = "Python extension wrapping the ICU C++ API";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = [ maintainers.rycee ];
   };
 
 }
diff --git a/pkgs/development/python-modules/pyimpfuzzy/default.nix b/pkgs/development/python-modules/pyimpfuzzy/default.nix
new file mode 100644
index 00000000000..43e1a1a2b82
--- /dev/null
+++ b/pkgs/development/python-modules/pyimpfuzzy/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ssdeep
+, pefile
+}:
+buildPythonPackage rec {
+  pname = "pyimpfuzzy";
+  version = "0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "da9796df302db4b04a197128637f84988f1882f1e08fdd69bbf9fdc6cfbaf349";
+  };
+
+  buildInputs = [
+    ssdeep
+  ];
+
+  propagatedBuildInputs = [
+    pefile
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyimpfuzzy"
+  ];
+
+  meta = with lib; {
+    description = "A Python module which calculates and compares the impfuzzy (import fuzzy hashing)";
+    homepage = "https://github.com/JPCERTCC/impfuzzy";
+    license = licenses.gpl2Only;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pyjwt/default.nix b/pkgs/development/python-modules/pyjwt/default.nix
index 9255c02ac2e..c33f2b06808 100644
--- a/pkgs/development/python-modules/pyjwt/default.nix
+++ b/pkgs/development/python-modules/pyjwt/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "PyJWT";
-  version = "1.7.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
+    sha256 = "a5c70a06e1f33d81ef25eecd50d50bd30e34de1ca8b2b9fa3fe0daaabcf69bf7";
   };
 
   propagatedBuildInputs = [ cryptography ecdsa ];
diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix
index 584c98f6cb0..294e47872fc 100644
--- a/pkgs/development/python-modules/pykeepass/default.nix
+++ b/pkgs/development/python-modules/pykeepass/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "3.2.1";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3e07eb2dd3aeb1dfa1a2d2d17be77066ee560c1e770f1c72d7ea5608117d284";
+    sha256 = "1b41b3277ea4e044556e1c5a21866ea4dfd36e69a4c0f14272488f098063178f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pykmtronic/default.nix b/pkgs/development/python-modules/pykmtronic/default.nix
index 50260afab10..7a055c1ed3f 100644
--- a/pkgs/development/python-modules/pykmtronic/default.nix
+++ b/pkgs/development/python-modules/pykmtronic/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pykmtronic";
-  version = "0.0.3";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8bxn27DU1XUQUxQFJklEge29DHx1DMu7pJG4hVE1jDU=";
+    sha256 = "9d0301882f06a0c4865c89bb6c2a381c4a1ba6fe2a7a07d56351bdf5f96c9fa5";
   };
 
   propagatedBuildInputs = [ aiohttp lxml ];
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index c5dfbd48fe1..54b2f65ad97 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pylint-django";
-  version = "2.3.0";
+  version = "2.4.2";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1088waraiigi2bnlighn7bvnvqmpx5fbw70c8jd8sh25mj38wgly";
+    sha256 = "0535y4sdi521a9s7di8ld0i8aav0afbxmx0956v6sjpyqmqdm6hr";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 43183482ece..10935d2d888 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.7.1";
+  version = "2.7.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10nrvzk1naf5ryawmi59wp99k31053sz37q3x9li2hj2cf7i1kl1";
+    sha256 = "0e21d3b80b96740909d77206d741aa3ce0b06b41be375d92e1f3244a274c1f8a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylxd/default.nix b/pkgs/development/python-modules/pylxd/default.nix
index 5d373ada09b..64232f760fa 100644
--- a/pkgs/development/python-modules/pylxd/default.nix
+++ b/pkgs/development/python-modules/pylxd/default.nix
@@ -1,24 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, pbr, dateutil, ws4py, requests-unixsocket, requests-toolbelt, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cryptography
+, python-dateutil
+, requests
+, requests-toolbelt
+, requests-unixsocket
+, ws4py
+, ddt
+, mock-services
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pylxd";
   version = "2.3.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1db88l55q974fm9z5gllx3i8bkj0jzi25xrr5cs6id3bfy4zp8a7";
+  src = fetchFromGitHub {
+    owner = "lxc";
+    repo = "pylxd";
+    rev = version;
+    sha256 = "144frnlsb21mglgyisms790hyrdfx1l91lcd7incch4m4a1cbpp6";
   };
 
   propagatedBuildInputs = [
-    pbr
-    dateutil
-    ws4py
-    requests-unixsocket
+    cryptography
+    python-dateutil
+    requests
     requests-toolbelt
+    requests-unixsocket
+    ws4py
+  ];
+
+  checkInputs = [
+    ddt
+    mock-services
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    "integration"
+    "migration"
   ];
 
-  # tests require an old version of requests-mock that we do not have a package for
-  doCheck = false;
   pythonImportsCheck = [ "pylxd" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index fdf6b089844..f6f2ebe6210 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -21,11 +21,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2020.12.31";
+  version = "2022.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5002490facd47c55d2dae42c35712e061c1f5d881180485c0543a899589856d6";
+    sha256 = "69c370ebd2ff9aceb15bb6efd364473609ffb23d2b2f02a3eb64fd537df69de0";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/pymaven-patch/default.nix b/pkgs/development/python-modules/pymaven-patch/default.nix
new file mode 100644
index 00000000000..e3a70ede060
--- /dev/null
+++ b/pkgs/development/python-modules/pymaven-patch/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pbr
+, requests
+, six
+, lxml
+, pytestCheckHook
+, pytest-cov
+, mock
+}:
+buildPythonPackage rec {
+  pname = "pymaven-patch";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d55b29bd4aeef3510904a12885eb6856b5bd48f3e29925a123461429f9ad85c0";
+  };
+
+  propagatedBuildInputs = [
+    pbr
+    requests
+    six
+    lxml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-cov
+    mock
+  ];
+
+  pythonImportsCheck = [
+    "pymaven"
+  ];
+
+  meta = with lib; {
+    description = "Python access to maven";
+    homepage = "https://github.com/nexB/pymaven";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index cf8c9513002..2f39be79821 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,22 +2,27 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.14";
+  version = "2.4.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3bc3709c735ebb3f98f19e96c8887868f4671077d4808076cfc5445912633881";
+    sha256 = "106va20k0ahy0l2qvxf8k5pvqkgdmxbgzd9kij9fkrahlba5mx3v";
   };
 
   propagatedBuildInputs = [ future lxml ];
 
-  # No tests included in PyPI tarball
+  # No tests included in PyPI tarball. We cannot use the GitHub tarball because
+  # we would like to use the same commit of the mavlink messages repo as
+  # included in the PyPI tarball, and there is no easy way to determine what
+  # commit is included.
   doCheck = false;
 
+  pythonImportsCheck = [ "pymavlink" ];
+
   meta = with lib; {
     description = "Python MAVLink interface and utilities";
     homepage = "https://github.com/ArduPilot/pymavlink";
-    license = licenses.lgpl3;
+    license = with licenses; [ lgpl3Only mit ];
     maintainers = with maintainers; [ lopsided98 ];
   };
 }
diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix
index dfbfe90d242..e322bb14f7b 100644
--- a/pkgs/development/python-modules/pymc3/default.nix
+++ b/pkgs/development/python-modules/pymc3/default.nix
@@ -20,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.9.3";
+  version = "3.11.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "abe046f5a5d0e5baee80b7c4bc0a4c218f61b517b62d77be4f89cf4784c27d78";
+    sha256 = "d3b93c8923ae8c8107c5adfd22f7c37fa0849a00a9723e0e0a0ca6afb582d6c3";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/pkgs/development/python-modules/pymdstat/default.nix b/pkgs/development/python-modules/pymdstat/default.nix
new file mode 100644
index 00000000000..54c20969786
--- /dev/null
+++ b/pkgs/development/python-modules/pymdstat/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pymdstat";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "nicolargo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "01hj8vyd9f7610sqvzphpr033rvnazbwvl11gi18ia3yqlnlncp0";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} $src/unitest.py
+  '';
+
+  pythonImportsCheck = [ "pymdstat" ];
+
+  meta = with lib; {
+    description = "A pythonic library to parse Linux /proc/mdstat file";
+    homepage = "https://github.com/nicolargo/pymdstat";
+    maintainers = with maintainers; [ rhoriguchi ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pymeeus/default.nix b/pkgs/development/python-modules/pymeeus/default.nix
index 047b7d697c9..162f3ab5596 100644
--- a/pkgs/development/python-modules/pymeeus/default.nix
+++ b/pkgs/development/python-modules/pymeeus/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyMeeus";
-  version = "0.3.13";
+  version = "0.5.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43b800a2571f3237e558d8d305e97f6ac4027977666e22af98448e0f1f86af86";
+    sha256 = "bb9d670818d8b0594317b48a7dadea02a0594e5344263bf2054e1a011c8fed55";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pymetar/default.nix b/pkgs/development/python-modules/pymetar/default.nix
index 72a17f27dca..ef5273936cf 100644
--- a/pkgs/development/python-modules/pymetar/default.nix
+++ b/pkgs/development/python-modules/pymetar/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pymetar";
-  version = "1.1";
+  version = "1.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y42l7mmp7jn4pzg66x3k57c6hqpxc22mgzgaqqpblkx2kzh42n9";
+    sha256 = "f9a8caa21eff5367427da55a469ef396293ae4cc93797ab2f1a66a2924fbdc68";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pymetno/default.nix b/pkgs/development/python-modules/pymetno/default.nix
index b3d91c595d8..0115893700a 100644
--- a/pkgs/development/python-modules/pymetno/default.nix
+++ b/pkgs/development/python-modules/pymetno/default.nix
@@ -8,22 +8,33 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyMetno";
-  version = "0.8.1";
+  pname = "pymetno";
+  version = "0.8.3";
+  format = "setuptools";
 
   src = fetchFromGitHub {
-    repo = pname;
     owner = "Danielhiversen";
+    repo = "PyMetno";
     rev = version;
-    sha256 = "1jngf0mbn5hn166pqh1ga5snwwvv7n5kv1k9kaksrfibixkvpw6h";
+    sha256 = "sha256-dvZz+wv9B07yKM4E4fQ9VQOgeil9KxZxcGk6D0kWY4g=";
   };
 
-  propagatedBuildInputs = [ aiohttp async-timeout pytz xmltodict ];
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    pytz
+    xmltodict
+  ];
 
-  pythonImportsCheck = [ "metno"];
+  pythonImportsCheck = [
+    "metno"
+  ];
+
+  # no tests
+  doCheck = false;
 
   meta = with lib; {
-    description = "A library to communicate with the met.no api";
+    description = "A library to communicate with the met.no API";
     homepage = "https://github.com/Danielhiversen/pyMetno/";
     license = licenses.mit;
     maintainers = with maintainers; [ flyfloh ];
diff --git a/pkgs/development/python-modules/pymysql/default.nix b/pkgs/development/python-modules/pymysql/default.nix
index c243bf8f954..888b5b9d309 100644
--- a/pkgs/development/python-modules/pymysql/default.nix
+++ b/pkgs/development/python-modules/pymysql/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "PyMySQL";
-  version = "0.10.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "263040d2779a3b84930f7ac9da5132be0fefcd6f453a885756656103f8ee1fdd";
+    sha256 = "816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix
index 53df38b5836..5237ce99557 100644
--- a/pkgs/development/python-modules/pynamodb/default.nix
+++ b/pkgs/development/python-modules/pynamodb/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pynamodb";
-  version = "4.3.3";
+  version = "5.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ced47c200073dbbfafb10b26931b9c9bf3c6b898f41dffa3676f5c2e2eddc2f0";
+    sha256 = "01741df673abb518d5cf9f00223a227f5d0ab9e0a6b19e444ceb38d497019f31";
   };
 
   propagatedBuildInputs = [ python-dateutil botocore ];
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index 192827566df..278508fa37f 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xYwnv30I0+CAx4QODSeMNhdlM2NuM8v4J3rx99NdYCc=";
+    sha256 = "09v0bp9zgwbs4zwcncvfccrna5rnihkhs3l4qy0f1lq8gnzjg365";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pynisher/default.nix b/pkgs/development/python-modules/pynisher/default.nix
index 28e9922e172..a908945fad5 100644
--- a/pkgs/development/python-modules/pynisher/default.nix
+++ b/pkgs/development/python-modules/pynisher/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pynisher";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e4e1d9366fc4ca60b4b2354b6d12e65600600a8c7bf4392c84f2f4ff4abc85ff";
+    sha256 = "111d91aad471375c0509a912415ff90053ef909100facf412511383af107c124";
   };
 
   propagatedBuildInputs = [ psutil docutils ];
diff --git a/pkgs/development/python-modules/pynndescent/default.nix b/pkgs/development/python-modules/pynndescent/default.nix
index aab8f4e743a..8cddeb8873f 100644
--- a/pkgs/development/python-modules/pynndescent/default.nix
+++ b/pkgs/development/python-modules/pynndescent/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , nose
 , scikitlearn
 , scipy
@@ -12,25 +11,13 @@
 
 buildPythonPackage rec {
   pname = "pynndescent";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "74a05a54d13573a38878781d44812ac6df97d8762a56f9bb5dd87a99911820fe";
+    sha256 = "0w87c2v0li2rdbx6qfc2lb6y6bxpdy3jwfgzfs1kcr4d1chj5zfr";
   };
 
-  patches = [
-    # fixes tests, included in 0.5.2
-    (fetchpatch {
-      url = "https://github.com/lmcinnes/pynndescent/commit/ef5d8c3c3bfe976063b6621e3e0734c0c22d813b.patch";
-      sha256 = "sha256-49n3kevs3wpzd4FfZVKmNpF2o1V8pJs4KOx8zCAhR3s=";
-    })
-  ];
-
-  checkInputs = [
-    nose
-  ];
-
   propagatedBuildInputs = [
     scikitlearn
     scipy
@@ -39,6 +26,10 @@ buildPythonPackage rec {
     joblib
   ];
 
+  checkInputs = [
+    nose
+  ];
+
   checkPhase = ''
     nosetests
   '';
diff --git a/pkgs/development/python-modules/pynvim/default.nix b/pkgs/development/python-modules/pynvim/default.nix
index 84e7b686980..244b366081c 100644
--- a/pkgs/development/python-modules/pynvim/default.nix
+++ b/pkgs/development/python-modules/pynvim/default.nix
@@ -4,7 +4,6 @@
 , nose
 , msgpack
 , greenlet
-, trollius
 , pythonOlder
 , isPyPy
 , pytestrunner
@@ -13,6 +12,7 @@
 buildPythonPackage rec {
   pname = "pynvim";
   version = "0.4.3";
+  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
@@ -28,8 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = [ msgpack ]
-    ++ lib.optional (!isPyPy) greenlet
-    ++ lib.optional (pythonOlder "3.4") trollius;
+    ++ lib.optional (!isPyPy) greenlet;
 
   meta = {
     description = "Python client for Neovim";
diff --git a/pkgs/development/python-modules/pynx584/default.nix b/pkgs/development/python-modules/pynx584/default.nix
new file mode 100644
index 00000000000..0f2fc2e7c0b
--- /dev/null
+++ b/pkgs/development/python-modules/pynx584/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flask
+, mock
+, prettytable
+, pyserial
+, pytestCheckHook
+, pythonOlder
+, requests
+, stevedore
+}:
+
+buildPythonPackage rec {
+  pname = "pynx584";
+  version = "0.6";
+  disabled = pythonOlder "3.6";
+
+
+  src = fetchFromGitHub {
+    owner = "kk7ds";
+    repo = pname;
+    rev = version;
+    sha256 = "0if1jq8qiqp4w4zhf2xzzcb8y70hr5pxqzh96i008p6izjha89y6";
+  };
+
+  propagatedBuildInputs = [
+    flask
+    prettytable
+    pyserial
+    requests
+    stevedore
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "nx584" ];
+
+  meta = with lib; {
+    description = "Python package for communicating to NX584/NX8E interfaces";
+    homepage = "https://github.com/kk7ds/pynx584";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyobjc/default.nix b/pkgs/development/python-modules/pyobjc/default.nix
index 541a733b3f8..cd100d005db 100644
--- a/pkgs/development/python-modules/pyobjc/default.nix
+++ b/pkgs/development/python-modules/pyobjc/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pyobjc";
-  version = "7.0.1";
+  version = "7.1";
 
   # Gives "No matching distribution found for
   # pyobjc-framework-Collaboration==4.0b1 (from pyobjc==4.0b1)"
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4fd120683b19a2abeac351784204e6b092cf1fb94f597b6eb22f30c117b2ef0";
+    sha256 = "1dfce78545df1af25d1dcd710309dd243083d90c977a8c84c483f8254967417b";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index cf881a58048..b1e81140a90 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2020.3.1";
+  version = "2021.1.4";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd pybind11 ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "abc689307cf34d3dcc94d43815f64e2265469b50ecce6c903a3180589666fb36";
+    sha256 = "6a9665e89c15e1c684789263bd3a632567e7c7bd25a657092df4b185b3468971";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pyparted/default.nix b/pkgs/development/python-modules/pyparted/default.nix
index 16a894546e4..ee34f91b57e 100644
--- a/pkgs/development/python-modules/pyparted/default.nix
+++ b/pkgs/development/python-modules/pyparted/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pyparted";
-  version = "3.11.4";
+  version = "3.11.7";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "dcantrell";
     rev = "v${version}";
-    sha256 = "0wd0xhv1y1zw7djzcnimj8irif3mg0shbhgz0jn5yi914is88h6n";
+    sha256 = "01193fmkss9icjvqpw85szpk8ld1pnha7p9kqm7mpwk6rc6gi2m3";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyperclip/default.nix b/pkgs/development/python-modules/pyperclip/default.nix
index 0df0da0cc5e..c04cc9eec34 100644
--- a/pkgs/development/python-modules/pyperclip/default.nix
+++ b/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.8.1";
+  version = "1.8.2";
   pname = "pyperclip";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9abef1e79ce635eb62309ecae02dfb5a3eb952fa7d6dce09c1aef063f81424d3";
+    sha256 = "105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyperf/default.nix b/pkgs/development/python-modules/pyperf/default.nix
index f17f83bd17b..f4239fb9225 100644
--- a/pkgs/development/python-modules/pyperf/default.nix
+++ b/pkgs/development/python-modules/pyperf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2189fbc4af08d519f85468e70e32c902eab0f1341b2c41028b94b2832d3169a7";
+    sha256 = "498bb4d1fe21350c2b7c1aa8bb3eae9c9979358d0b66327954bc66839fcba8b6";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/pkgs/development/python-modules/pypinyin/default.nix b/pkgs/development/python-modules/pypinyin/default.nix
new file mode 100644
index 00000000000..9615e07d7c7
--- /dev/null
+++ b/pkgs/development/python-modules/pypinyin/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pypinyin";
+  version = "0.41.0";
+
+  src = fetchFromGitHub {
+    owner = "mozillazg";
+    repo = "python-pinyin";
+    rev = "v${version}";
+    sha256 = "1s01dd5n6cgjg24dmji0abxkyvr1yi18lx4rpm9z54v0q3wkccg9";
+  };
+
+  postPatch = ''
+    substituteInPlace pytest.ini --replace \
+      "--cov-report term-missing" ""
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "tests"
+  ];
+
+  meta = with lib; {
+    description = "Chinese Characters to Pinyin - 汉字转拼音";
+    homepage = "https://github.com/mozillazg/python-pinyin";
+    changelog = "https://github.com/mozillazg/python-pinyin/blob/master/CHANGELOG.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa mic92 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pypiserver/default.nix b/pkgs/development/python-modules/pypiserver/default.nix
new file mode 100644
index 00000000000..d1c6fee942c
--- /dev/null
+++ b/pkgs/development/python-modules/pypiserver/default.nix
@@ -0,0 +1,40 @@
+{ buildPythonPackage, fetchFromGitHub, lib, passlib, pytestCheckHook, setuptools
+, setuptools-git, twine, webtest }:
+
+buildPythonPackage rec {
+  pname = "pypiserver";
+  version = "1.4.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z5rsmqgin98m6ihy1ww42fxxr6jb4hzldn8vlc9ssv7sawdz8vz";
+  };
+
+  nativeBuildInputs = [ setuptools-git ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkInputs = [ passlib pytestCheckHook twine webtest ];
+
+  # These tests try to use the network
+  disabledTests = [
+    "test_pipInstall_openOk"
+    "test_pipInstall_authedOk"
+    "test_hash_algos"
+  ];
+
+  pythonImportsCheck = [ "pypiserver" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pypiserver/pypiserver";
+    description = "Minimal PyPI server for use with pip/easy_install";
+    license = with licenses; [ mit zlib ];
+    maintainers = [ maintainers.austinbutler ];
+  };
+}
diff --git a/pkgs/development/python-modules/pypykatz/default.nix b/pkgs/development/python-modules/pypykatz/default.nix
index e98e2bc3dbc..f4eafdcb4fc 100644
--- a/pkgs/development/python-modules/pypykatz/default.nix
+++ b/pkgs/development/python-modules/pypykatz/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pypykatz";
-  version = "0.4.7";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0il5sj47wyf9gn76alm8v1l63rqw2vsd27v6f7q1dpn0wq209syi";
+    sha256 = "sha256-1p8v4Qi0MNqMUpcErWnxveYu4d4N5BUBCDBsw1xX96I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index 1d5608ec777..96f0ba057f6 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -2,12 +2,12 @@
 , graphviz, networkx, six, opt-einsum, tqdm, pyro-api }:
 
 buildPythonPackage rec {
-  version = "1.5.2";
+  version = "1.6.0";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "8a93af3a007ac507a8b50fd1165dbb355182d17df29d3b5bc498b02b479fdb27";
+    sha256 = "ee181852713058f59d600dfa2e05bbc6f7f9b88fcdb4d2f1ccf61b0bf4794088";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro5/default.nix b/pkgs/development/python-modules/pyro5/default.nix
index 5afce4a37da..97b41b03daf 100644
--- a/pkgs/development/python-modules/pyro5/default.nix
+++ b/pkgs/development/python-modules/pyro5/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "Pyro5";
-  version = "5.11";
+  version = "5.12";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "867cdd291d85560373e0c468da7fd18754f2568ef60e0bc504af42f391d7a3e5";
+    sha256 = "616e6957c341da0ca26f947805c9c97b42031941f59ca5613537d1420ff4f2e2";
   };
 
   propagatedBuildInputs = [ serpent ];
diff --git a/pkgs/development/python-modules/pyroma/2.nix b/pkgs/development/python-modules/pyroma/2.nix
new file mode 100644
index 00000000000..9fee5ec56c0
--- /dev/null
+++ b/pkgs/development/python-modules/pyroma/2.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi
+, docutils, pygments, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pyroma";
+  version = "2.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2527423e3a24ccd56951f3ce1b0ebbcc4fa0518c82fca882e696c78726ab9c2f";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pygments < 2.6" "pygments"
+  '';
+
+  propagatedBuildInputs = [ docutils pygments setuptools ];
+
+  meta = with lib; {
+    description = "Test your project's packaging friendliness";
+    homepage = "https://github.com/regebro/pyroma";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pyroma/default.nix b/pkgs/development/python-modules/pyroma/default.nix
index 9fee5ec56c0..c8fc988b96c 100644
--- a/pkgs/development/python-modules/pyroma/default.nix
+++ b/pkgs/development/python-modules/pyroma/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pyroma";
-  version = "2.6.1";
+  version = "3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2527423e3a24ccd56951f3ce1b0ebbcc4fa0518c82fca882e696c78726ab9c2f";
+    sha256 = "45ad8201da9a813b5597bb85c80bbece93af9ec89170fc2be5ad85fa9463cef1";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index e5c87a94b07..00ce008d6cc 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -1,22 +1,27 @@
-{lib, buildPythonPackage, fetchPypi}:
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.5.14";
+  version = "0.5.18";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "774c5ecf05fe40f0f601a7ab33c19ca0b24f00bf4a094e58deaa5333b7ca49b5";
+    sha256 = "sha256-CKxAytUsC7Lg8gCHUgWZqpH8zgsiHdJukEIzBCiBC8U=";
   };
 
-  # requires root priviledges
+  # Requires root privileges, https://github.com/svinota/pyroute2/issues/778
   doCheck = false;
 
+  pythonImportsCheck = [ "pyroute2" ];
+
   meta = with lib; {
     description = "Python Netlink library";
     homepage = "https://github.com/svinota/pyroute2";
     license = licenses.asl20;
-    maintainers = [maintainers.mic92];
+    maintainers = with maintainers; [ mic92 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix
index 5cc86e909f0..55b6b727845 100644
--- a/pkgs/development/python-modules/pysma/default.nix
+++ b/pkgs/development/python-modules/pysma/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.4";
+  version = "0.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BOVALVFb/p2q3A4NkvgtwmL5fNvwMCk0hb1L5MRWzHY=";
+    sha256 = "sha256-vriMnJFS7yfTyDT1f4sx1xEBTQjqc4ZHmkdHp1vcd+Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
index a3517ea87ec..c845f1bf5f0 100644
--- a/pkgs/development/python-modules/pysmappee/default.nix
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pysmappee";
-  version = "0.2.23";
+  version = "0.2.24";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-vxCZzkngYnc+hD3gT1x7qAQTFjpmmgRU5F6cusNDNgk=";
+    sha256 = "sha256-M1qzwGf8q4WgkEL0nK1yjn3JSBbP7mr75IV45Oa+ypM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysmart-smartx/default.nix b/pkgs/development/python-modules/pysmart-smartx/default.nix
new file mode 100644
index 00000000000..66b789668a0
--- /dev/null
+++ b/pkgs/development/python-modules/pysmart-smartx/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, future
+, pytestCheckHook
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pysmart-smartx";
+  version = "0.3.10";
+
+  src = fetchFromGitHub {
+    owner = "smartxworks";
+    repo = "pySMART";
+    rev = "v${version}";
+    sha256 = "1irl4nlgz3ds3aikraa9928gzn6hz8chfh7jnpmq2q7d2vqbdrjs";
+  };
+
+  propagatedBuildInputs = [ future ];
+
+  # tests require contextlib.nested
+  doCheck = !isPy3k;
+
+  checkInputs = [ pytestCheckHook mock ];
+
+  pythonImportsCheck = [ "pySMART" ];
+
+  meta = with lib; {
+    description = "It's a fork of pySMART with lots of bug fix and enhances";
+    homepage = "https://github.com/smartxworks/pySMART";
+    maintainers = with maintainers; [ rhoriguchi ];
+    license = licenses.gpl2Only;
+  };
+}
diff --git a/pkgs/development/python-modules/pysmartapp/default.nix b/pkgs/development/python-modules/pysmartapp/default.nix
new file mode 100644
index 00000000000..abf3796ae7f
--- /dev/null
+++ b/pkgs/development/python-modules/pysmartapp/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpsig
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pysmartapp";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "andrewsayre";
+    repo = pname;
+    rev = version;
+    sha256 = "03wk44siqxl15pa46x5vkg4q0mnga34ir7qn897576z2ivbx7awh";
+  };
+
+  propagatedBuildInputs = [
+    httpsig
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pysmartapp" ];
+
+  meta = with lib; {
+    description = "Python implementation to work with SmartApp lifecycle events";
+    homepage = "https://github.com/andrewsayre/pysmartapp";
+    changelog = "https://github.com/andrewsayre/pysmartapp/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysmartthings/default.nix b/pkgs/development/python-modules/pysmartthings/default.nix
new file mode 100644
index 00000000000..e8a295c319c
--- /dev/null
+++ b/pkgs/development/python-modules/pysmartthings/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pysmartthings";
+  version = "0.7.6";
+
+  src = fetchFromGitHub {
+    owner = "andrewsayre";
+    repo = pname;
+    rev = version;
+    sha256 = "0m91lfzdbmq6qv6bihd278psi9ghldxpa1d0dsbii2zf338188qj";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pysmartthings" ];
+
+  meta = with lib; {
+    description = "Python library for interacting with the SmartThings cloud API";
+    homepage = "https://github.com/andrewsayre/pysmartthings";
+    changelog = "https://github.com/andrewsayre/pysmartthings/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
index 704f3c44c4e..308dd4e7f25 100644
--- a/pkgs/development/python-modules/pysonos/default.nix
+++ b/pkgs/development/python-modules/pysonos/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pysonos";
-  version = "0.0.40";
+  version = "0.0.43";
 
   disabled = !isPy3k;
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "amelchio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a0c7jwv39nbvpdcx32sd8kjmj4nyrd7k0yxhpmxdnx4zr4vvzqg";
+    sha256 = "sha256-OobKlAymXXvQH6m77Uqn2eoTlWgs8EBxYIDFJ5wwMKA=";
   };
 
   propagatedBuildInputs = [ ifaddr requests xmltodict ];
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 2d09a0a0c3b..064a8db88e2 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "3.0.2";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d4f2ced43394ad773f7b516a4bbcb5821a940462a17b1a25f175c83771b62ebc";
+    sha256 = "104abc146d4ffb72d4c683d25d7af5a6bf955d94590a76f542ee23185670aa7e";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index c0ae2be9e7b..9b778f9e216 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/moses-palmer/pystray";
     description = "This library allows you to create a system tray icon";
-    license = with licenses; [ gpl3Only lgpl3Only ];
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix
index 25d5aa30543..10b9b0ec482 100644
--- a/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-ansible";
-  version = "2.1.1";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "pytest-ansible";
     rev = "v${version}";
-    sha256 = "0v97sqk3q2vkmwnjlnncz8ss8086x9jg3cz0g2nzlngs4ql1gdb0";
+    sha256 = "0vh2f34qxs8qfv15hf1q7li2iqjiydjsb4c86i2ma1b7vhi73j57";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix
index 003d7e14ab5..a41c26b753b 100644
--- a/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/pkgs/development/python-modules/pytest-cov/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-cov";
-  version = "2.10.1";
+  version = "2.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e";
+    sha256 = "359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index bf8dc9f8dfc..335846fc342 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.8.0";
+  version = "0.9.0";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb083925a17ce636f33997c275f61123e63372c1db11fefac1e991ed25a4ca37";
+    sha256 = "6fe747418461d7b202824a3486ba8f4fa17a9bd0b1eddc743ba1d6d87f03391a";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-flask/default.nix b/pkgs/development/python-modules/pytest-flask/default.nix
index e55d98ce46b..f5fd4c5251d 100644
--- a/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/pkgs/development/python-modules/pytest-flask/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-flask";
-  version = "1.1.0";
+  version = "1.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c136afd6d0fb045b0b8fd2363421b6670bfebd21d9141f79669d9051c9d2d05";
+    sha256 = "46fde652f77777bf02dc91205aec4ce20cdf2acbbbd66a918ab91f5c14693d3d";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-helpers-namespace/default.nix b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
index c634aa00718..b405afea215 100644
--- a/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
+++ b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
@@ -1,30 +1,28 @@
 { buildPythonPackage
-, fetchFromGitHub
-, pytest
+, fetchPypi
+, pytestCheckHook
+, isPy27
 , lib
+, setuptools
+, setuptools-declarative-requirements
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-helpers-namespace";
-  version = "2019.1.8";
+  version = "2021.3.24";
+  disabled = isPy27;
 
-  src = fetchFromGitHub {
-    owner = "saltstack";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0z9f25d2wpf3lnqzmmnrlvl5b1f7kqwjjf4nzs9x2bpf91s5zny1";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pyj2d45zagmzlajzqdnkw5yz8k49pkihbydsqkzm413qnkzb38q";
   };
 
-  buildInputs = [ pytest ];
+  nativeBuildInputs = [ setuptools setuptools-declarative-requirements setuptools-scm ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest
-  '';
-
-  # The tests fail with newest pytest. They passed with pytest_3, which no longer exists
-  doCheck = false;
+  pythonImportsCheck = [ "pytest_helpers_namespace" ];
 
   meta = with lib; {
     homepage = "https://github.com/saltstack/pytest-helpers-namespace";
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index fb65f8acead..fe74f692df5 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f0fcf9674f3a627b36e07466d335e82b0f7c4f9e0f7ec39f2a1750b0189d5371";
+    sha256 = "46a12331a701e2f21d48548b2828c8b0a7956dbf1cd5347163f537deb24332dd";
   };
 
   propagatedBuildInputs = [ isort ];
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index 370416c4aa8..88b8017e1c0 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mypy";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63d418a4fea7d598ac40b659723c00804d16a251d90a5cfbca213eeba5aaf01c";
+    sha256 = "1fa55723a4bf1d054fcba1c3bd694215a2a65cc95ab10164f5808afd893f3b11";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest-order/default.nix b/pkgs/development/python-modules/pytest-order/default.nix
index 8e10cd4f587..2d94b26c532 100644
--- a/pkgs/development/python-modules/pytest-order/default.nix
+++ b/pkgs/development/python-modules/pytest-order/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-order";
-  version = "0.9.5";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c9e4f1b060414c642e88ad98ca60f1fd37937debd704bd8f4a2ef8e08b9cb6d";
+    sha256 = "2da32cb95e63fac6972d34f5ddb53997fc66305355425be0f55f4092d666293d";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
index be8d675fc1e..f8e240ca57e 100644
--- a/pkgs/development/python-modules/pytest-randomly/default.nix
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -1,26 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, factory_boy, faker, numpy
-, pytest, pytest_xdist
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, factory_boy, faker, numpy, backports-entry-points-selectable
+, pytestCheckHook, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "pytest-randomly";
-  version = "3.5.0";
+  version = "3.6.0";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "440cec143fd9b0adeb072006c71e0294402a2bc2ccd08079c2341087ba4cf2d1";
+  # fetch from GitHub as pypi tarball doesn't include tests
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "pytest-dev";
+    rev = version;
+    sha256 = "17s7gx8b7sl7mp77f5dxzwbb32qliz9awrp6xz58bhjqp7pcsa5h";
   };
 
-  propagatedBuildInputs = [ numpy factory_boy faker ];
+  propagatedBuildInputs = [
+    backports-entry-points-selectable
+  ];
 
-  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";
+  checkInputs = [
+    pytestCheckHook
+    pytest_xdist
+    numpy
+    factory_boy
+    faker
+  ];
+  # needs special invocation, copied from tox.ini
+  pytestFlagsArray = [ "-p" "no:randomly" ];
 
   meta = with lib; {
     description = "Pytest plugin to randomly order tests and control random.seed";
diff --git a/pkgs/development/python-modules/pytest-sanic/default.nix b/pkgs/development/python-modules/pytest-sanic/default.nix
index 84330cfd62e..ae1c56f95b7 100644
--- a/pkgs/development/python-modules/pytest-sanic/default.nix
+++ b/pkgs/development/python-modules/pytest-sanic/default.nix
@@ -46,5 +46,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/yunstanford/pytest-sanic/";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
+    # pytest-sanic is incompatible with Sanic 21.3, see
+    # https://github.com/sanic-org/sanic/issues/2095 and
+    # https://github.com/yunstanford/pytest-sanic/issues/50.
+    broken = lib.versionAtLeast sanic.version "21.3.0";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-services/default.nix b/pkgs/development/python-modules/pytest-services/default.nix
index 7ab175a893c..70caefea895 100644
--- a/pkgs/development/python-modules/pytest-services/default.nix
+++ b/pkgs/development/python-modules/pytest-services/default.nix
@@ -6,7 +6,7 @@
 , psutil
 , pytest
 , setuptools_scm
-, subprocess32
+, subprocess32 ? null
 , toml
 , zc_lockfile
 }:
diff --git a/pkgs/development/python-modules/pytest-subprocess/default.nix b/pkgs/development/python-modules/pytest-subprocess/default.nix
index d0c54c1acfb..aeacd084eec 100644
--- a/pkgs/development/python-modules/pytest-subprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-subprocess/default.nix
@@ -10,15 +10,15 @@
 
 buildPythonPackage rec {
   pname = "pytest-subprocess";
-  version = "1.0.1";
+  version = "1.1.0";
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "aklajnert";
     repo = "pytest-subprocess";
     rev = version;
-    sha256 = "16ghwyv1vy45dd9cysjvcvvpm45958x071id2qrvgaziy2j6yx3j";
+    sha256 = "sha256-r6WNDdvZAHMG1kPtLJlCwvhbVG1gC1NEvRfta+Chxnk=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-subtesthack/default.nix b/pkgs/development/python-modules/pytest-subtesthack/default.nix
index 5006ac51150..d15df7115fb 100644
--- a/pkgs/development/python-modules/pytest-subtesthack/default.nix
+++ b/pkgs/development/python-modules/pytest-subtesthack/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-subtesthack";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x";
+    sha256 = "0711e5d04c291ac9ac6c9eff447ec2811b1d23ccdfe1417d16d4f96481efcbe6";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-xprocess/default.nix b/pkgs/development/python-modules/pytest-xprocess/default.nix
index 6e557a7adce..5949840d1e8 100644
--- a/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-xprocess";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2506d637c4f54c65dd195c1d094abdeedacc9bf0689131d847a324ad0fc951c0";
+    sha256 = "59c739edee7f3f2258e7c77989241698e356c552f5efb28bb46b478616888bf6";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index 579cfe1271f..07e4a44ccd3 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "pytest";
-  version = "6.2.2";
+  version = "6.2.3";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nR7fnn0LhNcuo9vN/SKzX7VDpejypgCS3VeJNr9j1/k=";
+    sha256 = "0d5nx7xqr9khagbvg6ac2cjjvcxrvvjp0chwim4z7w2ddsj3h4k7";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -56,9 +56,12 @@ buildPythonPackage rec {
   '';
 
   # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
+  # test_missing_required_plugins will emit deprecation warning which is treated as error
   checkPhase = ''
     runHook preCheck
-    $out/bin/py.test -x testing/ -k "not test_collect_pyargs_with_testpaths" --ignore=testing/test_junitxml.py
+    $out/bin/py.test -x testing/ \
+      --ignore=testing/test_junitxml.py \
+      -k "not test_collect_pyargs_with_testpaths and not test_missing_required_plugins"
 
     # tests leave behind unreproducible pytest binaries in the output directory, remove:
     find $out/lib -name "*-pytest-${version}.pyc" -delete
diff --git a/pkgs/development/python-modules/pytestrunner/2.nix b/pkgs/development/python-modules/pytestrunner/2.nix
new file mode 100644
index 00000000000..d6203276b82
--- /dev/null
+++ b/pkgs/development/python-modules/pytestrunner/2.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchPypi, setuptools_scm, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-runner";
+  version = "5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b";
+  };
+
+  nativeBuildInputs = [ setuptools_scm pytest ];
+
+  postPatch = ''
+    rm pytest.ini
+  '';
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  # Fixture not found
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Invoke py.test as distutils command with dependency resolution";
+    homepage = "https://github.com/pytest-dev/pytest-runner";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pytestrunner/default.nix b/pkgs/development/python-modules/pytestrunner/default.nix
index d6203276b82..6f68bcd0235 100644
--- a/pkgs/development/python-modules/pytestrunner/default.nix
+++ b/pkgs/development/python-modules/pytestrunner/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-runner";
-  version = "5.2";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "96c7e73ead7b93e388c5d614770d2bae6526efd997757d3543fe17b557a0942b";
+    sha256 = "ca3f58ff4957e8be6c54c55d575b235725cbbcf4dc0d5091c29c6444cfc8a5fe";
   };
 
   nativeBuildInputs = [ setuptools_scm pytest ];
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index d8b501d62e5..246e253e191 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-daemon";
-  version = "2.2.4";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "57c84f50a04d7825515e4dbf3a31c70cc44414394a71608dee6cfde469e81766";
+    sha256 = "bda993f1623b1197699716d68d983bb580043cf2b8a66a01274d9b8297b0aeaf";
   };
 
   nativeBuildInputs = [ twine ];
diff --git a/pkgs/development/python-modules/python-frontmatter/default.nix b/pkgs/development/python-modules/python-frontmatter/default.nix
index 6c6806f043c..e00ef7d9dee 100644
--- a/pkgs/development/python-modules/python-frontmatter/default.nix
+++ b/pkgs/development/python-modules/python-frontmatter/default.nix
@@ -1,30 +1,36 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, buildPythonPackage, pyyaml, six, pytest, pyaml }:
 
-python3Packages.buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "python-frontmatter";
-  version = "0.5.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "eyeseast";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1iki3rcbg7zs93m3mgqzncybqgdcch25qpwy84iz96qq8pipfs6g";
+    sha256 = "0flyh2pb0z4lq66dmmsgyakvg11yhkp4dk7qnzanl34z7ikp97bx";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     pyyaml
+    pyaml # yes, it's needed
     six
   ];
 
-  checkInputs = with python3Packages; [
+  # tries to import test.test, which conflicts with module
+  # exported by python interpreter
+  doCheck = false;
+  checkInputs = [
     pytest
   ];
 
+  pythonImportsCheck = [ "frontmatter" ];
+
   meta = with lib; {
     homepage = "https://github.com/eyeseast/python-frontmatter";
     description = "Parse and manage posts with YAML (or other) frontmatter";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms = lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 1a2e28d57ab..b3cb9aaff63 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -1,19 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder, pytest, responses }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, argcomplete
+, requests
+, requests-toolbelt
+, pyyaml
+}:
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "2.5.0";
+  version = "2.7.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "68b42aafd4b620ab2534ff78a52584c7f799e4e55d5ac297eab4263066e6f74b";
+    sha256 = "0z4amj5xhx5zc3h2m0zrkardm3z5ba9qpjx5n6dczyz77r527yg1";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [
+    argcomplete
+    pyyaml
+    requests
+    requests-toolbelt
+  ];
 
-  checkInputs = [ mock httmock pytest responses ];
+  # tests rely on a gitlab instance on a local docker setup
+  doCheck = false;
 
-  disabled = pythonOlder "3.6";
+  pythonImportsCheck = [
+    "gitlab"
+  ];
 
   meta = with lib; {
     description = "Interact with GitLab API";
diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index fe686761107..7189a235ded 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname   = "python-gnupg";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3aa0884b3bd414652c2385b9df39e7b87272c2eca1b8fcc3089bc9e58652019a";
+    sha256 = "2061f56b1942c29b92727bf9aecbd3cea3893acc9cccbdc7eb4604285efe4ac7";
   };
 
   # Let's make the library default to our gpg binary
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 53dab817eb2..e641a943f86 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,6 +1,6 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
 , pytestCheckHook, mock, pytestcov, coverage
-, future, futures, ujson, isPy38
+, future, futures ? null, ujson, isPy38
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix
index e221f5b1efc..b776a784c8e 100644
--- a/pkgs/development/python-modules/python-language-server/default.nix
+++ b/pkgs/development/python-modules/python-language-server/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
-, backports_functools_lru_cache, configparser, futures, future, jedi, pluggy, python-jsonrpc-server, flake8
+, backports_functools_lru_cache ? null, configparser ? null, futures ? null, future, jedi, pluggy, python-jsonrpc-server, flake8
 , pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson, flaky
 , # Allow building a limited set of providers, e.g. ["pycodestyle"].
   providers ? ["*"]
@@ -30,6 +30,13 @@ buildPythonPackage rec {
     sha256 = "07x6jr4z20jxn03bxblwc8vk0ywha492cgwfhj7q97nb5cm7kx0q";
   };
 
+  postPatch = ''
+    # Reading the changelog I don't expect an API break in pycodestyle and pyflakes
+    substituteInPlace setup.py \
+      --replace "pycodestyle>=2.6.0,<2.7.0" "pycodestyle>=2.6.0,<2.8.0" \
+      --replace "pyflakes>=2.2.0,<2.3.0" "pyflakes>=2.2.0,<2.4.0"
+  '';
+
   propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server ujson ]
     ++ lib.optional (withProvider "autopep8") autopep8
     ++ lib.optional (withProvider "mccabe") mccabe
diff --git a/pkgs/development/python-modules/python-lz4/default.nix b/pkgs/development/python-modules/python-lz4/default.nix
index e9317d3f7c6..b851ed6b826 100644
--- a/pkgs/development/python-modules/python-lz4/default.nix
+++ b/pkgs/development/python-modules/python-lz4/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-lz4";
-  version = "2.1.10";
+  version = "3.1.3";
 
   # get full repository inorder to run tests
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "02cadqfdmw4vc94px18dh4hcybpsa2lr6jz6j5phwc0jjaavh3wr";
+    sha256 = "009c4rbyj4cjb8fznccfpr5wrzdmi56wq990yjh22n0z2qqylmkf";
   };
 
   nativeBuildInputs = [ setuptools_scm pkgconfig pytestrunner ];
diff --git a/pkgs/development/python-modules/python-periphery/default.nix b/pkgs/development/python-modules/python-periphery/default.nix
index e0461dd1efe..b52ad018d57 100644
--- a/pkgs/development/python-modules/python-periphery/default.nix
+++ b/pkgs/development/python-modules/python-periphery/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-periphery";
-  version = "2.1.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ed07adc27c8b4df9cd40b2d935f86400a7b495b311df5bfaf9ecaeafc5413fd5";
+    sha256 = "8a8ec019d9b330a6a6f69a7de61d14b4c98b102d76359047c5ce0263e12246a6";
   };
 
   # Some tests require physical probing and additional physical setup
diff --git a/pkgs/development/python-modules/python-picnic-api/default.nix b/pkgs/development/python-modules/python-picnic-api/default.nix
new file mode 100644
index 00000000000..4ff18224d2d
--- /dev/null
+++ b/pkgs/development/python-modules/python-picnic-api/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "python-picnic-api";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1axqw4bs3wa9mdac35h7r25v3i5g7v55cvyy48c4sg31dxnr4wcp";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project doesn't ship tests
+  # https://github.com/MikeBrink/python-picnic-api/issues/13
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "python_picnic_api"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for the Picnic API";
+    homepage = "https://github.com/MikeBrink/python-picnic-api";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-ptrace/default.nix b/pkgs/development/python-modules/python-ptrace/default.nix
index 1af58300c2f..0ea759d92dc 100644
--- a/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/pkgs/development/python-modules/python-ptrace/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-ptrace";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b998e3436cec975b6907552af6e7f3ff8779097e32d2b905696e5a9feb09e070";
+    sha256 = "1e3bc6223f626aaacde8a7979732691c11b13012e702fee9ae16c87f71633eaa";
   };
 
   # requires distorm, which is optionally
diff --git a/pkgs/development/python-modules/python-rapidjson/default.nix b/pkgs/development/python-modules/python-rapidjson/default.nix
index 4ef3b9f8379..63dc4018b27 100644
--- a/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.4";
+  version = "1.0";
   pname = "python-rapidjson";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d79a412d7df30f01d3cb12e0e8863a48cfecd2fd7612719e16bc76eb1b65b332";
+    sha256 = "a61fa61e41b0b85ba9e78444242fddcb3be724de1df79314e6b4766b66e4e11c";
   };
 
   LC_ALL="en_US.utf-8";
diff --git a/pkgs/development/python-modules/python-registry/default.nix b/pkgs/development/python-modules/python-registry/default.nix
new file mode 100644
index 00000000000..44795da8ddf
--- /dev/null
+++ b/pkgs/development/python-modules/python-registry/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, enum-compat
+, unicodecsv
+}:
+buildPythonPackage rec {
+  pname = "python-registry";
+  version = "1.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "99185f67d5601be3e7843e55902d5769aea1740869b0882f34ff1bd4b43b1eb2";
+  };
+
+  propagatedBuildInputs = [
+    enum-compat
+    unicodecsv
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "Registry"
+  ];
+
+  meta = with lib; {
+    description = "Pure Python parser for Windows Registry hives";
+    homepage = "https://github.com/williballenthin/python-registry";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/python-smarttub/default.nix b/pkgs/development/python-modules/python-smarttub/default.nix
index ec47b88daa9..380b1738964 100644
--- a/pkgs/development/python-modules/python-smarttub/default.nix
+++ b/pkgs/development/python-modules/python-smarttub/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-smarttub";
-  version = "0.0.23";
+  version = "0.0.24";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mdz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0maqbmk50xjhv9f0zm62ayzyf99kic3c0g5714cqkw3pfp8k75cx";
+    sha256 = "sha256-XWZbfPNZ1cPsDwtJRuOwIPTHmNBMzFSYHDDcbBrXjtk=";
   };
 
   propagatedBuildInputs = [
@@ -43,5 +43,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mdz/python-smarttub";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    broken = pyjwt.version != "1.7.1";
   };
 }
diff --git a/pkgs/development/python-modules/python-snap7/default.nix b/pkgs/development/python-modules/python-snap7/default.nix
index 06e1185e343..05d804bc677 100644
--- a/pkgs/development/python-modules/python-snap7/default.nix
+++ b/pkgs/development/python-modules/python-snap7/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "python-snap7";
-  version = "0.11";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "gijzelaerr";
     repo = "python-snap7";
-    rev = "899a94c6eeca76fb9b18afd5056e5003646d7f94";
-    sha256 = "169zd1nxq86nmi6132vxl1f6wxm9w3waihq2wn14kkmld1vkmvfd";
+    rev = version;
+    sha256 = "103drdwf4v3yqvd7sscxx154mmmshb6x19v9yqmkj2lj76m0619s";
   };
 
   propagatedBuildInputs = [ setuptools six ];
diff --git a/pkgs/development/python-modules/python-stdnum/default.nix b/pkgs/development/python-modules/python-stdnum/default.nix
index eb912b2bc59..581813fac4d 100644
--- a/pkgs/development/python-modules/python-stdnum/default.nix
+++ b/pkgs/development/python-modules/python-stdnum/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, nose }:
 
 buildPythonPackage rec {
-  version = "1.14";
+  version = "1.16";
   pname = "python-stdnum";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd3a92b8ec82a159c41dbaa3c5397934d090090c92b04e346412e0fd7e6a1b1c";
+    sha256 = "4248d898042a801fc4eff96fbfe4bf63a43324854efe3b5534718c1c195c6f43";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/python-string-utils/default.nix b/pkgs/development/python-modules/python-string-utils/default.nix
new file mode 100644
index 00000000000..d8d1b136fb3
--- /dev/null
+++ b/pkgs/development/python-modules/python-string-utils/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "python-string-utils";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-3PkGCwPwdkfApgNAjciwP4B/O1SgXG4Z6xRGAlb6wMs=";
+  };
+
+  pythonImportsCheck = ["string_utils"];
+
+  # tests are not available in pypi tarball
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A handy Python library to validate, manipulate and generate strings.";
+    homepage = "https://github.com/daveoncode/python-string-utils";
+    license = licenses.mit;
+    maintainers = with maintainers; [ teto ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index 60160d270b7..f11ce745fed 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -1,23 +1,38 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytestrunner, pytestcov, pytest-flakes, sphinx, six }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, six
+}:
 
 buildPythonPackage rec {
   pname = "python-utils";
-  version = "2.4.0";
+  version = "2.5.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "12c0glzkm81ljgf6pwh0d4rmdm1r7vvgg3ifzp8yp9cfyngw07zj";
+  src = fetchFromGitHub {
+    owner = "WoLpH";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0gd2jana5w6bn7z58di4a8dwcxvc8rx282jawbw7ws7qm2a5klz3";
   };
 
+  # disable coverage and linting
   postPatch = ''
-    rm -r tests/__pycache__
-    rm tests/*.pyc
-    substituteInPlace pytest.ini --replace "--pep8" ""
+    sed -i '/--cov/d' pytest.ini
+    sed -i '/--flake8/d' pytest.ini
   '';
 
-  checkInputs = [ pytestCheckHook pytestrunner pytestcov pytest-flakes sphinx ];
+  propagatedBuildInputs = [
+    six
+  ];
 
-  propagatedBuildInputs = [ six ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "_python_utils_tests"
+  ];
 
   meta = with lib; {
     description = "Module with some convenient utilities";
diff --git a/pkgs/development/python-modules/pytools/default.nix b/pkgs/development/python-modules/pytools/default.nix
index 5c7faf50cea..83de3cb459a 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2020.4.4";
+  version = "2021.2.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3645ed839cf4d79cb4bf030f37ddaeecd7fe5e2d6698438cc36c24a1d5168809";
+    sha256 = "ebbcc38c7a30b1a0ce1a74816c85db9f2556bb4d5b9a71f85f5d88f69ddcb96b";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytorch-metric-learning/default.nix b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
index 0430ab37a68..285602bce4a 100644
--- a/pkgs/development/python-modules/pytorch-metric-learning/default.nix
+++ b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname   = "pytorch-metric-learning";
-  version = "0.9.95";
+  version = "0.9.97";
 
   disabled = isPy27;
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "KevinMusgrave";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1msvs1j3n47762ahm21bnkk2qqabxw8diiyi7s420x4zg24mr23g";
+    sha256 = "1hipby54swwpfw50wlxzgbphzqkk1fbs5x44smz4rrngqpsp3g67";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index 1436153e1db..59a8c74f709 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -297,6 +297,9 @@ in buildPythonPackage rec {
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
 
+  # Builds in 2+h with 2 cores, and ~15m with a big-parallel builder.
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = with lib; {
     description = "Open source, prototype-to-production deep learning platform";
     homepage    = "https://pytorch.org/";
diff --git a/pkgs/development/python-modules/pytube/default.nix b/pkgs/development/python-modules/pytube/default.nix
index 9f32da55ff1..8bcfa8b6c7d 100644
--- a/pkgs/development/python-modules/pytube/default.nix
+++ b/pkgs/development/python-modules/pytube/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pytube";
-  version = "10.7.1";
+  version = "10.7.2";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "pytube";
     repo = "pytube";
     rev = "v${version}";
-    sha256 = "sha256-a9MYEQFJXfPXYkWiuZkjt/PGs73Dm5614/Xvv6Nn8RA=";
+    sha256 = "sha256-85pHzfQYyqwX8mQ5msIojM/0FSfeaC12KJw4mXmji3g=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pyturbojpeg/default.nix b/pkgs/development/python-modules/pyturbojpeg/default.nix
index cb74224770d..0011bc69bc5 100644
--- a/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pyturbojpeg";
-  version = "1.4.2";
+  version = "1.5.0";
 
   src = fetchPypi {
     pname = "PyTurboJPEG";
     inherit version;
-    sha256 = "sha256-dWmj/huCkborcShf2BT+L3ybEfgdKVIGiJnkz755xwo=";
+    sha256 = "sha256-juy8gVqOXKSGGq+gOBO2BuJEL2RHjjCWJDrwRCvrZIE=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyu2f/default.nix b/pkgs/development/python-modules/pyu2f/default.nix
index 281511192fe..cf7b3eb2aeb 100644
--- a/pkgs/development/python-modules/pyu2f/default.nix
+++ b/pkgs/development/python-modules/pyu2f/default.nix
@@ -1,34 +1,30 @@
-{ stdenv, lib, fetchFromGitHub, buildPythonPackage,
-  six, mock, pyfakefs, unittest2, pytest
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, six
+, mock
+, pyfakefs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyu2f";
-  version = "0.1.4";
+  version = "0.1.5a";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = version;
-    sha256 = "0waxdydvxn05a8ab9j235mz72x7p4pwa59pnxyk1zzbwxnpxb3p9";
+    sha256 = "0mx7bn1p3n0fxyxa82wg3c719hby7vqkxv57fhf7zvhlg2zfnr0v";
   };
 
-  # Platform detection for linux fails
-  postPatch = lib.optionalString stdenv.isLinux ''
-    rm pyu2f/tests/hid/macos_test.py
-  '';
-
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest mock pyfakefs unittest2 ];
-
-  checkPhase = ''
-    pytest pyu2f/tests
-  '';
+  checkInputs = [ mock pyfakefs pytestCheckHook ];
 
   meta = with lib; {
     description = "U2F host library for interacting with a U2F device over USB";
-    homepage = "https://github.com/google/pyu2f/";
+    homepage = "https://github.com/google/pyu2f";
     license = licenses.asl20;
     maintainers = with maintainers; [ prusnak ];
   };
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index 13c54f6a41e..310170d040d 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -2,20 +2,20 @@
 , stdenv
 , archinfo
 , bitstring
-, fetchPypi
-, cffi
 , buildPythonPackage
+, cffi
+, fetchPypi
 , future
 , pycparser
 }:
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.0.5903";
+  version = "9.0.6885";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qhLlRlmb48zhjX2u9w6TVVv2gb0E9kSapabiv+u4J2s=";
+    sha256 = "sha256-cWQdrGKJyGieBow3TiMj/uB2crIF32Kvl5tVUKg/z+E=";
   };
 
   propagatedBuildInputs = [
@@ -26,6 +26,10 @@ buildPythonPackage rec {
     pycparser
   ];
 
+  preBuild = ''
+    export CC=${stdenv.cc.targetPrefix}cc
+  '';
+
   # No tests are available on PyPI, GitHub release has tests
   # Switch to GitHub release after all angr parts are present
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix
index 260311a51ad..e9e07de4df2 100644
--- a/pkgs/development/python-modules/pyviz-comms/default.nix
+++ b/pkgs/development/python-modules/pyviz-comms/default.nix
@@ -2,6 +2,7 @@
 , fetchPypi
 , lib
 , param
+, panel
 }:
 
 buildPythonPackage rec {
@@ -10,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd9649a9ea9dfcb9b34d78f9a64e1870aa8b6b94de546e2c99c6bb53d64ab5d1";
+    sha256 = "sha256-zZZJqeqd/LmzTXj5pk4YcKqLa5TeVG4smca7U9ZKtdE=";
   };
 
   propagatedBuildInputs = [ param ];
@@ -18,6 +19,10 @@ buildPythonPackage rec {
   # there are not tests with the package
   doCheck = false;
 
+  passthru.tests = {
+    inherit panel;
+  };
+
   meta = with lib; {
     description = "Launch jobs, organize the output, and dissect the results";
     homepage = "https://pyviz.org/";
diff --git a/pkgs/development/python-modules/pyvmomi/default.nix b/pkgs/development/python-modules/pyvmomi/default.nix
index 8f8ca6f1d7a..b6a775327f4 100644
--- a/pkgs/development/python-modules/pyvmomi/default.nix
+++ b/pkgs/development/python-modules/pyvmomi/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests }:
+{ lib, buildPythonPackage, fetchFromGitHub, requests, six }:
 
 buildPythonPackage rec {
   pname = "pyvmomi";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   # requires old version of vcrpy
   doCheck = false;
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests six ];
 
   meta = with lib; {
     description = "Python SDK for the VMware vSphere API that allows you to manage ESX, ESXi, and vCenter";
diff --git a/pkgs/development/python-modules/pywebpush/default.nix b/pkgs/development/python-modules/pywebpush/default.nix
index 5bb8989506f..a89e0b3789c 100644
--- a/pkgs/development/python-modules/pywebpush/default.nix
+++ b/pkgs/development/python-modules/pywebpush/default.nix
@@ -1,22 +1,39 @@
-{ lib, fetchPypi, buildPythonPackage
-, coverage, flake8, mock, nose
-, http-ece, py-vapid, requests }:
+{ lib
+, fetchPypi
+, buildPythonPackage
+, cryptography
+, http-ece
+, py-vapid
+, requests
+, six
+, coverage
+, flake8
+, mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pywebpush";
-  version = "1.11.0";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "596c74020f9cbabc99f7964127ab0bb6cc045fcfe781b7c73cffb3ea45947820";
+    sha256 = "97ef000a685cd1f63d9d3553568508508904bfe419485df2b83b025d94e9ae54";
   };
 
   propagatedBuildInputs = [
-    http-ece py-vapid requests
+    cryptography
+    http-ece
+    py-vapid
+    requests
+    six
   ];
 
   checkInputs = [
-    coverage flake8 mock nose
+    coverage
+    flake8
+    mock
+    pytestCheckHook
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pywemo/default.nix b/pkgs/development/python-modules/pywemo/default.nix
index c7f36fec35a..ceb190fe753 100644
--- a/pkgs/development/python-modules/pywemo/default.nix
+++ b/pkgs/development/python-modules/pywemo/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , ifaddr
 , lxml
 , poetry-core
@@ -24,6 +25,14 @@ buildPythonPackage rec {
     sha256 = "1hm1vs6m65vqar0lcjnynz0d9y9ri5s75fzhvp0yfjkcnp06gnfa";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/pywemo/pywemo/issues/264
+      url = "https://github.com/pywemo/pywemo/commit/4fd7af8ccc7cb2412f61d5e04b79f83c9ca4753c.patch";
+      sha256 = "1x0rm5dxr0z5llmv446bx3i1wvgcfhx22zn78qblcr0m4yv3mif4";
+    })
+  ];
+
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyxbe/default.nix b/pkgs/development/python-modules/pyxbe/default.nix
new file mode 100644
index 00000000000..4c101ccdc3f
--- /dev/null
+++ b/pkgs/development/python-modules/pyxbe/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyxbe";
+  version = "unstable-2021-01-10";
+
+  src = fetchFromGitHub {
+    owner = "mborgerson";
+    repo = pname;
+    rev = "a7ae1bb21b02a57783831eb080c1edbafaad1d5d";
+    sha256 = "1cp9a5f41z8j7bzip6nhka8qnxs12v75cdf80sk2nzgf1k15wi2p";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  # Update location for run with pytest
+  preCheck = ''
+    substituteInPlace tests/test_load.py \
+      --replace "'xbefiles'" "'tests/xbefiles'"
+  '';
+
+  pythonImportsCheck = [ "xbe" ];
+
+  meta = with lib; {
+    description = "Library to work with XBE files";
+    homepage = "https://github.com/mborgerson/pyxbe";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index c80dfe93aee..953a327d199 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "20.0.0";
+  version = "22.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "824ad5888331aadeac772bce27e1c2fbcab82fade92edbd234542c4e12f0dca9";
+    sha256 = "f7f63ce127980d40f3e6a5fdb87abf17ce1a7c2bd8bf2c7560e1bbce8ab1f92d";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/qds_sdk/default.nix b/pkgs/development/python-modules/qds_sdk/default.nix
index 56b3f36c367..af5df9c347e 100644
--- a/pkgs/development/python-modules/qds_sdk/default.nix
+++ b/pkgs/development/python-modules/qds_sdk/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "qds_sdk";
-  version = "1.15.2";
+  version = "1.16.1";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "qubole";
     repo = "qds-sdk-py";
     rev = "V${version}";
-    sha256 = "0xxg9s0y6fz7vb1kab4q93q7ryi71z8x6q9qspm6s506yr3mc67l";
+    sha256 = "05c7g63rcvvi4fgkcfsxh2a6hwlffbs18dhki222s5rpc49wi8zi";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiling/default.nix b/pkgs/development/python-modules/qiling/default.nix
new file mode 100644
index 00000000000..9513280f3cf
--- /dev/null
+++ b/pkgs/development/python-modules/qiling/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, capstone
+, unicorn
+, pefile
+, python-registry
+, keystone-engine
+, pyelftools
+, gevent
+}:
+buildPythonPackage rec {
+  pname = "qiling";
+  version = "1.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e3ed09f9e080559e73e2a9199649b934b3594f653079d1e7da4992340c19eb64";
+  };
+
+  propagatedBuildInputs = [
+    capstone
+    unicorn
+    pefile
+    python-registry
+    keystone-engine
+    pyelftools
+    gevent
+  ];
+
+  # Tests are broken (attempt to import a file that tells you not to import it,
+  # amongst other things)
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "qiling"
+  ];
+
+  meta = with lib; {
+    description = "Qiling Advanced Binary Emulation Framework";
+    homepage = "https://qiling.io/";
+    license = licenses.gpl2Only;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index da45b37bee9..47c36fcc126 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "404994edfe33c201d6bd0c4bd501b00c16125071573c938533224992bea0b30f";
+    sha256 = "c091a35607d2a2432e004c4a112d241ce908086570cf68594176dd52ccaa212d";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/radio_beam/default.nix b/pkgs/development/python-modules/radio_beam/default.nix
index 8ed5c720ef3..f1f3200bb7b 100644
--- a/pkgs/development/python-modules/radio_beam/default.nix
+++ b/pkgs/development/python-modules/radio_beam/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "radio_beam";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g1nqiikv023ab60gfqrvc13kfjv8m70bpfk264vlliaq6mvxdf2";
+    sha256 = "e34902d91713ccab9f450b9d3e82317e292cf46a30bd42f9ad3c9a0519fcddcd";
   };
 
   propagatedBuildInputs = [ astropy ];
diff --git a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index ef6975b29df..74f1c05a201 100644
--- a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "209c4b5ecf233b8bb44fcb8b4548460b0806e347ce50fd8172adcb7d23969a4a";
+    sha256 = "2ba023376057c6ba5d07b4fd016ec1d526f1b4fc5ad7a7ce7f0ed8a91dc54bbe";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/rebulk/default.nix b/pkgs/development/python-modules/rebulk/default.nix
index 8a4754e7a61..fae0bf08e54 100644
--- a/pkgs/development/python-modules/rebulk/default.nix
+++ b/pkgs/development/python-modules/rebulk/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "rebulk";
-  version = "2.0.1";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "320ded3cc456347d828f95e9aa5f8bab77ac01943cad024c06012069fe19690a";
+    sha256 = "025d191c11abf9174c6aff0006579624047d3371a654333c4bf7a4b421552cdc";
   };
 
   # Some kind of trickery with imports that doesn't work.
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index e4d6baeb425..efb299161b8 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2020.11.13";
+  version = "2021.3.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562";
+    sha256 = "4b8a1fb724904139149a43e172850f35aa6ea97fb0545244dc0b805e0154ed68";
   };
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index ace36423c19..7b5cc0a8c20 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.5.59";
+  version = "3.5.66";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a755cca2dcf023130b03bb671670301a992157d5c3151d838c0b68ef89894536";
+    sha256 = "63fba51babad0047def4ffaa41d0065248ca39d680e98dc9e3010de5425539b4";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 5589ec683af..72feafc771e 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -20,6 +20,11 @@ buildPythonPackage rec {
     sha256 = "sha256-J5c91KkEpPE7JjoZyGbBO5KjntHJZGVfAl8/jT11uAQ=";
   };
 
+  postPatch = ''
+    # Use latest idna
+    substituteInPlace setup.py --replace ",<3" ""
+  '';
+
   propagatedBuildInputs = [
     certifi
     chardet
diff --git a/pkgs/development/python-modules/requirements-parser/default.nix b/pkgs/development/python-modules/requirements-parser/default.nix
new file mode 100644
index 00000000000..71cb33560e0
--- /dev/null
+++ b/pkgs/development/python-modules/requirements-parser/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+buildPythonPackage rec {
+  pname = "requirements-parser";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5963ee895c2d05ae9f58d3fc641082fb38021618979d6a152b6b1398bd7d4ed4";
+  };
+
+  checkInputs = [
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [
+    "requirements"
+  ];
+
+  meta = with lib; {
+    description = "A Pip requirements file parser";
+    homepage = "https://github.com/davidfischer/requirements-parser";
+    license = licenses.bsd2;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 624094e581e..6b2bd4ac197 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.12.1";
+  version = "0.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e5764325c6b624e42b428688f2111fea166af46623cb0127c05f6afb14d3457";
+    sha256 = "cf62ab0f4119b81d485521b2c950d8aa55a885c90126488450b7acb8ee3f77ac";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/pkgs/development/python-modules/rfc3339-validator/default.nix b/pkgs/development/python-modules/rfc3339-validator/default.nix
new file mode 100644
index 00000000000..f51a232550b
--- /dev/null
+++ b/pkgs/development/python-modules/rfc3339-validator/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, hypothesis
+, six
+, strict-rfc3339
+}:
+
+buildPythonPackage rec {
+  pname = "rfc3339-validator";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    pname = "rfc3339_validator";
+    inherit version;
+    sha256 = "7a578aa0740e9ee2b48356fe1f347139190c4c72e27f303b3617054efd15df32";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytestCheckHook hypothesis strict-rfc3339 ];
+  pythonImportsCheck = [ "rfc3339_validator" ];
+
+  meta = with lib; {
+    description = "RFC 3339 validator for Python";
+    homepage = "https://github.com/naimetti/rfc3339-validator";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix
index 64739b3c65c..52bef42f270 100644
--- a/pkgs/development/python-modules/rich/default.nix
+++ b/pkgs/development/python-modules/rich/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "9.10.0";
+  version = "9.13.0";
 
   # tests not included in pypi tarball
   src = fetchFromGitHub {
     owner = "willmcgugan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m1rswg16r4pxv7504nk7lpyxrwf16xw4w55rs3jisryx14ccic6";
+    sha256 = "0si3rzhg8wfxw4aakkp8sr6nbzfa54rl0w92macd1338q90ha4ly";
   };
   format = "pyproject";
 
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index f23979f21fd..5935c23185f 100644
--- a/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.2";
+  version = "0.8.1";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "662e0ce5036a55bcb4cb46ff9741f40c78c670f4fb64cd37714cf83d5fd31774";
+    sha256 = "b26f4ae617ff8c4b522fba422b7c8f83545a98aec3e2deb7f1aa53dcd68defe2";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
index fbb8cb034a5..ed2ba7155c7 100644
--- a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, python, robotframework, selenium, mockito, robotstatuschecker, approvaltests }:
 
 buildPythonPackage rec {
-  version = "3.3.1";
+  version = "5.1.3";
   pname = "robotframework-seleniumlibrary";
 
   # no tests included in PyPI tarball
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "SeleniumLibrary";
     rev = "v${version}";
-    sha256 = "0dabc5dwx0pwsyiy74d7wj97k72yl28a17sasjzrdq819pyc3dvq";
+    sha256 = "1djlrbrgd7v15xk5w90xk7iy98cr1p2g57k614gvbd298dmnf2wd";
   };
 
   propagatedBuildInputs = [ robotframework selenium ];
diff --git a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index 62fb43e0269..4d72a2b3b0a 100644
--- a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.5.1";
+  version = "3.6.0";
   pname = "robotframework-sshlibrary";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "843af44722d1d4e39f616e5441d6f49e82202cd1a8cc9d16637a6475a8ecb023";
+    sha256 = "169c343f4db71e1969169fa6f383ca7fff549aa8f83bdd3d9cbd03cea928b688";
   };
 
   # unit tests are impure
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index cc57fa0d026..027d0af303e 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -1,15 +1,22 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{ lib, fetchFromGitHub, buildPythonPackage, jsonschema }:
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "3.2.2";
+  version = "4.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a0786a916d0572bd9d6afe26e95c6021e3df5dcafa0ece6b302e36366e58c24e";
-    extension = "zip";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1nkph0slrhss6y52y8jgbdc6m8hbqjilrwp3r00wwyqdifrfa1i6";
   };
 
+  checkInputs = [ jsonschema ];
+
+  checkPhase = ''
+    python3 utest/run.py
+  '';
+
   meta = with lib; {
     description = "Generic test automation framework";
     homepage = "https://robotframework.org/";
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
new file mode 100644
index 00000000000..baf12741b87
--- /dev/null
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, xmltodict
+, yarl
+, aresponses
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rokuecp";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "ctalkington";
+    repo = "python-rokuecp";
+    rev = version;
+    sha256 = "02mbmwljcvqj3ksj2irdm8849lcxzwa6fycgjqb0i75cgidxpans";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    xmltodict
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytestCheckHook
+    pytest-asyncio
+  ];
+
+  meta = with lib; {
+    description = "Asynchronous Python client for Roku (ECP)";
+    homepage = "https://github.com/ctalkington/python-rokuecp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpmfile/default.nix b/pkgs/development/python-modules/rpmfile/default.nix
new file mode 100644
index 00000000000..e5d656795c2
--- /dev/null
+++ b/pkgs/development/python-modules/rpmfile/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+}:
+buildPythonPackage rec {
+  pname = "rpmfile";
+  version = "1.0.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e56cfc10e1a7d953b1890d81652a89400c614f4cdd9909464aece434d93c3a3e";
+  };
+
+  # Tests access the internet
+  doCheck = false;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [
+    "rpmfile"
+  ];
+
+  meta = with lib; {
+    description = "Read rpm archive files";
+    homepage = "https://github.com/srossross/rpmfile";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index c5443a37382..f27bc76cc3a 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -24,13 +24,13 @@
 }:
 
 buildPythonPackage rec {
-    version = "3.4.2";
+    version = "3.4.3";
     pname = "rpy2";
 
     disabled = isPyPy;
     src = fetchPypi {
       inherit version pname;
-      sha256 = "8f7d1348b77bc45425b846a0d625f24a51a1c4f32ef2cd1c07a24222aa64e2e0";
+      sha256 = "a39f2d75c24c688d5f48dfb2ef82efc006f2a51591941743026e1182353bf558";
     };
 
     patches = [
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index 8ec05aae9d5..71381e5cf24 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.5.2";
+  version = "1.7.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rq";
     repo = "rq";
     rev = "v${version}";
-    sha256 = "0ikqmpq0g1qiqwd7ar1286l4hqjb6aj2wr844gihhb8ijzwhp8va";
+    sha256 = "1i7cbcrzqx52immwy8h5ps7x46sqfk9r2lgwjf01nv9mkc3ab8cj";
   };
 
   # test require a running redis rerver, which is something we can't do yet
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index 7a990061e00..247fd2a2a7f 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "rsa";
-  version = "4.6";
+  version = "4.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa";
+    sha256 = "9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9";
   };
 
   checkInputs = [ unittest2 mock ];
diff --git a/pkgs/development/python-modules/rtmidi-python/default.nix b/pkgs/development/python-modules/rtmidi-python/default.nix
index a1d8102fecc..4e6da0b8d42 100644
--- a/pkgs/development/python-modules/rtmidi-python/default.nix
+++ b/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     description = "Python wrapper for RtMidi";
     homepage = "https://github.com/superquadratic/rtmidi-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/ruamel_yaml/default.nix b/pkgs/development/python-modules/ruamel_yaml/default.nix
index 6bda50d24ad..1eaf86d69c0 100644
--- a/pkgs/development/python-modules/ruamel_yaml/default.nix
+++ b/pkgs/development/python-modules/ruamel_yaml/default.nix
@@ -2,19 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , ruamel_base
-, ruamel_ordereddict
-, ruamel_yaml_clib
+, ruamel_ordereddict ? null
+, ruamel_yaml_clib ? null
 , isPy3k
 , isPyPy
 }:
 
 buildPythonPackage rec {
   pname = "ruamel.yaml";
-  version = "0.16.12";
+  version = "0.16.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "076cc0bc34f1966d920a49f18b52b6ad559fbe656a0748e3535cf7b3f29ebf9e";
+    sha256 = "bb48c514222702878759a05af96f4b7ecdba9b33cd4efcf25c86b882cef3a942";
   };
 
   # Tests use relative paths
diff --git a/pkgs/development/python-modules/ruamel_yaml_clib/default.nix b/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
index 8304f5d7dad..c403239d552 100644
--- a/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
+++ b/pkgs/development/python-modules/ruamel_yaml_clib/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchhg
 , ruamel_base
-, ruamel_ordereddict
+, ruamel_ordereddict ? null
 , isPy3k
 }:
 
diff --git a/pkgs/development/python-modules/s3transfer/default.nix b/pkgs/development/python-modules/s3transfer/default.nix
index 51d3f3ab14a..0ef7378fbf6 100644
--- a/pkgs/development/python-modules/s3transfer/default.nix
+++ b/pkgs/development/python-modules/s3transfer/default.nix
@@ -9,16 +9,16 @@
 , wheel
 , unittest2
 , botocore
-, futures
+, futures ? null
 }:
 
 buildPythonPackage rec {
   pname = "s3transfer";
-  version = "0.3.4";
+  version = "0.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2";
+    sha256 = "c5dadf598762899d8cfaecf68eba649cd25b0ce93b6c954b156aaa3eed160547";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/development/python-modules/sacn/default.nix b/pkgs/development/python-modules/sacn/default.nix
index 35c7a744329..46678504cab 100644
--- a/pkgs/development/python-modules/sacn/default.nix
+++ b/pkgs/development/python-modules/sacn/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "sacn";
-  version = "1.4.6";
+  version = "1.6.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "015wa9nhqgd0kb60bw19g86ga25s9mpvsbqkahi3kw6df6j0wzss";
+    sha256 = "1abkalzpy8bj2hpx563bxii5h0gv9v89f0yp9clc1l76amyf6dj2";
   };
 
   # no tests
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 7b173e7a9c2..c9bad89d93c 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -10,16 +10,17 @@
 , protobuf3-to-dict
 , smdebug-rulesconfig
 , pandas
+, pathos
 , packaging
 }:
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.34.0";
+  version = "2.38.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-j0YlFh5SG1PlBN5vWZ9bLuOKcO03pDwoOB44CMyvXPk=";
+    sha256 = "sha256-7cIGr49fKI0zQmX4/9v/gW5yB4kfeQJ3H/Vvgl9CKuY=";
   };
 
   pythonImportsCheck = [
@@ -34,6 +35,7 @@ buildPythonPackage rec {
     importlib-metadata
     numpy
     packaging
+    pathos
     protobuf
     protobuf3-to-dict
     smdebug-rulesconfig
diff --git a/pkgs/development/python-modules/saneyaml/default.nix b/pkgs/development/python-modules/saneyaml/default.nix
new file mode 100644
index 00000000000..e92e464a9c9
--- /dev/null
+++ b/pkgs/development/python-modules/saneyaml/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, pyyaml
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "saneyaml";
+  version = "0.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d6074f1959041342ab41d74a6f904720ffbcf63c94467858e0e22e17e3c43d41";
+  };
+
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "saneyaml"
+  ];
+
+  meta = with lib; {
+    description = "A PyYaml wrapper with sane behaviour to read and write readable YAML safely";
+    homepage = "https://github.com/nexB/saneyaml";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/sanic-routing/default.nix b/pkgs/development/python-modules/sanic-routing/default.nix
new file mode 100644
index 00000000000..76eb72dc708
--- /dev/null
+++ b/pkgs/development/python-modules/sanic-routing/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "sanic-routing";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "sanic-org";
+    repo = "sanic-routing";
+    rev = "v${version}";
+    hash = "sha256-ZMl8PB9E401pUfUJ4tW7nBx1TgPQQtx9erVni3zP+lo=";
+  };
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+  pythonImportsCheck = [ "sanic_routing" ];
+
+  meta = with lib; {
+    description = "Core routing component for the Sanic web framework";
+    homepage = "https://github.com/sanic-org/sanic-routing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/pkgs/development/python-modules/sanic-testing/default.nix b/pkgs/development/python-modules/sanic-testing/default.nix
new file mode 100644
index 00000000000..fa1dfc6870b
--- /dev/null
+++ b/pkgs/development/python-modules/sanic-testing/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, httpcore
+, httpx
+, pytest-asyncio
+, sanic
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "sanic-testing";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "sanic-org";
+    repo = "sanic-testing";
+    rev = "v${version}";
+    hash = "sha256-hBAq+/BKs0a01M89Nb8HaClqxB+W5PTfjVzef/m9SWs=";
+  };
+
+  propagatedBuildInputs = [ httpx sanic websockets httpcore ];
+
+  # `sanic` is explicitly set to null when building `sanic` itself
+  # to prevent infinite recursion.  In that case we skip running
+  # the package at all.
+  doCheck = sanic != null;
+  dontUsePythonImportsCheck = sanic == null;
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+  pythonImportsCheck = [ "sanic_testing" ];
+
+  meta = with lib; {
+    description = "Core testing clients for the Sanic web framework";
+    homepage = "https://github.com/sanic-org/sanic-testing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+  };
+}
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index e5faa440ad8..31dcc86e0bc 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -1,42 +1,44 @@
 { lib, buildPythonPackage, fetchPypi, doCheck ? true
-, aiofiles, httptools, httpx, multidict, ujson, uvloop, websockets
-, pytestCheckHook, beautifulsoup4, gunicorn, httpcore, uvicorn
-, pytest-asyncio, pytest-benchmark, pytest-dependency, pytest-sanic, pytest-sugar, pytestcov
+, aiofiles, httptools, multidict, sanic-routing, ujson, uvloop, websockets
+, pytestCheckHook, beautifulsoup4, gunicorn, uvicorn, sanic-testing
+, pytest-benchmark, pytest-sanic, pytest-sugar, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "sanic";
-  version = "20.9.1";
+  version = "21.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06p0lsxqbfbka2yaqlpp0bg5pf7ma44zi6kq7qbb6hhry48dp1w6";
+    sha256 = "1cbd12b9138b3ca69656286b0be91fff02b826e8cb72dd76a2ca8c5eb1288d8e";
   };
 
   postPatch = ''
+    # Loosen dependency requirements.
     substituteInPlace setup.py \
-      --replace '"multidict==5.0.0"' '"multidict"' \
-      --replace '"httpx==0.15.4"' '"httpx"' \
-      --replace '"httpcore==0.3.0"' '"httpcore"' \
-      --replace '"pytest==5.2.1"' '"pytest"'
+      --replace '"pytest==5.2.1"' '"pytest"' \
+      --replace '"gunicorn==20.0.4"' '"gunicorn"' \
+      --replace '"pytest-sanic",' ""
+    # Patch a request headers test to allow brotli encoding
+    # (we build httpx with brotli support, upstream doesn't).
+    substituteInPlace tests/test_headers.py \
+      --replace "deflate\r\n" "deflate, br\r\n"
   '';
 
   propagatedBuildInputs = [
-    aiofiles httptools httpx multidict ujson uvloop websockets
+    sanic-routing httptools uvloop ujson aiofiles websockets multidict
   ];
 
   checkInputs = [
-    pytestCheckHook beautifulsoup4 gunicorn httpcore uvicorn
-    pytest-asyncio pytest-benchmark pytest-dependency pytest-sanic pytest-sugar pytestcov
+    sanic-testing gunicorn pytestcov beautifulsoup4 pytest-sanic pytest-sugar
+    pytest-benchmark pytestCheckHook uvicorn
   ];
 
   inherit doCheck;
 
   disabledTests = [
     "test_gunicorn" # No "examples" directory in pypi distribution.
-    "test_logo" # Fails to filter out "DEBUG asyncio:selector_events.py:59 Using selector: EpollSelector"
     "test_zero_downtime" # No "examples.delayed_response.app" module in pypi distribution.
-    "test_reloader_live" # OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 42104)
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -45,8 +47,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A microframework based on uvloop, httptools, and learnings of flask";
-    homepage = "http://github.com/channelcat/sanic/";
+    homepage = "https://github.com/sanic-org/sanic/";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc AluisioASG ];
   };
 }
diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix
new file mode 100644
index 00000000000..f27a2d40bf3
--- /dev/null
+++ b/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -0,0 +1,122 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, markupsafe
+, click
+, typecode
+, gemfileparser
+, pefile
+, fingerprints
+, spdx-tools
+, fasteners
+, pycryptodome
+, urlpy
+, dparse
+, jaraco_functools
+, pkginfo
+, debian-inspector
+, extractcode
+, ftfy
+, pyahocorasick
+, colorama
+, jsonstreams
+, packageurl-python
+, pymaven-patch
+, nltk
+, pygments
+, bitarray
+, jinja2
+, javaproperties
+, boolean-py
+, license-expression
+, extractcode-7z
+, extractcode-libarchive
+, typecode-libmagic
+, pytestCheckHook
+}:
+buildPythonPackage rec {
+  pname = "scancode-toolkit";
+  version = "21.3.31";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7e0301031a302dedbb4304a91249534f3d036f84a119170b8a9fe70bd57cff95";
+  };
+
+  dontConfigure = true;
+
+  # https://github.com/nexB/scancode-toolkit/issues/2501
+  # * dparse2 is a "Temp fork for Python 2 support", but pdfminer requires
+  # Python 3, so it's "fine" to leave dparse2 unpackaged and use the "normal"
+  # version
+  # * ftfy was pinned for similar reasons (to support Python 2), but rather than
+  # packaging an older version, I figured it would be better to remove the
+  # erroneous (at least for our usage) version bound
+  # * bitarray's version bound appears to be unnecessary for similar reasons
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "dparse2" "dparse" \
+      --replace "ftfy <  5.0.0" "ftfy" \
+      --replace "bitarray >= 0.8.1, < 1.0.0" "bitarray"
+  '';
+
+  propagatedBuildInputs = [
+    markupsafe
+    click
+    typecode
+    gemfileparser
+    pefile
+    fingerprints
+    spdx-tools
+    fasteners
+    pycryptodome
+    urlpy
+    dparse
+    jaraco_functools
+    pkginfo
+    debian-inspector
+    extractcode
+    ftfy
+    pyahocorasick
+    colorama
+    jsonstreams
+    packageurl-python
+    pymaven-patch
+    nltk
+    pygments
+    bitarray
+    jinja2
+    javaproperties
+    boolean-py
+    license-expression
+    extractcode-7z
+    extractcode-libarchive
+    typecode-libmagic
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  # Importing scancode needs a writeable home, and preCheck happens in between
+  # pythonImportsCheckPhase and pytestCheckPhase.
+  postInstall = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pythonImportsCheck = [
+    "scancode"
+  ];
+
+  # takes a long time and doesn't appear to do anything
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "A tool to scan code for license, copyright, package and their documented dependencies and other interesting facts";
+    homepage = "https://github.com/nexB/scancode-toolkit";
+    license = with licenses; [ asl20 cc-by-40 ];
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index 2b9eb5517a4..d412c94a4bc 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "scapy";
-  version = "2.4.4";
+  version = "2.4.5";
 
   disabled = isPyPy;
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "secdev";
     repo = "scapy";
     rev = "v${version}";
-    sha256 = "1wpx7gps3g8q5ykbfcd67mxwcs416zg37b53fwfzzlc1m58vhk3p";
+    sha256 = "0nxci1v32h5517gl9ic6zjq8gc8drwr0n5pz04c91yl97xznnw94";
   };
 
   postPatch = ''
@@ -44,6 +44,7 @@ buildPythonPackage rec {
     patchShebangs .
     .config/ci/test.sh
   '';
+  pythonImportsCheck = [ "scapy" ];
 
   meta = with lib; {
     description = "A Python-based network packet manipulation program and library";
@@ -70,7 +71,7 @@ buildPythonPackage rec {
     '';
     homepage = "https://scapy.net/";
     changelog = "https://github.com/secdev/scapy/releases/tag/v${version}";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos bjornfor ];
   };
diff --git a/pkgs/development/python-modules/schedule/default.nix b/pkgs/development/python-modules/schedule/default.nix
index 2eda0cd6ac9..e6028d2c6cb 100644
--- a/pkgs/development/python-modules/schedule/default.nix
+++ b/pkgs/development/python-modules/schedule/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "schedule";
-  version = "0.6.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f9fb5181283de4db6e701d476dd01b6a3dd81c38462a54991ddbb9d26db857c9";
+    sha256 = "1654cf70860a6d4d58236c98b0f1bb71521cc2a4bbf031b6cc39c96e77d59a91";
   };
 
   buildInputs = [ mock ];
diff --git a/pkgs/development/python-modules/scikit-fmm/default.nix b/pkgs/development/python-modules/scikit-fmm/default.nix
index 8705488ba14..08101bd2d00 100644
--- a/pkgs/development/python-modules/scikit-fmm/default.nix
+++ b/pkgs/development/python-modules/scikit-fmm/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-fmm";
-  version = "2019.1.30";
+  version = "2021.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb64b6d8e30b8df8f8636d5fc4fd7ca6a9b05938ccd62518c80c1d9e823069dd";
+    sha256 = "809e20016e6341e4de29b6be4befc477b7002cfd5e2a11b80deae16005f35670";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/scikit-image/default.nix b/pkgs/development/python-modules/scikit-image/default.nix
index 44d2c240ce5..f7d3fd63b17 100644
--- a/pkgs/development/python-modules/scikit-image/default.nix
+++ b/pkgs/development/python-modules/scikit-image/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-image";
-  version = "0.17.2";
+  version = "0.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd954c0588f0f7e81d9763dc95e06950e68247d540476e06cb77bcbcd8c2d8b3";
+    sha256 = "fbb618ca911867bce45574c1639618cdfb5d94e207432b19bc19563d80d2f171";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix
index 100c487acee..1713e4c2521 100644
--- a/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -1,22 +1,32 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "screenlogicpy";
-  version = "0.3.0";
+  version = "0.4.1";
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0gn2mf2n2g1ffdbijrydgb7dgd60lkvckblx6s86kxlkrp1wqgrq";
+  src = fetchFromGitHub {
+    owner = "dieselrabbit";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rmjxqqbkfcv2xz8ilml799bzffls678fvq784fab2xdv595fndd";
   };
 
-  # Project doesn't publish tests
-  # https://github.com/dieselrabbit/screenlogicpy/issues/8
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_gateway_discovery"
+    "test_asyncio_gateway_discovery"
+  ];
+
   pythonImportsCheck = [ "screenlogicpy" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/seabreeze/default.nix b/pkgs/development/python-modules/seabreeze/default.nix
index f4a4955a739..7580647f5a1 100644
--- a/pkgs/development/python-modules/seabreeze/default.nix
+++ b/pkgs/development/python-modules/seabreeze/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "seabreeze";
-  version = "0.6.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "ap--";
     repo = "python-seabreeze";
-    rev = "python-seabreeze-v${version}";
-    sha256 = "0bc2s9ic77gz9m40w89snixphxlzib60xa4f49n4zasjrddfz1l8";
+    rev = "v${version}";
+    sha256 = "1lna3w1vsci35dhyi7qjvbb99gxvzk23k195c7by7kkrps844q1j";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index 704549e987d..91198369101 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.6.0";
+  version = "6.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "sha256-R9ASHDIGuPRh4yf0FAlpjUZ6QAakYs35EFSqAPc02Q8=";
+    sha256 = "sha256-Y0h5Aiu85/EWCmSc+eCtK6ZaPuu/LYZiwhXOx0XhfwQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sentinel/default.nix b/pkgs/development/python-modules/sentinel/default.nix
index 6c69ea26b2a..0fd10294bbe 100644
--- a/pkgs/development/python-modules/sentinel/default.nix
+++ b/pkgs/development/python-modules/sentinel/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "sentinel";
-  version = "0.1.2";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7aeee3f57c56a8e52771fc64230345deecd62c48debbbe1f1aca453439741d0";
+    sha256 = "f28143aa4716dbc8f6193f5682176a3c33cd26aaae05d9ecf66c186a9887cc2d";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/seqeval/default.nix b/pkgs/development/python-modules/seqeval/default.nix
new file mode 100644
index 00000000000..15322632ad7
--- /dev/null
+++ b/pkgs/development/python-modules/seqeval/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, scikitlearn
+, perl
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "seqeval";
+  version = "1.2.2";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "chakki-works";
+    repo = "seqeval";
+    rev = "v${version}";
+    sha256 = "0qv05gn54kc4wpmwnflmfqw4gwwb8lxqhkiihl0pvl7s2i7qzx2j";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "use_scm_version=True," "version='${version}'," \
+      --replace "setup_requires=['setuptools_scm']," "setup_requires=[],"
+  '';
+
+  propagatedBuildInputs = [
+    numpy
+    scikitlearn
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # tests call perl script and get stuck in there
+    "test_statistical_tests"
+    "test_by_ground_truth"
+  ];
+
+  meta = with lib; {
+    description = "A Python framework for sequence labeling evaluation";
+    homepage = "https://github.com/chakki-works/seqeval";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix b/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
new file mode 100644
index 00000000000..ba6ff1649e6
--- /dev/null
+++ b/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
@@ -0,0 +1,28 @@
+{ buildPythonPackage, fetchPypi, lib, pypiserver, pytestCheckHook
+, setuptools-scm, virtualenv }:
+
+buildPythonPackage rec {
+  pname = "setuptools-declarative-requirements";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1l8zmcnp9h8sp8hsw7b81djaa1a9yig0y7i4phh5pihqz1gdn7yi";
+  };
+
+  buildInputs = [ setuptools-scm ];
+
+  checkInputs = [ pypiserver pytestCheckHook virtualenv ];
+
+  # Tests use network
+  doCheck = false;
+
+  pythonImportsCheck = [ "declarative_requirements" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/s0undt3ch/setuptools-declarative-requirements";
+    description = "Declarative setuptools Config Requirements Files Support";
+    license = licenses.asl20;
+    maintainers = [ maintainers.austinbutler ];
+  };
+}
diff --git a/pkgs/development/python-modules/setuptools_scm/2.nix b/pkgs/development/python-modules/setuptools_scm/2.nix
new file mode 100644
index 00000000000..4cf6f16fedf
--- /dev/null
+++ b/pkgs/development/python-modules/setuptools_scm/2.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, toml }:
+
+buildPythonPackage rec {
+  pname = "setuptools_scm";
+  version = "5.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-g6DO3TRJ45RjB4EaTHudicS1/UZKL7XuzNCluxWK5cg=";
+  };
+
+  propagatedBuildInputs = [ toml ];
+
+  # Requires pytest, circular dependency
+  doCheck = false;
+  pythonImportsCheck = [ "setuptools_scm" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/pypa/setuptools_scm/";
+    description = "Handles managing your python package versions in scm metadata";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/setuptools_scm/default.nix b/pkgs/development/python-modules/setuptools_scm/default.nix
index fa3a3de8532..a4cff6d056b 100644
--- a/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/pkgs/development/python-modules/setuptools_scm/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "setuptools_scm";
-  version = "4.1.2";
+  version = "6.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8";
+    sha256 = "d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92";
   };
 
   propagatedBuildInputs = [ toml ];
diff --git a/pkgs/development/python-modules/shap/default.nix b/pkgs/development/python-modules/shap/default.nix
index abc68709caa..5600f4a6aa0 100644
--- a/pkgs/development/python-modules/shap/default.nix
+++ b/pkgs/development/python-modules/shap/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "shap";
-  version = "0.36.0";
+  version = "0.39.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "slundberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wxnxvbz6avzzfqjfbcqd4v879hvpq4021v31fhdpccr2q317rr9";
+    sha256 = "065c40k6g8sy6ynzk4k8k7iddl18g2b6kb9kg4m6g7npclmn5wvp";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/signedjson/default.nix b/pkgs/development/python-modules/signedjson/default.nix
index 2f47113408e..8409d9702e7 100644
--- a/pkgs/development/python-modules/signedjson/default.nix
+++ b/pkgs/development/python-modules/signedjson/default.nix
@@ -1,24 +1,36 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
+, fetchpatch
 , canonicaljson
 , unpaddedbase64
 , pynacl
 , typing-extensions
+, setuptools-scm
+, importlib-metadata
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "signedjson";
-  version = "1.1.0";
+  version = "1.1.1";
 
-  src = fetchFromGitHub {
-    owner = "matrix-org";
-    repo = "python-${pname}";
-    rev = "refs/tags/v${version}";
-    sha256 = "18s388hm3babnvakbbgfqk0jzq25nnznvhygywd3azp9b4yzmd5c";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0280f8zyycsmd7iy65bs438flm7m8ffs1kcxfbvhi8hbazkqc19m";
   };
 
-  propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl typing-extensions ];
+  patches = [
+    # Do not require importlib_metadata on python 3.8
+    (fetchpatch {
+      url = "https://github.com/matrix-org/python-signedjson/commit/c40c83f844fee3c1c7b0c5d1508f87052334b4e5.patch";
+      sha256 = "109f135zn9azg5h1ljw3v94kpvnzmlqz1aiknpl5hsqfa3imjca1";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools-scm ];
+  propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl typing-extensions ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/signedjson/";
diff --git a/pkgs/development/python-modules/simple-salesforce/default.nix b/pkgs/development/python-modules/simple-salesforce/default.nix
index 3b6803aa5de..cd89c1c8aae 100644
--- a/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "simple-salesforce";
-  version = "0.74.3";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n960xgrnmv20l31nm0im7pb4nfa83bmx4x4clqrh2jkpzq3ric0";
+    sha256 = "16c34xnqa1xkdfjbxx0q584zb6aqci2z6j4211hmzjqs74ddvysm";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/singledispatch/default.nix b/pkgs/development/python-modules/singledispatch/default.nix
index 789a24f3e81..0a9b2353bf1 100644
--- a/pkgs/development/python-modules/singledispatch/default.nix
+++ b/pkgs/development/python-modules/singledispatch/default.nix
@@ -2,17 +2,24 @@
 , buildPythonPackage
 , fetchPypi
 , six
+, setuptools-scm
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "singledispatch";
-  version = "3.4.0.3";
+  version = "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c";
+    sha256 = "58b46ce1cc4d43af0aac3ac9a047bdb0f44e05f0b2fa2eec755863331700c865";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+    toml
+  ];
+
   propagatedBuildInputs = [ six ];
 
   # pypi singledispatch tarbal does not contain tests
diff --git a/pkgs/development/python-modules/sip/5.x.nix b/pkgs/development/python-modules/sip/5.x.nix
index cebffd5765b..c15589b77bc 100644
--- a/pkgs/development/python-modules/sip/5.x.nix
+++ b/pkgs/development/python-modules/sip/5.x.nix
@@ -1,4 +1,4 @@
-{ lib, fetchPypi, buildPythonPackage, packaging, toml }:
+{ lib, stdenv, fetchPypi, buildPythonPackage, packaging, toml }:
 
 buildPythonPackage rec {
   pname = "sip";
@@ -17,6 +17,20 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "sipbuild" ];
 
+  # FIXME: Why isn't this detected automatically?
+  # Needs to be specified in pyproject.toml, e.g.:
+  # [tool.sip.bindings.MODULE]
+  # tags = [PLATFORM_TAG]
+  platform_tag =
+    if stdenv.targetPlatform.isLinux then
+      "WS_X11"
+    else if stdenv.targetPlatform.isDarwin then
+      "WS_MACX"
+    else if stdenv.targetPlatform.isWindows then
+      "WS_WIN"
+    else
+      throw "unsupported platform";
+
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
     homepage    = "http://www.riverbankcomputing.co.uk/";
diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix
index ad7cc021439..56e853f73e2 100644
--- a/pkgs/development/python-modules/skein/default.nix
+++ b/pkgs/development/python-modules/skein/default.nix
@@ -10,10 +10,10 @@
 
 let
   pname = "skein";
-  version = "0.8.0";
+  version = "0.8.1";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nb64p1hzshgi1kfc2jx1v9vn8b0wzs50460wfra3fsxh0ap66ab";
+    sha256 = "04208b4be9df2dc68ac5b3e3ae51fd9b589add95ea1b67222a8de754d17b1efa";
   };
   skeinJar = callPackage ./skeinjar.nix { inherit src version; };
 in
diff --git a/pkgs/development/python-modules/skorch/default.nix b/pkgs/development/python-modules/skorch/default.nix
index fd161ecd753..3504557b502 100644
--- a/pkgs/development/python-modules/skorch/default.nix
+++ b/pkgs/development/python-modules/skorch/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "skorch";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdce9370153fd80c5c4ec499a639f55eef0620e45d4b15fbf7d7ff2a225a3d40";
+    sha256 = "9910f97339e654c8d38e0075d87b735e69e5eb11db59c527fb36705b30c8d0a4";
   };
 
   propagatedBuildInputs = [ numpy pytorch scikitlearn scipy tabulate tqdm ];
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 195bd720615..9044ce19b5d 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.4.2";
+  version = "3.5.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "v${version}";
-    sha256 = "sha256-AbQqe6hCy6Ke5lwKHFWLJlXv7HdDApYYK++SPNQ2Nxg=";
+    sha256 = "sha256-5ZBaF/6p/eOWjAmo+IlF9zCb9xBr2bP6suPZblRogUg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/slackclient/default.nix b/pkgs/development/python-modules/slackclient/default.nix
index 4a3c2927218..cf7b161261e 100644
--- a/pkgs/development/python-modules/slackclient/default.nix
+++ b/pkgs/development/python-modules/slackclient/default.nix
@@ -18,7 +18,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "python-slackclient";
+  pname = "slackclient";
   version = "2.9.3";
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index 0b320e79022..57168b1d915 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -1,31 +1,45 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, makeWrapper, pythonOlder
-, crytic-compile, prettytable, setuptools
-# solc is currently broken on Darwin, default to false
-, solc, withSolc ? !stdenv.isDarwin
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, makeWrapper
+, pythonOlder
+, crytic-compile
+, prettytable
+, setuptools
+, solc
+  # solc is currently broken on Darwin, default to false
+, withSolc ? !stdenv.isDarwin
 }:
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.7.0";
-
+  version = "0.7.1";
   disabled = pythonOlder "3.6";
 
-  # No Python tests
-  doCheck = false;
-
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10r479xidgxvas4wb0z6injp59jrn7rfq8d7bxlcalc2dy4mawr0";
+    sha256 = "sha256-v/UuxxgMmkGfP962AfOQU05MI8xJocpD8SkENCZi04I=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  propagatedBuildInputs = [ crytic-compile prettytable setuptools ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    crytic-compile
+    prettytable
+    setuptools
+  ];
 
   postFixup = lib.optionalString withSolc ''
     wrapProgram $out/bin/slither \
       --prefix PATH : "${lib.makeBinPath [ solc ]}"
   '';
 
+  # No Python tests
+  doCheck = false;
+
   meta = with lib; {
     description = "Static Analyzer for Solidity";
     longDescription = ''
@@ -35,6 +49,6 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/trailofbits/slither";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ asymmetric arturcygan ];
+    maintainers = with maintainers; [ arturcygan fab ];
   };
 }
diff --git a/pkgs/development/python-modules/slob/default.nix b/pkgs/development/python-modules/slob/default.nix
index 0caec499a95..72af69e3e7c 100644
--- a/pkgs/development/python-modules/slob/default.nix
+++ b/pkgs/development/python-modules/slob/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage {
   pname = "slob";
-  version = "unstable-2016-11-03";
+  version = "unstable-2020-06-26";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "itkach";
     repo = "slob";
-    rev = "d1ed71e4778729ecdfc2fe27ed783689a220a6cd";
-    sha256 = "1r510s4r124s121wwdm9qgap6zivlqqxrhxljz8nx0kv0cdyypi5";
+    rev = "018588b59999c5c0eb42d6517fdb84036f3880cb";
+    sha256 = "01195hphjnlcvgykw143rf06s6y955sjc1r825a58vhjx7hj54zh";
   };
 
   propagatedBuildInputs = [ PyICU ];
@@ -24,11 +24,11 @@ buildPythonPackage {
     ${python.interpreter} -m unittest slob
   '';
 
+  pythonImportsCheck = [ "slob" ];
+
   meta = with lib; {
     homepage = "https://github.com/itkach/slob/";
     description = "Reference implementation of the slob (sorted list of blobs) format";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.rycee ];
+    license = licenses.gpl3Only;
   };
-
 }
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index 99c9c28a16a..4f3423b7df3 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "4.1.2";
+  version = "4.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4bbb6233364fc1173cc0af6b7a56ed76fce32509514f1978a995a5835f3177f1";
+    sha256 = "d9f5a0f173ccb9bbae528db5a3804f57145815774f77ef755b9b0f3b4b2a9dcb";
   };
 
   # moto>=1.0.0 is backwards-incompatible and some tests fail with it,
diff --git a/pkgs/development/python-modules/smartypants/default.nix b/pkgs/development/python-modules/smartypants/default.nix
index ec41c8a32aa..29a1e3c9a20 100644
--- a/pkgs/development/python-modules/smartypants/default.nix
+++ b/pkgs/development/python-modules/smartypants/default.nix
@@ -2,10 +2,13 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPyPy
+, docutils
+, pygments
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "1.8.6";
+  version = "2.0.1";
   pname = "smartypants";
   disabled = isPyPy;
 
@@ -13,19 +16,23 @@ buildPythonPackage rec {
     owner = "leohemsted";
     repo = "smartypants.py";
     rev = "v${version}";
-    sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
-    # remove this file and the name on the next version update
-    extraPostFetch = ''
-      cp ${./hgtags} "$out"/.hgtags
-    '';
-    name = "hg-archive";
+    sha256 = "00p1gnb9pzb3svdq3c5b9b332gsp50wrqqa39gj00m133zadanjp";
   };
 
+  checkInputs = [
+    docutils
+    pygments
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    patchShebangs smartypants
+  '';
+
   meta = with lib; {
     description = "Python with the SmartyPants";
     homepage = "https://github.com/leohemsted/smartypants.py";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ dotlambda ];
   };
-
 }
diff --git a/pkgs/development/python-modules/smartypants/hgtags b/pkgs/development/python-modules/smartypants/hgtags
deleted file mode 100644
index 522ca8d2c01..00000000000
--- a/pkgs/development/python-modules/smartypants/hgtags
+++ /dev/null
@@ -1,17 +0,0 @@
-47e996532eff9d3bb2c7048aca37d5fd1028e706 v1.5_1.2
-4ff48eba1d3d37d708005e465cf701b63eb68fd3 v1.5_1.1
-6ba7f3a14ff77e4e9bf9918413b1710c33deae4d v1.5_1.3.1
-71006a014216defb21e4db6e03434d289564ea60 v1.5_1.6
-90950ff693122f80710974abc0f2be64d4105e84 v1.5_1.3
-a6ecae6541d64f5b12c7b788c65362b0c012278d v1.5_1.0
-eed4a8a16f116f98e8280dc79128845020bbe766 v1.5_1.5
-f9a62f541f19ead9be4c3be896b64d1caa0b524c v1.5_1.4
-fc0bee49a07daf05f034560cfef81a8a8d034d1f v1.5_1.7
-096ed5f806b6dbc473fae1848643cf45005b9bf1 v1.7.0
-aaeb8099a24ad7db3f36ebe71ef326d6377730aa v1.7.1
-fd8ccc937af7280db4e581b2eb1354245f4672ab v1.8.0
-7839b0eab3e9daf5b346edfa5c54f3cc46fc202a v1.8.1
-6140b78317beabb6e49cd91b35a779ccb0af7327 v1.8.2
-c3b1c83c5ddada685b421b8f82f7e92c794bf2f6 v1.8.3
-460c1add9b9f89831e1ab965f1e1c31325f6e72d v1.8.4
-78165f4976299c37d6e3dd5463adcd61f9cb2b75 v1.8.5
diff --git a/pkgs/development/python-modules/smhi-pkg/default.nix b/pkgs/development/python-modules/smhi-pkg/default.nix
new file mode 100644
index 00000000000..3308697cf54
--- /dev/null
+++ b/pkgs/development/python-modules/smhi-pkg/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "smhi-pkg";
+  version = "1.0.14";
+
+  src = fetchFromGitHub {
+    owner = "joysoftware";
+    repo = "pypi_smhi";
+    rev = version;
+    sha256 = "186xwrg3hvr0hszq2kxvygd241q2sp11gfk6mwj9z4zqywwfcbn3";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Disable tests that needs network access
+    "test_smhi_integration_test"
+    "test_smhi_async_integration_test"
+    "test_smhi_async_integration_test_use_session"
+    "test_smhi_async_get_forecast_integration2"
+    "test_async_error_from_api"
+  ];
+
+  pythonImportsCheck = [ "smhi" ];
+
+  meta = with lib; {
+    description = "Python library for accessing SMHI open forecast data";
+    homepage = "https://github.com/joysoftware/pypi_smhi";
+    changelog = "https://github.com/joysoftware/pypi_smhi/releases/tag/${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/smmap/default.nix b/pkgs/development/python-modules/smmap/default.nix
index 1b0f310f425..800cf084258 100644
--- a/pkgs/development/python-modules/smmap/default.nix
+++ b/pkgs/development/python-modules/smmap/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "smmap";
-  version = "3.0.5";
+  version = "4.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84c2751ef3072d4f6b2785ec7ee40244c6f45eb934d9e543e2c51f1bd3d54c50";
+    sha256 = "7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182";
   };
 
   checkInputs = [ nosexcover ];
diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix
index 702b0e3e365..95d162b7f32 100644
--- a/pkgs/development/python-modules/snapcast/default.nix
+++ b/pkgs/development/python-modules/snapcast/default.nix
@@ -1,24 +1,31 @@
 { lib
 , buildPythonPackage
 , construct
-, fetchPypi
+, fetchFromGitHub
 , isPy3k
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.1.2";
+  version = "2.1.3";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-ILBleqxEO7wTxAw/fvDW+4O4H4XWV5m5WWtaNeRBr4g=";
+  src = fetchFromGitHub {
+    owner = "happyleavesaoc";
+    repo = "python-snapcast";
+    rev = version;
+    sha256 = "1jigdccdd7bffszim942mxcwxyznfjx7y3r5yklz3psl7zgbzd6c";
   };
 
-  propagatedBuildInputs = [ construct ];
+  propagatedBuildInputs = [
+    construct
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # no checks from Pypi - https://github.com/happyleavesaoc/python-snapcast/issues/23
-  doCheck = false;
   pythonImportsCheck = [ "snapcast" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/snowballstemmer/default.nix b/pkgs/development/python-modules/snowballstemmer/default.nix
index 84b2bb2e143..5f3029de2a7 100644
--- a/pkgs/development/python-modules/snowballstemmer/default.nix
+++ b/pkgs/development/python-modules/snowballstemmer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "snowballstemmer";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52";
+    sha256 = "e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 0679b25ad41..fdf984563ea 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.3.10";
+  version = "2.4.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad62bfd31e677d39984449d9c68e233da2776b80894a988a2421aad412e4c44f";
+    sha256 = "5c9180e61202a7beb1df83231688423091ca0a04ee559d2a78ff77f9c727baae";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 22d1926d8bb..954599ffefa 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "soupsieve";
-  version = "2.0.1";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a59dc181727e95d25f781f0eb4fd1825ff45590ec8ff49eadfd7f1a537cc0232";
+    sha256 = "052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index eef7b116b89..077ac0e6a3b 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "2.3.5";
+  version = "3.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "315278ab60094643baecd866017c7d4cbd966efd2d517ad0e6c888edf7fa5aef";
+    sha256 = "9f7a09fbad53aac2a3cb7696a902de62b94575a15d249dd5e26a98049328060e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sparklines/default.nix b/pkgs/development/python-modules/sparklines/default.nix
new file mode 100644
index 00000000000..9913cafdbc1
--- /dev/null
+++ b/pkgs/development/python-modules/sparklines/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, future
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sparklines";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "deeplook";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hfxp5c4wbyddy7fgmnda819w3dia3i6gqb2323dr2z016p84r7l";
+  };
+
+  propagatedBuildInputs = [ future ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "sparklines" ];
+
+  meta = with lib; {
+    description = "This Python package implements Edward Tufte's concept of sparklines, but limited to text only";
+    homepage = "https://github.com/deeplook/sparklines";
+    maintainers = with maintainers; [ rhoriguchi ];
+    license = licenses.gpl3Only;
+  };
+}
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index 93ffa89c76c..d958fd2ed70 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -2,38 +2,39 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
-, dask
+, numba
 , numpy
 , scipy
-, numba
-, pytest
+  # Test Inputs
+, pytestCheckHook
+, dask
 }:
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.11.2";
+  version = "0.12.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc5c35dbc81242237feb7a8e1f7d9c5e9dd9bb0910f6ec55f50dcc379082864f";
+    sha256 = "2c95c3b8ee00211a5aa4ef5e46006d25bf35009a66e406b7ea9b25b327fb9516";
   };
 
-  checkInputs = [ pytest dask ];
   propagatedBuildInputs = [
+    numba
     numpy
     scipy
-    numba
   ];
+  checkInputs = [ pytestCheckHook dask ];
 
-  checkPhase = ''
-    pytest sparse
-  '';
+  pythonImportsCheck = [ "sparse" ];
 
   meta = with lib; {
     description = "Sparse n-dimensional arrays computations";
-    homepage = "https://github.com/pydata/sparse/";
+    homepage = "https://sparse.pydata.org/en/stable/";
+    changelog = "https://sparse.pydata.org/en/stable/changelog.html";
+    downloadPage = "https://github.com/pydata/sparse/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/pkgs/development/python-modules/spdx-tools/default.nix b/pkgs/development/python-modules/spdx-tools/default.nix
new file mode 100644
index 00000000000..53d6d51d2d2
--- /dev/null
+++ b/pkgs/development/python-modules/spdx-tools/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, six
+, pyyaml
+, rdflib
+, ply
+, xmltodict
+, pytestCheckHook
+, pythonAtLeast
+}:
+buildPythonPackage rec {
+  pname = "spdx-tools";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9a1aaae051771e865705dd2fd374c3f73d0ad595c1056548466997551cbd7a81";
+  };
+
+  patches = lib.optionals (pythonAtLeast "3.9") [
+    # https://github.com/spdx/tools-python/pull/159
+    # fixes tests on Python 3.9
+    (fetchpatch {
+      name = "drop-encoding-argument.patch";
+      url = "https://github.com/spdx/tools-python/commit/6c8b9a852f8a787122c0e2492126ee8aa52acff0.patch";
+      sha256 = "RhvLhexsQRjqYqJg10SAM53RsOW+R93G+mns8C9g5E8=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    six
+    pyyaml
+    rdflib
+    ply
+    xmltodict
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "spdx"
+  ];
+
+  meta = with lib; {
+    description = "SPDX parser and tools";
+    homepage = "https://github.com/spdx/tools-python";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx-autobuild/default.nix b/pkgs/development/python-modules/sphinx-autobuild/default.nix
index 94047b359aa..7d4629be50c 100644
--- a/pkgs/development/python-modules/sphinx-autobuild/default.nix
+++ b/pkgs/development/python-modules/sphinx-autobuild/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sphinx-autobuild";
-  version = "2020.9.1";
+  version = "2021.3.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vbaf4vrxahylyp8zrlw5dx1d2faajp926c3pl5i1wlkp1yll62b";
+    sha256 = "de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05";
   };
 
   propagatedBuildInputs = [ sphinx livereload ];
diff --git a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
new file mode 100644
index 00000000000..e3ebac0744a
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, sphinx
+, markdown
+, CommonMark
+, recommonmark
+, pydash
+, pyyaml
+, unify
+, yapf
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-markdown-parser";
+  version = "0.2.4";
+
+  # PyPi release does not include requirements.txt
+  src = fetchFromGitHub {
+    owner = "clayrisser";
+    repo = "sphinx-markdown-parser";
+    # Upstream maintainer currently does not tag releases
+    # https://github.com/clayrisser/sphinx-markdown-parser/issues/35
+    rev = "2fd54373770882d1fb544dc6524c581c82eedc9e";
+    sha256 = "0i0hhapmdmh83yx61lxi2h4bsmhnzddamz95844g2ghm132kw5mv";
+  };
+
+  propagatedBuildInputs = [ sphinx markdown CommonMark pydash pyyaml unify yapf recommonmark ];
+
+  # Avoids running broken tests in test_markdown.py
+  checkPhase = ''
+    ${python.interpreter} -m unittest -v tests/test_basic.py tests/test_sphinx.py
+  '';
+
+  pythonImportsCheck = [ "sphinx_markdown_parser" ];
+
+  meta = with lib; {
+    description = "Write markdown inside of docutils & sphinx projects";
+    homepage = "https://github.com/clayrisser/sphinx-markdown-parser";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx-material/default.nix b/pkgs/development/python-modules/sphinx-material/default.nix
new file mode 100644
index 00000000000..aa6dc0d6bf1
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-material/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, beautifulsoup4
+, python-slugify
+, unidecode
+, css-html-js-minify
+, lxml
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-material";
+  version = "0.0.32";
+
+  src = fetchPypi {
+    pname = "sphinx_material";
+    inherit version;
+    sha256 = "ec02825a1bbe8b662fe624c11b87f1cd8d40875439b5b18c38649cf3366201fa";
+  };
+
+  propagatedBuildInputs = [
+    sphinx
+    beautifulsoup4
+    python-slugify
+    unidecode
+    css-html-js-minify
+    lxml
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [ "sphinx_material" ];
+
+  meta = with lib; {
+    description = "A material-based, responsive theme inspired by mkdocs-material";
+    homepage = "https://bashtage.github.io/sphinx-material";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx-serve/default.nix b/pkgs/development/python-modules/sphinx-serve/default.nix
new file mode 100644
index 00000000000..ca2b587e3ac
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-serve/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-serve";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8d90f6595114108500b1f935d3f4d07bf5192783c67ce83f944ef289099669c9";
+  };
+
+  doCheck = false; # No tests
+
+  pythonImportsCheck = [ "sphinx_serve" ];
+
+  meta = with lib; {
+    description = "Spawns a simple HTTP server to preview your sphinx documents";
+    homepage = "https://github.com/tlatsas/sphinx-serve";
+    maintainers = with maintainers; [ FlorianFranzen ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 9ce0015cdf8..1c5cc29f414 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -26,7 +26,7 @@
 , sphinxcontrib-qthelp
 , sphinxcontrib-serializinghtml
 , sphinxcontrib-websupport
-, typing
+, typing ? null
 , setuptools
 , packaging
 }:
diff --git a/pkgs/development/python-modules/sphinx_rtd_theme/default.nix b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
index 87da4131351..06338ec118f 100644
--- a/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
+++ b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
@@ -8,16 +8,17 @@
 
 buildPythonPackage rec {
   pname = "sphinx_rtd_theme";
-  version = "0.4.3";
+  version = "0.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a";
+    sha256 = "19c31qhfiqbm6y7mamglrc2mc7l6n4lasb8jry01lc67l3nqk9pd";
   };
 
   propagatedBuildInputs = [ sphinx ];
 
   checkInputs = [ readthedocs-sphinx-ext pytest ];
+  CI=1; # Don't use NPM to fetch assets. Assets are included in sdist.
 
   checkPhase = ''
     py.test
@@ -25,8 +26,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ReadTheDocs.org theme for Sphinx";
-    homepage = "https://github.com/snide/sphinx_rtd_theme/";
-    license = licenses.bsd3;
+    homepage = "https://github.com/readthedocs/sphinx_rtd_theme";
+    license = licenses.mit;
     platforms = platforms.unix;
   };
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
index 068c4d5d2e9..c60d99d5e62 100644
--- a/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-autoapi/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "sphinx-autoapi";
-  version = "1.5.1";
+  version = "1.7.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19m9yvlqwaw3b05lbb1vcla38irn4riw2ij0vjmnc2xq4f1qfl2d";
+    sha256 = "48caa054a99c21156e9a1d26559281dc27f86ab8ef8bb6ef160f8cd9f4a0053d";
   };
 
   propagatedBuildInputs = [ astroid jinja2 pyyaml sphinx unidecode ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index 51d9824f639..b31c79c3f75 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dQCEPhVNdpg8I7ylynOAll4HJcRrj0hMEyLQtYps47I=";
+    sha256 = "7500843e154d76983c23bca5ca7380965e0725c46b8f484c1322d0b58a6ce3b2";
   };
 
   propagatedBuildInputs = [ oset pybtex pybtex-docutils sphinx ];
diff --git a/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix b/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
index e028b6eea80..51fd34803df 100644
--- a/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-plantuml";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "98b9f02282907b0c5b7a93a446c4649909aaf5785d2da0dd263c8ad68e00e288";
+    sha256 = "041d8f79599522949eda129146a60955d0b7544963790411106fff6f9f3daab4";
   };
 
   # No tests included.
diff --git a/pkgs/development/python-modules/spotipy/default.nix b/pkgs/development/python-modules/spotipy/default.nix
index 6f29db2581b..4493eb3d975 100644
--- a/pkgs/development/python-modules/spotipy/default.nix
+++ b/pkgs/development/python-modules/spotipy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.17.1";
+  version = "2.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KcYMi5naHEufDXIhabwx5iS4wH1xhrjq3ZwC6NLULL8=";
+    sha256 = "sha256-9yk7gIaWgH6azsa9z/Y/fcw8wbFIwMS0KZ70PJZvcXc=";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 614f64a0fbe..410e1ad0616 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "1.10.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "416534d7504c0f337e6e6e2cbd893d1866ad20d3bec99a94ad617d2fd60699ae";
+    sha256 = "a507397f5ff0426cff50f1b67996b191bdc8148583aa565f5dffd3d0111c0262";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index dd65079e6a1..12dd743751f 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -3,28 +3,28 @@
   keyring, numpydoc, qtconsole, qtawesome, nbconvert, mccabe, pyopengl,
   cloudpickle, pygments, spyder-kernels, qtpy, pyzmq, chardet, qdarkstyle,
   watchdog, python-language-server, pyqtwebengine, atomicwrites, pyxdg,
-  diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8
+  diff-match-patch, three-merge, pyls-black, pyls-spyder, flake8, textdistance
 }:
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "4.2.1";
+  version = "4.2.4";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f93bc5b8b119cc1e195ce3efcc1598386e082c4096334c1fa2b018938ac79b9";
+    sha256 = "ec3a6949a3210f7a35142ddd0e8ec529bdd382ae0cae9d1537f2009f557214c8";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
 
   propagatedBuildInputs = [
-    intervaltree jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint keyring
+    intervaltree jedi pycodestyle psutil rope numpy scipy matplotlib pylint keyring
     numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels
     pygments qtpy pyzmq chardet pyqtwebengine qdarkstyle watchdog python-language-server
     atomicwrites pyxdg diff-match-patch three-merge pyls-black pyls-spyder
-    flake8
+    flake8 textdistance
   ];
 
   # There is no test for spyder
@@ -44,9 +44,13 @@ buildPythonPackage rec {
     # remove dependency on pyqtwebengine
     # this is still part of the pyqt 5.11 version we have in nixpkgs
     sed -i /pyqtwebengine/d setup.py
+    # The major version bump in watchdog is due to changes in supported
+    # platforms, not API break.
+    # https://github.com/gorakhargosh/watchdog/issues/761#issuecomment-777001518
     substituteInPlace setup.py \
       --replace "pyqt5<5.13" "pyqt5" \
-      --replace "parso==0.7.0" "parso"
+      --replace "parso==0.7.0" "parso" \
+      --replace "watchdog>=0.10.3,<2.0.0" "watchdog>=0.10.3,<3.0.0"
   '';
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index bf8a9d3bbdb..8fc03d788af 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -1,21 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, psycopg2
 , sqlalchemy
 , python
 }:
 
 buildPythonPackage rec {
   pname = "sqlalchemy-citext";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "69ba00f5505f92a1455a94eefc6d3fcf72dda3691ab5398a0b4d0d8d85bd6aab";
+    sha256 = "a1740e693a9a334e7c8f60ae731083fe75ce6c1605bb9ca6644a6f1f63b15b77";
   };
 
   propagatedBuildInputs = [
     sqlalchemy
+
+    # not listed in `install_requires`, but is imported in citext/__init__.py
+    psycopg2
   ];
 
   # tests are not packaged in pypi tarball
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 6f5fb557866..5964e382084 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchPypi, buildPythonPackage, isPy3k, isPy35, fetchpatch
 , mock
-, pysqlite
+, pysqlite ? null
 , pytestCheckHook
 , pytest_xdist
 }:
diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix
index f3c438342bc..2335a0204e4 100644
--- a/pkgs/development/python-modules/sqlobject/default.nix
+++ b/pkgs/development/python-modules/sqlobject/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "SQLObject";
-  version = "3.8.1";
+  version = "3.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "620657105ab5720658222d10ad13c52281fe524137b59ab166eee4427ee2f548";
+    sha256 = "45064184decf7f42d386704e5f47a70dee517d3e449b610506e174025f84d921";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/sshpubkeys/default.nix b/pkgs/development/python-modules/sshpubkeys/default.nix
index 6e250cf85f2..955eb905ac2 100644
--- a/pkgs/development/python-modules/sshpubkeys/default.nix
+++ b/pkgs/development/python-modules/sshpubkeys/default.nix
@@ -4,14 +4,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.1.0";
+  version = "3.3.1";
   pname = "sshpubkeys";
 
   src = fetchFromGitHub {
     owner = "ojarva";
     repo = "python-${pname}";
-    rev = "v${version}";
-    sha256 = "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq";
+    rev = version;
+    sha256 = "1qsixmqg97kyvg1naw76blq4314vaw4hl5f9wi0v111mcmdia1r4";
   };
 
   propagatedBuildInputs = [ cryptography ecdsa ];
diff --git a/pkgs/development/python-modules/stevedore/default.nix b/pkgs/development/python-modules/stevedore/default.nix
index 06d614feaac..cf1a50c49be 100644
--- a/pkgs/development/python-modules/stevedore/default.nix
+++ b/pkgs/development/python-modules/stevedore/default.nix
@@ -10,23 +10,29 @@
 
 buildPythonPackage rec {
   pname = "stevedore";
-  version = "3.2.2";
+  version = "3.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f845868b3a3a77a2489d226568abe7328b5c2d4f6a011cc759dfa99144a521f0";
+    sha256 = "3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee";
   };
 
-  propagatedBuildInputs = [ pbr setuptools six ]
-    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  propagatedBuildInputs = [
+    pbr
+    setuptools
+    six
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
   doCheck = false;
   pythonImportsCheck = [ "stevedore" ];
 
   meta = with lib; {
     description = "Manage dynamic plugins for Python applications";
-    homepage = "https://pypi.python.org/pypi/stevedore";
+    homepage = "https://docs.openstack.org/stevedore/";
     license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/stone/default.nix b/pkgs/development/python-modules/stone/default.nix
new file mode 100644
index 00000000000..21c92fcee7e
--- /dev/null
+++ b/pkgs/development/python-modules/stone/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildPythonPackage, fetchPypi
+, coverage
+, mock
+, ply
+, pytestrunner
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "stone";
+  version = "3.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xby5mpsms7b2rv8j6mvxzmzz5i9ii01brb9ylxz6kiv2i08piwv";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner == 5.2.0" "pytest-runner" \
+      --replace "pytest < 5" "pytest"
+    substituteInPlace test/requirements.txt \
+      --replace "coverage==5.3" "coverage"
+  '';
+
+  nativeBuildInputs = [ pytestrunner ];
+
+  propagatedBuildInputs = [ ply six ];
+
+  checkInputs = [ pytestCheckHook coverage mock ];
+
+  # try to import from `test` directory, which is exported by the python interpreter
+  # and cannot be overriden without removing some py3 to py2 support
+  disabledTestPaths = [
+    "test/test_tsd_types.py"
+    "test/test_js_client.py"
+  ];
+  disabledTests = [
+    "test_type_name_with_module"
+  ];
+
+  pythonImportsCheck = [ "stone" ];
+
+  meta = with lib; {
+    description = "Official Api Spec Language for Dropbox";
+    homepage = "https://github.com/dropbox/stone";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index 96ac2d208b3..4be51c488d4 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.55.2";
+  version = "2.56.0";
 
   # Tests require network connectivity and there's no easy way to disable
   # them. ~ C.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e32c68194a47522a10945eb893218e5cb5ee65e3a3c2c4df7efca117a6bf1902";
+    sha256 = "2ff904fb8dee0d25f135059468a876852d24dc8cbe0b45d7aff56a028045777c";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/structlog/default.nix b/pkgs/development/python-modules/structlog/default.nix
index 8f7e73a454a..dc7aea0c3bf 100644
--- a/pkgs/development/python-modules/structlog/default.nix
+++ b/pkgs/development/python-modules/structlog/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "structlog";
-  version = "20.1.0";
+  version = "21.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7a48375db6274ed1d0ae6123c486472aa1d0890b08d314d2b016f3aa7f35990b";
+    sha256 = "d9d2d890532e8db83c6977a2a676fb1889922ff0c26ad4dc0ecac26f9fafbc57";
   };
 
   checkInputs = [ pytest pytest-asyncio pretend freezegun simplejson twisted ]
diff --git a/pkgs/development/python-modules/stumpy/default.nix b/pkgs/development/python-modules/stumpy/default.nix
index 3ace2e925cb..3be5ffad1c8 100644
--- a/pkgs/development/python-modules/stumpy/default.nix
+++ b/pkgs/development/python-modules/stumpy/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "stumpy";
-  version = "1.4";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "TDAmeritrade";
     repo = "stumpy";
     rev = "v${version}";
-    sha256 = "0s2s3y855jjwdb7p55zx8lknplz58ghpw547yzmqisacr968b67w";
+    sha256 = "0s7pamn39ymm1lp9z28isbdrd6ix98y9i4lfdk3ii95wvd3y50my";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sumo/default.nix b/pkgs/development/python-modules/sumo/default.nix
index e1b3d8c705e..9ba073df922 100644
--- a/pkgs/development/python-modules/sumo/default.nix
+++ b/pkgs/development/python-modules/sumo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "sumo";
-  version = "1.0.9";
+  version = "2.2.1";
 
   # No tests in Pypi tarball
   src = fetchFromGitHub {
     owner = "SMTG-UCL";
     repo = "sumo";
     rev = "v${version}";
-    sha256 = "1zw86qp9ycw2k0anw6pzvwgd3zds0z2cwy0s663zhiv9mnb5hx1n";
+    sha256 = "0r88f5w33h9b0mv7shlqc4przwvas5ycgndvl91wqjnm3b2s3ix0";
   };
 
   propagatedBuildInputs = [ numpy scipy spglib pymatgen h5py matplotlib seekpath phonopy ];
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index 48eb36d6e87..65eb6abb046 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -30,12 +30,12 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "2.0.7";
+  version = "2.1.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d13ac67c14ea825652dc3e12c4c627e782e8e843e96a1d54440d39dd2ceb6a5c";
+    sha256 = "8bbc440e606a4f3fcbd1441150d81da6f0208adace9dc06f6afd2c9cb7c08908";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index 93569fe3da7..a7153b07750 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "supervisor";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c479c875853e9c013d1fa73e529fd2165ff1ecaecc7e82810ba57e7362ae984d";
+    sha256 = "5b2b8882ec8a3c3733cce6965cc098b6d80b417f21229ab90b18fe551d619f90";
   };
 
   # wants to write to /tmp/foo which is likely already owned by another
diff --git a/pkgs/development/python-modules/surt/default.nix b/pkgs/development/python-modules/surt/default.nix
new file mode 100644
index 00000000000..21024c0ed02
--- /dev/null
+++ b/pkgs/development/python-modules/surt/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, six
+, tldextract
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "surt";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "internetarchive";
+    repo = "surt";
+    rev = "6934c321b3e2f66af9c001d882475949f00570c5"; # Has no git tag
+    sha256 = "sha256-pSMNpFfq2V0ANWNFPcb1DwPHccbfddo9P4xZ+ghwbz4=";
+  };
+
+  propagatedBuildInputs = [
+    six
+    tldextract
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "surt" ];
+
+  meta = with lib; {
+    description = "Sort-friendly URI Reordering Transform (SURT) python module";
+    homepage = "https://github.com/internetarchive/surt";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/pkgs/development/python-modules/survey/default.nix b/pkgs/development/python-modules/survey/default.nix
index 99a2d85aaa2..34b1eed1727 100644
--- a/pkgs/development/python-modules/survey/default.nix
+++ b/pkgs/development/python-modules/survey/default.nix
@@ -1,16 +1,19 @@
 { lib
 , buildPythonPackage
+, pythonOlder
 , fetchPypi
 , wrapio
 }:
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "3.4.2";
+  version = "3.4.3";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-aF7ZS5oxeIOb7mJsrusdc3HefcPE+3OTXcJB/pjJxFY=";
+    sha256 = "sha256-TK89quY3bpNIEz1n3Ecew4FnTH6QgeSLdDNV86gq7+I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/svg-path/default.nix b/pkgs/development/python-modules/svg-path/default.nix
index 820d4121633..e01909fc93a 100644
--- a/pkgs/development/python-modules/svg-path/default.nix
+++ b/pkgs/development/python-modules/svg-path/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "svg.path";
-  version = "4.0.2";
+  version = "4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4bd627ec6526cd5da14f3c6a51205d930187db2d8992aed626825492c033b195";
+    sha256 = "7e6847ba690ff620e20f152818d52e1685b993aacbc41b321f8fee3d1cb427db";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix
index f225dd431e5..831583c1324 100644
--- a/pkgs/development/python-modules/symengine/default.nix
+++ b/pkgs/development/python-modules/symengine/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "symengine";
-  version = "0.6.1";
+  version = "0.7.0.post3";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine.py";
     rev = "v${version}";
-    sha256 = "13fy25qxn4xwzlr2w35v6jhlpd70lv9r6srv4dizc4brj63hnw50";
+    sha256 = "1hpwnnv6f7f2wj33zaaj3i2r0d0qj0jwm3fd4ayicj0rvqya50rx";
   };
 
   postConfigure = ''
diff --git a/pkgs/development/python-modules/systembridge/default.nix b/pkgs/development/python-modules/systembridge/default.nix
new file mode 100644
index 00000000000..94d41b7b673
--- /dev/null
+++ b/pkgs/development/python-modules/systembridge/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "systembridge";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = "system-bridge-connector-py";
+    rev = "v${version}";
+    sha256 = "0vyfi7nyzkzsgg84n5wh4hzwvx6fybgqdzbabnsmvszb9sm1vlb2";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "systembridge" ];
+
+  meta = with lib; {
+    description = "Python module for connecting to System Bridge";
+    homepage = "https://github.com/timmo001/system-bridge-connector-py";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sysv_ipc/default.nix b/pkgs/development/python-modules/sysv_ipc/default.nix
index 5d9b5a034c2..a58b714a4ac 100644
--- a/pkgs/development/python-modules/sysv_ipc/default.nix
+++ b/pkgs/development/python-modules/sysv_ipc/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sysv_ipc";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p5lx3yz4p40rfb453m80a4hh8341yp4dki2nhhxz7bq2zfi1zwf";
+    sha256 = "0f063cbd36ec232032e425769ebc871f195a7d183b9af32f9901589ea7129ac3";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tablib/default.nix b/pkgs/development/python-modules/tablib/default.nix
index b1427a81331..5216fc7d0d9 100644
--- a/pkgs/development/python-modules/tablib/default.nix
+++ b/pkgs/development/python-modules/tablib/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "tablib";
-  version = "2.0.0";
+  version = "3.0.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rvvdchdva7j9b29ay0sg8y33pjhpmzynl38wz2rl89pph8gmhlc";
+    sha256 = "f83cac08454f225a34a305daa20e2110d5e6335135d505f93bc66583a5f9c10d";
   };
 
   propagatedBuildInputs = [ xlwt openpyxl pyyaml xlrd odfpy ];
diff --git a/pkgs/development/python-modules/tabulate/default.nix b/pkgs/development/python-modules/tabulate/default.nix
index 2d841918f11..621445b2d51 100644
--- a/pkgs/development/python-modules/tabulate/default.nix
+++ b/pkgs/development/python-modules/tabulate/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.8";
+  version = "0.8.9";
   pname = "tabulate";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26f2589d80d332fefd2371d396863dedeb806f51b54bdb4b264579270b621e92";
+    sha256 = "eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/tabview/default.nix b/pkgs/development/python-modules/tabview/default.nix
new file mode 100644
index 00000000000..35a7f7d8a7d
--- /dev/null
+++ b/pkgs/development/python-modules/tabview/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "tabview";
+  version = "1.4.4";
+  format = "setuptools";
+
+  # newest release only available as wheel on pypi
+  src = fetchFromGitHub {
+    owner = "TabViewer";
+    repo = "tabview";
+    rev = version;
+    sha256 = "1d1l8fhdn3w2zg7wakvlmjmgjh9lh9h5fal1clgyiqmhfix4cn4m";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with lib; {
+    description = "Python curses command line CSV and tabular data viewer";
+    homepage = "https://github.com/TabViewer/tabview";
+    changelog = "https://github.com/TabViewer/tabview/blob/main/CHANGELOG.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/tailer/default.nix b/pkgs/development/python-modules/tailer/default.nix
new file mode 100644
index 00000000000..b8e19b7d97d
--- /dev/null
+++ b/pkgs/development/python-modules/tailer/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "tailer";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "six8";
+    repo = "pytailer";
+    rev = version;
+    sha256 = "1s5p5m3q9k7r1m0wx5wcxf20xzs0rj14qwg1ydwhf6adr17y2w5y";
+  };
+
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m doctest -v src/tailer/__init__.py
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "tailer" ];
+
+  meta = with lib; {
+    description = "Python implementation implementation of GNU tail and head";
+    homepage = "https://github.com/six8/pytailer";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/taskw/default.nix b/pkgs/development/python-modules/taskw/default.nix
index 9e1ae3302c1..523d3e303b3 100644
--- a/pkgs/development/python-modules/taskw/default.nix
+++ b/pkgs/development/python-modules/taskw/default.nix
@@ -11,12 +11,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
+  version = "1.3.0";
   pname = "taskw";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fadd8afc12df026c3c2d39b633c55d3337f7dca95602fce2239455a048bc85fe";
+    sha256 = "7673d80b3d5bace5b35eb71f5035e313a92daab6e437694128d8ce7dcdaf66fb";
   };
 
   patches = [ ./use-template-for-taskwarrior-install-path.patch ];
diff --git a/pkgs/development/python-modules/telfhash/default.nix b/pkgs/development/python-modules/telfhash/default.nix
new file mode 100644
index 00000000000..a7aca8866ed
--- /dev/null
+++ b/pkgs/development/python-modules/telfhash/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, capstone
+, pyelftools
+, tlsh
+, nose
+}:
+buildPythonPackage {
+  pname = "telfhash";
+  version = "unstable-2021-01-29";
+
+  src = fetchFromGitHub {
+    owner = "trendmicro";
+    repo = "telfhash";
+    rev = "b5e398e59dc25a56a28861751c1fccc74ef71617";
+    sha256 = "jNu6qm8Q/UyJVaCqwFOPX02xAR5DwvCK3PaH6Fvmakk=";
+  };
+
+  # The tlsh library's name is just "tlsh"
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "python-tlsh" "tlsh"
+  '';
+
+  propagatedBuildInputs = [
+    capstone
+    pyelftools
+    tlsh
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  pythonImportsCheck = [
+    "telfhash"
+  ];
+
+  meta = with lib; {
+    description = "Symbol hash for ELF files";
+    homepage = "https://github.com/trendmicro/telfhash";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
index 51f055d0660..c1c0abcec24 100644
--- a/pkgs/development/python-modules/tenacity/default.nix
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -1,15 +1,15 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, isPy3k
-, pbr, six, futures, monotonic, typing, setuptools_scm
+, pbr, six, futures ? null, monotonic ? null, typing ? null, setuptools_scm
 , pytest, sphinx, tornado, typeguard
 }:
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "6.3.1";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zsdajdpcjd7inrl7r9pwiyh7qpgh9jk7g2bj1iva2d3n0gijkg1";
+    sha256 = "5bd16ef5d3b985647fe28dfa6f695d343aa26479a04e8792b9d3c8f49e361ae1";
   };
 
   nativeBuildInputs = [ pbr setuptools_scm ];
diff --git a/pkgs/development/python-modules/tensorboardx/default.nix b/pkgs/development/python-modules/tensorboardx/default.nix
index a95f8e02928..f83467520c9 100644
--- a/pkgs/development/python-modules/tensorboardx/default.nix
+++ b/pkgs/development/python-modules/tensorboardx/default.nix
@@ -1,31 +1,69 @@
-{ boto3, buildPythonPackage, crc32c, fetchFromGitHub, lib, matplotlib, moto
-, numpy, pillow, pytorch, protobuf, six, pytestCheckHook
-, tensorflow-tensorboard, torchvision }:
+{ boto3
+, buildPythonPackage
+, crc32c
+, fetchFromGitHub
+, lib
+, matplotlib
+, moto
+, numpy
+, pillow
+, protobuf
+, pytestCheckHook
+, pytorch
+, six
+, soundfile
+, tensorflow-tensorboard
+, torchvision
+}:
 
 buildPythonPackage rec {
   pname = "tensorboardx";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "lanpa";
     repo = "tensorboardX";
     rev = "v${version}";
-    sha256 = "0qqalq0fhbx0wnd8wdwhyhkkv2brvj9qbk3373vk3wjxbribf5c7";
+    sha256 = "1palz91y0b39pcmwg6wdmqfal38hai99dd6r88i3imqxdbmjghih";
   };
 
-  checkInputs = [
-    pytestCheckHook boto3 crc32c matplotlib moto pillow pytorch tensorflow-tensorboard torchvision
-  ];
-
-  propagatedBuildInputs = [ numpy protobuf six ];
-
   # apparently torch API changed a bit at 1.6
   postPatch = ''
-    substituteInPlace tensorboardX/pytorch_graph.py --replace "torch.onnx.set_training(model, False)" "torch.onnx.select_model_mode_for_export(model, torch.onnx.TrainingMode.EVAL)"
+    substituteInPlace tensorboardX/pytorch_graph.py --replace \
+      "torch.onnx.set_training(model, False)" \
+      "torch.onnx.select_model_mode_for_export(model, torch.onnx.TrainingMode.EVAL)"
   '';
 
+  propagatedBuildInputs = [
+    crc32c
+    numpy
+    protobuf
+    six
+    soundfile
+  ];
 
-  disabledTests = [ "test_TorchVis"  "test_onnx_graph" ];
+  checkInputs = [
+    boto3
+    matplotlib
+    moto
+    pillow
+    pytestCheckHook
+    pytorch
+    tensorflow-tensorboard
+    torchvision
+  ];
+
+  disabledTests = [
+    # ImportError: Visdom visualization requires installation of Visdom
+    "test_TorchVis"
+    # Requires network access (FileNotFoundError: [Errno 2] No such file or directory: 'wget')
+    "test_onnx_graph"
+  ];
+
+  disabledTestPaths = [
+    # we are not interested in linting errors
+    "tests/test_lint.py"
+  ];
 
   meta = with lib; {
     description = "Library for writing tensorboard-compatible logs";
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index ef6d4f45ef9..7b9cbf1f990 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -96,10 +96,19 @@ in buildPythonPackage {
     # Unpack the wheel file.
     wheel unpack --dest unpacked ./*.whl
 
-    # Tensorflow has a hard dependency on gast==0.2.2, but we relax it to
-    # gast==0.3.2.
-    substituteInPlace ./unpacked/tensorflow*/tensorflow_core/tools/pip_package/setup.py --replace "gast == 0.2.2" "gast == 0.3.2"
-    substituteInPlace ./unpacked/tensorflow*/tensorflow_*.dist-info/METADATA --replace "gast (==0.2.2)" "gast (==0.3.2)"
+    # Tensorflow wheels tightly constrain the versions of gast, tensorflow-estimator and scipy.
+    # This code relaxes these requirements:
+    substituteInPlace ./unpacked/tensorflow*/tensorflow_core/tools/pip_package/setup.py \
+      --replace "tensorflow_estimator >= 2.1.0rc0, < 2.2.0" "tensorflow_estimator" \
+      --replace "tensorboard >= 2.1.0, < 2.2.0" "tensorboard" \
+      --replace "gast == 0.2.2" "gast"  \
+      --replace "scipy == 1.2.2" "scipy"
+
+    substituteInPlace ./unpacked/tensorflow*/tensorflow*.dist-info/METADATA  \
+      --replace "gast (==0.2.2)" "gast" \
+      --replace "tensorflow-estimator (<2.2.0,>=2.1.0rc0)" "tensorflow_estimator" \
+      --replace "tensorboard (<2.2.0,>=2.1.0)" "tensorboard" \
+      --replace "scipy (==1.4.1)" "scipy"
 
     # Pack the wheel file back up.
     wheel pack ./unpacked/tensorflow*
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 0e2df1a4678..0216c05eeac 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -325,6 +325,10 @@ let
           addOpenGLRunpath "$lib"
         done
       '';
+
+      requiredSystemFeatures = [
+        "big-parallel"
+      ];
     };
 
     meta = with lib; {
diff --git a/pkgs/development/python-modules/terminado/default.nix b/pkgs/development/python-modules/terminado/default.nix
index 0f02da4866f..846c8157b75 100644
--- a/pkgs/development/python-modules/terminado/default.nix
+++ b/pkgs/development/python-modules/terminado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "terminado";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89e6d94b19e4bc9dce0ffd908dfaf55cc78a9bf735934e915a4a96f65ac9704c";
+    sha256 = "261c0b7825fecf629666e1820b484a5380f7e54d6b8bd889fa482e99dcf9bde4";
   };
 
   propagatedBuildInputs = [ ptyprocess tornado ];
diff --git a/pkgs/development/python-modules/tern/default.nix b/pkgs/development/python-modules/tern/default.nix
new file mode 100644
index 00000000000..6247087dd67
--- /dev/null
+++ b/pkgs/development/python-modules/tern/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyyaml
+, docker
+, dockerfile-parse
+, requests
+, stevedore
+, pbr
+, debut
+, regex
+, GitPython
+, prettytable
+, idna
+}:
+buildPythonPackage rec {
+  pname = "tern";
+  version = "2.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "606c62944991b2cbcccf3f5353be693305d6d7d318c3865b9ecca49dbeab2727";
+  };
+
+  preBuild = ''
+    cp requirements.{in,txt}
+  '';
+
+  nativeBuildInputs = [
+    pbr
+  ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    docker
+    dockerfile-parse
+    requests
+    stevedore
+    debut
+    regex
+    GitPython
+    prettytable
+    idna
+  ];
+
+  # No tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "tern"
+  ];
+
+  meta = with lib; {
+    description = "A software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
+    homepage = "https://github.com/tern-tools/tern";
+    license = licenses.bsd2;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/testfixtures/default.nix b/pkgs/development/python-modules/testfixtures/default.nix
index b9803b11508..cd08fe58dca 100644
--- a/pkgs/development/python-modules/testfixtures/default.nix
+++ b/pkgs/development/python-modules/testfixtures/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "testfixtures";
-  version = "6.15.0";
+  version = "6.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "409f77cfbdad822d12a8ce5c4aa8fb4d0bb38073f4a5444fede3702716a2cec2";
+    sha256 = "5ec3a0dd6f71cc4c304fbc024a10cc293d3e0b852c868014b9f233203e149bda";
   };
 
   checkInputs = [ pytest mock sybil zope_component twisted ];
diff --git a/pkgs/development/python-modules/textdistance/default.nix b/pkgs/development/python-modules/textdistance/default.nix
new file mode 100644
index 00000000000..d4a71dd9962
--- /dev/null
+++ b/pkgs/development/python-modules/textdistance/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "textdistance";
+  version = "4.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "114j3ignw4y9yq1cp08p4bfw518vyr3p0h8ba2mikwy74qxxzy26";
+  };
+
+  # There aren't tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "textdistance" ];
+
+  meta = with lib; {
+    description = "Python library for comparing distance between two or more sequences";
+    homepage = "https://github.com/life4/textdistance";
+    license = licenses.mit;
+    maintainers = with maintainers; [ eduardosm ];
+  };
+}
diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix
index 75e1a029a25..a92d349e992 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -16,6 +16,7 @@
 , pathlib
 , plac
 , preshed
+, pydantic
 , srsly
 , tqdm
 , wasabi
@@ -23,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "7.4.5";
+  version = "8.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5743fde41706252ec6ce4737c68d3505f7e1cc3d4431174a17149838d594f8cb";
+    sha256 = "20f033b3d9fbd02389d8f828cebcd3a42aee3e17ed4c2d56c6d5163af83a9cee";
   };
 
   buildInputs = [ cython ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
@@ -47,6 +48,7 @@ buildPythonPackage rec {
     preshed
     srsly
     tqdm
+    pydantic
     wasabi
   ] ++ lib.optional (pythonOlder "3.4") pathlib;
 
@@ -61,11 +63,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   postPatch = ''
-    substituteInPlace setup.py \
+    substituteInPlace setup.cfg \
       --replace "blis>=0.4.0,<0.8.0" "blis>=0.4.0,<1.0" \
-      --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
-      --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
-      --replace "srsly>=0.0.6,<1.1.0" "srsly>=0.0.6,<3.0"
+      --replace "pydantic>=1.7.1,<1.8.0" "pydantic~=1.7"
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 9383cf947c2..70b815c4ec9 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -5,19 +5,19 @@
 , isPy3k
 , numpy
 , imagecodecs-lite
-, enum34
-, futures
-, pathlib
+, enum34 ? null
+, futures ? null
+, pathlib ? null
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2020.11.26";
+  version = "2021.3.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c712df6f201385fbd3500e26e45dc20fabcbb0c6c1fbfb4c1e44538a9d0269a8";
+    sha256 = "1b72c92ecd2273e52686c0f8792d1d1c4da4109b241dd1723dfe56ef4d1ad612";
   };
 
   patches = lib.optional isPy27 ./python2-regex-compat.patch;
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index 0ba9c4c53d8..48aff396aaa 100644
--- a/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "4.5.0";
+  version = "5.2.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "99b0cea5abf304e8738ecf5cceae0c0e5182534843f19638a26a220fa212fbad";
+    sha256 = "a374570295a8dbd923630ce85f754e52578e288cb0a9cf575834415e84758352";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tinydb/default.nix b/pkgs/development/python-modules/tinydb/default.nix
index b267fa82854..db162ecc2ac 100644
--- a/pkgs/development/python-modules/tinydb/default.nix
+++ b/pkgs/development/python-modules/tinydb/default.nix
@@ -2,17 +2,16 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, poetry
+, poetry-core
+, fetchpatch
 , pytestCheckHook
-, pytestcov
-, pytestrunner
 , pycodestyle
 , pyyaml
 }:
 
 buildPythonPackage rec {
   pname = "tinydb";
-  version = "4.1.1";
+  version = "4.4.0";
   disabled = pythonOlder "3.5";
   format = "pyproject";
 
@@ -20,20 +19,37 @@ buildPythonPackage rec {
     owner = "msiemens";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09cwdmpj91c6q7jympip1lrcd3idbm9cqblgvmrh0v1vy1iv2ki7";
+    sha256 = "sha256-3FbsnLU7G4VVhI5NYRqCEQgo51zDeAkEhH69H52zr/w=";
   };
 
-  nativeBuildInputs = [ poetry ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/msiemens/tinydb/pull/391
+    (fetchpatch {
+      name = "switch-to-peotry-core.patch";
+      url = "https://github.com/msiemens/tinydb/commit/5b547c18e7ce9f5925d5943dfa47d408435a0da5.patch";
+      sha256 = "19ma9ib020b82sn1mcr7sfysqbj8h6nbb365bih1x1wn3ym8xlbc";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pytest.ini \
+      --replace "--cov-append --cov-report term --cov tinydb" ""
+  '';
 
   checkInputs = [
     pytestCheckHook
-    pytestcov
     pycodestyle
     pyyaml
   ];
 
+  pythonImportsCheck = [ "tinydb" ];
+
   meta = with lib; {
-    description = "A lightweight document oriented database written in pure Python with no external dependencies";
+    description = "Lightweight document oriented database written in Python";
     homepage = "https://tinydb.readthedocs.org/";
     changelog = "https://tinydb.readthedocs.io/en/latest/changelog.html";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/titlecase/default.nix b/pkgs/development/python-modules/titlecase/default.nix
index acc8b9c5670..9dc09db98f4 100644
--- a/pkgs/development/python-modules/titlecase/default.nix
+++ b/pkgs/development/python-modules/titlecase/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "titlecase";
-  version = "1.1.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16e279edf085293bc9c44a68ce959c7d6cd5c653e6b5669a3a3640015cb63eb6";
+    sha256 = "d6b24c4bfce6b05ee55da48901a1aa39eac20f223160b7872dcf1b8182214bec";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/tomlkit/default.nix b/pkgs/development/python-modules/tomlkit/default.nix
index 27f952386f1..cabe2ebcd5e 100644
--- a/pkgs/development/python-modules/tomlkit/default.nix
+++ b/pkgs/development/python-modules/tomlkit/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy27
-, enum34, functools32, typing
+, enum34, functools32, typing ? null
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index 35759215182..8f3cb085b65 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "torchvision";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "vision";
     rev = "v${version}";
-    sha256 = "0yhpbq7linrk2qp5jxsvlgkmwa5bn38s9kcswy4jzvmx1fjbkpq0";
+    sha256 = "0rw186nki7q8igk481p2mvx4n763i3kpn663yp3dibkimddpnf9k";
   };
 
   nativeBuildInputs = [ libpng ninja which ];
diff --git a/pkgs/development/python-modules/tornado/4.nix b/pkgs/development/python-modules/tornado/4.nix
index 6d889a09d25..da86c7037b9 100644
--- a/pkgs/development/python-modules/tornado/4.nix
+++ b/pkgs/development/python-modules/tornado/4.nix
@@ -2,11 +2,11 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, backports_abc
-, backports_ssl_match_hostname
-, certifi
-, singledispatch
-, futures
+, backports_abc ? null
+, backports_ssl_match_hostname ? null
+, certifi ? null
+, singledispatch ? null
+, futures ? null
 , isPy27
 }:
 
diff --git a/pkgs/development/python-modules/tornado/5.nix b/pkgs/development/python-modules/tornado/5.nix
index da270331978..2905f89dc0c 100644
--- a/pkgs/development/python-modules/tornado/5.nix
+++ b/pkgs/development/python-modules/tornado/5.nix
@@ -2,11 +2,11 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, backports_abc
-, backports_ssl_match_hostname
-, certifi
-, singledispatch
-, futures
+, backports_abc ? null
+, backports_ssl_match_hostname ? null
+, certifi ? null
+, singledispatch ? null
+, futures ? null
 , isPy27
 }:
 
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index 9dad7d77ff9..0fc0ffbf2e7 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "3.20.1";
+  version = "3.23.0";
 
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4321052bfe28f9d85082341ca8e233e3ea901fdd14dab8a5d3fbd810269fbaf6";
+    sha256 = "05a4dbd5e4d3d8269b72b55600f0b0303e2eb47ad5c6fe76d3576f4c58d93661";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 950a618a527..ae89b3ee0b0 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
@@ -13,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.58.0";
+  version = "4.60.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fjvaag1wy70gglxjkfnn0acrya7fbhzi4adbs1bpap8x03wffn2";
+    sha256 = "ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae";
   };
 
   nativeBuildInputs = [
@@ -30,21 +31,27 @@ buildPythonPackage rec {
     pytest-timeout
     # tests of optional features
     numpy
-    pandas
     rich
     tkinter
-  ];
+  ] ++
+    # pandas is not supported on i686
+    lib.optional (!stdenv.isi686) pandas;
 
   # Remove performance testing.
   # Too sensitive for on Hydra.
-  PYTEST_ADDOPTS = "-k \"not perf\"";
+  disabledTests = [
+    "perf"
+  ];
 
   LC_ALL="en_US.UTF-8";
 
-  meta = {
+  pythonImportsCheck = [ "tqdm" ];
+
+  meta = with lib; {
     description = "A Fast, Extensible Progress Meter";
     homepage = "https://github.com/tqdm/tqdm";
-    license = with lib.licenses; [ mit ];
-    maintainers = with lib.maintainers; [ fridh ];
+    changelog = "https://tqdm.github.io/releases/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/pkgs/development/python-modules/traits/default.nix b/pkgs/development/python-modules/traits/default.nix
index d9986dd87fe..e4e82db9e44 100644
--- a/pkgs/development/python-modules/traits/default.nix
+++ b/pkgs/development/python-modules/traits/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "traits";
-  version = "6.1.1";
+  version = "6.2.0";
   disabled = isPy27; # setup.py no longer py3 compat
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "807da52ee0d4fc1241c8f8a04d274a28d4b23d3a5f942152497d19405482d04f";
+    sha256 = "16fa1518b0778fd53bf0547e6a562b1787bf68c8f6b7995a13bd1902529fdb0c";
   };
 
   # Use pytest because its easier to discover tests
diff --git a/pkgs/development/python-modules/transmission-rpc/default.nix b/pkgs/development/python-modules/transmission-rpc/default.nix
index 235540209e3..533b34ca343 100644
--- a/pkgs/development/python-modules/transmission-rpc/default.nix
+++ b/pkgs/development/python-modules/transmission-rpc/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "transmission-rpc";
-  version = "3.2.2";
+  version = "3.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1y5048109j6z4smzwysvdjfn6cj9698dsxfim9i4nqam4nmw2wi7";
+    sha256 = "f852d1afd0f0d4f515fe20f0de94d57b6d2e36cbac45e07da43ea0b6518f535c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/treq/default.nix b/pkgs/development/python-modules/treq/default.nix
index 447e2a5b986..ec648281c89 100644
--- a/pkgs/development/python-modules/treq/default.nix
+++ b/pkgs/development/python-modules/treq/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "treq";
-  version = "20.9.0";
+  version = "21.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "83cd2ca75aef4f1fbdbe144c186426d930c3e8b20385df8cec9e12d442986da2";
+    sha256 = "fdae0c872c444ed96c3cb11be8445d22e4afb731e87fdddae3b00c609e77199f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index d4a021a0e31..aad81957d72 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.9.7";
+  version = "3.9.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63dd76531a4c6ddd53e00209b971e83d3fbfd9b012f4033a1c4b0f04f1f551e3";
+    sha256 = "7ed243bc818f7a9a021d8dd39f69ae7ed366dfd9582b13d686e1b1e8c8326bcf";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trollius/default.nix b/pkgs/development/python-modules/trollius/default.nix
deleted file mode 100644
index 019326c5421..00000000000
--- a/pkgs/development/python-modules/trollius/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, isPy3k, mock, unittest2, six, futures }:
-
-buildPythonPackage rec {
-  pname = "trollius";
-  version = "2.2.post1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "06s44k6pcq35vl5j4i2pgkpb848djal818qypcvx44gyn4azjrqn";
-  };
-
-  checkInputs = [ mock ] ++ lib.optional (!isPy3k) unittest2;
-
-  propagatedBuildInputs = [ six ] ++ lib.optional (!isPy3k) futures;
-
-  patches = [
-    ./tests.patch
-  ];
-
-  disabled = isPy3k;
-
-  postPatch = ''
-    # Overrides PYTHONPATH causing dependencies not to be found
-    sed -i -e "s|test_env_var_debug|skip_test_env_var_debug|g" tests/test_tasks.py
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Some of the tests fail on darwin with `error: AF_UNIX path too long'
-    # because of the *long* path names for sockets
-    sed -i -e "s|test_create_ssl_unix_connection|skip_test_create_ssl_unix_connection|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_connection|skip_test_create_unix_connection|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_existing_path_nonsock|skip_test_create_unix_server_existing_path_nonsock|g" tests/test_unix_events.py
-    sed -i -e "s|test_create_unix_server_existing_path_sock|skip_test_create_unix_server_existing_path_sock|g" tests/test_unix_events.py
-    sed -i -e "s|test_create_unix_server_ssl_verified|skip_test_create_unix_server_ssl_verified|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_ssl_verify_failed|skip_test_create_unix_server_ssl_verify_failed|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server_ssl|skip_test_create_unix_server_ssl|g" tests/test_events.py
-    sed -i -e "s|test_create_unix_server|skip_test_create_unix_server|g" tests/test_events.py
-    sed -i -e "s|test_open_unix_connection_error|skip_test_open_unix_connection_error|g" tests/test_streams.py
-    sed -i -e "s|test_open_unix_connection_no_loop_ssl|skip_test_open_unix_connection_no_loop_ssl|g" tests/test_streams.py
-    sed -i -e "s|test_open_unix_connection|skip_test_open_unix_connection|g" tests/test_streams.py
-    sed -i -e "s|test_pause_reading|skip_test_pause_reading|g" tests/test_subprocess.py
-    sed -i -e "s|test_read_pty_output|skip_test_read_pty_output|g" tests/test_events.py
-    sed -i -e "s|test_start_unix_server|skip_test_start_unix_server|g" tests/test_streams.py
-    sed -i -e "s|test_unix_sock_client_ops|skip_test_unix_sock_client_ops|g" tests/test_events.py
-    sed -i -e "s|test_write_pty|skip_test_write_pty|g" tests/test_events.py
-  '';
-
-  meta = with lib; {
-    description = "Port of the asyncio project to Python 2.7";
-    homepage = "https://github.com/vstinner/trollius";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/trollius/tests.patch b/pkgs/development/python-modules/trollius/tests.patch
deleted file mode 100644
index 4923bded949..00000000000
--- a/pkgs/development/python-modules/trollius/tests.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git i/tests/test_asyncio.py w/tests/test_asyncio.py
-index 39d9e1a..05b7e6f 100644
---- i/tests/test_asyncio.py
-+++ w/tests/test_asyncio.py
-@@ -69,7 +69,7 @@ class AsyncioTests(test_utils.TestCase):
-             def step_future():
-                 future = asyncio.Future()
-                 self.loop.call_soon(future.set_result, "asyncio.Future")
--                return (yield from future)
-+                return (yield From(future))
- 
-             # test in release mode
-             trollius.coroutines._DEBUG = False
diff --git a/pkgs/development/python-modules/trustme/default.nix b/pkgs/development/python-modules/trustme/default.nix
index 4c99c8e9377..a959bef1682 100644
--- a/pkgs/development/python-modules/trustme/default.nix
+++ b/pkgs/development/python-modules/trustme/default.nix
@@ -1,28 +1,29 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , isPy3k
 , cryptography
-, futures
-, pytest
+, futures ? null
 , pyopenssl
 , service-identity
+, pytestCheckHook
 , idna
 }:
 
 buildPythonPackage rec {
   pname = "trustme";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9dfb18b568729d0219f758cddca1a91bab59f62ca41ee0e8acce5e657ec97b6c";
+    sha256 = "1fde1dd27052ab5e5693e1fbe3ba091a6496daf1125409d73232561145fca369";
   };
 
   checkInputs = [
-    pytest
     pyopenssl
     service-identity
+    pytestCheckHook
   ];
 
   propagatedBuildInputs = [
@@ -32,9 +33,11 @@ buildPythonPackage rec {
     futures
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  # aarch64-darwin forbids W+X memory, but this tests depends on it:
+  # * https://github.com/pyca/pyopenssl/issues/873
+  disabledTests = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    "test_pyopenssl_end_to_end"
+  ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 20394fb2de6..1be8fc18d27 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "5.8.4";
+  version = "5.8.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28e467b51f6dc67b8b4ca60afec82614bba8cf78852c1941cc9071d615ba7972";
+    sha256 = "62753cebdae2d9e2d6bf8a5dde840ef77540414c4df76c8ed202c0c0d0bedb02";
   };
 
   # Tells the tests which database to use
diff --git a/pkgs/development/python-modules/tweepy/default.nix b/pkgs/development/python-modules/tweepy/default.nix
index 1c5535ec079..dd11e60aff6 100644
--- a/pkgs/development/python-modules/tweepy/default.nix
+++ b/pkgs/development/python-modules/tweepy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tweepy";
-  version = "3.9.0";
+  version = "3.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bfd19a5c11f35f7f199c795f99d9cbf8a52eb33f0ecfb6c91ee10b601180f604";
+    sha256 = "76e6954b806ca470dda877f57db8792fff06a0beba0ed43efc3805771e39f06a";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index e234084d31d..36a7edcf7de 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "twill";
-  version = "2.0.2";
+  version = "3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc694ac1cb0616cfba2f9db4720e9d354bf656c318e21ef604a7e3caaef83d10";
+    sha256 = "01770eddb34f5fe6ee59992b84619968885d359ad3d6d9191e8ba8eec93482aa";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 47f9fe1a034..9a246faff51 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -14,16 +14,17 @@
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "3.2.0";
+  version = "3.4.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab";
+    sha256 = "a56c985264b991dc8a8f4234eb80c5af87fa8080d0c224ad8f2cd05a2c22e83b";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [
+    importlib-metadata
     keyring
     pkginfo
     pyblake2
@@ -33,7 +34,7 @@ buildPythonPackage rec {
     tqdm
     colorama
     rfc3986
-  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  ];
 
   # Requires network
   doCheck = false;
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
index a53a3fda616..b45218219c5 100644
--- a/pkgs/development/python-modules/twitterapi/default.nix
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "twitterapi";
-  version = "2.6.10";
+  version = "2.7.3";
 
   src = fetchFromGitHub {
     owner = "geduldig";
     repo = "TwitterAPI";
     rev = "v${version}";
-    sha256 = "sha256-ylxjeIK9cjT4r71j+sULYs6yyYWfKDkpm0bESMo7s3o=";
+    sha256 = "sha256-82TOVrC7wX7E9lKsx3iGxaEEjHSzf5uZwePBvAw3hDk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 814b6234ee3..c2f2c9451bd 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "20.4.1";
+  version = "21.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17938f2bca4a9cabce61346758e482ca4e600160cbc28e861493eac74a19539d";
+    sha256 = "7d6f89745680233f1c4db9ddb748df5e88d2a7a37962be174c0fd04c8dba1dc8";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/pkgs/development/python-modules/typecode/default.nix b/pkgs/development/python-modules/typecode/default.nix
new file mode 100644
index 00000000000..c1208193f01
--- /dev/null
+++ b/pkgs/development/python-modules/typecode/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools-scm
+, attrs
+, pdfminer
+, commoncode
+, plugincode
+, binaryornot
+, typecode-libmagic
+, pytestCheckHook
+, pytest-xdist
+}:
+buildPythonPackage rec {
+  pname = "typecode";
+  version = "21.2.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eaac8aee0b9c6142ad44671252ba00748202d218347d1c0451ce6cd76561e01b";
+  };
+
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    pdfminer
+    commoncode
+    plugincode
+    binaryornot
+    typecode-libmagic
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
+
+  pythonImportsCheck = [
+    "typecode"
+  ];
+
+  meta = with lib; {
+    description = "Comprehensive filetype and mimetype detection using libmagic and Pygments";
+    homepage = "https://github.com/nexB/typecode";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/typecode/libmagic.nix b/pkgs/development/python-modules/typecode/libmagic.nix
new file mode 100644
index 00000000000..9b652e664e5
--- /dev/null
+++ b/pkgs/development/python-modules/typecode/libmagic.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, plugincode
+, file
+, zlib
+, pytest
+}:
+buildPythonPackage rec {
+  pname = "typecode-libmagic";
+  version = "21.4.4";
+
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = "scancode-plugins";
+    rev = "v${version}";
+    sha256 = "xnUGDMS34iMVMGo/nZwRarGzzbj3X4Rt+YHvvKpmy6A=";
+  };
+
+  sourceRoot = "source/builtins/typecode_libmagic-linux";
+
+  propagatedBuildInputs = [
+    plugincode
+  ];
+
+  preBuild = ''
+    pushd src/typecode_libmagic
+
+    rm data/magic.mgc lib/libmagic.so lib/libz-lm539.so.1
+    ln -s ${file}/share/misc/magic.mgc data/magic.mgc
+    ln -s ${file}/lib/libmagic.so lib/libmagic.so
+    ln -s ${zlib}/lib/libz.so lib/libz-lm539.so.1
+
+    popd
+  '';
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "typecode_libmagic"
+  ];
+
+  meta = with lib; {
+    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/typecode_libmagic-linux";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 7aced09b33d..2ee404cb18e 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -2,7 +2,7 @@
 , fetchPypi
 , pythonOlder
 , lib
-, setuptools_scm
+, setuptools-scm
 , pytest
 , typing-extensions
 , glibcLocales
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.10.0";
+  version = "2.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d830132dcd544d3f8a2a842ea739eaa0d7c099fcebb9dcdf3802f4c9929d8191";
+    sha256 = "sha256-/Kd/1My6Y0ZbQhzburWhqOOZTm1vGLRdortHXAnxR+8=";
   };
 
-  buildInputs = [ setuptools_scm ];
+  buildInputs = [ setuptools-scm ];
   nativeBuildInputs = [ glibcLocales ];
 
   LC_ALL="en_US.utf-8";
@@ -28,8 +28,9 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest typing-extensions ];
 
+  # mypy tests aren't passing with latest mypy
   checkPhase = ''
-    py.test .
+    py.test . --ignore=tests/mypy
   '';
 
   disabled = pythonOlder "3.3";
diff --git a/pkgs/development/python-modules/typing/default.nix b/pkgs/development/python-modules/typing/default.nix
index 0d5c2119921..823ee2af29e 100644
--- a/pkgs/development/python-modules/typing/default.nix
+++ b/pkgs/development/python-modules/typing/default.nix
@@ -1,4 +1,5 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy3k, isPyPy, python }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy3k, isPyPy, python
+, pythonAtLeast }:
 
 let
   testDir = if isPy3k then "src" else "python2";
@@ -12,6 +13,8 @@ in buildPythonPackage rec {
     sha256 = "1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9";
   };
 
+  disabled = pythonAtLeast "3.5";
+
   # Error for Python3.6: ImportError: cannot import name 'ann_module'
   # See https://github.com/python/typing/pull/280
   # Also, don't bother on PyPy: AssertionError: TypeError not raised
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index b9abe2bb768..f888704e6a8 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -13,21 +13,15 @@
 
 buildPythonPackage rec {
   pname = "umap-learn";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "lmcinnes";
     repo = "umap";
     rev = version;
-    sha256 = "sha256-2Z5RDi4bz8hh8zMwkcCQY9NrGaVd1DJEBOmrCl2oSvM=";
+    sha256 = "0favphngcz5jvyqs06x07hk552lvl9qx3vka8r4x0xmv88gsg349";
   };
 
-  checkInputs = [
-    nose
-    tensorflow
-    pytestCheckHook
-  ];
-
   propagatedBuildInputs = [
     numpy
     scikitlearn
@@ -36,6 +30,12 @@ buildPythonPackage rec {
     pynndescent
   ];
 
+  checkInputs = [
+    nose
+    tensorflow
+    pytestCheckHook
+  ];
+
   preCheck = ''
     export HOME=$TMPDIR
   '';
diff --git a/pkgs/development/python-modules/unidecode/default.nix b/pkgs/development/python-modules/unidecode/default.nix
index 65cb0882380..3ff2e3b981e 100644
--- a/pkgs/development/python-modules/unidecode/default.nix
+++ b/pkgs/development/python-modules/unidecode/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Unidecode";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a039f89014245e0cad8858976293e23501accc9ff5a7bdbc739a14a2b7b85cdc";
+    sha256 = "8d73a97d387a956922344f6b74243c2c6771594659778744b2dbdaad8f6b727d";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/unify/default.nix b/pkgs/development/python-modules/unify/default.nix
new file mode 100644
index 00000000000..a1061ad9df9
--- /dev/null
+++ b/pkgs/development/python-modules/unify/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, untokenize
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "unify";
+  version = "0.5";
+
+  # PyPi release is missing tests (see https://github.com/myint/unify/pull/18)
+  src = fetchFromGitHub {
+    owner = "myint";
+    repo = "unify";
+    rev = "v${version}";
+    sha256 = "1l6xxygaigacsxf0g5f7w5gpqha1ava6mcns81kqqy6vw91pyrbi";
+  };
+
+  propagatedBuildInputs = [ untokenize ];
+
+  checkPhase = "${python.interpreter} -m unittest discover";
+
+  meta = with lib; {
+    description = "Modifies strings to all use the same quote where possible";
+    homepage = "https://github.com/myint/unify";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/python-modules/untokenize/default.nix b/pkgs/development/python-modules/untokenize/default.nix
new file mode 100644
index 00000000000..55becfeac4e
--- /dev/null
+++ b/pkgs/development/python-modules/untokenize/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "untokenize";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3865dbbbb8efb4bb5eaa72f1be7f3e0be00ea8b7f125c69cbd1f5fda926f37a2";
+  };
+
+  checkPhase = "${python.interpreter} -m unittest discover";
+
+  meta = with lib; {
+    description = "Transforms tokens into original source code while preserving whitespace";
+    homepage = "https://github.com/myint/untokenize";
+    license = licenses.mit;
+    maintainers = with maintainers; [ FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/python-modules/uproot3-methods/default.nix b/pkgs/development/python-modules/uproot3-methods/default.nix
index 9fb9807d399..f5760b974ff 100644
--- a/pkgs/development/python-modules/uproot3-methods/default.nix
+++ b/pkgs/development/python-modules/uproot3-methods/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-3Wj5C+HqJ2NguWNpg2hJ3ykEX3/k5TT5rCHqAHmO41g=";
+    sha256 = "dd68f90be1ea276360b96369836849df29045f7fe4e534f9ac21ea00798ee358";
   };
 
   nativeBuildInputs = [ awkward0 ];
diff --git a/pkgs/development/python-modules/uproot3/default.nix b/pkgs/development/python-modules/uproot3/default.nix
index c6923773427..e5b3903eefa 100644
--- a/pkgs/development/python-modules/uproot3/default.nix
+++ b/pkgs/development/python-modules/uproot3/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, buildPythonPackage, isPy27
-, awkward0, backports_lzma, cachetools, lz4, pandas
+, awkward0, backports_lzma ? null, cachetools, lz4, pandas
 , pytestCheckHook, pkgconfig, mock
 , numpy, requests, uproot3-methods, xxhash, zstandard
 }:
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index 0c068428f6c..db8c8c8bd23 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, cryptography, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "4.7.1";
+  version = "4.9.0";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "1h5d3scy3cnbyhh0pbavflpqklhn2lbp7hl193rc5gx8yzr3mqbh";
+    sha256 = "0bqrc4g4pd7b209swlv06bm5sx7df96h9kjpqpra4mfz469km4nn";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/pkgs/development/python-modules/uritools/default.nix b/pkgs/development/python-modules/uritools/default.nix
index 2f4710eea46..d90bf39f336 100644
--- a/pkgs/development/python-modules/uritools/default.nix
+++ b/pkgs/development/python-modules/uritools/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "uritools";
-  version = "3.0.0";
+  version = "3.0.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "405917a31ce58a57c8ccd0e4ea290f38baf2f4823819c3688f5331f1aee4ccb0";
+    sha256 = "a3e9c794d44fdbd54642dcb7d6ef3ba9866d953eb34f65aeca3754b7ad5c1ea0";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/urlpy/default.nix b/pkgs/development/python-modules/urlpy/default.nix
new file mode 100644
index 00000000000..cd0e028c50c
--- /dev/null
+++ b/pkgs/development/python-modules/urlpy/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, publicsuffix2
+, pytestCheckHook
+, pythonAtLeast
+}:
+buildPythonPackage rec {
+  pname = "urlpy";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = "urlpy";
+    rev = "v${version}";
+    sha256 = "962jLyx+/GS8wrDPzG2ONnHvtUG5Pqe6l1Z5ml63Cmg=";
+  };
+
+  dontConfigure = true;
+
+  propagatedBuildInputs = [
+    publicsuffix2
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = lib.optionals (pythonAtLeast "3.9") [
+    # Fails with "AssertionError: assert 'unknown' == ''"
+    "test_unknown_protocol"
+  ];
+
+  pythonImportsCheck = [
+    "urlpy"
+  ];
+
+  meta = with lib; {
+    description = "Simple URL parsing, canonicalization and equivalence";
+    homepage = "https://github.com/nexB/urlpy";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/variants/default.nix b/pkgs/development/python-modules/variants/default.nix
index 11c50646700..3a45230720e 100644
--- a/pkgs/development/python-modules/variants/default.nix
+++ b/pkgs/development/python-modules/variants/default.nix
@@ -3,7 +3,7 @@
 , fetchPypi
 , pytestrunner
 , setuptools_scm
-, singledispatch
+, singledispatch ? null
 , pytest
 , lib
 }:
diff --git a/pkgs/development/python-modules/virtual-display/default.nix b/pkgs/development/python-modules/virtual-display/default.nix
index 7559ae1ccca..bf47297b1c5 100644
--- a/pkgs/development/python-modules/virtual-display/default.nix
+++ b/pkgs/development/python-modules/virtual-display/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyVirtualDisplay";
-  version = "2.0";
+  version = "2.1";
 
   propagatedBuildInputs = [ EasyProcess ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3cdacd70970a74d163a2417d8581f43a56bb1ac8d31c71a1a6a4348969062d65";
+    sha256 = "9d4c6957ec2c4753b5293fb6a60a90d7c27fc01bc5de9b5aa863f7c1e3fb4efc";
   };
 
   # requires X server
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index ec22660830b..bcd67260153 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.2.2";
+  version = "20.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7a8ec323ee02fb2312f098b6b4c9de99559b462775bc8fe3627a73706603c1b";
+    sha256 = "49ec4eb4c224c6f7dd81bb6d0a28a09ecae5894f4e593c89b0db0885f565a107";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/viv-utils/default.nix b/pkgs/development/python-modules/viv-utils/default.nix
new file mode 100644
index 00000000000..e94c96f72b0
--- /dev/null
+++ b/pkgs/development/python-modules/viv-utils/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
+, funcy
+, pefile
+, vivisect
+, intervaltree
+, setuptools
+}:
+buildPythonPackage rec {
+  pname = "viv-utils";
+  version = "0.3.17";
+  disabled = isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "williballenthin";
+    repo = "viv-utils";
+    rev = "v${version}";
+    sha256 = "wZWp6PMn1to/jP6lzlY/x0IhS/0w0Ys7AdklNQ+Vmyc=";
+  };
+
+  # argparse is provided by Python itself
+  preBuild = ''
+    sed '/"argparse",/d' -i setup.py
+  '';
+
+  propagatedBuildInputs = [
+    funcy
+    pefile
+    vivisect
+    intervaltree
+    setuptools
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "viv_utils"
+  ];
+
+  meta = with lib; {
+    description = "Utilities for working with vivisect";
+    homepage = "https://github.com/williballenthin/viv-utils";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/vivisect/default.nix b/pkgs/development/python-modules/vivisect/default.nix
new file mode 100644
index 00000000000..0d86f2ffbd9
--- /dev/null
+++ b/pkgs/development/python-modules/vivisect/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, pyasn1
+, pyasn1-modules
+, cxxfilt
+, msgpack
+, pycparser
+}:
+buildPythonPackage rec {
+  pname = "vivisect";
+  version = "0.1.0";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ed5e8c24684841d30dc7b41f2bee87c0198816a453417ae2e130b7845ccb2629";
+  };
+
+  propagatedBuildInputs = [
+    pyasn1
+    pyasn1-modules
+    cxxfilt
+    msgpack
+    pycparser
+  ];
+
+  preBuild = ''
+    sed "s@==.*'@'@" -i setup.py
+  '';
+
+  # requires another repo for test files
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "vivisect"
+  ];
+
+  meta = with lib; {
+    description = "Pure python disassembler, debugger, emulator, and static analysis framework";
+    homepage = "https://github.com/vivisect/vivisect";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index 4edd4c6ccff..aa09b0068d9 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "1.4.4";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bb436508a7487ac6cb097ae7a7fe5413aefca610550baf58f0940e51ecfb261";
+    sha256 = "69e1f242c7f80273490d3403c3976f3ac3b26e289856936d1f620ed48f321897";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index ef80dedeb98..df9586fc8e0 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -2,32 +2,22 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , argh
 , pathtools
 , pyyaml
-, pytest-cov
 , pytestCheckHook
 , CoreServices
 }:
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Uy/t2ZPnVVRnH6o2zQTFgM7T+uCEJUp3mvu9iq8AVms=";
+    sha256 = "sha256-QojTqYQyTbSS5XqhaWZiOKJXjwr1oIFoVSZgj7n2vWE=";
   };
 
-  patches = [
-    (fetchpatch {
-      # Fix test flakiness on Apple Silicon, remove after upgrade to 2.0.6.
-      url = "https://github.com/gorakhargosh/watchdog/commit/331fd7c2c819663be39bc146e78ce67553f265fa.patch";
-      sha256 = "sha256-pLkZmbPN3qRNHs53OP0HIyDxqYCPPo6yOcBLD3aO2YE=";
-    })
-  ];
-
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   propagatedBuildInputs = [
@@ -37,10 +27,15 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest-cov
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=watchdog" "" \
+      --replace "--cov-report=term-missing" ""
+  '';
+
   pythonImportsCheck = [ "watchdog" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/wcmatch/default.nix b/pkgs/development/python-modules/wcmatch/default.nix
index ade529e5627..bda48d3ec58 100644
--- a/pkgs/development/python-modules/wcmatch/default.nix
+++ b/pkgs/development/python-modules/wcmatch/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "wcmatch";
-  version = "8.1.1";
+  version = "8.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-e6CRkflYLoLYZIKb37qwLfRuJqRqME5Xx/5WUvB/KXo=";
+    sha256 = "efda751de15201b395b6d6e64e6ae3b6b03dc502a64c3c908aa5cad14c27eee5";
   };
 
   propagatedBuildInputs = [ bracex ];
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index a7188a3103f..8f946c47786 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage,
   fetchPypi,
+  fetchpatch,
   cairosvg,
   pyphen,
   cffi,
@@ -7,7 +8,6 @@
   lxml,
   html5lib,
   tinycss,
-  pygobject2,
   glib,
   pango,
   fontconfig,
@@ -43,9 +43,15 @@ buildPythonPackage rec {
 
   FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
 
-  propagatedBuildInputs = [ cairosvg pyphen cffi cssselect lxml html5lib tinycss pygobject2 ];
+  propagatedBuildInputs = [ cairosvg pyphen cffi cssselect lxml html5lib tinycss ];
 
+  # 47043a1fd7e50a892b9836466f521df85d597c4.patch can be removed after next release of weasyprint, see:
+  # https://github.com/Kozea/WeasyPrint/issues/1333#issuecomment-818062970
   patches = [
+    (fetchpatch {
+      url = "https://github.com/Kozea/WeasyPrint/commit/47043a1fd7e50a892b9836466f521df85d597c44.patch";
+      sha256 = "0l9z0hrav3bcdajlg3vbzljq0lkw7hlj8ppzrq3v21hbj1il1nsb";
+    })
     (substituteAll {
       src = ./library-paths.patch;
       fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
diff --git a/pkgs/development/python-modules/weboob/default.nix b/pkgs/development/python-modules/weboob/default.nix
index 861cb38389a..3ce15a3fdce 100644
--- a/pkgs/development/python-modules/weboob/default.nix
+++ b/pkgs/development/python-modules/weboob/default.nix
@@ -3,7 +3,7 @@
 , cssselect
 , dateutil
 , feedparser
-, futures
+, futures ? null
 , gdata
 , gnupg
 , google-api-python-client
diff --git a/pkgs/development/python-modules/whois/default.nix b/pkgs/development/python-modules/whois/default.nix
index 759bc0cd8ee..ef69283e6db 100644
--- a/pkgs/development/python-modules/whois/default.nix
+++ b/pkgs/development/python-modules/whois/default.nix
@@ -1,19 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
 , inetutils
 }:
 
 buildPythonPackage rec {
   pname = "whois";
-  version = "0.9.7";
+  version = "0.9.13";
 
   src = fetchFromGitHub {
     owner = "DannyCork";
     repo = "python-whois";
     rev = version;
-    sha256 = "1rbc4xif4dn455vc8dhxdvwszrb0nik5q9fy12db6mxfx6zikb7z";
+    sha256 = "0y2sfs6nkr2j2crrn81wkfdzn9aphb3iaddya5zd2midlgdqq7bw";
   };
 
   # whois is needed
diff --git a/pkgs/development/python-modules/woob/default.nix b/pkgs/development/python-modules/woob/default.nix
new file mode 100644
index 00000000000..4794843a66d
--- /dev/null
+++ b/pkgs/development/python-modules/woob/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, Babel
+, colorama
+, cssselect
+, dateutil
+, feedparser
+, gdata
+, gnupg
+, google-api-python-client
+, html2text
+, libyaml
+, lxml
+, mechanize
+, nose
+, pdfminer
+, pillow
+, prettytable
+, pyqt5
+, pyyaml
+, requests
+, simplejson
+, termcolor
+, unidecode
+}:
+
+buildPythonPackage rec {
+  pname = "woob";
+  version = "3.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09hpxy5zhn2b8li0xjf3zd7s46lawb0315p5mdcsci3bj3s4v1j7";
+  };
+
+  patches = [
+    # Disable doctests that require networking:
+    ./no-test-requiring-network.patch
+  ];
+
+  checkInputs = [ nose ];
+
+  nativeBuildInputs = [ pyqt5 ];
+
+  propagatedBuildInputs = [
+    Babel
+    colorama
+    cssselect
+    dateutil
+    feedparser
+    gdata
+    gnupg
+    google-api-python-client
+    html2text
+    libyaml
+    lxml
+    mechanize
+    pdfminer
+    pillow
+    prettytable
+    pyqt5
+    pyyaml
+    requests
+    simplejson
+    termcolor
+    unidecode
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    homepage = "https://woob.tech";
+    description = "Collection of applications and APIs to interact with websites without requiring the user to open a browser";
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.DamienCassou ];
+ };
+}
diff --git a/pkgs/development/python-modules/woob/no-test-requiring-network.patch b/pkgs/development/python-modules/woob/no-test-requiring-network.patch
new file mode 100644
index 00000000000..7095019d054
--- /dev/null
+++ b/pkgs/development/python-modules/woob/no-test-requiring-network.patch
@@ -0,0 +1,54 @@
+--- a/woob/browser/browsers.py
++++ b/woob/browser/browsers.py
+@@ -930,23 +930,6 @@
+
+         :class:`NextPage` constructor can take an url or a Request object.
+
+-        >>> from .pages import HTMLPage
+-        >>> class Page(HTMLPage):
+-        ...     def iter_values(self):
+-        ...         for el in self.doc.xpath('//li'):
+-        ...             yield el.text
+-        ...         for next in self.doc.xpath('//a'):
+-        ...             raise NextPage(next.attrib['href'])
+-        ...
+-        >>> class Browser(PagesBrowser):
+-        ...     BASEURL = 'https://woob.tech'
+-        ...     list = URL('/tests/list-(?P<pagenum>\d+).html', Page)
+-        ...
+-        >>> b = Browser()
+-        >>> b.list.go(pagenum=1) # doctest: +ELLIPSIS
+-        <woob.browser.browsers.Page object at 0x...>
+-        >>> list(b.pagination(lambda: b.page.iter_values()))
+-        ['One', 'Two', 'Three', 'Four']
+         """
+         while True:
+             try:
+--- a/woob/browser/pages.py
++++ b/woob/browser/pages.py
+@@ -49,25 +49,6 @@
+
+     :class:`NextPage` constructor can take an url or a Request object.
+
+-    >>> class Page(HTMLPage):
+-    ...     @pagination
+-    ...     def iter_values(self):
+-    ...         for el in self.doc.xpath('//li'):
+-    ...             yield el.text
+-    ...         for next in self.doc.xpath('//a'):
+-    ...             raise NextPage(next.attrib['href'])
+-    ...
+-    >>> from .browsers import PagesBrowser
+-    >>> from .url import URL
+-    >>> class Browser(PagesBrowser):
+-    ...     BASEURL = 'https://woob.tech'
+-    ...     list = URL('/tests/list-(?P<pagenum>\d+).html', Page)
+-    ...
+-    >>> b = Browser()
+-    >>> b.list.go(pagenum=1) # doctest: +ELLIPSIS
+-    <woob.browser.pages.Page object at 0x...>
+-    >>> list(b.page.iter_values())
+-    ['One', 'Two', 'Three', 'Four']
+     """
+
+     @wraps(func)
diff --git a/pkgs/development/python-modules/woodblock/default.nix b/pkgs/development/python-modules/woodblock/default.nix
new file mode 100644
index 00000000000..7497ad15489
--- /dev/null
+++ b/pkgs/development/python-modules/woodblock/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, multimethod
+, numpy
+}:
+buildPythonPackage rec {
+  pname = "woodblock";
+  version = "0.1.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c0347ece920b7009d94551983a01f42db02920ca8d7b0ff36d24a337e2c937f7";
+  };
+
+  propagatedBuildInputs = [
+    click
+    multimethod
+    numpy
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "woodblock"
+  ];
+
+  meta = with lib; {
+    description = "A framework to generate file carving test data";
+    homepage = "https://github.com/fkie-cad/woodblock";
+    license = licenses.mit;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index 42402c259ab..e69e144ccfe 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.16.2";
+  version = "0.17.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OOhDnWyRvNW3wPyjSdr44GQ6xohQyYcmLVNSbp19AeQ=";
+    sha256 = "9c2edad2a4e588f9117c666a4249920b9717fb75703b96998cf65fcd4f60551f";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 3da25743594..59cad86606f 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "5.0.8";
+  version = "5.0.9";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
     rev = version;
-    sha256 = "01g1bk7rscwmvr2i183z0y2bs1iw7bxk7c5rcf9gf25242nppv6a";
+    sha256 = "sha256-joKPTEq0UabXMyld0DHrhC1D/Om2B5st0qa2F9r0muA=";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index a181a674188..aefe3ed2b95 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.18.0";
+  version = "0.18.1";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "XKNX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8g8DrFvhecdPsfiw+uKnfJOrLQeuFUziK2Jl3xKmrf4=";
+    sha256 = "sha256-Zf7Od3v54LxMofm67XHeRM4Yeg1+KQLRhFl1BihAxGc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xlrd/default.nix b/pkgs/development/python-modules/xlrd/default.nix
index d880fd83396..bc88880f30a 100644
--- a/pkgs/development/python-modules/xlrd/default.nix
+++ b/pkgs/development/python-modules/xlrd/default.nix
@@ -1,23 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "xlrd";
-  version = "1.2.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2";
+    sha256 = "f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    py.test -k "not test_tilde_path_expansion"
-  '';
+  # No tests in archive
+  doCheck = false;
 
   meta = with lib; {
     homepage = "http://www.python-excel.org/";
diff --git a/pkgs/development/python-modules/xlsx2csv/default.nix b/pkgs/development/python-modules/xlsx2csv/default.nix
index 6f7726da68d..47576e6ee60 100644
--- a/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -13,10 +13,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/bitprophet/alabaster";
+    homepage = "https://github.com/dilshod/xlsx2csv";
     description = "Convert xlsx to csv";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index fdf042c2ac2..5b50716f2f1 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "3.5.0";
+  version = "3.6.0";
   disabled = pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3ec836a9545f549707a8c8176038160185b9d08c1dd80304a906527da21bff68";
+    sha256 = "a9aa2e7c156a1acb0931086637d31efe9302a771641bc35938383cefbd27ba9d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index e31054e74c1..58d50d7b6cf 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -5,14 +5,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.1";
+  version = "1.5.3";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "1yd7whf74z8bw99gldxlnrs8bjnjzald29b5cf2ka0i144sxbvad";
+    sha256 = "0pv8zdz03wjnjwrgjr5pc3q69h7zh51h0iwgwxwl65qi1r6ydk54";
   };
 
   propagatedBuildInputs = [ elementpath ];
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index c65c88b88d5..e20536b30eb 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.1.10";
+  version = "1.1.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qmxiafqmh51i3l30pajaqj5h0kziq4d37fn6hl58429bb85dpp9";
+    sha256 = "sha256-fVUYrzIcW4jbxdhS/Bh8eu+aJPFOqj0LXjoQKw+FZdg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yamlloader/default.nix b/pkgs/development/python-modules/yamlloader/default.nix
index c8b2d5949cb..d2b66cb073d 100644
--- a/pkgs/development/python-modules/yamlloader/default.nix
+++ b/pkgs/development/python-modules/yamlloader/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi
-, pytest, pyyaml
+, pytest, pyyaml, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "yamlloader";
-  version = "0.5.5";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3KtfFrObsD0Q3aTNTzDJQ2dexMd3GAf8Z+fxuzGb9Mg=";
+    sha256 = "e96dc3dc6895d814c330c054c966d993fc81ef1dbf5a30a4bdafeb256359e058";
   };
 
   propagatedBuildInputs = [
@@ -16,6 +16,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    hypothesis
     pytest
   ];
 
diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix
index 85b282566ee..9d435c1cce6 100644
--- a/pkgs/development/python-modules/yeelight/default.nix
+++ b/pkgs/development/python-modules/yeelight/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "yeelight";
-  version = "0.6.0";
+  version = "0.6.1";
   disabled = pythonOlder "3.4";
 
   src = fetchFromGitLab {
     owner = "stavros";
     repo = "python-yeelight";
     rev = "v${version}";
-    sha256 = "0yycc2pdqaa9y46jycvm0p6braps7ljg2vvljngdqj2l1a2jmv7x";
+    sha256 = "sha256-LB7A8E22hyqhVBElrOwtC3IPNkyQkU7ZJ1ScqaXQ6zs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index 7ae56cacbb6..bceac92d79e 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.1.55";
+  version = "0.1.56";
 
   # GitHub source releases aren't tagged
   src = fetchPypi {
     inherit pname version;
-    sha256 = "65d39bccf16bef35f6a08bf0df33650c0515b5ce8ea3c53924601f5fe00590cb";
+    sha256 = "a6d4c7b939fdd48d983556501f5b387e20aaef86afc8e6ba6f91a49a7e22d2dd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 1f211cd2872..4728da51a64 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.15.1";
+  version = "0.16.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-W/eZubJ/SNLBya1S6wLUwTwZCUD+wCQ5FAuNcSpl+9Y=";
+    sha256 = "sha256-/94/taeBI6xZ3uN/wfMnk/NPmk+j0+aaH8CAZBEsK10=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index d9c42910e64..34335c65e1a 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.56";
+  version = "0.0.57";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "1jss5pnxdjlp0kplqxgr09vv1zq9n7l9w08hsywy2vglqmd67a66";
+    sha256 = "sha256-ajdluj6UIzjJUK30GtoM+e5lsMQRKnn3FPNEg+RS/DM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix
index 1dafe8cbb0c..ccb916a147a 100644
--- a/pkgs/development/python-modules/zipp/default.nix
+++ b/pkgs/development/python-modules/zipp/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zipp";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb";
+    sha256 = "3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/pkgs/development/python-modules/zope_component/default.nix b/pkgs/development/python-modules/zope_component/default.nix
index 65556c9dc41..41c15fcd130 100644
--- a/pkgs/development/python-modules/zope_component/default.nix
+++ b/pkgs/development/python-modules/zope_component/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "zope.component";
-  version = "4.6.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91628918218b3e6f6323de2a7b845e09ddc5cae131c034896c051b084bba3c92";
+    sha256 = "df541a0501c79123f9ac30c6686a9e45c2690c5c3ae4f2b7f4c6fd1a3aaaf614";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zope_interface/default.nix b/pkgs/development/python-modules/zope_interface/default.nix
index 7b5d7abf682..15a179c0d64 100644
--- a/pkgs/development/python-modules/zope_interface/default.nix
+++ b/pkgs/development/python-modules/zope_interface/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.interface";
-  version = "5.2.0";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8251f06a77985a2729a8bdbefbae79ee78567dddc3acbd499b87e705ca59fe24";
+    sha256 = "b18a855f8504743e0a2d8b75d008c7720d44e4c76687e13f959e35d9a13eb397";
   };
 
   propagatedBuildInputs = [ zope_event ];
diff --git a/pkgs/development/python-modules/zope_schema/default.nix b/pkgs/development/python-modules/zope_schema/default.nix
index 43fab18daeb..00defd16150 100644
--- a/pkgs/development/python-modules/zope_schema/default.nix
+++ b/pkgs/development/python-modules/zope_schema/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.schema";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9b3fc3ac656099aa9ebf3beb2bbd83d2d6ee6f94b9ac6969d6e3993ec9c4a197";
+    sha256 = "9fa04d95e8e7e9056091eed9819da6e65dde68de39c2b93617d361d1eb8a7c0c";
   };
 
   propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
diff --git a/pkgs/development/python-modules/zope_testing/default.nix b/pkgs/development/python-modules/zope_testing/default.nix
index 2f37f15453d..ea2d531f763 100644
--- a/pkgs/development/python-modules/zope_testing/default.nix
+++ b/pkgs/development/python-modules/zope_testing/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testing";
-  version = "4.7";
+  version = "4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d66be8d1de37e8536ca58a1d9f4d89a68c9cc75cc0e788a175c8a20ae26003ea";
+    sha256 = "475cb847a7af9d547313ee93f5d0b8800bf627e6d0d9a51d11967984083cb54e";
   };
 
   doCheck = !isPyPy;
diff --git a/pkgs/development/python-modules/zope_testrunner/default.nix b/pkgs/development/python-modules/zope_testrunner/default.nix
index 5ee42c84275..c3bc0d0bff4 100644
--- a/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "5.2";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "873d6017abadc213992a0c38c786ed020341b6e0fe78d14bc2a684cf5a70de4b";
+    sha256 = "39a5ba631830703ea011383447135063db6d182794487dda9b8c1f515bb70b0f";
   };
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index fc5f8c3161e..724a5d9d679 100755
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "zstandard";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb7c6a6f7d62350b9f5539045da54422975630e34dd9069584cc776b9917115f";
+    sha256 = "52de08355fd5cfb3ef4533891092bb96229d43c2069703d4aff04fdbedf9c92f";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
new file mode 100644
index 00000000000..61dba04a79e
--- /dev/null
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "zwave-js-server-python";
+  version = "0.23.1";
+  disabled = pythonOlder "3.8";
+
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-libs";
+    repo = pname;
+    rev = version;
+    sha256 = "0kmmhn357k22ana0ysd8jlz1fyfaqlc8k74ryaik0rrw7nmn1n11";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "zwave_js_server" ];
+
+  meta = with lib; {
+    description = "Python wrapper for zwave-js-server";
+    homepage = "https://github.com/home-assistant-libs/zwave-js-server-python";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 99c535fa338..d0d67bff21d 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -20,12 +20,13 @@
 { lib, fetchurl, writeScript, ruby, libkrb5, libxml2, libxslt, python, stdenv, which
 , libiconv, postgresql, v8, clang, sqlite, zlib, imagemagick, lasem
 , pkg-config , ncurses, xapian, gpgme, util-linux, tzdata, icu, libffi
-, cmake, libssh2, openssl, libmysqlclient, darwin, git, perl, pcre, gecode_3, curl
+, cmake, libssh2, openssl, libmysqlclient, git, perl, pcre, gecode_3, curl
 , msgpack, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem
 , cairo, re2, rake, gobject-introspection, gdk-pixbuf, zeromq, czmq, graphicsmagick, libcxx
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
 , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
-, bundler, libsass, libselinux ? null, libsepol ? null, shared-mime-info
+, bundler, libsass, libselinux, libsepol, shared-mime-info, libthai, libdatrie
+, CoreServices, DarwinTools, cctools
 }@args:
 
 let
@@ -41,7 +42,8 @@ in
 {
   atk = attrs: {
     dependencies = attrs.dependencies ++ [ "gobject-introspection" ];
-    nativeBuildInputs = [ rake bundler pkg-config ];
+    nativeBuildInputs = [ rake bundler pkg-config ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     propagatedBuildInputs = [ gobject-introspection wrapGAppsHook atk ];
   };
 
@@ -61,12 +63,14 @@ in
     };
 
   cairo = attrs: {
-    nativeBuildInputs = [ pkg-config ];
+    nativeBuildInputs = [ pkg-config ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     buildInputs = [ gtk2 pcre xorg.libpthreadstubs xorg.libXdmcp];
   };
 
   cairo-gobject = attrs: {
-    nativeBuildInputs = [ pkg-config ];
+    nativeBuildInputs = [ pkg-config ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     buildInputs = [ cairo pcre xorg.libpthreadstubs xorg.libXdmcp ];
   };
 
@@ -189,7 +193,8 @@ in
   };
 
   gdk_pixbuf2 = attrs: {
-    nativeBuildInputs = [ pkg-config bundler rake ];
+    nativeBuildInputs = [ pkg-config bundler rake ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gdk-pixbuf ];
   };
 
@@ -199,7 +204,8 @@ in
   };
 
   gio2 = attrs: {
-    nativeBuildInputs = [ pkg-config ];
+    nativeBuildInputs = [ pkg-config ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     buildInputs = [ gtk2 pcre gobject-introspection ] ++ lib.optionals stdenv.isLinux [ util-linux libselinux libsepol ];
   };
 
@@ -235,7 +241,8 @@ in
   };
 
   glib2 = attrs: {
-    nativeBuildInputs = [ pkg-config ];
+    nativeBuildInputs = [ pkg-config ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     buildInputs = [ gtk2 pcre ];
   };
 
@@ -244,7 +251,7 @@ in
       binutils pkg-config
     ] ++ lib.optionals stdenv.isLinux [
       util-linux libselinux libsepol
-    ];
+    ] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     propagatedBuildInputs = [
       atk
       gdk-pixbuf
@@ -252,16 +259,18 @@ in
       gobject-introspection
       gtk2
       harfbuzz
+      libdatrie
+      libthai
       pcre
       xorg.libpthreadstubs
       xorg.libXdmcp
     ];
-    # CFLAGS must be set for this gem to detect gdkkeysyms.h correctly
-    # CFLAGS = "-I${gtk2.dev}/include/gtk-2.0 -I/non-existent-path";
+    dontStrip = stdenv.isDarwin;
   };
 
   gobject-introspection = attrs: {
-    nativeBuildInputs = [ pkg-config pcre ];
+    nativeBuildInputs = [ pkg-config pcre ]
+      ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
     propagatedBuildInputs = [ gobject-introspection wrapGAppsHook glib ];
   };
 
@@ -287,9 +296,7 @@ in
   };
 
   hitimes = attrs: {
-    buildInputs =
-      lib.optionals stdenv.isDarwin
-        [ darwin.apple_sdk.frameworks.CoreServices ];
+    buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
   };
 
   iconv = attrs: {
@@ -453,7 +460,9 @@ in
       pcre
       xorg.libpthreadstubs
       xorg.libXdmcp
-    ];
+    ] ++ lib.optionals stdenv.isDarwin [ DarwinTools ];
+    buildInputs = [ libdatrie libthai ]
+      ++ lib.optionals stdenv.isLinux [ libselinux libsepol util-linux ];
     propagatedBuildInputs = [ gobject-introspection wrapGAppsHook gtk2 ];
   };
 
@@ -661,7 +670,7 @@ in
   };
 
   zookeeper = attrs: {
-    buildInputs = lib.optionals stdenv.isDarwin [ darwin.cctools ];
+    buildInputs = lib.optionals stdenv.isDarwin [ cctools ];
     dontBuild = false;
     postPatch = ''
       sed -i ext/extconf.rb -e "4a \
diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix
index 20667988548..c8dba514208 100644
--- a/pkgs/development/ruby-modules/gem/default.nix
+++ b/pkgs/development/ruby-modules/gem/default.nix
@@ -217,8 +217,8 @@ stdenv.mkDerivation ((builtins.removeAttrs attrs ["source"]) // {
 
     # looks like useless files which break build repeatability and consume space
     pushd $out/${ruby.gemPath}
-    rm -fv doc/*/*/created.rid || true
-    rm -fv {gems/*/ext/*,extensions/*/*/*}/{Makefile,mkmf.log,gem_make.out} || true
+    find doc/ -iname created.rid -delete -print
+    find gems/*/ext/ extensions/ \( -iname Makefile -o -iname mkmf.log -o -iname gem_make.out \) -delete -print
     ${if keepGemCache then "" else "rm -fvr cache"}
     popd
 
diff --git a/pkgs/development/tools/air/default.nix b/pkgs/development/tools/air/default.nix
index c058a3fec23..1950b969d66 100644
--- a/pkgs/development/tools/air/default.nix
+++ b/pkgs/development/tools/air/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "air";
-  version = "1.25";
+  version = "1.27.3";
 
   src = fetchFromGitHub {
     owner = "cosmtrek";
     repo = "air";
     rev = "v${version}";
-    sha256 = "sha256-on9Rb+QGFWx7/k9xD+tcaPu6YNaBBkFBHHMSWJbZpWM=";
+    sha256 = "sha256-QO3cPyr2FqCdoiax/V0fe7kRwT61T3efnfO8uWp8rRM=";
   };
 
   vendorSha256 = "sha256-B7AgUFjiW3P1dU88u3kswbCQJ7Qq7rgPlX+b+3Pq1L4=";
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index 9a8cc799bf2..24760051b28 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.14.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "sha256-wtUWmvAm7iTiP8eYgPiRasYjzeCIJCQd3D+8f1kMONA=";
+    sha256 = "sha256-oZdaHV+vnYUiCXNMrSuHvZzDYDgFZsoD715DE3tJ2bE=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 563119f6b3a..ae95157a8e5 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.41.1";
+  version = "8.42";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-zW6gjRu5YEH04xCbsW20FeFfmBg+i+aW3WpViBQigXI=";
+    sha256 = "sha256-SYLr6qQp/kHzviwzCaXEnYTHHuH3j5ZzRLi8gs8xAao=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index f62b1a24806..abcd947fa31 100644
--- a/pkgs/development/tools/analysis/codeql/default.nix
+++ b/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.5.0";
+  version = "2.5.2";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "sha256-teZ/9+oAEqGmy2S8Q89YDe8lqvAjzV6RWJ5AnfgQ6Mc=";
+    sha256 = "sha256-/Pl9qDzFSL67lBEyHPqy3QfNCXzR510SgM0U8f55Dqg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index aa3ba723cf4..64efad50817 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.148.0";
+  version = "0.150.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-DPHDuTBCsRq+u5kYHwImIXPxq04kW2HiqYsxJrun6n8=";
+    sha256 = "sha256-75QSM2v4xDCkDnxW6Qb2ZGiWClOSDCd0jSrUdupMXxY=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 1622c616860..e59c48f91d3 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -19,67 +19,38 @@
 , python3
 , ruby
 , lua
+, capstone
 , useX11 ? false
 , rubyBindings ? false
 , pythonBindings ? false
 , luaBindings ? false
 }:
 
-let
-  inherit (lib) optional;
-
-  #<generated>
-  # DO NOT EDIT! Automatically generated by ./update.py
-  gittap = "5.1.1";
-  gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
-  rev = "5.1.1";
-  version = "5.1.1";
-  sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
-  cs_ver = "4.0.2";
-  cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
-  #</generated>
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "radare2";
-  inherit version;
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
-    inherit rev sha256;
+    rev = version;
+    sha256 = "0n3k190qjhdlj10fjqijx6ismz0g7fk28i83j0480cxdqgmmlbxc";
   };
 
-  postPatch =
-    let
-      capstone = fetchFromGitHub {
-        owner = "aquynh";
-        repo = "capstone";
-        # version from $sourceRoot/shlr/Makefile
-        rev = cs_ver;
-        sha256 = cs_sha256;
-      };
-    in
-    ''
-      mkdir -p build/shlr
-      cp -r ${capstone} capstone-${cs_ver}
-      chmod -R +w capstone-${cs_ver}
-      tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
-    '';
-
   postInstall = ''
     install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
   '';
 
   WITHOUT_PULL = "1";
   makeFlags = [
-    "GITTAP=${gittap}"
-    "GITTIP=${gittip}"
+    "GITTAP=${version}"
     "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
   ];
   configureFlags = [
     "--with-sysmagic"
     "--with-syszip"
     "--with-sysxxhash"
+    "--with-syscapstone"
     "--with-openssl"
   ];
 
@@ -87,11 +58,20 @@ stdenv.mkDerivation {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
-    ++ optional useX11 [ gtkdialog vte gtk2 ]
-    ++ optional rubyBindings [ ruby ]
-    ++ optional pythonBindings [ python3 ]
-    ++ optional luaBindings [ lua ];
+  buildInputs = [
+    capstone
+    file
+    readline
+    libusb-compat-0_1
+    libewf
+    perl
+    zlib
+    openssl
+    libuv
+  ] ++ lib.optional useX11 [ gtkdialog vte gtk2 ]
+    ++ lib.optional rubyBindings [ ruby ]
+    ++ lib.optional pythonBindings [ python3 ]
+    ++ lib.optional luaBindings [ lua ];
 
   propagatedBuildInputs = [
     # radare2 exposes r_lib which depends on these libraries
diff --git a/pkgs/development/tools/analysis/radare2/update.py b/pkgs/development/tools/analysis/radare2/update.py
deleted file mode 100755
index ede0a6058a9..00000000000
--- a/pkgs/development/tools/analysis/radare2/update.py
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -p nix -p python3 -p git -i python
-# USAGE - just run the script: ./update.py
-# When editing this file, make also sure it passes the mypy typecheck
-# and is formatted with black.
-import fileinput
-import json
-import xml.etree.ElementTree as ET
-from urllib.parse import urlparse
-import re
-import subprocess
-import tempfile
-import urllib.request
-from datetime import datetime
-from pathlib import Path
-from typing import Dict
-
-SCRIPT_DIR = Path(__file__).parent.resolve()
-
-
-def sh(*args: str) -> str:
-    out = subprocess.check_output(list(args))
-    return out.strip().decode("utf-8")
-
-
-def prefetch_github(owner: str, repo: str, ref: str) -> str:
-    return sh(
-        "nix-prefetch-url",
-        "--unpack",
-        f"https://github.com/{owner}/{repo}/archive/{ref}.tar.gz",
-    )
-
-
-def get_radare2_rev() -> str:
-    feed_url = "http://github.com/radareorg/radare2/releases.atom"
-    with urllib.request.urlopen(feed_url) as resp:
-        tree = ET.fromstring(resp.read())
-    releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry")
-    for release in releases:
-        link = release.find("{http://www.w3.org/2005/Atom}link")
-        assert link is not None
-        url = urlparse(link.attrib["href"])
-        tag = url.path.split("/")[-1]
-        if re.match(r"[0-9.]+", tag):
-            return tag
-        else:
-            print(f"ignore {tag}")
-    raise RuntimeError(f"No release found at {feed_url}")
-
-
-def git(dirname: str, *args: str) -> str:
-    return sh("git", "-C", dirname, *args)
-
-
-def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
-    sha256 = prefetch_github("radare", "radare2", rev)
-
-    cs_ver = None
-    with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile:
-        for l in makefile:
-            match = re.match("CS_VER=(\S+)", l)
-            if match:
-                cs_ver = match.group(1)
-    assert cs_ver is not None
-
-    cs_sha256 = prefetch_github("aquynh", "capstone", cs_ver)
-
-    return dict(
-        rev=rev,
-        sha256=sha256,
-        version_commit=git(dirname, "rev-list", "--all", "--count"),
-        gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"),
-        gittip=git(dirname, "rev-parse", "HEAD"),
-        cs_ver=cs_ver,
-        cs_sha256=cs_sha256,
-    )
-
-
-def main() -> None:
-    version = get_radare2_rev()
-
-    with tempfile.TemporaryDirectory() as dirname:
-        git(
-            dirname,
-            "clone",
-            "--branch",
-            version,
-            "https://github.com/radare/radare2",
-            ".",
-        )
-        nix_file = str(SCRIPT_DIR.joinpath("default.nix"))
-
-        info = get_repo_info(dirname, version)
-
-        timestamp = git(dirname, "log", "-n1", "--format=%at")
-
-        in_block = False
-        with fileinput.FileInput(nix_file, inplace=True) as f:
-            for l in f:
-                if "#<generated>" in l:
-                    in_block = True
-                    print(
-                        f"""  #<generated>
-  # DO NOT EDIT! Automatically generated by ./update.py
-  gittap = "{info["gittap"]}";
-  gittip = "{info["gittip"]}";
-  rev = "{info["rev"]}";
-  version = "{version}";
-  sha256 = "{info["sha256"]}";
-  cs_ver = "{info["cs_ver"]}";
-  cs_sha256 = "{info["cs_sha256"]}";
-  #</generated>"""
-                    )
-                elif "#</generated>" in l:
-                    in_block = False
-                elif not in_block:
-                    print(l, end="")
-
-
-if __name__ == "__main__":
-    main()
diff --git a/pkgs/development/tools/analysis/rizin/cutter.nix b/pkgs/development/tools/analysis/rizin/cutter.nix
index a4c2d0d45c1..c1d8ab99063 100644
--- a/pkgs/development/tools/analysis/rizin/cutter.nix
+++ b/pkgs/development/tools/analysis/rizin/cutter.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "cutter";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "sha256-IQCJOUgefSdMSa27E6I/CL35Kx5pHq/u+5Q0FHUAR1E=";
+    sha256 = "sha256-CVVUXx6wt9vH3B7NrrlRGnOIrhXQPjV7GmX3O+KtMSM=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/analysis/rizin/default.nix b/pkgs/development/tools/analysis/rizin/default.nix
index 20184ac53a1..4e9543ef371 100644
--- a/pkgs/development/tools/analysis/rizin/default.nix
+++ b/pkgs/development/tools/analysis/rizin/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rizin";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchurl {
     url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
-    sha256 = "sha256-CGHeo247syha+rVtiAQz0XkEYK9p4DHTnLK2FhBOvE8=";
+    sha256 = "sha256-lxVsPI+qLenZ0pelvxtHlQ6fhWdQeqoEEHrUGZ5Rdmg=";
   };
 
   mesonFlags = [
diff --git a/pkgs/development/tools/analysis/spin/default.nix b/pkgs/development/tools/analysis/spin/default.nix
index 58bb58fa2b0..5f0c7bffe94 100644
--- a/pkgs/development/tools/analysis/spin/default.nix
+++ b/pkgs/development/tools/analysis/spin/default.nix
@@ -38,9 +38,9 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Formal verification tool for distributed software systems";
-    homepage = "http://spinroot.com/";
+    homepage = "https://spinroot.com/";
     license = licenses.free;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index c8ae231dea8..9f4efe396c6 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.26.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "054g0lr0r1xzbss4b4j9ixkls9p1llmw61afib1381z4k0lvzgwn";
+    sha256 = "1d746016iyswb9kw7gprg32vj5rcfa2y9j11r2hsp61hsjfvmg8c";
   };
 
-  vendorSha256 = "0j2avkhyq6vz6113lkf004d4hysygc6iw78v70z98s6m15mg9imn";
+  vendorSha256 = "0whd0b9rll0s42hrr2fqp412d5frzmrnqnynpq75wda5rqzmaf8r";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index 1429fcab4c6..3837e2e3707 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -5,11 +5,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "1.14.0";
+  version = "1.23.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "E+xIS0Z3M/ilBswH8XwXWnGb9gbDRuuKKE39qau9fFc=";
+    sha256 = "0j0q6p08c3l9z0yc2cggw797k47cjh6ljpchiqgg0fh6mk32215f";
   };
 
   # Tests are not included in the PyPI package
@@ -40,10 +40,8 @@ python3.pkgs.buildPythonApplication rec {
   # fix over-restrictive version bounds
   postPatch = ''
     substituteInPlace requirements/base.txt \
-      --replace "boto3~=1.14.23" "boto3~=1.14" \
       --replace "dateparser~=0.7" "dateparser>=0.7" \
       --replace "docker~=4.2.0" "docker>=4.2.0" \
-      --replace "python-dateutil~=2.6, <2.8.1" "python-dateutil~=2.6" \
       --replace "requests==2.23.0" "requests~=2.24" \
       --replace "watchdog==0.10.3" "watchdog"
   '';
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 6b94ed0a93f..0be3f5c0b7e 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.9.0";
+  version = "10.10.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "v${version}";
-    sha256 = "sha256-IVbvBqp/7Y3La0pP6gbWl0ATfEvkCuR4J9ChTDPNhB0=";
+    sha256 = "sha256-gWU219QlV+24RxnTHqQzQeGZHzVwmBXNKU+3QI6WvHI=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-mj1TvNuFFPJGAJCBTQtU5WWPhHbiXUxRiMZQ/XvEy0U=";
+  vendorSha256 = "sha256-d965Rt8W74bsIZAZPZLe3twuUpp4wrnNc0qwjsKikOE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/b4/default.nix b/pkgs/development/tools/b4/default.nix
index 8210f7c409a..30d38aac2ae 100644
--- a/pkgs/development/tools/b4/default.nix
+++ b/pkgs/development/tools/b4/default.nix
@@ -11,7 +11,8 @@ python3Packages.buildPythonApplication rec {
 
   preConfigure = ''
     substituteInPlace setup.py \
-      --replace 'requests~=2.24' 'requests~=2.25'
+      --replace 'requests~=2.24.0' 'requests~=2.25' \
+      --replace 'dnspython~=2.0.0' 'dnspython~=2.1'
   '';
 
   # tests make dns requests and fails
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index f9b4c3ea724..ab73b8cd8f3 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.7.5";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jXRTj/7GJO6rSueOmw8aNg69w43lxiDbSeZR802+kws=";
+    sha256 = "sha256-bD04wqmtBgdNlPGXz7/4kYQ97r9EthFfGExxOjt8u7k=";
   };
 
-  vendorSha256 = "sha256-fW7KHsxhBfz947Tg+O5bdtiH6xMeKmLRHX9FWQSyxVQ=";
+  vendorSha256 = "sha256-IkW13y51NhKflAeHLu8k7DxRqYVnfMHSnfFuT6H/flo=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index fc232d55da6..8d76b8925dc 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-N6o+1cfer8rgKJ3+CL25axJSjGV/YSG1sLIHXJzsC6o=";
+    sha256 = "sha256-f1UcvsXWW+fMAgTRtHkEXmUN/DTrJ/Xd+9HbR2FjFog=";
   };
 
   patches = [
@@ -25,7 +25,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ protobuf ];
 
-  vendorSha256 = "sha256-vl+WqtpegoAvylx/lcyfJk8DAOub8U4Lx3Pe3eW4M/E=";
+  vendorSha256 = "sha256-XMGXVsSLEzuzujX5Fg3LLkgzyJY+nIBJEO9iI2t9eGc=";
 
   meta = with lib; {
     description = "Create consistent Protobuf APIs that preserve compatibility and comply with design best-practices";
diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix
index 3a1866e0b39..9e0103170e9 100644
--- a/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -2,16 +2,15 @@
 
 assert jdk != null;
 
-let version = "3.6.3"; in
 stdenv.mkDerivation rec {
   pname = "apache-maven";
-  inherit version;
+  version = "3.8.1";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "1i9qlj3vy4j1yyf22nwisd0pg88n9qzp9ymfhwqabadka7br3b96";
+    sha256 = "00pgmc9v2s2970wgl2ksvpqy4lxx17zhjm9fgd10fkamxc2ik2mr";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/bmake/default.nix b/pkgs/development/tools/build-managers/bmake/default.nix
index e1e9b348503..e79e06a71f4 100644
--- a/pkgs/development/tools/build-managers/bmake/default.nix
+++ b/pkgs/development/tools/build-managers/bmake/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
     ./fix-unexport-env-test.patch
   ];
 
+  setupHook = ./setup-hook.sh;
+
   meta = with lib; {
     description = "Portable version of NetBSD 'make'";
     homepage    = "http://www.crufty.net/help/sjg/bmake.html";
diff --git a/pkgs/development/tools/build-managers/bmake/setup-hook.sh b/pkgs/development/tools/build-managers/bmake/setup-hook.sh
new file mode 100644
index 00000000000..ae8f78ec90f
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bmake/setup-hook.sh
@@ -0,0 +1,117 @@
+bmakeBuildPhase() {
+    runHook preBuild
+
+    local flagsArray=(
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
+        SHELL=$SHELL
+        $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+        $buildFlags ${buildFlagsArray+"${buildFlagsArray[@]}"}
+    )
+
+    echoCmd 'build flags' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+    unset flagsArray
+
+    runHook postBuild
+}
+
+if [ -z "${dontUseBmakeBuild-}" -a -z "${buildPhase-}" ]; then
+    buildPhase=bmakeBuildPhase
+fi
+
+bmakeCheckPhase() {
+    runHook preCheck
+
+    if [ -z "${checkTarget:-}" ]; then
+        #TODO(@oxij): should flagsArray influence make -n?
+        if bmake -n ${makefile:+-f $makefile} check >/dev/null 2>&1; then
+            checkTarget=check
+        elif bmake -n ${makefile:+-f $makefile} test >/dev/null 2>&1; then
+            checkTarget=test
+        fi
+    fi
+
+    if [ -z "${checkTarget:-}" ]; then
+        echo "no test target found in bmake, doing nothing"
+    else
+        # shellcheck disable=SC2086
+        local flagsArray=(
+            ${enableParallelChecking:+-j${NIX_BUILD_CORES}}
+            SHELL=$SHELL
+            # Old bash empty array hack
+            $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+            ${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"}
+            ${checkTarget}
+        )
+
+        echoCmd 'check flags' "${flagsArray[@]}"
+        bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+        unset flagsArray
+    fi
+
+    runHook postCheck
+}
+
+if [ -z "${dontUseBmakeCheck-}" -a -z "${checkPhase-}" ]; then
+    checkPhase=bmakeCheckPhase
+fi
+
+bmakeInstallPhase() {
+    runHook preInstall
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    # shellcheck disable=SC2086
+    local flagsArray=(
+        SHELL=$SHELL
+        # Old bash empty array hack
+        $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"}
+        $installFlags ${installFlagsArray+"${installFlagsArray[@]}"}
+        ${installTargets:-install}
+    )
+
+    echoCmd 'install flags' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+    unset flagsArray
+
+    runHook postInstall
+}
+
+if [ -z "${dontUseBmakeInstall-}" -a -z "${installPhase-}" ]; then
+    installPhase=bmakeInstallPhase
+fi
+
+bmakeDistPhase() {
+    runHook preDist
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    # Old bash empty array hack
+    # shellcheck disable=SC2086
+    local flagsArray=(
+        $distFlags ${distFlagsArray+"${distFlagsArray[@]}"} ${distTarget:-dist}
+    )
+
+    echo 'dist flags: %q' "${flagsArray[@]}"
+    bmake ${makefile:+-f $makefile} "${flagsArray[@]}"
+
+    if [ "${dontCopyDist:-0}" != 1 ]; then
+        mkdir -p "$out/tarballs"
+
+        # Note: don't quote $tarballs, since we explicitly permit
+        # wildcards in there.
+        # shellcheck disable=SC2086
+        cp -pvd ${tarballs:-*.tar.gz} "$out/tarballs"
+    fi
+
+    runHook postDist
+}
+
+if [ -z "${dontUseBmakeDist-}" -a -z "${distPhase-}" ]; then
+    distPhase=bmakeDistPhase
+fi
diff --git a/pkgs/development/tools/build-managers/buck/default.nix b/pkgs/development/tools/build-managers/buck/default.nix
index 0fbcb95704b..0b893ea808a 100644
--- a/pkgs/development/tools/build-managers/buck/default.nix
+++ b/pkgs/development/tools/build-managers/buck/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, jdk, ant, python2, python2Packages, watchman, bash, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, jdk8, ant, python3, watchman, bash, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "buck";
-  version = "2019.10.17.01";
+  version = "2021.01.12.01";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1irgp8yq1z11bq3b83yxvj35wqqq7y7b8q4d4y0hc05ac19ja0vj";
+    sha256 = "sha256-NFiMQ+cG93R10LlkfUMzZ4TnV0uO5G+8S5TiMI6hU5o=";
   };
 
   patches = [ ./pex-mtime.patch ];
@@ -17,20 +17,21 @@ stdenv.mkDerivation rec {
     grep -l -r '/bin/bash' --null | xargs -0 sed -i -e "s!/bin/bash!${bash}/bin/bash!g"
   '';
 
-  buildInputs = [ jdk ant python2 watchman python2Packages.pywatchman ];
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper python3 jdk8 ant watchman ];
 
   buildPhase = ''
+    # Set correct version, see https://github.com/facebook/buck/issues/2607
+    echo v${version} > .buckrelease
+
     ant
 
     PYTHONDONTWRITEBYTECODE=true ./bin/buck build -c buck.release_version=${version} buck
   '';
 
   installPhase = ''
-    install -D -m755 buck-out/gen/programs/buck.pex $out/bin/buck
+    install -D -m755 buck-out/gen/*/programs/buck.pex $out/bin/buck
     wrapProgram $out/bin/buck \
-      --prefix PYTHONPATH : $PYTHONPATH \
-      --prefix PATH : "${lib.makeBinPath [jdk watchman]}"
+      --prefix PATH : "${lib.makeBinPath [ jdk8 watchman python3 ]}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 993bd668463..0013eb4e2e0 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -61,13 +61,12 @@ in rec {
     };
   };
 
-  # NOTE: Gradle 7 is a release candidate, so point to 6.8.
-  gradle_latest = gradle_6_8;
+  gradle_latest = gradle_7;
 
   gradle_7 = gradleGen (gradleSpec {
-    version = "7.0-rc-2";
+    version = "7.0";
     nativeVersion = "0.22-milestone-11";
-    sha256 = "0gzvigyvwwizx90vnzhdnbm5rdaki11inxna11s4y67xkn8hrnx5";
+    sha256 = "01f3bjn8pbpni8kmxvx1dpwpf4zz04vj7cpm6025n0k188c8k2zb";
   });
 
   gradle_6_8 = gradleGen (gradleSpec {
diff --git a/pkgs/development/tools/build-managers/remake/default.nix b/pkgs/development/tools/build-managers/remake/default.nix
index f61a7e77458..dc3920d1747 100644
--- a/pkgs/development/tools/build-managers/remake/default.nix
+++ b/pkgs/development/tools/build-managers/remake/default.nix
@@ -1,27 +1,40 @@
-{ lib, stdenv, fetchurl, readline }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, readline
+, guileSupport ? false
+, guile
+}:
 
 stdenv.mkDerivation rec {
   pname = "remake";
-  remakeVersion = "4.1";
-  dbgVersion = "1.1";
+  remakeVersion = "4.3";
+  dbgVersion = "1.5";
   version = "${remakeVersion}+dbg-${dbgVersion}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg${dbgVersion}.tar.bz2";
-    sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2";
+    url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg-${dbgVersion}.tar.gz";
+    sha256 = "0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif";
   };
 
   patches = [
     ./glibc-2.27-glob.patch
   ];
 
-  buildInputs = [ readline ];
+  nativeBuildInputs = [
+    pkg-config
+  ];
+  buildInputs = [ readline ]
+    ++ lib.optionals guileSupport [ guile ];
+
+  # make check fails, see https://github.com/rocky/remake/issues/117
 
   meta = {
     homepage = "http://bashdb.sourceforge.net/remake/";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Plus;
     description = "GNU Make with comprehensible tracing and a debugger";
     platforms = with lib.platforms; linux ++ darwin;
-    maintainers = with lib.maintainers; [ bjornfor ];
+    maintainers = with lib.maintainers; [ bjornfor shamilton ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index b49e5f7558a..76548e427d2 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "a76f1f15e6ec39d886f8bf07d5bdfaf70cdc62d8";
-  version = "2021-04-06";
+  rev = "e5a5442acf36f047a75b397d7349e6fe6835ef24";
+  version = "2021-04-26";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "0zmhn8nvzrbw047g5z4q2slp0wdg6pvfh2pqnpwcq1hscf7dvz8f";
+    sha256 = "0g7wyh0lhhdch7d6p118lwywy1lcdr1z631q891qhv624jnb1477";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 00e70c46b2a..7b9c6bca7e2 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "1dj241cj3v8kzqnz5s499rijpl7wv4rw171swqnc0xza90513pxa";
+    sha256 = "0dsbqipr549awv584fyl227s1gknlpsf5krp990w7w3bbxl3avb7";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/build-managers/tup/default.nix b/pkgs/development/tools/build-managers/tup/default.nix
index f0e6efdca3e..85bf919f778 100644
--- a/pkgs/development/tools/build-managers/tup/default.nix
+++ b/pkgs/development/tools/build-managers/tup/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, fuse3, pkg-config, pcre }:
+{ lib, stdenv, fetchFromGitHub, fuse3, macfuse-stubs, pkg-config, pcre }:
 
-stdenv.mkDerivation rec {
+let
+  fuse = if stdenv.isDarwin then macfuse-stubs else fuse3;
+in stdenv.mkDerivation rec {
   pname = "tup";
   version = "0.7.10";
   outputs = [ "bin" "man" "out" ];
@@ -13,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ fuse3 pcre ];
+  buildInputs = [ fuse pcre ];
 
   configurePhase = ''
     sed -i 's/`git describe`/v${version}/g' src/tup/link.sh
@@ -50,6 +52,13 @@ stdenv.mkDerivation rec {
     homepage = "http://gittup.org/tup/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ehmry ];
-    platforms = platforms.linux ++ platforms.darwin;
+    platforms = platforms.unix;
+
+    # TODO: Remove once nixpkgs uses newer SDKs that supports '*at' functions.
+    # Probably MacOS SDK 10.13 or later. Check the current version in
+    # ../../../../os-specific/darwin/apple-sdk/default.nix
+    #
+    # https://github.com/gittup/tup/commit/3697c74
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index cebd80ff83e..b1491bfa481 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.20.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "12gmn61mfrr58071x3cdsksad6swn1b23ghih128hjdpdzk1zxs3";
+    sha256 = "sha256-nlZblUPS0678dR0hyp+V9uH/nHL9YH81+O1Zzq8T8Pw=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix b/pkgs/development/tools/butane/default.nix
index acbdf431fe2..fc42f311af8 100644
--- a/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
+++ b/pkgs/development/tools/butane/default.nix
@@ -3,14 +3,14 @@
 with lib;
 
 buildGoModule rec {
-  pname = "fcct";
-  version = "0.10.0";
+  pname = "butane";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "coreos";
-    repo = "fcct";
+    repo = "butane";
     rev = "v${version}";
-    sha256 = "0gxaj2fy889fl5vhb4s89rhih9a65aqjsz2yffhi5z4fa2im8szv";
+    sha256 = "1s4rkq7mj1lyi8h47jyfy3qygfxhrmpihdy8rcnn55gcy04lm0qc";
   };
 
   vendorSha256 = null;
@@ -20,17 +20,17 @@ buildGoModule rec {
   subPackages = [ "internal" ];
 
   buildFlagsArray = ''
-    -ldflags=-X github.com/coreos/fcct/internal/version.Raw=v${version}
+    -ldflags=-X github.com/coreos/butane/internal/version.Raw=v${version}
   '';
 
   postInstall = ''
-    mv $out/bin/{internal,fcct}
+    mv $out/bin/{internal,butane}
   '';
 
   meta = {
-    description = "Translates Fedora CoreOS configs into Ignition configs";
+    description = "Translates human-readable Butane configs into machine-readable Ignition configs";
     license = licenses.asl20;
-    homepage = "https://github.com/coreos/fcct";
+    homepage = "https://github.com/coreos/butane";
     maintainers = with maintainers; [ elijahcaine ruuda ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index 5539489afb0..5484652d384 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "clj-kondo";
-  version = "2021.02.13";
+  version = "2021.03.31";
 
   reflectionJson = fetchurl {
     name = "reflection.json";
-    url = "https://raw.githubusercontent.com/borkdude/${pname}/v${version}/reflection.json";
-    sha256 = "ea5c18586fd8803b138a4dd197a0019d5e5a2c76ebe4925b9b54a10125a68c57";
+    url = "https://raw.githubusercontent.com/clj-kondo/${pname}/v${version}/reflection.json";
+    sha256 = "sha256-C4QYk5lLienCHKnWXXZPcKmsCTMtIIkXOkvCrZfyIhA=";
   };
 
   src = fetchurl {
-    url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-Rq7W5sP9nRB0TGRUSQIyC3U568uExmcM/gd+1HjAqac=";
+    url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
+    sha256 = "sha256-XSs0u758wEuaqZvFIevBrL61YNPUJ9Sc1DS+O9agj94=";
   };
 
   dontUnpack = true;
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A linter for Clojure code that sparks joy";
-    homepage = "https://github.com/borkdude/clj-kondo";
+    homepage = "https://github.com/clj-kondo/clj-kondo";
     license = licenses.epl10;
     platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [ jlesquembre bandresen ];
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 9085be14284..6254ec0a2c2 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.1.28";
+  version = "0.1.29";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UssjIix2sFLqau5PMFNDP9XPCSNUdRO6aBixIQNtSy8=";
+    sha256 = "sha256-RPlEFajIjEBKdL97xjQP6r3AAcCQlxw2Il8nkSjxa+k=";
   };
 
   vendorSha256 = "sha256-pl3dLisu4Oc77kgfuteKbsZaDzrHo1wUigZEkM4081Q=";
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index 7f2e65fd991..4c6cbbbe6b0 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "sha256-mSiZjpsFZfkM522f1WcJgBexiBS0o3uf1g94pjhgGVU=";
+    sha256 = "sha256-iFxRZq/8TW7Df+aAc5IN+FAXU4kvbDiHWiFOlWMmCY0=";
   };
 
-  vendorSha256 = "sha256-iCIuEvwkbfBZ858yZZyVf5om6YLsGKRvzFmYzJBrRf4=";
+  vendorSha256 = "sha256-LvaSs1y1CEP+cJc0vqTh/8MezmtuFAbfMgqloAjLZl8=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index 895d12ecb4d..76f0d86ae5c 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "7.1.0";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "sha256-M0Jo4DyvPghhVLK3eFdew10lGUJJODxKoL+v16y9CW8=";
+    sha256 = "sha256-uKzN5h2gJqsD25ETgfYqu4ijC2b0ZLGdMGTiliFOatA=";
   };
 
-  vendorSha256 = "sha256-W6m+nDNcZBVfa1OTkOHWf4E9LmEUewsTLT/56Iyp6+Y=";
+  vendorSha256 = "sha256-2PvXylOPVA0/mIQhhKv8o65bfAxkvKP6FPunzTWwVtI=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index e453a78dec4..b03dcc89d44 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -20,7 +20,7 @@
 }:
 let
   pname = "github-actions-runner";
-  version = "2.277.1";
+  version = "2.278.0";
 
   deps = (import ./deps.nix { inherit fetchurl; });
   nugetPackages = map
@@ -80,8 +80,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
-    rev = "183a3dd9a0d4d51feddc5fe9fa6c3b5f8b08343d"; # v${version}
-    sha256 = "sha256-fQH4QwdR8E76ckUjMCaKOsDjNoVBIWAw2YcFRrVucX8=";
+    rev = "62d926efce35d3ea16d7624a25aaa5b300737def"; # v${version}
+    sha256 = "sha256-KAb14739DYnuNIf7ZNZk5CShye6XFGn8aLu8BAcuT/c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index eeffee057d4..d03d59edb1f 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.10.0";
+  version = "13.11.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "0lw087xcbzf4d68mq0h0s31na7lww2d9nv43icw9qx05aknlcddv";
+    sha256 = "1vmj7vxz1a4js9kqz7mm6xgnkmb37c1jbx2lwsq2qkrybkxfcw8k";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1mf3w85ivc8r2rmb78r4b87rrxmbb1zda9pp8n4nvd0igg23xqk8";
+    sha256 = "1c1pywz7ylaysplvq1m15v7rf1sgdkh9scbqklzcm55fjk128lif";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0xy5mpcpxcmwfdrspd29z8nyn1m9i4ma7d5kbihwa2yxznylydpx";
+    sha256 = "07jqsxac50xwmhlv0nbnn098290nkpsmrxw872yh67n1s9gqfd27";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 669dc846e10..5373b2d359b 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.277.2";
+  version = "2.277.3";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "08lv5v5kxp9ln798gjmh8j9a8r8xc471fbhiz2l7gxncpxn50ga2";
+    sha256 = "1awixb55bkpqcvf2s59aph3kxdd70g9x1a5s5kly33kwrplcf8iy";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/continuous-integration/laminar/default.nix b/pkgs/development/tools/continuous-integration/laminar/default.nix
index 5b492ee67b3..8d06ff94a03 100644
--- a/pkgs/development/tools/continuous-integration/laminar/default.nix
+++ b/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Lightweight and modular continuous integration service";
     homepage = "https://laminar.ohwg.net";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ kaction maralorn ];
   };
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/development/tools/cue/default.nix
index c974286ab99..f48b54471b1 100644
--- a/pkgs/development/tools/cue/default.nix
+++ b/pkgs/development/tools/cue/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "1h3809xgmn7dr57i3cnifr7r555i3zh3kfsv0gxa9nd7068w19xm";
+    sha256 = "0rfgpq4dyd3zm07vcjzn5vv0dhvvryrarxc50sd2pxagbq5cqc8l";
   };
 
   vendorSha256 = "10kvss23a8a6q26a7h1bqc3i0nskm2halsvc9wdv9zf9qsz7zjkp";
@@ -17,7 +17,7 @@ buildGoModule rec {
   subPackages = [ "cmd/cue" ];
 
   buildFlagsArray = [
-    "-ldflags=-X cuelang.org/go/cmd/cue/cmd.version=${version}"
+    "-ldflags=-s -w -X cuelang.org/go/cmd/cue/cmd.version=${version}"
   ];
 
   meta = {
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 0be77237f42..32ab88bf412 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.3.1";
+  version = "4.3.2";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-hOemDLfkjjPXQErKKCIMl8c5EPZe40B1HlNfvg7IZKU=";
+    sha256 = "sha256-sc/W4N+pd1bhLiyQLqm0j2o/RviT8iKzBZcD0GRDqqE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/movine/default.nix b/pkgs/development/tools/database/movine/default.nix
new file mode 100644
index 00000000000..fd5debcb9a2
--- /dev/null
+++ b/pkgs/development/tools/database/movine/default.nix
@@ -0,0 +1,54 @@
+{ rustPlatform
+, fetchFromGitHub
+, lib
+, stdenv
+, pkg-config
+, postgresql
+, sqlite
+, openssl
+, Security
+, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "movine";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "byronwasti";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0rms8np8zd23xzrd5avhp2q1ndhdc8f49lfwpff9h0slw4rnzfnj";
+  };
+
+  cargoSha256 = "sha256-4ghfenwmauR4Ft9n7dvBflwIMXPdFq1vh6FpIegHnZk=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ postgresql sqlite ] ++ (
+    if !stdenv.isDarwin then [ openssl ] else [ Security libiconv ]
+  );
+
+  meta = with lib; {
+    description = "A migration manager written in Rust, that attempts to be smart yet minimal";
+    homepage = "https://github.com/byronwasti/movine";
+    license = licenses.mit;
+    longDescription = ''
+      Movine is a simple database migration manager that aims to be compatible
+      with real-world migration work. Many migration managers get confused
+      with complicated development strategies for migrations. Oftentimes
+      migration managers do not warn you if the SQL saved in git differs from
+      what was actually run on the database. Movine solves this issue by
+      keeping track of the unique hashes for the <literal>up.sql</literal> and
+      <literal>down.sql</literal> for each migration, and provides tools for
+      fixing issues. This allows users to easily keep track of whether their
+      local migration history matches the one on the database.
+
+      This project is currently in early stages.
+
+      Movine does not aim to be an ORM.
+      Consider <link xling:href="https://diesel.rs/">diesel</link> instead if
+      you want an ORM.
+    '';
+    maintainers = with maintainers; [ netcrns ];
+  };
+}
diff --git a/pkgs/development/tools/database/pgsync/Gemfile b/pkgs/development/tools/database/pgsync/Gemfile
new file mode 100644
index 00000000000..f87a033ad7d
--- /dev/null
+++ b/pkgs/development/tools/database/pgsync/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'pgsync'
diff --git a/pkgs/development/tools/database/pgsync/Gemfile.lock b/pkgs/development/tools/database/pgsync/Gemfile.lock
new file mode 100644
index 00000000000..5ee736430af
--- /dev/null
+++ b/pkgs/development/tools/database/pgsync/Gemfile.lock
@@ -0,0 +1,23 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    parallel (1.20.1)
+    pg (1.2.3)
+    pgsync (0.6.6)
+      parallel
+      pg (>= 0.18.2)
+      slop (>= 4.8.2)
+      tty-spinner
+    slop (4.8.2)
+    tty-cursor (0.7.1)
+    tty-spinner (0.9.3)
+      tty-cursor (~> 0.7)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  pgsync
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/development/tools/database/pgsync/default.nix b/pkgs/development/tools/database/pgsync/default.nix
new file mode 100644
index 00000000000..f89b25bf0a7
--- /dev/null
+++ b/pkgs/development/tools/database/pgsync/default.nix
@@ -0,0 +1,15 @@
+{ lib, bundlerApp }:
+
+bundlerApp rec {
+  gemdir = ./.;
+  pname = "pgsync";
+  exes = [ "pgsync" ];
+
+  meta = with lib; {
+    description = "Sync data from one Postgres database to another (like `pg_dump`/`pg_restore`)";
+    homepage    = "https://github.com/ankane/pgsync";
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ fabianhjr ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/database/pgsync/gemset.nix b/pkgs/development/tools/database/pgsync/gemset.nix
new file mode 100644
index 00000000000..18a83397072
--- /dev/null
+++ b/pkgs/development/tools/database/pgsync/gemset.nix
@@ -0,0 +1,64 @@
+{
+  parallel = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+      type = "gem";
+    };
+    version = "1.20.1";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  pgsync = {
+    dependencies = ["parallel" "pg" "slop" "tty-spinner"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wjvcfsgm7xxhb2lxil19qjxvvihqxbjd2ykmm5d43p0h2l9wvxr";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  slop = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05d1xv8r9cmd0mmlqpa853yzd7xhcyha063w1g8dpf84scxbxmd3";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  tty-cursor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  tty-spinner = {
+    dependencies = ["tty-cursor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hh5awmijnzw9flmh5ak610x1d00xiqagxa5mbr63ysggc26y0qf";
+      type = "gem";
+    };
+    version = "0.9.3";
+  };
+}
diff --git a/pkgs/development/tools/dockle/default.nix b/pkgs/development/tools/dockle/default.nix
index 5ecaddc6f1b..f0d8a5ac6e0 100644
--- a/pkgs/development/tools/dockle/default.nix
+++ b/pkgs/development/tools/dockle/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dockle";
-  version = "0.3.11";
+  version = "0.3.13";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TAV+bdHURclrwM0ByfbM2S4GdAnHrwclStyUlGraOpw=";
+    sha256 = "sha256-U0nIGuQ4QjBaCck0Kg1RTS2IQwfivN3VI5vxh8lxAYE=";
   };
 
-  vendorSha256 = "sha256-npbUE3ch8TamW0aikdKuFElE4YDRKwNVUscuvmlQxl4=";
+  vendorSha256 = "sha256-uHHm4AgnjTdPgpu3OpXXIRzrGhkpOoRY8qynfl7DO6w=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 227834da97f..83256efd5fa 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.58.0";
+  version = "1.59.0";
 
   vendorSha256 = null;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-zOEd7e9OgkQxVaHIw9LZJ7ufl2sNpMnTTM3KetiWl+w=";
+    sha256 = "sha256-mkFKYWPUEHVtQi9eUPxvWYxNCfVrKdjo2bH2DEwL1d0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/documentation/gi-docgen/default.nix b/pkgs/development/tools/documentation/gi-docgen/default.nix
index 72b5364eb45..06de11fde59 100644
--- a/pkgs/development/tools/documentation/gi-docgen/default.nix
+++ b/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -61,6 +61,13 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/08dcc31f62be1a5af9bd9f8f702f321f4b5cffde.patch";
       sha256 = "vAT8s7zQ9zCoZWK+6PsxcD5/48ZAfIOl4RSNljRCGWQ=";
     })
+    # make DevHelp sections & index.json have stable ordering
+    # already merged upstream, so patch can removed when we update
+    # beyond 2021.2
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gi-docgen/-/commit/cc21241d4386d4f78dbcb087fd9a92899935cb5c.patch";
+      sha256 = "0wna8mzrlbsv7f3bc7ndqll9l105kp8kdmhbbjhbdhzzzyvh6vcw";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/ecpdap/default.nix b/pkgs/development/tools/ecpdap/default.nix
new file mode 100644
index 00000000000..dbb9a2405b0
--- /dev/null
+++ b/pkgs/development/tools/ecpdap/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, rustPlatform, pkg-config, libusb1 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ecpdap";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "adamgreig";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z8w37i6wjz6cr453md54ip21y26605vrx4vpq5wwd11mfvc1jsg";
+  };
+
+  # The lock file was not up to date with cargo.toml for this release
+  #
+  # This patch is the lock file after running `cargo update`
+  cargoPatches = [ ./lock-update.patch ];
+
+  cargoSha256 = "08xcnvbxm508v03b3hmz71mpa3yd8lamvazxivp6qsv46ri163mn";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "A tool to program ECP5 FPGAs";
+    longDescription = ''
+      ECPDAP allows you to program ECP5 FPGAs and attached SPI flash
+      using CMSIS-DAP probes in JTAG mode.
+    '';
+    homepage = "https://github.com/adamgreig/ecpdap";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
+
diff --git a/pkgs/development/tools/ecpdap/lock-update.patch b/pkgs/development/tools/ecpdap/lock-update.patch
new file mode 100644
index 00000000000..f57c1922ad1
--- /dev/null
+++ b/pkgs/development/tools/ecpdap/lock-update.patch
@@ -0,0 +1,345 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 91f7e0c..1610002 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -26,9 +26,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "anyhow"
+-version = "1.0.37"
++version = "1.0.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86"
++checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
+ 
+ [[package]]
+ name = "atty"
+@@ -49,15 +49,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.66"
++version = "1.0.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
+-
+-[[package]]
+-name = "cfg-if"
+-version = "0.1.10"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
+ 
+ [[package]]
+ name = "cfg-if"
+@@ -82,9 +76,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "console"
+-version = "0.14.0"
++version = "0.14.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa"
++checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45"
+ dependencies = [
+  "encode_unicode",
+  "lazy_static",
+@@ -101,14 +95,14 @@ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
+ dependencies = [
+- "cfg-if 1.0.0",
++ "cfg-if",
+ ]
+ 
+ [[package]]
+ name = "derivative"
+-version = "2.1.1"
++version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f"
++checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -117,7 +111,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "ecpdap"
+-version = "0.1.4"
++version = "0.1.5"
+ dependencies = [
+  "anyhow",
+  "clap",
+@@ -153,11 +147,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "filetime"
+-version = "0.2.13"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe"
++checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8"
+ dependencies = [
+- "cfg-if 1.0.0",
++ "cfg-if",
+  "libc",
+  "redox_syscall",
+  "winapi",
+@@ -165,9 +159,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "hermit-abi"
+-version = "0.1.17"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
+ dependencies = [
+  "libc",
+ ]
+@@ -206,9 +200,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "jep106"
+-version = "0.2.4"
++version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f57cd08ee4fbc8043949150a59e34ea5f2afeb172f875db9607689e48600c653"
++checksum = "939876d20519325db0883757e29e9858ee02919d0f03e43c74f69296caa314f4"
+ dependencies = [
+  "serde",
+ ]
+@@ -221,33 +215,35 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.81"
++version = "0.2.94"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
++checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
+ 
+ [[package]]
+ name = "libflate"
+-version = "1.0.3"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "389de7875e06476365974da3e7ff85d55f1972188ccd9f6020dd7c8156e17914"
++checksum = "6d87eae36b3f680f7f01645121b782798b56ef33c53f83d1c66ba3a22b60bfe3"
+ dependencies = [
+  "adler32",
+  "crc32fast",
+  "libflate_lz77",
+- "rle-decode-fast",
+ ]
+ 
+ [[package]]
+ name = "libflate_lz77"
+-version = "1.0.0"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b"
++checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a"
++dependencies = [
++ "rle-decode-fast",
++]
+ 
+ [[package]]
+ name = "libusb1-sys"
+-version = "0.4.3"
++version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5e3b8385bdc8931a82a0865a3a7285e2c28e41287824dc92c7724b7759a0c685"
++checksum = "be241693102a24766d0b8526c8988771edac2842630d7e730f8e9fbc014f3703"
+ dependencies = [
+  "cc",
+  "libc",
+@@ -259,11 +255,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "log"
+-version = "0.4.11"
++version = "0.4.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if",
+ ]
+ 
+ [[package]]
+@@ -327,9 +323,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.24"
++version = "1.0.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
+ dependencies = [
+  "unicode-xid",
+ ]
+@@ -342,36 +338,38 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.8"
++version = "1.0.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+ dependencies = [
+  "proc-macro2",
+ ]
+ 
+ [[package]]
+ name = "redox_syscall"
+-version = "0.1.57"
++version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041"
++dependencies = [
++ "bitflags",
++]
+ 
+ [[package]]
+ name = "regex"
+-version = "1.4.2"
++version = "1.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
++checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
+ dependencies = [
+  "aho-corasick",
+  "memchr",
+  "regex-syntax",
+- "thread_local",
+ ]
+ 
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.21"
++version = "0.6.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
++checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
+ 
+ [[package]]
+ name = "rle-decode-fast"
+@@ -391,18 +389,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "serde"
+-version = "1.0.118"
++version = "1.0.125"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.118"
++version = "1.0.125"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -431,9 +429,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.57"
++version = "1.0.71"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6"
++checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -442,13 +440,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "tar"
+-version = "0.4.30"
++version = "0.4.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290"
++checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228"
+ dependencies = [
+  "filetime",
+  "libc",
+- "redox_syscall",
+  "xattr",
+ ]
+ 
+@@ -463,9 +460,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "terminal_size"
+-version = "0.1.15"
++version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1"
++checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406"
+ dependencies = [
+  "libc",
+  "winapi",
+@@ -482,33 +479,24 @@ dependencies = [
+ 
+ [[package]]
+ name = "thiserror"
+-version = "1.0.23"
++version = "1.0.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
++checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
+ dependencies = [
+  "thiserror-impl",
+ ]
+ 
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.23"
++version = "1.0.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
++checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+  "syn",
+ ]
+ 
+-[[package]]
+-name = "thread_local"
+-version = "1.0.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+-dependencies = [
+- "lazy_static",
+-]
+-
+ [[package]]
+ name = "toml"
+ version = "0.5.8"
+@@ -532,9 +520,9 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+ 
+ [[package]]
+ name = "vcpkg"
+-version = "0.2.11"
++version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
++checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d"
+ 
+ [[package]]
+ name = "vec_map"
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 518eef2d1a0..077d6c74c8b 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -86,30 +86,30 @@ rec {
     headers = "0yx8mkrm15ha977hzh7g2sc5fab9sdvlk1bk3yxignhxrqqbw885";
   };
 
-  electron_10 = mkElectron "10.4.2" {
-    x86_64-linux = "3d613b413f01c8af1600be42c82941761452407e1160125eca60feec0d7dd0c0";
-    x86_64-darwin = "87b18811d165f2fd64606ae13a567b737f54bd41c7e2204a047a3532f4fa2d9c";
-    i686-linux = "297083ca9b21554ea1f729ed17c0c8b13aaea24e77194f9c1b340489fcfc0fa6";
-    armv7l-linux = "3d93ec220824cce5d99b3a7511604b89c63935bd1130fc64ce08b8436e34c096";
-    aarch64-linux = "0060e37eada91bac51945ae325ab04309438609089d31ab3f8bbfda73cc26166";
-    headers = "13cpkblkvhvd3sww8n1gw4rhva84x2fkkg81yr3n2mb0virlfgpn";
+  electron_10 = mkElectron "10.4.3" {
+    x86_64-linux = "48793fc6c6d3bfb8df81cd29f6c52e68c8c6b901693c6ba4ed505799fa673e9f";
+    x86_64-darwin = "28cbacf51e0528e0d4ba30a2c56efd6a8e7f836104786733aae0c5fc99dc2615";
+    i686-linux = "b9b7fd9b91630350dafe97a31c918f941ab15b044f0b4e9b2a705482447fe78f";
+    armv7l-linux = "b1e1b4d0620eae647915c95d21656d21c00efe89f44198938d9fd9fba045e39c";
+    aarch64-linux = "aa9177becf787920cef4cde27a6ed08e2e23976678162a3cd6b77615b1582c05";
+    headers = "0phv08myxq226blrqzg3fza3mh3ivgfmcja98b7377pc3x7bv76g";
   };
 
-  electron_11 = mkElectron "11.4.1" {
-    x86_64-linux = "3efd3d3b5a9f71323320288aece65fcec89ea0331c3d6d3afc2495d3b0dc95d3";
-    x86_64-darwin = "6ff91613c51b2ebaf280eb86b826f47d62639081a0f38c2012c428a17619a163";
-    i686-linux = "513e1bc7a3e546dc0e712836886ac89c9f76bb7fb1e4b7a1f9d9cbc7347d8569";
-    armv7l-linux = "838fc96d90cfcc5e1e892287008f9d9d2dbe27f3d4cf2479e6275ecdd140fb65";
-    aarch64-linux = "a3de4208b5033a19ffa9dd8130d440909b181c0ef57cb51c8f9c8dbbb1267a26";
-    headers = "1bpsmmlxl4gk9yn5w7f8m6g8k1gmvwk0jwpqlk5islpkcy6x7107";
+  electron_11 = mkElectron "11.4.3" {
+    x86_64-linux = "222e7aa51d5516796d532f784c574f07315bad4bf29efb0ce687014f93ba5fa5";
+    x86_64-darwin = "6cccbaf8dca7eb3819b0ac3044686f6705c5d51c88ee1361d8573c2b83c8dc0a";
+    i686-linux = "1910729fd6088e9c914db9fdd6c42ce6747fcb048947dd83fa2cdf564c786353";
+    armv7l-linux = "e0e1375bdb79a6917467490683e49bb59da9260b73d7b710a5e4e4535c1c5e80";
+    aarch64-linux = "9fb287ed8bcc7782775bd615fe1c31db4a8b6d548209fd15ef5312ac72a04d07";
+    headers = "00gln9jlb621gvxx1z7s212wakjbdigdqv02vx1pjvkg62aazg8j";
   };
 
-  electron_12 = mkElectron "12.0.2" {
-    x86_64-linux = "fc3ff888d8cd4ada8368420c8951ed1b5ad78919bdcb688abe698d00e12a2e0a";
-    x86_64-darwin = "766ca8f8adc4535db3069665ea8983979ea79dd5ec376e1c298f858b420ec58f";
-    i686-linux = "78ab55db275b85210c6cc14ddf41607fbd5cefed93ef4d1b6b74630b0841b23c";
-    armv7l-linux = "8be8c6ea05da669d79179c5969ddee853710a1dd44f86e8f3bbe1167a2daf13c";
-    aarch64-linux = "9ef70ab9347be63555784cac99efbaff1ef2d02dcc79070d7bccd18c38de87ef";
-    headers = "07095b5rylilbmyd0syamm6fc4pngazldj5jgm7blgirdi8yzzd2";
+  electron_12 = mkElectron "12.0.5" {
+    x86_64-linux = "e89c97f7ee43bf08f2ddaba12c3b78fb26a738c0ea7608561f5e06c8ef37e22b";
+    x86_64-darwin = "c5a5e8128478e2dd09fc7222fb0f562ed3aefa3c12470f1811345be03e9d3b76";
+    i686-linux = "6ef8d93be6b05b66cb7c1f1640228dc1215d02851e190e7f16e4313d8ccd6135";
+    armv7l-linux = "7312956ee48b1a8c02d778cac00e644e8cb27706cf4b387e91c3b062a1599a75";
+    aarch64-linux = "7b2dc425ce70b94ef71b74ed59416e70c4285ae13ef7ea03505c1aafab44904f";
+    headers = "1aqjhams0zvgq2bm9hc578ylmahi6qggzjfc69kh9vpv2sylimy9";
   };
 }
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
new file mode 100644
index 00000000000..65dce6d2cdf
--- /dev/null
+++ b/pkgs/development/tools/esbuild/default.nix
@@ -0,0 +1,22 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "esbuild";
+  version = "0.11.15";
+
+  src = fetchFromGitHub {
+    owner = "evanw";
+    repo = "esbuild";
+    rev = "v${version}";
+    sha256 = "1j6qli26i2hwkjqcigz7vyx6hg9daq4vlqigv7ddslw3h8hnp0md";
+  };
+
+  vendorSha256 = "1n5538yik72x94vzfq31qaqrkpxds5xys1wlibw2gn2am0z5c06q";
+
+  meta = with lib; {
+    description = "An extremely fast JavaScript bundler";
+    homepage = "https://esbuild.github.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lucus16 ];
+  };
+}
diff --git a/pkgs/development/tools/flip-link/default.nix b/pkgs/development/tools/flip-link/default.nix
new file mode 100644
index 00000000000..36467848c4f
--- /dev/null
+++ b/pkgs/development/tools/flip-link/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "flip-link";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "knurling-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x6l5aps0aryf3iqiyk969zrq77bm95jvm6f0f5vqqqizxjd3yfl";
+  };
+
+  cargoSha256 = "13rgpbwaz2b928rg15lbaszzjymph54pwingxpszp5paihx4iayr";
+
+  meta = with lib; {
+    description = "Adds zero-cost stack overflow protection to your embedded programs";
+    homepage = "https://github.com/knurling-rs/flip-link";
+    license = with licenses; [ asl20 mit ];
+    maintainers = [ maintainers.FlorianFranzen ];
+  };
+}
diff --git a/pkgs/development/tools/ghp-import/default.nix b/pkgs/development/tools/ghp-import/default.nix
deleted file mode 100644
index 4c258d6154b..00000000000
--- a/pkgs/development/tools/ghp-import/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ python3, glibcLocales, lib }:
-
-with python3.pkgs;
-
-buildPythonApplication rec {
-  version = "0.5.5";
-  pname = "ghp-import";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1mvmpi7lqflw2lr0g0y5f9s0d1pv9cav4gbmaqnziqg442klx4iy";
-  };
-
-  disabled = isPyPy;
-  buildInputs = [ glibcLocales ];
-
-  LC_ALL="en_US.UTF-8";
-
-  # No tests available
-  doCheck = false;
-
-  meta = {
-    description = "Copy your docs directly to the gh-pages branch";
-    homepage = "https://github.com/davisp/ghp-import";
-    license = "Tumbolia Public License";
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/tools/git-quick-stats/default.nix b/pkgs/development/tools/git-quick-stats/default.nix
index 7f0db1f712c..3f045046822 100644
--- a/pkgs/development/tools/git-quick-stats/default.nix
+++ b/pkgs/development/tools/git-quick-stats/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.1.8";
+  version = "2.1.9";
 
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "sha256-sK8HOfeiV0xn540bU7inZl/hV6uzitJ4Szqk96a8DMc=";
+    sha256 = "sha256-2rrwbEXwBBuussybCZFbAEjNwm/ztbXw1jUlTnxPINA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index d2ea8a4f6bd..e97819c4343 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.3.0";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "sha256-+JhU0DXSUbpaHWJYEgiUwsR8DucGRwkiNiKDyhJroqk=";
+    sha256 = "sha256-632ISkBIZJBJpybuiuRHOV3CAJg1rSe3hK+W7hmW2cM=";
   };
 
-  vendorSha256 = "sha256-pNKzqUtEIQs0TP387ACHfCv1RsMjZi7O8P1A8df+QtI=";
+  vendorSha256 = "sha256-qKjCGZnCts4GfBafSRXR7xTvfJdqK8zjpu01eiyITkU=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index 217717d3e7d..d5eb7a9b0e0 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -58,11 +58,11 @@ in stdenv.mkDerivation rec {
       --replace "Exec=godot" "Exec=$out/bin/godot"
   '';
 
-  meta = {
+  meta = with lib; {
     homepage    = "https://godotengine.org";
     description = "Free and Open Source 2D and 3D game engine";
-    license     = lib.licenses.mit;
+    license     = licenses.mit;
     platforms   = [ "i686-linux" "x86_64-linux" ];
-    maintainers = [ lib.maintainers.twey ];
+    maintainers = with maintainers; [ twey ];
   };
 }
diff --git a/pkgs/development/tools/godot/export-templates.nix b/pkgs/development/tools/godot/export-templates.nix
new file mode 100644
index 00000000000..bfcf3e3b3dc
--- /dev/null
+++ b/pkgs/development/tools/godot/export-templates.nix
@@ -0,0 +1,17 @@
+{ godot, lib }:
+
+# https://docs.godotengine.org/en/stable/development/compiling/compiling_for_x11.html#building-export-templates
+godot.overrideAttrs (oldAttrs: rec {
+  pname = "godot-export-templates";
+  sconsFlags = "target=release platform=x11 tools=no";
+  installPhase = ''
+    # The godot export command expects the export templates at
+    # .../share/godot/templates/3.2.3.stable with 3.2.3 being the godot version.
+    mkdir -p "$out/share/godot/templates/${oldAttrs.version}.stable"
+    cp bin/godot.x11.opt.64 $out/share/godot/templates/${oldAttrs.version}.stable/linux_x11_64_release
+  '';
+  outputs = [ "out" ];
+  meta.description =
+    "Free and Open Source 2D and 3D game engine (export templates)";
+  meta.maintainers = with lib.maintainers; [ twey jojosch ];
+})
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
index 1617900acee..cfe69886d4b 100644
--- a/pkgs/development/tools/gopls/default.nix
+++ b/pkgs/development/tools/gopls/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.6.2";
+  version = "0.6.10";
 
   src = fetchgit {
     rev = "gopls/v${version}";
     url = "https://go.googlesource.com/tools";
-    sha256 = "0hbfxdsbfz044vw8zp223ni6m7gcwqpff4xpjiqmihhgga5849lf";
+    sha256 = "13mv6rvqlmgn1shx0hnlqxgqiiiz1ij37j30jz1jkr9kcrbxpacr";
   };
 
   modRoot = "gopls";
-  vendorSha256 = "0r9bffgi9ainqrl4kraqy71rgwdfcbqmv3srs12h3xvj0w5ya5rz";
+  vendorSha256 = "01apsvkds8f3m88inb37z4lgalrbjp12xr2jikwx7n10hjddgbqi";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
index ff9b2064cec..d23aa71a8ab 100644
--- a/pkgs/development/tools/gops/default.nix
+++ b/pkgs/development/tools/gops/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gops";
-  version = "0.3.17";
+  version = "0.3.18";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "gops";
     rev = "v${version}";
-    sha256 = "1l0k1v2wwwdrwwznrdq2ivbrl5z3hxa89xm89jlaglkd7jjg74zk";
+    sha256 = "0534jyravpsj73lgdmw6fns1qaqiw401jlfk04wa0as5sv09rfhy";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 6c6d6343d43..e9bc48b0dcf 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "sha256-xUDhJLTO3JZ7rlUUzcypUev60qmRK9zOlO2VYeXqT4o=";
+    sha256 = "sha256-5iSUk/J73enbc/N3bn7M4oj2A0yoF1jTWpnXD380hFI=";
   };
 
   vendorSha256 = "sha256-sHi8iW+ZV/coeAwDUYnSH039UNtUO9HK0Bhz9Gmtv8k=";
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index 4425071cb14..c0082f46305 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.6";
+  version = "2.0.7";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "sha256-HoDV8Z024+WnECw1ZVwA3dEfbKtuTd4he40UwQnpiGQ=";
+    sha256 = "sha256-IbiyrP3rIj3VToav1bhKnje0scEPSyLwsyclpW7nB+U=";
   };
 
   desktopItem = makeDesktopItem {
@@ -27,9 +27,6 @@ stdenv.mkDerivation rec {
       --replace "#visualvm_jdkhome=" "visualvm_jdkhome=" \
       --replace "/path/to/jdk" "${jdk.home}" \
 
-    substituteInPlace platform/lib/nbexec \
-      --replace /usr/bin/\''${awk} ${gawk}/bin/awk
-
     cp -r . $out
   '';
 
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
new file mode 100644
index 00000000000..381a53f0f1e
--- /dev/null
+++ b/pkgs/development/tools/jql/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "jql";
+  version = "2.9.4";
+
+  src = fetchFromGitHub {
+    owner = "yamafaktory";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1rwnmp2rnzwc7anmk7nr8l4ncza8s1f8sn0r2la4ai2sx1iqn06h";
+  };
+
+  cargoSha256 = "1c83mmdxci7l3c6ja5fhk4cak1gcbg0r0nlpbpims5gi16nf99r3";
+
+  meta = with lib; {
+    description = "A JSON Query Language CLI tool built with Rust";
+    homepage = "https://github.com/yamafaktory/jql";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ akshgpt7 ];
+  };
+}
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 38439e62473..247d055f578 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -1,19 +1,20 @@
-{ lib, fetchFromGitHub, rustPlatform, coreutils, bash, installShellFiles }:
+{ lib, fetchFromGitHub, stdenv, rustPlatform, coreutils, bash, installShellFiles, libiconv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.8.4";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K8jeX1/Wn6mbf48GIR2wRAwiwg1rxtbtCPjjH+4dPYw=";
+    sha256 = "sha256-5W/5HgXjDmr2JGYGy5FPmCNIuAagmzEHnskDUg+FzjY=";
   };
 
-  cargoSha256 = "sha256-a9SBeX3oesdoC5G+4dK2tbt+W7VA4jPqCM9tOAex4DI=";
+  cargoSha256 = "sha256-4lLWtj/MLaSZU7nC4gVn7TyhaLtO1FUSinQejocpiuY=";
 
   nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   postInstall = ''
     installManPage man/just.1
@@ -31,15 +32,21 @@ rustPlatform.buildRustPackage rec {
     export USER=just-user
     export USERNAME=just-user
 
+    # Prevent string.rs from being changed
+    cp tests/string.rs $TMPDIR/string.rs
+
     sed -i src/justfile.rs \
         -i tests/*.rs \
         -e "s@/bin/echo@${coreutils}/bin/echo@g" \
         -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
         -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g" \
         -e "s@#!/usr/bin/env bash@#!${bash}/bin/sh@g"
+
+    # Return unchanged string.rs
+    cp $TMPDIR/string.rs tests/string.rs
   '';
 
-  # Skip "edit" when running "cargo test", since this test case needs "cat".
+  # Skip "edit" when running "cargo test", since this test case needs "cat" and "vim".
   # Skip "choose" when running "cargo test", since this test case needs "fzf".
   checkFlags = [ "--skip=choose" "--skip=edit" ];
 
diff --git a/pkgs/development/tools/kgt/default.nix b/pkgs/development/tools/kgt/default.nix
new file mode 100644
index 00000000000..94f72ceac10
--- /dev/null
+++ b/pkgs/development/tools/kgt/default.nix
@@ -0,0 +1,81 @@
+{ lib, stdenv, fetchFromGitHub, bmake, cleanPackaging }:
+
+stdenv.mkDerivation {
+  pname = "kgt";
+  version = "2021-04-07";
+
+  src = fetchFromGitHub {
+    owner = "katef";
+    repo = "kgt";
+    # 2021-04-07, no version tags (yet)
+    rev = "a7cbc52d368e413a3f1212c0fafccc05b2a42606";
+    sha256 = "1x6q30xb8ihxi26rzk3s2hqd827fim4l4wn3qq252ibrwcq6lqyj";
+    fetchSubmodules = true;
+  };
+
+  outputs = [ "bin" "doc" "out" ];
+
+  nativeBuildInputs = [ bmake ];
+  enableParallelBuilding = true;
+
+  makeFlags = [ "-r" "PREFIX=$(bin)" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    ${cleanPackaging.commonFileActions {
+        docFiles = [
+          "README.md"
+          "LICENCE"
+          "examples"
+          # TODO: this is just a docbook file, not a mangpage yet
+          # https://github.com/katef/kgt/issues/50
+          "man"
+          "examples"
+          "doc"
+        ];
+        noiseFiles = [
+          "build/src"
+          "build/lib"
+          "Makefile"
+          "src/**/*.c"
+          "src/**/*.h"
+          "src/**/Makefile"
+          "src/**/lexer.lx"
+          "src/**/parser.sid"
+          "src/**/parser.act"
+          "share/git"
+          "share/css"
+          "share/xsl"
+          ".gitignore"
+          ".gitmodules"
+          ".gitattributes"
+          ".github"
+        ];
+      }} $doc/share/doc/kgt
+
+    install -Dm755 build/bin/kgt $bin/bin/kgt
+    rm build/bin/kgt
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    ${cleanPackaging.checkForRemainingFiles}
+  '';
+
+  meta = with lib; {
+    description = "BNF wrangling and railroad diagrams";
+    longDescription = ''
+      KGT: Kate's Grammar Tool
+
+      Input: Various BNF-like syntaxes
+      Output: Various BNF-like syntaxes, AST dumps, and Railroad Syntax Diagrams
+    '';
+    homepage    = "https://github.com/katef/kgt";
+    license     = licenses.bsd2;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ Profpatsch ];
+  };
+
+}
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index b5b0c8b81bf..aa6382bb16d 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "4.0.5";
+  version = "4.1.2";
   # rev is the commit of the tag, mainly for kustomize version command output
   rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
 
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "sha256-rv65sDr6V6hEYgIRxS1OSu9txmW75F7/YGAy/zRXGyY=";
+    sha256 = "sha256-uomtW6PPs/UHvKRbHToot6kU4YJGLJuet8vJENbwEgI=";
   };
 
   # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
@@ -26,7 +26,7 @@ buildGoModule rec {
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "sha256-lLUi0vD7uyfDR4HjDiosoTU0NbfQTY7ewZGm38ZT9nU=";
+  vendorSha256 = "sha256-fcsjxtCojahI6ZIcaSG5ubNqlWEC6DnNHtVYwTtbSw4=";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index cd0fb4a3330..7038b7c1eb0 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.27.3";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-giHAeD7hhda9YV+NQuZ6w0eow79egGhUCIX0dPvhrWk=";
+    sha256 = "sha256-tan8ksSyMIeDL7oRAWd3Qtz/sKbhAAfY7IknfwjyvgQ=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 78c99d94c8d..d686067e633 100644
--- a/pkgs/development/tools/metals/default.nix
+++ b/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.10.1";
+  version = "0.10.2";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "0z4ddnwx510hnx6w72fxmksmnwxg8p2nqxg7i7xix24gykgmgj5a";
+    outputHash     = "1yck935pcj9cg3qxzrmvgd16afsckz8wgmzf2rlmii2c1glrbq9c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 37ba3420b18..995f3f7430c 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -143,6 +143,7 @@ stdenv.mkDerivation {
 
   passthru = {
     inherit targetPrefix;
+    isGNU = true;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/checkbashisms/default.nix b/pkgs/development/tools/misc/checkbashisms/default.nix
index 524abbfdc90..6222bb312bb 100644
--- a/pkgs/development/tools/misc/checkbashisms/default.nix
+++ b/pkgs/development/tools/misc/checkbashisms/default.nix
@@ -1,26 +1,39 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, fetchurl, perl, installShellFiles }:
 stdenv.mkDerivation rec {
-  version = "2.0.0.2";
+  version = "2.21.1";
   pname = "checkbashisms";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/checkbaskisms/${version}/checkbashisms";
-    sha256 = "1vm0yykkg58ja9ianfpm3mgrpah109gj33b41kl0jmmm11zip9jd";
+    url = "mirror://debian/pool/main/d/devscripts/devscripts_${version}.tar.xz";
+    hash = "sha256-1ZbIiUrFd38uMVLy7YayLLm5RrmcovsA++JTb8PbTFI=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
   buildInputs = [ perl ];
 
-  # The link returns directly the script. No need for unpacking
-  dontUnpack = true;
+  buildPhase = ''
+    runHook preBuild
 
+    substituteInPlace ./scripts/checkbashisms.pl \
+      --replace '###VERSION###' "$version"
+
+    runHook postBuild
+  '';
   installPhase = ''
-    install -D -m755 $src $out/bin/checkbashisms
+    runHook preInstall
+
+    installManPage scripts/$pname.1
+    installShellCompletion --bash --name $pname scripts/$pname.bash_completion
+    install -D -m755 scripts/$pname.pl $out/bin/$pname
+
+    runHook postInstall
   '';
 
   meta = {
     homepage = "https://sourceforge.net/projects/checkbaskisms/";
     description = "Check shell scripts for non-portable syntax";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ kaction ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index c0d4567fe0b..dc342e501e4 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -1,39 +1,29 @@
-{ lib, stdenv, callPackage, fetchFromGitHub, leiningen, openjdk11
-, graalvm11-ce, babashka }:
+{ lib, stdenv, graalvm11-ce, babashka, fetchurl, fetchFromGitHub }:
 
-let
+stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "2021.02.14-19.46.47";
-  leiningen11 = leiningen.override ({ jdk = openjdk11; });
+  version = "2021.04.13-12.47.33";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-Zj7/8RcuxCy2xdd+5jeOb1GTsQsX0EVW32k32fA6uf4=";
+    sha256 = "1la0d28pvp1fqnxp3scb2vawcblilwyx42djxn379vag403p1i2d";
   };
 
-  repository = callPackage ./repository.nix {
-    inherit src pname version;
-    leiningen = leiningen11;
+  jar = fetchurl {
+    url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp.jar";
+    sha256 = "059gz7y2rzwdxpyqy80w4lghzgxi5lb4rxmks1721yq6k7ljjyqy";
   };
-in stdenv.mkDerivation rec {
-  inherit src pname version;
-
-  postPatch = ''
-    # Hack to set maven cache in another directory since MAVEN_OPTS doesn't work
-    substituteInPlace project.clj \
-      --replace ":main" ":local-repo \"${repository}\" :main"
-  '';
 
   GRAALVM_HOME = graalvm11-ce;
+  CLOJURE_LSP_JAR = jar;
 
-  buildInputs = [ graalvm11-ce leiningen11 repository ];
+  buildInputs = [ graalvm11-ce ];
 
   buildPhase = with lib; ''
     runHook preBuild
 
-    export LEIN_HOME="$(mktemp -d)"
     bash ./graalvm/native-unix-compile.sh
 
     runHook postBuild
@@ -51,14 +41,14 @@ in stdenv.mkDerivation rec {
   checkPhase = ''
     runHook preCheck
 
-    ${babashka}/bin/bb ./integration-test/run-all.clj ./clojure-lsp
+    ${babashka}/bin/bb integration-test/run-all.clj ./clojure-lsp
 
     runHook postCheck
   '';
 
   meta = with lib; {
     description = "Language Server Protocol (LSP) for Clojure";
-    homepage = "https://github.com/snoe/clojure-lsp";
+    homepage = "https://github.com/clojure-lsp/clojure-lsp";
     license = licenses.mit;
     maintainers = [ maintainers.ericdallo ];
     platforms = graalvm11-ce.meta.platforms;
diff --git a/pkgs/development/tools/misc/clojure-lsp/repository.nix b/pkgs/development/tools/misc/clojure-lsp/repository.nix
deleted file mode 100644
index 122096e9657..00000000000
--- a/pkgs/development/tools/misc/clojure-lsp/repository.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, src, pname, version, leiningen }:
-
-stdenv.mkDerivation {
-  inherit src;
-
-  name = "${pname}-${version}-repository";
-  buildInputs = [ leiningen ];
-
-  postPatch = ''
-    # Hack to set maven cache in another directory since MAVEN_OPTS doesn't work
-    substituteInPlace project.clj \
-      --replace ":main" ":local-repo \"$out\" :main"
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    export LEIN_HOME="$(mktemp -d)"
-    lein with-profiles +native-image deps
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    find $out -type f \
-      -name \*.lastUpdated -or \
-      -name resolver-status.properties -or \
-      -name _remote.repositories \
-      -delete
-
-    runHook postInstall
-  '';
-
-  dontFixup = true;
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "sha256-aWZPsJF32ENyYNZCHf5amxVF9pb+5M73JqG/OITZlak=";
-}
diff --git a/pkgs/development/tools/misc/inotify-tools/default.nix b/pkgs/development/tools/misc/inotify-tools/default.nix
index e085d3dd259..48e2139b74d 100644
--- a/pkgs/development/tools/misc/inotify-tools/default.nix
+++ b/pkgs/development/tools/misc/inotify-tools/default.nix
@@ -1,29 +1,22 @@
-{ lib, stdenv, autoreconfHook, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, autoreconfHook, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "inotify-tools";
-  version = "3.20.2.2";
+  version = "3.20.11.0";
 
   src = fetchFromGitHub {
     repo = "inotify-tools";
     owner = "rvoicilas";
     rev = version;
-    sha256 = "1r12bglkb0bkqff6kgxjm81hk6z20nrxq3m7iv15d4nrqf9pm7s0";
+    sha256 = "1m8avqccrhm38krlhp88a7v949f3hrzx060bbrr5dp5qw2nmw9j2";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/inotify-tools/inotify-tools/commit/7ddf45158af0c1e93b02181a45c5b65a0e5bed25.patch";
-      sha256 = "08imqancx8l0bg9q7xaiql1xlalmbfnpjfjshp495sjais0r6gy7";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = with lib; {
     homepage = "https://github.com/rvoicilas/inotify-tools/wiki";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ marcweber pSub ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ marcweber pSub shamilton ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch b/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch
index 4ba883f0113..8070af173aa 100644
--- a/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch
+++ b/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch
@@ -7,7 +7,7 @@ index c5af5a2..1949fdc 100644
        defaults.arch = "macosx-"..target_cpu
        defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load"
 -      local version = util.popen_read("sw_vers -productVersion")
-+      local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "10.12"
++      local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "@darwinMinVersion@"
        version = tonumber(version and version:match("^[^.]+%.([^.]+)")) or 3
        if version >= 10 then
           version = 8
diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix
index 77f34cca7de..d4f2ec4ded9 100644
--- a/pkgs/development/tools/misc/luarocks/default.nix
+++ b/pkgs/development/tools/misc/luarocks/default.nix
@@ -19,6 +19,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [ ./darwin-3.1.3.patch ];
+
+  postPatch = lib.optionalString stdenv.targetPlatform.isDarwin ''
+    substituteInPlace src/luarocks/core/cfg.lua --subst-var-by 'darwinMinVersion' '${stdenv.targetPlatform.darwinMinVersion}'
+  '';
+
   preConfigure = ''
     lua -e "" || {
         luajit -e "" && {
diff --git a/pkgs/development/tools/misc/stlink/default.nix b/pkgs/development/tools/misc/stlink/default.nix
index e67fd9ca7a8..5bad6493c49 100644
--- a/pkgs/development/tools/misc/stlink/default.nix
+++ b/pkgs/development/tools/misc/stlink/default.nix
@@ -9,25 +9,22 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "stlink";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
-    owner = "texane";
+    owner = "stlink-org";
     repo = "stlink";
     rev = "v${version}";
-    sha256 = "1mlkrxjxg538335g59hjb0zc739dx4mhbspb26z5gz3lf7d4xv6x";
+    sha256 = "03xypffpbp4imrczbxmq69vgkr7mbp0ps9dk815br5wwlz6vgygl";
   };
 
   buildInputs = [ libusb1' ];
   nativeBuildInputs = [ cmake ];
-  patchPhase = ''
-    sed -i 's@/etc/udev/rules.d@$ENV{out}/etc/udev/rules.d@' CMakeLists.txt
-    sed -i 's@/etc/modprobe.d@$ENV{out}/etc/modprobe.d@' CMakeLists.txt
-  '';
-  preInstall = ''
-    mkdir -p $out/etc/udev/rules.d
-    mkdir -p $out/etc/modprobe.d
-  '';
+
+  cmakeFlags = [
+    "-DSTLINK_MODPROBED_DIR=${placeholder "out"}/etc/modprobe.d"
+    "-DSTLINK_UDEV_RULES_DIR=${placeholder "out"}/lib/udev/rules.d"
+  ];
 
   meta = with lib; {
     description = "In-circuit debug and programming for ST-Link devices";
diff --git a/pkgs/development/tools/misc/stm32cubemx/default.nix b/pkgs/development/tools/misc/stm32cubemx/default.nix
index 3b754e4c91b..bca4f87f9a5 100644
--- a/pkgs/development/tools/misc/stm32cubemx/default.nix
+++ b/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -1,52 +1,57 @@
-{ lib, stdenv, requireFile, makeDesktopItem, libicns, imagemagick, jre, fetchzip }:
-
+{ lib, stdenv, makeDesktopItem, copyDesktopItems, icoutils, fdupes, imagemagick, jdk11, fetchzip }:
+# TODO: JDK16 causes STM32CubeMX to crash right now, so we fixed the version to JDK11
+# This may be fixed in a future version of STM32CubeMX. This issue has been reported to ST:
+# https://community.st.com/s/question/0D53W00000jnOzPSAU/stm32cubemx-crashes-on-launch-with-openjdk16
+# If you're updating this derivation, check the link above to see if it's been fixed upstream
+# and try replacing all occurrences of jdk11 with jre and test whether it works.
 let
-  version = "6.0.1";
-  desktopItem = makeDesktopItem {
-    name = "stm32CubeMX";
-    exec = "stm32cubemx";
-    desktopName = "STM32CubeMX";
-    categories = "Development;";
-    icon = "stm32cubemx";
-  };
+  iconame = "STM32CubeMX";
 in
 stdenv.mkDerivation rec {
   pname = "stm32cubemx";
-  inherit version;
-
+  version = "6.2.1";
 
   src = fetchzip {
-    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}.zip";
-    sha256 = "15vxca1pgpgxgiz4wisrw0lylffdwnn4n46z9n0q37f8hmzlrk8f";
-    stripRoot= false;
+    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
+    sha256 = "0m5h01iq0mgrr9svj4gmykfi9lsyjpqzrkvlizff26c8dqad59c5";
+    stripRoot = false;
   };
 
-  nativeBuildInputs = [ libicns imagemagick ];
+  nativeBuildInputs = [ icoutils fdupes imagemagick copyDesktopItems];
+  desktopItems = [
+    (makeDesktopItem {
+      name = "stm32CubeMX";
+      exec = "stm32cubemx";
+      desktopName = "STM32CubeMX";
+      categories = "Development;";
+      comment = "STM32Cube initialization code generator";
+      icon = "stm32cubemx";
+    })
+  ];
 
   buildCommand = ''
-    mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
-    cp -r $src/. $out/opt/STM32CubeMX/
-    chmod +rx $out/opt/STM32CubeMX/STM32CubeMX.exe
+    mkdir -p $out/{bin,opt/STM32CubeMX}
+    cp -r $src/MX/. $out/opt/STM32CubeMX/
+    chmod +rx $out/opt/STM32CubeMX/STM32CubeMX
     cat << EOF > $out/bin/${pname}
     #!${stdenv.shell}
-    ${jre}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX.exe
+    ${jdk11}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX
     EOF
     chmod +x $out/bin/${pname}
 
-    icns2png --extract $out/opt/STM32CubeMX/${pname}.icns
+    icotool --extract $out/opt/STM32CubeMX/help/${iconame}.ico
+    fdupes -dN . > /dev/null
     ls
     for size in 16 24 32 48 64 128 256; do
       mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
-      if [ -e ${pname}_"$size"x"$size"x32.png ]; then
-        mv ${pname}_"$size"x"$size"x32.png \
+      if [ $size -eq 256 ]; then
+        mv ${iconame}_*_"$size"x"$size"x32.png \
           $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
       else
-        convert -resize "$size"x"$size" ${pname}_256x256x32.png \
+        convert -resize "$size"x"$size" ${iconame}_*_256x256x32.png \
           $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
       fi
     done;
-
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index f36b1cf4495..7ce0971c09d 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -6,11 +6,11 @@ assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.11";
+  version = "5.12";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-/+NAsQwUWg+Fc0Jx6czlZFfSPyGn6lkxqzL4z055OHk=";
+    sha256 = "sha256-KRce350lL4nJiKTDQN/exmL0WMuMY9hUMdZLq1kR58Q=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 54adb5f8296..cafa63e96bd 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ=";
+    sha256 = "sha256-8Bo6ZSpecdMX/Hoj0N1/iptfqybPUoQ0T9IQima+Bbo=";
   };
-  vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo=";
+  vendorSha256 = "sha256-oP7ZekG7YdRhUvt48wxalt8y8QmVFkAw9GRIKBmi9sg=";
 
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
diff --git a/pkgs/development/tools/misc/tockloader/default.nix b/pkgs/development/tools/misc/tockloader/default.nix
index 3aff6c6d36c..8924cbf2fae 100644
--- a/pkgs/development/tools/misc/tockloader/default.nix
+++ b/pkgs/development/tools/misc/tockloader/default.nix
@@ -1,27 +1,37 @@
-{ lib, python3Packages }:
+{ lib
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "tockloader";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
+    sha256 = "1aqkj1nplcw3gmklrhq6vxy6v9ad5mqiw4y1svasak2zkqdk1wyc";
   };
 
   propagatedBuildInputs = with python3Packages; [
     argcomplete
     colorama
     crcmod
-    pytoml
     pyserial
+    pytoml
+    tqdm
   ];
 
+  # has no test suite
+  checkPhase = ''
+    runHook preCheck
+    $out/bin/tockloader --version | grep -q ${version}
+    runHook postCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/tock/tockloader";
     license = licenses.mit;
     description = "Tool for programming Tock onto hardware boards";
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/pkgs/development/tools/nsis/default.nix b/pkgs/development/tools/nsis/default.nix
index 2d3f54bbf75..4820d8bb4b7 100644
--- a/pkgs/development/tools/nsis/default.nix
+++ b/pkgs/development/tools/nsis/default.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, symlinkJoin
 , fetchurl
 , fetchzip
 , sconsPackages
 , zlib
+, libiconv
 }:
 
 stdenv.mkDerivation rec {
@@ -28,20 +31,34 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  CPPPATH = symlinkJoin {
+     name = "nsis-includes";
+     paths = [ zlib.dev ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+  };
+
+  LIBPATH = symlinkJoin {
+    name = "nsis-libs";
+    paths = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+  };
 
   sconsFlags = [
     "SKIPSTUBS=all"
     "SKIPPLUGINS=all"
     "SKIPUTILS=all"
     "SKIPMISC=all"
-    "APPEND_CPPPATH=${zlib.dev}/include"
-    "APPEND_LIBPATH=${zlib}/lib"
     "NSIS_CONFIG_CONST_DATA=no"
-  ];
+  ] ++ lib.optional stdenv.isDarwin "APPEND_LINKFLAGS=-liconv";
 
   preBuild = ''
-    sconsFlagsArray+=("PATH=$PATH")
+    sconsFlagsArray+=(
+      "PATH=$PATH"
+      "CC=$CC"
+      "CXX=$CXX"
+      "APPEND_CPPPATH=$CPPPATH/include"
+      "APPEND_LIBPATH=$LIBPATH/lib"
+    )
   '';
 
   prefixKey = "PREFIX=";
@@ -51,7 +68,7 @@ stdenv.mkDerivation rec {
     description = "A free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
     homepage = "https://nsis.sourceforge.io/";
     license = licenses.zlib;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pombeirp ];
   };
 }
diff --git a/pkgs/development/tools/ocaml/ocamlformat/default.nix b/pkgs/development/tools/ocaml/ocamlformat/default.nix
index c3b4182a0b5..4c8a4b9e9d0 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -52,5 +52,9 @@ rec {
     version = "0.17.0";
   };
 
-  ocamlformat = ocamlformat_0_17_0;
+  ocamlformat_0_18_0 = mkOCamlformat {
+    version = "0.18.0";
+  };
+
+  ocamlformat = ocamlformat_0_18_0;
 }
diff --git a/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
index 69f26c5b887..eb38b60f9b1 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/generic.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
@@ -21,19 +21,20 @@ let src =
       "0.15.1" = "1x6fha495sgk4z05g0p0q3zfqm5l6xzmf6vjm9g9g7c820ym2q9a";
       "0.16.0" = "1vwjvvwha0ljc014v8jp8snki5zsqxlwd7x0dl0rg2i9kcmwc4mr";
       "0.17.0" = "0f1lxp697yq61z8gqxjjaqd2ns8fd1vjfggn55x0gh9dx098p138";
+      "0.18.0" = "0571kzmb1h03qj74090n3mg8wfbh29qqrkdjkai6rnl5chll86lq";
     }."${version}";
-  }
-; in
-
-let ocamlPackages =
-  if lib.versionAtLeast version "0.14.3"
+  };
+  ocamlPackages =
+  if lib.versionAtLeast version "0.17.0"
   then ocaml-ng.ocamlPackages
+  else if lib.versionAtLeast version "0.14.3"
+  then ocaml-ng.ocamlPackages_4_10
   else ocaml-ng.ocamlPackages_4_07
 ; in
 
 with ocamlPackages;
 
-buildDunePackage rec {
+buildDunePackage {
   pname = "ocamlformat";
   inherit src version;
 
@@ -45,7 +46,24 @@ buildDunePackage rec {
   useDune2 = true;
 
   buildInputs =
-    if lib.versionAtLeast version "0.17.0"
+    if lib.versionAtLeast version "0.18.0"
+    then [
+      base
+      cmdliner
+      fpath
+      odoc
+      re
+      stdio
+      uuseg
+      uutf
+      fix
+      menhir
+      dune-build-info
+      ocaml-version
+      # Changed since 0.16.0:
+      (ppxlib.override { version = "0.22.0"; })
+    ]
+    else if lib.versionAtLeast version "0.17.0"
     then [
       base
       cmdliner
diff --git a/pkgs/development/tools/ocaml/ocp-build/default.nix b/pkgs/development/tools/ocaml/ocp-build/default.nix
index 655f7b4d4c2..a1d0b76eb1f 100644
--- a/pkgs/development/tools/ocaml/ocp-build/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ncurses, cmdliner, re }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ncurses, cmdliner, re }:
 let
   version = "1.99.21";
 in
@@ -13,6 +13,14 @@ stdenv.mkDerivation {
     sha256 = "1641xzik98c7xnjwxpacijd6d9jzx340fmdn6i372z8h554jjlg9";
   };
 
+  patches = [
+    # Fix compilation with OCaml 4.12
+    (fetchpatch {
+      url = "https://github.com/OCamlPro/ocp-build/commit/104e4656ca6dba9edb03b62539c9f1e10abcaae8.patch";
+      sha256 = "0sbyi4acig9q8x1ky4hckfg5pm2nad6zasi51ravaf1spgl148c2";
+    })
+  ];
+
   buildInputs = [ ocaml findlib cmdliner re ];
   propagatedBuildInputs = [ ncurses ];
   preInstall = "mkdir -p $out/bin";
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index a73907cd257..eb9bd6de5dc 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.27.1";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-IiPUmLgkD50LxOT+ZEf/UZJ0192GYOy9xk8U94Q0BWc=";
+    sha256 = "sha256-khXcpV4bPfFwoQ4LrHFohhlTHOIDClZuE3qg+MYk36k=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/parsing/antlr/3.5.nix b/pkgs/development/tools/parsing/antlr/3.5.nix
index 2efe752c363..cb6263aca42 100644
--- a/pkgs/development/tools/parsing/antlr/3.5.nix
+++ b/pkgs/development/tools/parsing/antlr/3.5.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, fetchFromGitHub, jre}:
+{lib, stdenv, fetchpatch, fetchurl, fetchFromGitHub, jre}:
 
 stdenv.mkDerivation rec {
   pname = "antlr";
@@ -14,6 +14,13 @@ stdenv.mkDerivation rec {
     sha256 = "1i0w2v9prrmczlwkfijfp4zfqfgrss90a7yk2hg3y0gkg2s4abbk";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/antlr3/raw/f1bb8d639678047935e1761c3bf3c1c7da8d0f1d/f/0006-antlr3memory.hpp-fix-for-C-20-mode.patch";
+      sha256 = "0apk904afjqbad6c7z9r72a9lkbz69vwrl8j2a6zgxjn8dfb2p8b";
+    })
+  ];
+
   installPhase = ''
     mkdir -p "$out"/{lib/antlr,bin,include}
     cp "$jar" "$out/lib/antlr/antlr-${version}-complete.jar"
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index 0ce151f6507..293b8bb095a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -71,6 +71,35 @@ let
     in
     lib.mapAttrs change grammars;
 
+  # Usage:
+  # pkgs.tree-sitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ])
+  #
+  # or for all grammars:
+  # pkgs.tree-sitter.withPlugins (_: allGrammars)
+  # which is equivalent to
+  # pkgs.tree-sitter.withPlugins (p: builtins.attrValues p)
+  withPlugins = grammarFn:
+    let
+      grammars = grammarFn builtGrammars;
+    in
+    linkFarm "grammars"
+      (map
+        (drv:
+          let
+            name = lib.strings.getName drv;
+          in
+          {
+            name =
+              (lib.strings.removePrefix "tree-sitter-"
+                (lib.strings.removeSuffix "-grammar" name))
+              + stdenv.hostPlatform.extensions.sharedLibrary;
+            path = "${drv}/parser";
+          }
+        )
+        grammars);
+
+  allGrammars = builtins.attrValues builtGrammars;
+
 in
 rustPlatform.buildRustPackage {
   pname = "tree-sitter";
@@ -111,7 +140,7 @@ rustPlatform.buildRustPackage {
     updater = {
       inherit update-all-grammars;
     };
-    inherit grammars builtGrammars;
+    inherit grammars builtGrammars withPlugins allGrammars;
 
     tests = {
       # make sure all grammars build
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index 03c4bb06a0c..dd6a3a380bc 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "70fd2cba742506903589b5e046c32e0e3e06404a",
-  "date": "2021-03-03T17:18:54-08:00",
-  "path": "/nix/store/m0pzbb0vg0fm9nycj05ay0yldzp7qwbi-tree-sitter-c-sharp",
-  "sha256": "12jj66rsn1klsk24yj0ymgsqwy7lc5kb3nkj7griip8rmi3kgy41",
+  "rev": "09749b7b5428e770cc2ebdf2e90029c0f4a2d411",
+  "date": "2021-04-13T07:05:48+01:00",
+  "path": "/nix/store/w99nivk866bglvijxb5m0c789qh99x1m-tree-sitter-c-sharp",
+  "sha256": "17n7r1j1ib3gzjf0qw88512flzamjrvilksbf1p15dqa17rmwyq1",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
index 3d98f69f053..13fd9681709 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c",
-  "rev": "5aa0bbbfc41868a3727b7a89a90e9f52e0964b2b",
-  "date": "2021-03-03T17:00:36-08:00",
-  "path": "/nix/store/2wa64ii39p31wpngvqk4ni8z8ws29r2g-tree-sitter-c",
-  "sha256": "1diys8yigvhm4ppbmp3a473yxjg2d5lk11y0ay7qprcz7233lakv",
+  "rev": "f05e279aedde06a25801c3f2b2cc8ac17fac52ae",
+  "date": "2021-03-28T09:12:10-07:00",
+  "path": "/nix/store/4bcxsfrgrcpjy3f6dsmqli2xawjpyz44-tree-sitter-c",
+  "sha256": "1rismmgaqii1sdnri66h75sgw3mky4aha9hff6fan1qzll4f3hif",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
index fcd0457454d..f88c5f9cf99 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-cpp",
-  "rev": "05cf2030e5415e9e931f620f0924107f73976796",
-  "date": "2021-03-04T10:01:34-08:00",
-  "path": "/nix/store/fraya34acwl9i3cxpml9hwzfkyc8vs89-tree-sitter-cpp",
-  "sha256": "08ywv6n80sa541rr08bqz4zyg7byvjcabp68lvxmcahjk8xzcgwk",
+  "rev": "c61212414a3e95b5f7507f98e83de1d638044adc",
+  "date": "2021-03-27T10:08:51-07:00",
+  "path": "/nix/store/a8cd3sv1j900sd8l7cdjw91iw7pp3jhv-tree-sitter-cpp",
+  "sha256": "04nv9j03q20idk9pnm2lgw7rbwzy5jf9v0y6l102by68z4lv79fi",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json
index 8d3c6608ab8..85e2f5e71b8 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fennel.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/travonted/tree-sitter-fennel",
-  "rev": "5aad9d1f490b7fc8a847a5b260f23396c56024f5",
-  "date": "2020-11-03T09:22:17-05:00",
-  "path": "/nix/store/gsxg67brk198201h70lip7miwny084sy-tree-sitter-fennel",
-  "sha256": "1imv5nwmhsyxwq7b9z4qz72lfva40wgybdkmq0gbbfbszl9a9bgl",
+  "rev": "bc689e2ef264e2cba499cfdcd16194e8f5fe87d2",
+  "date": "2021-03-09T16:47:45-05:00",
+  "path": "/nix/store/3h4j1mrqvn0ybqjalic92bnhk7c15442-tree-sitter-fennel",
+  "sha256": "1jm21bmsdrz9x5skqmx433q9b4mfi88gzc4la5hqps4is28inqms",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index d0a7188c6b2..6783d4381f6 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "e41dd569d91eb58725baa7089c34fc3d785b2978",
-  "date": "2021-03-03T17:11:05-08:00",
-  "path": "/nix/store/87n5nl5p1fnmwgy0zshz90vyvha6b7mn-tree-sitter-go",
-  "sha256": "0nxs47vd2fc2fr0qlxq496y852rwg39flhg334s7dlyq7d3lcx4x",
+  "rev": "2a83dfdd759a632651f852aa4dc0af2525fae5cd",
+  "date": "2021-03-09T16:11:33-05:00",
+  "path": "/nix/store/2jk1bacllxsii8nlbc5lyi3k376ylf3q-tree-sitter-go",
+  "sha256": "001p8kb8g4vghn78690bnav42inkypld2k1mbd5pbmd5svvacfav",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
index 191a23dd78c..3dc04b3b08a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-haskell",
-  "rev": "24cf84ff618e96528882c67c8740fadcd6c4a921",
-  "date": "2021-03-06T17:58:27+01:00",
-  "path": "/nix/store/46hpbz06d1p5n0rp6z3iwy2lpwrn8kgl-tree-sitter-haskell",
-  "sha256": "1l004x1z9g1p8313ipvrf581vr2wi82qcwc0281kg083m2z4535p",
+  "rev": "2e33ffa3313830faa325fe25ebc3769896b3a68b",
+  "date": "2021-04-19T23:45:03+02:00",
+  "path": "/nix/store/75mc2mfs4sm21c871s5lm9djnjk90r7n-tree-sitter-haskell",
+  "sha256": "0np7mzi1na1qscdxsjpyw314iwcmpzzrx1v7fk3yxc70qwzjcpp1",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
index 19c8edef5e2..c3e5cb9d20f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-java",
-  "rev": "7ad106e81963b4d5c0aff99b93d16dc577fa3bc8",
-  "date": "2021-03-05T16:03:00-08:00",
-  "path": "/nix/store/ax9m7v0pv7q7xsnrjlfdpljs4f6xi2z3-tree-sitter-java",
-  "sha256": "1594mrhqcdfs8b7wmwpzcwna4m3ra8cbzq162flwrhcsb3w0rr9w",
+  "rev": "ee8e358637e05188f9f65d8d1ad88a4412c975ce",
+  "date": "2021-04-20T10:40:14-04:00",
+  "path": "/nix/store/8612qackwqdsvbfc03lzc5vds6mvqwxf-tree-sitter-java",
+  "sha256": "19qxfimy8w49gqc97siknd27kvkz73qp2v2118pvdbdz7c5dv27r",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
index 6f31e096f59..351a0f262cb 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-javascript",
-  "rev": "b3e7667995c065be724d10b69fbc3d0177ccef0b",
-  "date": "2021-03-08T13:12:59-08:00",
-  "path": "/nix/store/1y3nirw7bbnld4qy7ysm20bq0x9403wz-tree-sitter-javascript",
-  "sha256": "0bzyq5x8x1r34fzy1f05yqdlz51b1i1jmyssm0i571n9n6142s3j",
+  "rev": "a263a8f53266f8f0e47e21598e488f0ef365a085",
+  "date": "2021-04-20T10:37:09-04:00",
+  "path": "/nix/store/y6qbdzdx4g1g1sa2rb7dnk9snjs6lhpp-tree-sitter-javascript",
+  "sha256": "04s1jb9c96kwq0nrh6516idlh58d2b1k66amqa2sl5kk32pl9pmm",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
index 34f2563b12a..ad00365e71e 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-json",
-  "rev": "89607925e8989f2638cc935b8de7e44ac3c91907",
-  "date": "2021-03-04T14:55:58-08:00",
-  "path": "/nix/store/xpykb8mr4xarh6finzkz71z2bpqm8k26-tree-sitter-json",
-  "sha256": "06pjh31bv9ja9hlnykk257a6zh8bsxg2fqa54al7qk1r4n9ksnff",
+  "rev": "65bceef69c3b0f24c0b19ce67d79f57c96e90fcb",
+  "date": "2021-03-09T16:25:11-05:00",
+  "path": "/nix/store/bn5smxwwg4zzdc52wp2qb6s6yjdfi8mg-tree-sitter-json",
+  "sha256": "13p4ffmajirl9qh64d6qnng1gjnh5f6jkqbra0nlc1260nsf12hp",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
index 164b7c0549b..0079a47810a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/ikatyang/tree-sitter-markdown",
-  "rev": "5a139bed455268a06410471bf48b19d11abdd367",
-  "date": "2021-01-24T15:17:18+08:00",
-  "path": "/nix/store/125cbxcqvwyq8b7kvmg7wxjjz16s2jvw-tree-sitter-markdown",
-  "sha256": "072b4nnpymrh90y4dk18kr8l1g7m83r3gvp6v0ad9f9dnq47fgax",
+  "rev": "8b8b77af0493e26d378135a3e7f5ae25b555b375",
+  "date": "2021-04-18T20:49:21+08:00",
+  "path": "/nix/store/4z2k0q6rwqmb7vbqr4vgc26w28szlan3-tree-sitter-markdown",
+  "sha256": "1a2899x7i6dgbsrf13qzmh133hgfrlvmjsr3bbpffi1ixw1h7azk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
index 8d0b5aaf0e4..eb97bb46f68 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cstrahan/tree-sitter-nix",
-  "rev": "a6bae0619126d70c756c11e404d8f4ad5108242f",
-  "date": "2021-02-09T00:48:18-06:00",
-  "path": "/nix/store/1rfsi62v549h72vw7ysciaw17vr5h9yx-tree-sitter-nix",
-  "sha256": "08n496k0vn7c2751gywl1v40490azlri7c92dr2wfgw5jxhjmb0d",
+  "rev": "d5287aac195ab06da4fe64ccf93a76ce7c918445",
+  "date": "2021-04-21T19:11:29-05:00",
+  "path": "/nix/store/6labzn2qd3wyn4k2ddb09z2avpgqwbp1-tree-sitter-nix",
+  "sha256": "0mapqdqrinskdxlarrrvyd55mjg97gbd6jm9vbjmdm4xi2hhzvxa",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
index d13f77a9f04..941a9664684 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ocaml",
-  "rev": "19a8d2aab425c4c4c8dc6a882e67c37010620c3b",
-  "date": "2021-03-08T16:57:09-08:00",
-  "path": "/nix/store/y8jsf6vp278svqm4c6xnl4i6vanslrkk-tree-sitter-ocaml",
-  "sha256": "0c5wjanka87bhha0aq3m5p448apxhv8hndlqvhly6qafj99jp85i",
+  "rev": "2f962cf4eb0bee87bba755347a79ee501cd58313",
+  "date": "2021-03-11T02:13:42+01:00",
+  "path": "/nix/store/pwf6di3pdghsnb83c87vvm3w0d5aanvp-tree-sitter-ocaml",
+  "sha256": "1dfan7kbs7i0nz9dkxv8ipn0b341j1fr9fn0a2zfqsx6xxkra56r",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index 8a013179e3d..a536d54b651 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "ba231f9844e5a1bf60e1cb72c34c0a431239585a",
-  "date": "2021-03-03T17:17:11-08:00",
-  "path": "/nix/store/cn06h14pgq3psjq3ms0yvdm3x1wwbc1j-tree-sitter-php",
-  "sha256": "1xaml64b7cx3hn6x35bbgar8cp7ccxkwvxddjdvyj5nzfx1id8y3",
+  "rev": "4dcc061668fbc68b79421c72eb8a8baeeb0f3693",
+  "date": "2021-04-19T12:44:47-04:00",
+  "path": "/nix/store/2i80zds4dbynrdim9ngc8yp6yn825byb-tree-sitter-php",
+  "sha256": "0hs6dfw9n6sp7vbp7zfid0f0sxydyya3dyp5ghckz7al069g3vx2",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
index 976ec6c57cd..1b6e562f85a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-python",
-  "rev": "dd98afca32aaceff9025f9e85031ac50bee8b08b",
-  "date": "2021-03-05T16:00:15-08:00",
-  "path": "/nix/store/6sbmzgva73fhgqhsdrg5zy7vbs9lzll9-tree-sitter-python",
-  "sha256": "01ykryrv1nn2y8dcbl64d31h1ipz2569ywzjp10pd93h1s6czpnl",
+  "rev": "d6210ceab11e8d812d4ab59c07c81458ec6e5184",
+  "date": "2021-03-27T09:41:53-07:00",
+  "path": "/nix/store/4v24ahydid4hr7kj0xi41mgbpglfnnki-tree-sitter-python",
+  "sha256": "173lpxi4vqa42dcdr9aj5phg5g6ny9ns04djw9n86pasx2w66dhk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
index c88d6e2460c..b83bcb25885 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-rust",
-  "rev": "20f064bd758f94b8f47ce5a21e4383c7349ca182",
-  "date": "2021-03-04T14:06:14-08:00",
-  "path": "/nix/store/za0yxqjjp9vxgwrp014qwv2v2qffl0di-tree-sitter-rust",
-  "sha256": "118vkhv7n3sw8y9pi0987cgdcd74sjqwviijw01mhnk3bkyczi3l",
+  "rev": "a360da0a29a19c281d08295a35ecd0544d2da211",
+  "date": "2021-03-27T09:50:22-07:00",
+  "path": "/nix/store/h4snh879ccy159fa390qr8l0nyaf5ndr-tree-sitter-rust",
+  "sha256": "0knaza3ww5h5w95hzdaalg5yrfpiv0r394q0imadxp5611132hxz",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index 3ec792c7190..b7c214cc720 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "262797b1dfe0303818c2418c0a88f6be65f37245",
-  "date": "2021-03-04T15:02:28-08:00",
-  "path": "/nix/store/vc5fr00vqx5nf17r9grdwb11wci3xrkm-tree-sitter-scala",
-  "sha256": "1zf3b1x1s94dgzjbc6l8ind5fd1mmny3893d4bqc63h4qp0n0bp3",
+  "rev": "fb23ed9a99da012d86b7a5059b9d8928607cce29",
+  "date": "2021-04-01T10:11:15-07:00",
+  "path": "/nix/store/n1wvxkz4h38770lxvwakway34ac2a8h7-tree-sitter-scala",
+  "sha256": "05g95340g4labkdvfka5cbg7pr6vzigc40y54js1b5wml0w3d8f7",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
index 6cd63a61e89..41c4fcfe734 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-svelte.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/Himujjal/tree-sitter-svelte",
-  "rev": "a96899bd1ab6a18e3837f232fd688af69e3a8071",
-  "date": "2021-03-09T15:14:24+05:30",
-  "path": "/nix/store/nlpf6gilkk19aw7pk1kbys2alhnqagqj-tree-sitter-svelte",
-  "sha256": "04virfsiqqhh3gc3cmcjd4s1zn9wdxi47m55x938napaqiaw29nx",
+  "rev": "c696a13a587b0595baf7998f1fb9e95c42750263",
+  "date": "2021-03-20T16:45:11+05:30",
+  "path": "/nix/store/8krdxqwpi95ljrb5jgalwgygz3aljqr8-tree-sitter-svelte",
+  "sha256": "0ckmss5gmvffm6danlsvgh6gwvrlznxsqf6i6ipkn7k5lxg1awg3",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index 3ff85a0766b..a59dd9a0004 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-typescript",
-  "rev": "7e119621b1d2ab1873ba14d8702f62458df70409",
-  "date": "2021-03-08T13:23:30-08:00",
-  "path": "/nix/store/k7vam1w5c2r0hhxy0bgpmj65bw5wnh96-tree-sitter-typescript",
-  "sha256": "1fv6q1bc0j6b89skz7x2ibi6bxx0ijrb676y23aahycvz2p8x4z0",
+  "rev": "82916165120f840164f11119f268a4de819ea90b",
+  "date": "2021-04-19T18:16:19-07:00",
+  "path": "/nix/store/0c0kkiiamms3yl3mf1clyrqcjwp5j920-tree-sitter-typescript",
+  "sha256": "1jnf0hn6hmn4x2cvy29mk8g1wlp0afs8immp461by3q5hcq8fzb4",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json
index 7ab79c6f2d5..5e4e14a95b3 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-verilog",
-  "rev": "ad551aae2649da56582bc0557478a7dc979c0be3",
-  "date": "2020-10-13T17:40:47-07:00",
-  "path": "/nix/store/nfaxfqrqkxpwaq8rnk7kcp28nnj8y6m2-tree-sitter-verilog",
-  "sha256": "0cy29i200rnc34d237s19r6a1n5vv4d3wgwpbywxg6ahcankc34m",
+  "rev": "1b624ab8b3f8d54ecc37847aa04512844f0226ac",
+  "date": "2021-03-31T21:27:26-07:00",
+  "path": "/nix/store/4j6hrf8bc8zjd7r9xnna9njpw0i4z817-tree-sitter-verilog",
+  "sha256": "0ygm6bdxqzpl3qn5l58mnqyj730db0mbasj373bbsx81qmmzkgzz",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
index 8231a0354d7..c8544d7dbec 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yaml.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/ikatyang/tree-sitter-yaml",
-  "rev": "ab0ce67ce98f8d9cc0224ebab49c64d01fedc1a1",
-  "date": "2021-01-01T21:13:43+08:00",
-  "path": "/nix/store/3vnhqr4l2hb0ank13avj8af4qbni5szw-tree-sitter-yaml",
-  "sha256": "14f0abv68cjkwdcjjwa1nzjpwp6w59cj5v4m5h5h3jxi96z65459",
+  "rev": "6129a83eeec7d6070b1c0567ec7ce3509ead607c",
+  "date": "2021-04-18T14:25:59+08:00",
+  "path": "/nix/store/8wrwm71z9flfk00phrh9aaxpvsrw1m67-tree-sitter-yaml",
+  "sha256": "1bimf5fq85wn8dwlk665w15n2bj37fma5rsfxrph3i9yb0lvzi3q",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/protoc-gen-go-grpc/default.nix b/pkgs/development/tools/protoc-gen-go-grpc/default.nix
new file mode 100644
index 00000000000..6fd939d0023
--- /dev/null
+++ b/pkgs/development/tools/protoc-gen-go-grpc/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+buildGoPackage rec {
+  pname = "protoc-gen-go-grpc";
+  version = "1.1.0";
+
+  goPackagePath = "google.golang.org/grpc";
+
+  src = fetchFromGitHub {
+    owner = "grpc";
+    repo = "grpc-go";
+    rev = "cmd/protoc-gen-go-grpc/v${version}";
+    sha256 = "14rjb8j6fm07rnns3dpwgkzf3y6rmia6i9n7ns6cldc5mbf7nwi3";
+  };
+
+  subPackages = [ "cmd/protoc-gen-go-grpc" ];
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "The Go language implementation of gRPC. HTTP/2 based RPC";
+    license = licenses.asl20;
+    maintainers = [ maintainers.raboof ];
+  };
+}
diff --git a/pkgs/development/tools/protoc-gen-go-grpc/deps.nix b/pkgs/development/tools/protoc-gen-go-grpc/deps.nix
new file mode 100644
index 00000000000..d559989244d
--- /dev/null
+++ b/pkgs/development/tools/protoc-gen-go-grpc/deps.nix
@@ -0,0 +1,333 @@
+# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix)
+[
+  {
+    goPackagePath = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/google-cloud-go";
+      rev = "v0.26.0";
+      sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "v0.3.1";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/census-instrumentation/opencensus-proto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-proto";
+      rev = "v0.2.1";
+      sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/client9/misspell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/client9/misspell";
+      rev = "v0.3.4";
+      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/cncf/udpa/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cncf/udpa";
+      rev = "5459f2c99403";
+      sha256 = "0i3al193dsp91j7iywqrm6fr56y2sz51ci4vf19mb3j4n2x44gsi";
+      moduleDir = "go";
+    };
+  }
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.0";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/envoyproxy/go-control-plane";
+    fetch = {
+      type = "git";
+      url = "https://github.com/envoyproxy/go-control-plane";
+      rev = "668b12f5399d";
+      sha256 = "0vmhc8ii081x1k2qw4kji7wjyg6l25zp1y6qxi27wq8m341i4rzb";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/envoyproxy/protoc-gen-validate";
+    fetch = {
+      type = "git";
+      url = "https://github.com/envoyproxy/protoc-gen-validate";
+      rev = "v0.1.0";
+      sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/glog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/glog";
+      rev = "23def4e6c14b";
+      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/mock";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/mock";
+      rev = "v1.1.1";
+      sha256 = "0ap8wb6pdl6ccmdb43advjll2ly4sz26wsc3axw0hbrjrybybzgy";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.4.2";
+      sha256 = "0m5z81im4nsyfgarjhppayk4hqnrwswr3nix9mj8pff8x9jvcjqw";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev = "v0.5.0";
+      sha256 = "04pzp583p6b32y34c6jygfxarff9qjs39rarvfh6467z24sdd9k4";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/uuid";
+      rev = "v1.1.2";
+      sha256 = "1rbpfa0v0ly9sdnixcxhf79swki54ikgm1zkwwkj64p1ws66syqd";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev = "14fe0d1b01d4";
+      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/objx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/objx";
+      rev = "v0.1.0";
+      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.5.1";
+      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "c2843e01d9a2";
+      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/exp";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/exp";
+      rev = "509febef88a4";
+      sha256 = "02isrh39z8znrp5znplzy0dip2gnrl3jm1355raliyvhnhg04j6q";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/lint";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/lint";
+      rev = "d0100b6bd8b3";
+      sha256 = "0b0amr9x4ji66iv9ayfx7zrfx52k1m5g66qfcxkgj80qrb1y2yn7";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "d8887717615a";
+      sha256 = "1wfm6ngxjyj7v5a2dqib6lw8bb2rdnf1kl48diykxjrsddn0s163";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev = "d2e6202438be";
+      sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "112230192c58";
+      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "d0b11bdaac8a";
+      sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "2c0ae7006135";
+      sha256 = "1lsi2ssxajclj3bciz2a41v1vjv768ja3v6wnbyhxy8xphwkp4fk";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "9bdfabe68543";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev = "v1.4.0";
+      sha256 = "06zl7w4sxgdq2pl94wy9ncii6h0z3szl4xpqds0sv3b3wbdlhbnn";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/go-genproto";
+      rev = "cb27e3aa2013";
+      sha256 = "0ml73ghqcwbz7ipfk8fnxb5indcml49b5p7vp1fsyny0abyyrmxf";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/protobuf";
+      rev = "v1.25.0";
+      sha256 = "0apfl42x166dh96zfq5kvv4b4ax9xljik6bq1mnvn2240ir3mc23";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "20d25e280405";
+      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.2";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
+      moduleDir = "";
+    };
+  }
+  {
+    goPackagePath = "honnef.co/go/tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dominikh/go-tools";
+      rev = "ea95bdfd59fc";
+      sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
+      moduleDir = "";
+    };
+  }
+]
diff --git a/pkgs/development/tools/protoc-gen-twirp_php/default.nix b/pkgs/development/tools/protoc-gen-twirp_php/default.nix
index 40df9e974e4..08c8214c637 100644
--- a/pkgs/development/tools/protoc-gen-twirp_php/default.nix
+++ b/pkgs/development/tools/protoc-gen-twirp_php/default.nix
@@ -2,23 +2,19 @@
 
 buildGoModule rec {
   pname = "protoc-gen-twirp_php";
-  version = "0.6.0";
+  version = "0.7.1";
 
   # fetchFromGitHub currently not possible, because go.mod and go.sum are export-ignored
   src = fetchgit {
     url = "https://github.com/twirphp/twirp.git";
     rev = "v${version}";
-    sha256 = "sha256-WnvCdAJIMA4A+f7H61qcVbKNn23bNVOC15vMCEKc+CI=";
+    sha256 = "sha256-94GN/Gq3RXXg83eUsmIcdF4VuK4syCgD0Zkc5eDiVYE=";
   };
 
-  vendorSha256 = "sha256-LIMxrWXlK7+JIRmtukdXPqfw8H991FCAOuyEf7ZLSTs=";
+  vendorSha256 = "sha256-gz4JELCffuh7dyFdBex8/SFZ1/PDXuC/93m3WNHwRss=";
 
   subPackages = [ "protoc-gen-twirp_php" ];
 
-  preBuild = ''
-    go generate ./...
-  '';
-
   meta = with lib; {
     description = "PHP port of Twitch's Twirp RPC framework";
     homepage = "https://github.com/twirphp/twirp";
diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/development/tools/purescript/spago/default.nix
index 6fef3dd8675..980bca0fa2d 100644
--- a/pkgs/development/tools/purescript/spago/default.nix
+++ b/pkgs/development/tools/purescript/spago/default.nix
@@ -17,6 +17,8 @@ let
         maintainers = (oldAttrs.maintainers or []) ++ [
           lib.maintainers.cdepillabout
         ];
+        changelog =
+          "https://github.com/purescript/spago/releases/tag/${oldAttrs.version}";
       }));
 in
 
diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix
index eca516bbeba..ed8da83e30a 100644
--- a/pkgs/development/tools/purescript/spago/spago.nix
+++ b/pkgs/development/tools/purescript/spago/spago.nix
@@ -1,22 +1,22 @@
 { mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
 , base, bower-json, bytestring, Cabal, containers, cryptonite
-, dhall, directory, either, exceptions, extra, fetchgit, file-embed
-, filepath, foldl, fsnotify, generic-lens, github, Glob, hpack
-, hspec, hspec-discover, hspec-megaparsec, http-client
-, http-conduit, http-types, lens-family-core, megaparsec, mtl
-, network-uri, open-browser, optparse-applicative, prettyprinter
-, process, QuickCheck, retry, rio, rio-orphans, safe, semver-range
-, lib, stm, stringsearch, tar, template-haskell, temporary, text
-, time, transformers, turtle, unliftio, unordered-containers
-, utf8-string, vector, versions, with-utf8, zlib
+, dhall, directory, either, extra, fetchgit, file-embed, filepath
+, foldl, fsnotify, generic-lens, Glob, hpack, hspec, hspec-discover
+, hspec-megaparsec, http-client, http-conduit, http-types
+, lens-family-core, lib, megaparsec, mtl, network-uri, open-browser
+, optparse-applicative, prettyprinter, process, QuickCheck, retry
+, rio, rio-orphans, safe, semver-range, stm, stringsearch
+, tar, template-haskell, temporary, text, time, transformers
+, turtle, unliftio, unordered-containers, utf8-string, versions
+, with-utf8, zlib
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.20.0";
+  version = "0.20.1";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "1n48p9ycry8bjnf9jlcfgyxsbgn5985l4vhbwlv46kbb41ddwi51";
-    rev = "7dfd2236aff92e5ae4f7a4dc336b50a7e14e4f44";
+    sha256 = "1j2yi6zz9m0k0298wllin39h244v8b2rx87yxxgdbjg77kn96vxg";
+    rev = "41ad739614f4f2c2356ac921308f9475a5a918f4";
     fetchSubmodules = true;
   };
   isLibrary = true;
@@ -24,16 +24,17 @@ mkDerivation {
   libraryHaskellDepends = [
     aeson aeson-pretty ansi-terminal async-pool base bower-json
     bytestring Cabal containers cryptonite dhall directory either
-    exceptions file-embed filepath foldl fsnotify generic-lens github
-    Glob http-client http-conduit http-types lens-family-core
-    megaparsec mtl network-uri open-browser optparse-applicative
-    prettyprinter process retry rio rio-orphans safe semver-range stm
-    stringsearch tar template-haskell temporary text time transformers
-    turtle unliftio unordered-containers utf8-string vector versions
-    with-utf8 zlib
+    file-embed filepath foldl fsnotify generic-lens Glob http-client
+    http-conduit http-types lens-family-core megaparsec mtl network-uri
+    open-browser optparse-applicative prettyprinter process retry rio
+    rio-orphans safe semver-range stm stringsearch tar template-haskell
+    temporary text time transformers turtle unliftio
+    unordered-containers utf8-string versions with-utf8 zlib
   ];
   libraryToolDepends = [ hpack ];
-  executableHaskellDepends = [ base text turtle with-utf8 ];
+  executableHaskellDepends = [
+    ansi-terminal base text turtle with-utf8
+  ];
   testHaskellDepends = [
     base containers directory extra hspec hspec-megaparsec megaparsec
     process QuickCheck temporary text turtle versions
diff --git a/pkgs/development/tools/roswell/default.nix b/pkgs/development/tools/roswell/default.nix
new file mode 100644
index 00000000000..98445ea875a
--- /dev/null
+++ b/pkgs/development/tools/roswell/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, curl, autoconf, automake, makeWrapper, sbcl }:
+
+stdenv.mkDerivation rec {
+  pname = "roswell";
+  version = "21.01.14.108";
+
+  src = fetchFromGitHub {
+    owner = "roswell";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hj9q3ig7naky3pb3jkl9yjc9xkg0k7js3glxicv0aqffx9hkp3p";
+  };
+
+  preConfigure = ''
+    sh bootstrap
+  '';
+
+  configureFlags = [ "--prefix=${placeholder "out"}" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/ros \
+      --add-flags 'lisp=sbcl-bin/system sbcl-bin.version=system' \
+      --prefix PATH : ${lib.makeBinPath [ sbcl ]} --argv0 ros
+  '';
+
+  nativeBuildInputs = [ autoconf automake makeWrapper ];
+
+  buildInputs = [ sbcl curl ];
+
+  meta = with lib; {
+    description = "Roswell is a Lisp implementation installer/manager, launcher, and much more";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hiro98 ];
+    platforms = platforms.linux;
+    homepage = "https://github.com/roswell/roswell";
+    mainProgram = "ros";
+  };
+}
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index eeec0487c65..57866918f07 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-/TROCaguzIdXnkQ4BpVR1W14ppGODGQ0MQAjJExMGVw=";
+    sha256 = "sha256-aqvdAljAJsYtmxz/WtMrrnmJJRXDpqDjUn1LusoM8ns=";
   };
 
-  cargoSha256 = "sha256-3uIf6vyeDeww8+dqrzOG4J/T9QbXAnKQKXRbeujeqSo=";
+  cargoSha256 = "sha256-KwnZmehh0vdR1eSPBrY6yHJR6r7mhIEgfN4soEBDTjU=";
 
   nativeBuildInputs = [ perl pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 54eead5d2a6..4300719147d 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -1,22 +1,31 @@
-{ lib, stdenv, fetchurl, runCommand, fetchCrate, rustPlatform, Security, openssl, pkg-config
+{ lib
+, stdenv
+, fetchurl
+, runCommand
+, fetchCrate
+, rustPlatform
+, Security
+, openssl
+, pkg-config
 , SystemConfiguration
+, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.32.16";
+  version = "0.32.17";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-FrrQcZHy5WjNYCod2TBWVAj4clNWPLWLIR2/Kvkz4q0=";
+    sha256 = "sha256-D/8fjJIyHCRzkomRsYUnGjDMCusjNX8ZYmLjowCYgcM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+    ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoSha256 = "sha256-QEHl/Hhug0Ua/SZV0iq1jc6QGGxA1NwheEgGBZRYunI=";
+  cargoSha256 = "sha256-Upegh3W31sTaXl0iHZ3HiYs9urgXH/XhC0vQBAWvDIc=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/development/tools/rust/cargo-raze/default.nix b/pkgs/development/tools/rust/cargo-raze/default.nix
index 11a52e6ea08..2e75c08b42b 100644
--- a/pkgs/development/tools/rust/cargo-raze/default.nix
+++ b/pkgs/development/tools/rust/cargo-raze/default.nix
@@ -3,17 +3,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-raze";
-  version = "0.2.10";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1fznh8jygzyzphw7762qc2jv0370z7qjqk1vkql0g246iqby8pq9";
+    sha256 = "161m4y6i4sgqi9mg3f3348f5cr0m45vhix4a4bcw54wnmhiklnnl";
   };
   sourceRoot = "source/impl";
 
-  cargoSha256 = "1z20xc508a3slc1ii3hy09swvlyib14zwf9akxc0h24d5m48as1c";
+  cargoSha256 = "1vlywdq0bx6b1k3w1grisca0hvv2s4s88yxq7bil8nhm5ghjgxdr";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ curl libgit2 openssl ]
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index df4c4ad77d3..4a30a70fa09 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -6,14 +6,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2021-04-12";
-  cargoSha256 = "1mnx0mnfkvz6gmzy2jcl0wrdwd1mgfnrny4xf9wkd5vd4ks4k338";
+  version = "2021-04-19";
+  cargoSha256 = "sha256-CXkI3CQ/v6RBMM2Dpp2u+qnRwba+nqzeaPSJGBiQUoY=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "1rg20aswbh9palwr3qfcnscsvzmbmhghn4k0nl11m9j7z6hva6bg";
+    sha256 = "sha256-W/cUwZEvlUXzqQ/futeNFwDWR/cTL/RLZaW2srIs83Q=";
   };
 
   buildAndTestSubdir = "crates/rust-analyzer";
diff --git a/pkgs/development/tools/rust/rustup/default.nix b/pkgs/development/tools/rust/rustup/default.nix
index 56097f9b98c..edd4dd7afd5 100644
--- a/pkgs/development/tools/rust/rustup/default.nix
+++ b/pkgs/development/tools/rust/rustup/default.nix
@@ -10,16 +10,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "rustup";
-  version = "1.23.1";
+  version = "1.24.1";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rustup";
     rev = version;
-    sha256 = "1i3ipkq6j47bf9dh9j3axzj6z443jm4j651g38cxyrrx8b2s15x0";
+    sha256 = "sha256-GKvKawvfm/4eBU4mn/Q9fhu3Ml+j+BsxVNPvbvcnMLU=";
   };
 
-  cargoSha256 = "1zkrrg5m0j9rk65g51v2zh404529p9z84qqb7bfyjmgiqlnh48ig";
+  cargoSha256 = "sha256-tWww+rR4DQgRacVeLqnOBcuXA7o/NYmJBcJgWX3aLRY=";
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
diff --git a/pkgs/development/tools/rust/svd2rust/cargo-lock.patch b/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
index 5cd1f685fc1..acc9b053593 100644
--- a/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
+++ b/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
@@ -2,102 +2,149 @@ diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,278 @@
+@@ -0,0 +1,469 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
 +[[package]]
 +name = "ansi_term"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "anyhow"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "atty"
-+version = "0.2.11"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.1"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "backtrace"
-+version = "0.3.13"
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cast"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "backtrace-sys"
-+version = "0.1.28"
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "clap"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "bitflags"
-+version = "0.7.0"
++name = "crossbeam-channel"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "bitflags"
-+version = "1.0.4"
++name = "crossbeam-deque"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cast"
-+version = "0.2.2"
++name = "crossbeam-epoch"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cc"
-+version = "1.0.28"
++name = "crossbeam-utils"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "cfg-if"
-+version = "0.1.6"
++name = "either"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "clap"
-+version = "2.32.0"
++name = "env_logger"
++version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "either"
-+version = "1.5.0"
++name = "hermit-abi"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "error-chain"
-+version = "0.11.0"
++name = "humantime"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -106,115 +153,232 @@ new file mode 100644
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "libc"
-+version = "0.2.46"
++version = "0.2.94"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memoffset"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quick-error"
++version = "1.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "quote"
-+version = "0.3.15"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "redox_syscall"
-+version = "0.1.50"
++name = "rayon"
++version = "1.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon-core 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
++name = "rayon-core"
++version = "1.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rustc-demangle"
-+version = "0.1.13"
++name = "regex"
++version = "1.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.23 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "strsim"
++name = "regex-syntax"
++version = "0.6.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
 +version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "svd-parser"
-+version = "0.6.0"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "once_cell 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "svd2rust"
-+version = "0.14.0"
++version = "0.18.0"
 +dependencies = [
-+ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cast 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "svd-parser 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "syn"
-+version = "0.11.11"
++version = "1.0.70"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "synom"
-+version = "0.11.3"
++name = "termcolor"
++version = "1.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "termion"
-+version = "1.5.1"
++name = "textwrap"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "textwrap"
-+version = "0.10.0"
++name = "thiserror"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thiserror-impl 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.5"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.0.4"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "vec_map"
-+version = "0.8.1"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.6"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -227,57 +391,84 @@ new file mode 100644
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "xml-rs"
-+version = "0.3.6"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "xmltree"
-+version = "0.3.2"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[metadata]
++"checksum aho-corasick 0.7.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
 +"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
-+"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
-+"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
-+"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
-+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
-+"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
-+"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
-+"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
-+"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
-+"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
-+"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
++"checksum anyhow 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b"
++"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++"checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cast 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "cc38c385bfd7e444464011bb24820f40dd1c76bcdfa1b78611cb7c2e5cafab75"
++"checksum cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++"checksum clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)" = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++"checksum crossbeam-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
++"checksum crossbeam-deque 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++"checksum crossbeam-epoch 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12"
++"checksum crossbeam-utils 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
++"checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++"checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++"checksum hermit-abi 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
 +"checksum inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
-+"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"
-+"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2"
-+"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-+"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619"
-+"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
-+"checksum svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f22b4579485b26262f36086d6b74903befc043a57f8377dfcf05bcf5335cb251"
-+"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
-+"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
-+"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
-+"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
-+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum libc 0.2.94 (registry+https://github.com/rust-lang/crates.io-index)" = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
++"checksum log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
++"checksum memchr 2.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++"checksum memoffset 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d"
++"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++"checksum once_cell 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
++"checksum proc-macro2 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
++"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++"checksum quote 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++"checksum rayon 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
++"checksum rayon-core 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
++"checksum regex 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
++"checksum regex-syntax 0.6.23 (registry+https://github.com/rust-lang/crates.io-index)" = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum svd-parser 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6b787831d8f6a1549ccd1b0d62772d0526425a7da687f0f98591ab18e53bfe98"
++"checksum syn 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "b9505f307c872bab8eb46f77ae357c8eba1fdacead58ee5a850116b1d7f82883"
++"checksum termcolor 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thiserror 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
++"checksum thiserror-impl 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
++"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++"checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+"checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
-+"checksum xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "472a9d37c7c53ab2391161df5b89b1f3bf76dab6ab150d7941ecbdd832282082"
++"checksum xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c1cb601d29fe2c2ac60a2b2e5e293994d87a1f6fa9687a31a15270f909be9c2"
++"checksum xmltree 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8eaee9d17062850f1e6163b509947969242990ee59a35801af437abe041e70"
diff --git a/pkgs/development/tools/rust/svd2rust/default.nix b/pkgs/development/tools/rust/svd2rust/default.nix
index 6ec06fffe21..8afb9c033cb 100644
--- a/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/pkgs/development/tools/rust/svd2rust/default.nix
@@ -4,20 +4,17 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "svd2rust";
-  version = "0.14.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "rust-embedded";
     repo = "svd2rust";
     rev = "v${version}";
-    sha256 = "1a0ldmjkhyv5c52gcq8p8avkj0cgj1b367w6hm85bxdf5j4y8rra";
+    sha256 = "1p0zq3q4g9lr0ghavp7v1dwsqq19lkljkm1i2hsb1sk3pxa1f69n";
   };
   cargoPatches = [ ./cargo-lock.patch ];
 
-  cargoSha256 = "0n0xc8b982ra007l6gygssf1n60gfc2rphwyi7n95dbys1chciyg";
-
-  # doc tests fail due to missing dependency
-  doCheck = false;
+  cargoSha256 = "0c0f86x17fzav5q76z3ha3g00rbgyz2lm5a5v28ggy0jmg9xgsv6";
 
   meta = with lib; {
     description = "Generate Rust register maps (`struct`s) from SVD files";
diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix
index 3d3b6bbe9d7..97c03fb4574 100644
--- a/pkgs/development/tools/scenebuilder/default.nix
+++ b/pkgs/development/tools/scenebuilder/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }:
 let
   # The default one still uses jdk8 (#89731)
-  gradle = (gradleGen.override (old: { java = jdk; })).gradle_latest;
+  gradle = (gradleGen.override (old: { java = jdk; })).gradle_6_8;
 
   pname = "scenebuilder";
   version = "15.0.1";
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 489ab85a249..db43c7f8e47 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "sha256-7FHfqDgc91BdtbvcElZDWj2jXD2LcMPo9RLnYZe3Xw8=";
+    sha256 = "sha256-GhLw8wt5eDixKNGtxGA0Fjw3auQ3AsjKa+0M4mLTQlg=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/sumneko-lua-language-server/default.nix b/pkgs/development/tools/sumneko-lua-language-server/default.nix
index f962447feb7..95c10ad7d26 100644
--- a/pkgs/development/tools/sumneko-lua-language-server/default.nix
+++ b/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sumneko-lua-language-server";
-  version = "1.16.0";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "sumneko";
     repo = "lua-language-server";
     rev = version;
-    sha256 = "1fqhvmz7a4qgz3zq6qgpcjhhhm2j4wpx0385n3zcphd9h9s3a9xa";
+    sha256 = "sha256-7Ishq/TonJsteHBGDTNjImIwGPdeRgPS1g60d8bhTYg=";
     fetchSubmodules = true;
   };
 
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
   '';
 
   ninjaFlags = [
-    "-f ninja/linux.ninja"
-    ];
+    "-fninja/linux.ninja"
+  ];
 
   postBuild = ''
     cd ../..
@@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/extras
     cp -r ./{locale,meta,script,*.lua} $out/extras/
     cp ./bin/Linux/{bee.so,lpeglabel.so} $out/extras
@@ -40,6 +42,8 @@ stdenv.mkDerivation rec {
       --add-flags "-E $out/extras/main.lua \
       --logpath='~/.cache/sumneko_lua/log' \
       --metapath='~/.cache/sumneko_lua/meta'"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/tabnine/default.nix b/pkgs/development/tools/tabnine/default.nix
index 49265d22f8d..0f596a0327d 100644
--- a/pkgs/development/tools/tabnine/default.nix
+++ b/pkgs/development/tools/tabnine/default.nix
@@ -1,19 +1,19 @@
 { stdenv, lib, fetchurl, unzip }:
 
 let
-  version = "3.3.101";
+  version = "3.3.115";
   src =
     if stdenv.hostPlatform.system == "x86_64-darwin" then
       fetchurl
         {
           url = "https://update.tabnine.com/bundles/${version}/x86_64-apple-darwin/TabNine.zip";
-          sha256 = "KrFDQSs7hMCioeqPKTNODe3RKnwNV8XafdYDUaxou/Y=";
+          sha256 = "104h3b9cvmz2m27a94cfc00xm8wa2p1pvrfs92hrz59hcs8vdldf";
         }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl
         {
           url = "https://update.tabnine.com/bundles/${version}/x86_64-unknown-linux-musl/TabNine.zip";
-          sha256 = "vbeuZf/phOj83xTha+AzpKIvvrjwMar7q2teAmr5ESQ=";
+          sha256 = "0rs2vmdz8c9zs53pjbzy27ir0p5v752cpsnqfaqf0ilx7k6fpnnm";
         }
     else throw "Not supported on ${stdenv.hostPlatform.system}";
 in
@@ -32,6 +32,9 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm755 TabNine $out/bin/TabNine
+    install -Dm755 TabNine-deep-cloud $out/bin/TabNine-deep-cloud
+    install -Dm755 TabNine-deep-local $out/bin/TabNine-deep-local
+    install -Dm755 WD-TabNine $out/bin/WD-TabNine
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/treefmt/default.nix b/pkgs/development/tools/treefmt/default.nix
new file mode 100644
index 00000000000..c90492c6aec
--- /dev/null
+++ b/pkgs/development/tools/treefmt/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+  pname = "treefmt";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "numtide";
+    repo = "treefmt";
+    rev = "v${version}";
+    sha256 = "0a4yikkqppawii1q0kzsxwfp1aid688wa0lixjwfsl279lr69css";
+  };
+
+  cargoSha256 = "08k60gd23yanfraxpbw9hi7jbqgsxz9mv1ci6q9piis5742zlj9s";
+
+  meta = {
+    description = "one CLI to format the code tree";
+    homepage = "https://github.com/numtide/treefmt";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ zimbatm ];
+  };
+}
diff --git a/pkgs/development/tools/vala-language-server/default.nix b/pkgs/development/tools/vala-language-server/default.nix
index 696776a6972..4cad79f9a85 100644
--- a/pkgs/development/tools/vala-language-server/default.nix
+++ b/pkgs/development/tools/vala-language-server/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vala-language-server";
-  version = "0.48.1";
+  version = "0.48.2";
 
   src = fetchFromGitHub {
     owner = "benwaffle";
     repo = pname;
     rev = version;
-    sha256 = "12k095052jkvbiyz8gzkj6w7r7p16d5m18fyikl48yvh5nln8fw0";
+    sha256 = "sha256-vtb2l4su+zuwGbS9F+Sv0tDInQMH4Uw6GjT+s7fHIio=";
   };
 
   passthru = {
diff --git a/pkgs/development/tools/wrangler/default.nix b/pkgs/development/tools/wrangler/default.nix
index 5fc7b6a1807..bb1f2316485 100644
--- a/pkgs/development/tools/wrangler/default.nix
+++ b/pkgs/development/tools/wrangler/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.15.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/5iIdEUbesX+IRQQzeJazt3i/xAtghblct718EmYci4=";
+    sha256 = "sha256-chKmn38yB05NqDvtYWo4EwEIiD6kjy/1OMaMFM4qAA8=";
   };
 
-  cargoSha256 = "sha256-6XWFhfY8QIl4S6zDyyM2YvFUoGMnKZQ3d/GT4yQWb7A=";
+  cargoSha256 = "sha256-pG3ZsRPa/7QRkUik6a987SlGrl3B0thnN3h62JyzdJo=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/xcbuild/default.nix b/pkgs/development/tools/xcbuild/default.nix
index 1f38e49daee..af0f546eb82 100644
--- a/pkgs/development/tools/xcbuild/default.nix
+++ b/pkgs/development/tools/xcbuild/default.nix
@@ -51,6 +51,7 @@ in stdenv.mkDerivation {
   postInstall = ''
     mv $out/usr/* $out
     rmdir $out/usr
+    cp liblinenoise.* $out/lib/
   '';
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
diff --git a/pkgs/development/tools/xcbuild/wrapper.nix b/pkgs/development/tools/xcbuild/wrapper.nix
index 861ef0fc847..4f74b093717 100644
--- a/pkgs/development/tools/xcbuild/wrapper.nix
+++ b/pkgs/development/tools/xcbuild/wrapper.nix
@@ -3,7 +3,7 @@
 , runtimeShell, callPackage
 , xcodePlatform ? stdenv.targetPlatform.xcodePlatform or "MacOSX"
 , xcodeVer ? stdenv.targetPlatform.xcodeVer or "9.4.1"
-, sdkVer ? stdenv.targetPlatform.sdkVer or "10.12" }:
+, sdkVer ? stdenv.targetPlatform.darwinSdkVersion or "10.12" }:
 
 let
 
diff --git a/pkgs/development/tools/zls/default.nix b/pkgs/development/tools/zls/default.nix
new file mode 100644
index 00000000000..6adf3a2ae9b
--- /dev/null
+++ b/pkgs/development/tools/zls/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, zig }:
+
+stdenv.mkDerivation rec {
+  pname = "zls";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "zigtools";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-A4aOdmlIxBUeKyczzLxH4y1Rl9TgE1EeiKGbWY4p/00=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ zig ];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  installPhase = ''
+    zig build -Drelease-safe --prefix $out install
+  '';
+
+  meta = with lib; {
+    description = "Zig LSP implementation + Zig Language Server";
+    changelog = "https://github.com/zigtools/zls/releases/tag/${version}";
+    homepage = "https://github.com/zigtools/zls";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ fortuneteller2k ];
+  };
+}
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index 6dd616fe4f0..e05a320f63b 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook }:
+{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook, mesa }:
 
 stdenv.mkDerivation rec {
   pname = "cypress";
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     libXScrnSaver libXdamage libXtst libxshmfence
   ] ++ [
     nss gtk2 alsaLib gnome2.GConf gtk3
+    mesa # for libgbm
   ];
 
   runtimeDependencies = [ (lib.getLib udev) ];
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index cdb34aab45c..9b645fb55e3 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -5,6 +5,7 @@
 , rust
 , rustPlatform
 , installShellFiles
+, libiconv
 , libobjc
 , Security
 , CoreServices
@@ -15,20 +16,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.8.3";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QkVDIpJ4VW3DpcwhydDnt68zxVXwkitIiN8blGlqX1g=";
+    sha256 = "sha256-FKhSFqFZhqzrXrJcBc0YBNHoUq0/1+ULZ9sE+LyNQTI=";
   };
-  cargoSha256 = "sha256-pf/4/H3wNORNvAswz8+7B3x5T5MyQgW7HgtDLBhfE/o=";
+  cargoSha256 = "sha256-Pp322D7YtdpeNnKWcE78tvLh5nFNcrh9oGYX2eCiPzI=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libobjc Security CoreServices Metal Foundation ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv libobjc Security CoreServices Metal Foundation ];
 
   # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
   # To avoid this we pre-download the file and place it in the locations it will require it in advance
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 41c06fbf7ce..c1dbd0f773a 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.21.0";
+  version = "0.22.1";
   shas = {
-    x86_64-linux = "sha256-oxGCM6jlqafjAfTtFwARxBv/8tiUaD9A2TlLyj/3LlQ=";
-    aarch64-linux = "sha256-yeDcrxEp3qeE6/NWEc1v7VoHjlgppIOkcHTNVksXNsM=";
-    x86_64-darwin = "sha256-QqdBa59xPxM8eDRzvPxvv9HFVgp2rt+5jiwIOgsi8JE=";
-    aarch64-darwin = "sha256-aq2Kjn8QSDMhNg8pEbXkJCHUKmDTNnitq42SDDVyRd4=";
+    x86_64-linux = "sha256-rHI5qzwmDvlIdjUCZwvl6/s2Oe6d3/V7TJwfP1AFjik=";
+    aarch64-linux = "sha256-7VhrOkzWayZFTsq0II5uh+TxXaIDSkc0E19ZwT3Hl6c=";
+    x86_64-darwin = "sha256-zXXL2YqgjFmuDHGReIGWVxfSS3PMND0J0qlHRV/rKs8=";
+    aarch64-darwin = "sha256-X/CCJn5yWJH2x6lCGAFllrQUj7XLA3TICRP3aiWytjk=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 08dc303e1fa..b65c342aaa7 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.170";
+  version = "0.0.211";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-9lpO4E6tC2ao1/DFu++siHD0RRtOfUAhfMvVZPGdMsk=";
+    sha256 = "sha256-iR8vEXLRdhLggFvu4Vhb8WW2Wo6qzAMQWC7qUMlWGd8=";
   };
 
   preBuild = ''
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-DPbCC2n4NpcUuniig7BLanJ84ny9U6eyhzGhsJLpgHA=";
+  vendorSha256 = "sha256-eEcFxEpVBad57mJXaCCYVeMO+cooUOLsSTKIZnu8Bok=";
 
   doCheck = false;
 
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 345b7c15426..24b65e4e8af 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, makeWrapper, fetchurl, dpkg, alsaLib, atk, cairo, cups, dbus, expat
-, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3, gtk2
+, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3, gtk2
 , at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
 , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, nghttp2
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
     libXrender
     libXtst
     libxcb
+    mesa # for libgbm
     nspr
     nss
     stdenv.cc.cc
diff --git a/pkgs/development/web/nodejs/v16.nix b/pkgs/development/web/nodejs/v16.nix
new file mode 100644
index 00000000000..b114c65cd16
--- /dev/null
+++ b/pkgs/development/web/nodejs/v16.nix
@@ -0,0 +1,13 @@
+{ callPackage, openssl, python3, enableNpm ? true }:
+
+let
+  buildNodejs = callPackage ./nodejs.nix {
+    inherit openssl;
+    python = python3;
+  };
+in
+  buildNodejs {
+    inherit enableNpm;
+    version = "16.0.0";
+    sha256 = "00mada0vvybizygwhzsq6gcz0m2k864lfiiqqlnw8gcc3q8r1js7";
+  }
diff --git a/pkgs/development/web/remarkjs/node-packages.nix b/pkgs/development/web/remarkjs/node-packages.nix
index beac26c5f00..5f5d3576b76 100644
--- a/pkgs/development/web/remarkjs/node-packages.nix
+++ b/pkgs/development/web/remarkjs/node-packages.nix
@@ -3712,7 +3712,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Portable Unix shell commands for Node.js";
-      homepage = "http://github.com/shelljs/shelljs";
+      homepage = "https://github.com/shelljs/shelljs";
       license = "BSD-3-Clause";
     };
     production = true;
diff --git a/pkgs/games/cdogs-sdl/default.nix b/pkgs/games/cdogs-sdl/default.nix
index 1c35e1e86e7..08af6bd74a8 100644
--- a/pkgs/games/cdogs-sdl/default.nix
+++ b/pkgs/games/cdogs-sdl/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cdogs";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     repo = "cdogs-sdl";
     owner = "cxong";
     rev = version;
-    sha256 = "sha256-zWwlcEM2KsYiB48cmRTjou0C86SqeoOLrbacCR0SfIA=";
+    sha256 = "sha256-POioDqmbWj+lYATp/3v14FoKZfR9GjLQyHq3nwDOywA=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/devilutionx/default.nix b/pkgs/games/devilutionx/default.nix
index 5edadbd6a83..fa457b1f1bc 100644
--- a/pkgs/games/devilutionx/default.nix
+++ b/pkgs/games/devilutionx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "devilutionx";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "diasurgical";
     repo = "devilutionX";
     rev = version;
-    sha256 = "034xkz0a7j2nba17mh44r0kamcblvykdwfsjvjwaz2mrcsmzkr9z";
+    sha256 = "sha256-PgYlNO1p78d0uiL474bDJOL++SxJfeBLK65czdaylHU=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index 6460e262d0d..151836096ff 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,20 +2,20 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.30.tar.xz",
+        "name": "factorio_alpha_x64-1.1.32.tar.xz",
         "needsAuth": true,
-        "sha256": "14mcf9pj6s5ms2hl68n3r5jk1q5y2qzw88wiahsb5plkv9qyqyp6",
+        "sha256": "0ciz7y8xqlk9vg3akvflq1aabzgbqpazfnihyk4gsadk12b6a490",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.30/alpha/linux64",
-        "version": "1.1.30"
+        "url": "https://factorio.com/get-download/1.1.32/alpha/linux64",
+        "version": "1.1.32"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.30.tar.xz",
+        "name": "factorio_alpha_x64-1.1.32.tar.xz",
         "needsAuth": true,
-        "sha256": "14mcf9pj6s5ms2hl68n3r5jk1q5y2qzw88wiahsb5plkv9qyqyp6",
+        "sha256": "0ciz7y8xqlk9vg3akvflq1aabzgbqpazfnihyk4gsadk12b6a490",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.30/alpha/linux64",
-        "version": "1.1.30"
+        "url": "https://factorio.com/get-download/1.1.32/alpha/linux64",
+        "version": "1.1.32"
       }
     },
     "demo": {
@@ -28,30 +28,30 @@
         "version": "1.1.30"
       },
       "stable": {
-        "name": "factorio_demo_x64-1.1.30.tar.xz",
+        "name": "factorio_demo_x64-1.1.32.tar.xz",
         "needsAuth": false,
-        "sha256": "1b3na8xn9lhlvrsd6hxr130nf9p81s26n25a4qdgkczz6waysgjv",
+        "sha256": "19zwl20hn8hh942avqri1kslf7dcqi9nim50vh4w5d0493srybfw",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.30/demo/linux64",
-        "version": "1.1.30"
+        "url": "https://factorio.com/get-download/1.1.32/demo/linux64",
+        "version": "1.1.32"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.30.tar.xz",
+        "name": "factorio_headless_x64-1.1.32.tar.xz",
         "needsAuth": false,
-        "sha256": "1rac6d8v8swiw1nn2hl53rhjfhsyv98qg8hfnwhfqn76jgspspdl",
+        "sha256": "0dg98ycs7m8rm996pk0p1iajalpmiy30p0pwr9dw2chf1d887kvz",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.30/headless/linux64",
-        "version": "1.1.30"
+        "url": "https://factorio.com/get-download/1.1.32/headless/linux64",
+        "version": "1.1.32"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.30.tar.xz",
+        "name": "factorio_headless_x64-1.1.32.tar.xz",
         "needsAuth": false,
-        "sha256": "1rac6d8v8swiw1nn2hl53rhjfhsyv98qg8hfnwhfqn76jgspspdl",
+        "sha256": "0dg98ycs7m8rm996pk0p1iajalpmiy30p0pwr9dw2chf1d887kvz",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.30/headless/linux64",
-        "version": "1.1.30"
+        "url": "https://factorio.com/get-download/1.1.32/headless/linux64",
+        "version": "1.1.32"
       }
     }
   }
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index 62db756a483..0996d4bd512 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -6,15 +6,15 @@
 }:
 
 let
-  version = "2020.3.4";
+  version = "2020.3.8";
   shortVersion = builtins.substring 0 6 version;
   data = stdenv.mkDerivation rec {
     pname = "flightgear-data";
     inherit version;
 
     src = fetchurl {
-      url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
-      sha256 = "1cqikbqvidfaynml9bhqfr9yw5ga35gpqrbz62z94a1skdijkpkg";
+      url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.txz";
+      sha256 = "sha256-/KFumHRkmRvsU/L1i11jG/KbqobnOEP7l4lyPMKHycA=";
     };
 
     phases = [ "installPhase" ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "02d9h10p8hyn0a25csragj6pbwmrir1z8zb92023s9vi21j7bwy8";
+    sha256 = "XXDqhZ9nR+FwQ3LauZe8iGxOjlyDXDrEtj61BQGVDYc=";
   };
 
   # Of all the files in the source and data archives, there doesn't seem to be
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index 3ffb7e0c549..58e91a44842 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -12,13 +12,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-tRjik2LONwKFZOcIuyFDoE1fD23UnZHMdNLo0DdYyOc=";
+    sha256 = "sha256-MRaY10HliP8TA8/9s5caNtB5hks5SJcBJItFXOUryCI=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/gimx/default.nix b/pkgs/games/gimx/default.nix
index ab208dfa003..0ae5a791709 100644
--- a/pkgs/games/gimx/default.nix
+++ b/pkgs/games/gimx/default.nix
@@ -51,15 +51,19 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/share
     cp -r ./loader/firmware $out/share/firmware
     cp -r ${gimx-config}/Linux $out/share/config
-    patch ${gimx-config}/Linux/Dualshock4.xml ${./noff.patch} -o $out/share/ds4.xml
 
     makeWrapper $out/bin/gimx $out/bin/gimx-with-confs \
       --set GIMXCONF $out/share/config
 
     makeWrapper $out/bin/gimx $out/bin/gimx-test-ds4 \
-      --set GIMXCONF $out/share \
+      --set GIMXCONF $out/share/config \
       --add-flags "--nograb" --add-flags "--curses" \
-      --add-flags "-p /dev/ttyUSB0" --add-flags "-c ds4.xml"
+      --add-flags "-p /dev/ttyUSB0" --add-flags "-c Dualshock4.xml"
+
+    makeWrapper $out/bin/gimx $out/bin/gimx-test-xone \
+      --set GIMXCONF $out/share/config \
+      --add-flags "--nograb" --add-flags "--curses" \
+      --add-flags "-p /dev/ttyUSB0" --add-flags "-c XOnePadUsb.xml"
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/gimx/noff.patch b/pkgs/games/gimx/noff.patch
deleted file mode 100644
index 86b36adda23..00000000000
--- a/pkgs/games/gimx/noff.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/Linux/Dualshock4.xml b/Linux/Dualshock4.xml
-index 5e53ed3..45ee5ed 100644
---- a/Linux/Dualshock4.xml
-+++ b/Linux/Dualshock4.xml
-@@ -94,6 +94,11 @@
-         </axis>
-       </axis_map>
-       <joystick_corrections_list/>
-+      <force_feedback>
-+        <device type="joystick" id="0" name="Sony Computer Entertainment Wireless Controller"/>
-+        <inversion enable="no"/>
-+        <gain rumble="0" constant="0" spring="0" damper="0"/>
-+      </force_feedback>
-     </configuration>
-   </controller>
- </root>
diff --git a/pkgs/games/ja2-stracciatella/Cargo.lock b/pkgs/games/ja2-stracciatella/Cargo.lock
deleted file mode 100644
index d017e93e4db..00000000000
--- a/pkgs/games/ja2-stracciatella/Cargo.lock
+++ /dev/null
@@ -1,291 +0,0 @@
-[[package]]
-name = "aho-corasick"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "dtoa"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "getopts"
-version = "0.2.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "memchr"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "quote"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "rand"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "regex"
-version = "0.1.80"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.70"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "serde_derive"
-version = "1.0.70"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "shell32-sys"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "stracciatella"
-version = "0.1.0"
-dependencies = [
- "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "syn"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tempdir"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "thread-id"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "thread_local"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "unicode-width"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "unicode-xid"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "user32-sys"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "utf8-ranges"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[metadata]
-"checksum aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"
-"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789"
-"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
-"checksum itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5adb58558dcd1d786b5f0bd15f3226ee23486e24b7b58304b60f64dc68e62606"
-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"
-"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
-"checksum proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "effdb53b25cdad54f8f48843d67398f7ef2e14f12c1b4cb4effc549a6462a4d6"
-"checksum quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e44651a0dc4cdd99f71c83b561e221f714912d11af1a4dff0631f923d53af035"
-"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5"
-"checksum regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)" = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"
-"checksum regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"
-"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
-"checksum serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "0c3adf19c07af6d186d91dae8927b83b0553d07ca56cbf7f2f32560455c91920"
-"checksum serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3525a779832b08693031b8ecfb0de81cd71cfd3812088fafe9a7496789572124"
-"checksum serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "84b8035cabe9b35878adec8ac5fe03d5f6bc97ff6edd7ccb96b44c1276ba390e"
-"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
-"checksum syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2beff8ebc3658f07512a413866875adddd20f4fd47b2a4e6c9da65cd281baaea"
-"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
-"checksum thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"
-"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-"checksum user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ef4711d107b21b410a3a974b1204d9accc8b10dad75d8324b5d755de1617d47"
-"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd"
-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/games/ja2-stracciatella/default.nix b/pkgs/games/ja2-stracciatella/default.nix
index 4dfcc53d339..4f186c3c60a 100644
--- a/pkgs/games/ja2-stracciatella/default.nix
+++ b/pkgs/games/ja2-stracciatella/default.nix
@@ -1,45 +1,57 @@
-{ stdenv, fetchFromGitHub, cmake, SDL2, boost, fltk, rustPlatform }:
+{ stdenv, lib, fetchurl, fetchFromGitHub, cmake, python, rustPlatform, SDL2, fltk, rapidjson, gtest, Carbon, Cocoa }:
 let
-  version = "0.16.1";
+  version = "0.17.0";
   src = fetchFromGitHub {
     owner = "ja2-stracciatella";
     repo = "ja2-stracciatella";
     rev = "v${version}";
-    sha256 = "1pyn23syg70kiyfbs3pdlq0ixd2bxhncbamnic43rym3dmd52m29";
-  };
-  lockfile = ./Cargo.lock;
-  libstracciatellaSrc = stdenv.mkDerivation {
-    name = "libstracciatella-${version}-src";
-    src = "${src}/rust";
-    installPhase = ''
-      mkdir -p $out
-      cp -R ./* $out/
-      cp ${lockfile} $out/Cargo.lock
-    '';
+    sha256 = "0m6rvgkba29jy3yq5hs1sn26mwrjl6mamqnv4plrid5fqaivhn6j";
   };
   libstracciatella = rustPlatform.buildRustPackage {
     pname = "libstracciatella";
     inherit version;
-    src = libstracciatellaSrc;
-    cargoSha256 = "15djs4xaz4y1hpfyfqxdgdasxr0b5idy9i5a7c8cmh0jkxjv8bqc";
-    doCheck = false;
+    src = "${src}/rust";
+    cargoSha256 = "0blb971cv9k6c460mwq3zq8vih687bdnb39b9gph1hr90pxjviba";
+
+    preBuild = ''
+      mkdir -p $out/include/stracciatella
+      export HEADER_LOCATION=$out/include/stracciatella/stracciatella.h
+    '';
+  };
+  stringTheoryUrl = "https://github.com/zrax/string_theory/archive/3.1.tar.gz";
+  stringTheory = fetchurl {
+    url = stringTheoryUrl;
+    sha256 = "1flq26kkvx2m1yd38ldcq2k046yqw07jahms8a6614m924bmbv41";
   };
 in
 stdenv.mkDerivation {
   pname = "ja2-stracciatella";
-  inherit src;
-  inherit version;
+  inherit src version;
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 fltk boost ];
+  nativeBuildInputs = [ cmake python ];
+  buildInputs = [ SDL2 fltk rapidjson gtest ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
 
   patches = [
     ./remove-rust-buildstep.patch
   ];
 
   preConfigure = ''
-    sed -i -e 's|rust-stracciatella|${libstracciatella}/lib/libstracciatella.so|g' CMakeLists.txt
-    cmakeFlagsArray+=("-DEXTRA_DATA_DIR=$out/share/ja2")
+    # Use rust library built with nix
+    substituteInPlace CMakeLists.txt \
+      --replace lib/libstracciatella_c_api.a ${libstracciatella}/lib/libstracciatella_c_api.a \
+      --replace include/stracciatella ${libstracciatella}/include/stracciatella \
+      --replace bin/ja2-resource-pack ${libstracciatella}/bin/ja2-resource-pack
+
+    # Patch dependencies that are usually loaded by url
+    substituteInPlace dependencies/lib-string_theory/builder/CMakeLists.txt.in \
+      --replace ${stringTheoryUrl} file://${stringTheory}
+
+    cmakeFlagsArray+=("-DLOCAL_RAPIDJSON_LIB=OFF" "-DLOCAL_GTEST_LIB=OFF" "-DEXTRA_DATA_DIR=$out/share/ja2")
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    HOME=/tmp $out/bin/ja2 -unittests
   '';
 
   meta = {
diff --git a/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch b/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch
index b86589fc671..64e3c11b250 100644
--- a/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch
+++ b/pkgs/games/ja2-stracciatella/remove-rust-buildstep.patch
@@ -1,21 +1,73 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f354370e0..c9fa23c6d 100644
+index e4e5547af..a3017d197 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -159,7 +159,6 @@ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized")
+@@ -175,13 +175,12 @@ if(BUILD_LAUNCHER)
+ endif()
+ message(STATUS "Fltk Libraries: ${FLTK_LIBRARIES}")
+ 
+-set(JA2_INCLUDES "")
++set(JA2_INCLUDES "include/stracciatella")
+ set(JA2_SOURCES "")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/externalized")
  add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/game")
  add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/sgp")
- add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/src/slog")
--add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/rust")
  add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-smacker")
-
+-add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-stracciatella")
+ add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-string_theory")
+ 
  if(BUILD_LAUNCHER)
-@@ -235,8 +234,6 @@ copy_assets_dir_to_ja2_binary_after_build("externalized")
- copy_assets_dir_to_ja2_binary_after_build("unittests")
- copy_assets_dir_to_ja2_binary_after_build("mods")
-
--get_property(STRACCIATELLA_SHARED_LIB TARGET rust-stracciatella PROPERTY IMPORTED_LOCATION)
+@@ -239,14 +238,12 @@ string(LENGTH "${CMAKE_SOURCE_DIR}/src/" SOURCE_PATH_SIZE)
+ add_definitions("-DSOURCE_PATH_SIZE=${SOURCE_PATH_SIZE}")
+ 
+ add_executable(${JA2_BINARY} ${JA2_SOURCES})
+-target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker ${STRACCIATELLA_LIBRARIES} string_theory-internal)
+-add_dependencies(${JA2_BINARY} stracciatella)
++target_link_libraries(${JA2_BINARY} ${SDL2_LIBRARY} ${GTEST_LIBRARIES} smacker lib/libstracciatella_c_api.a dl pthread string_theory-internal)
+ set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/game/GameVersion.cc APPEND PROPERTY COMPILE_DEFINITIONS "GAME_VERSION=v${ja2-stracciatella_VERSION}")
+ 
+ if(BUILD_LAUNCHER)
+     add_executable(${LAUNCHER_BINARY} ${LAUNCHER_SOURCES})
+-    target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} ${STRACCIATELLA_LIBRARIES} string_theory-internal)
+-    add_dependencies(${LAUNCHER_BINARY} stracciatella)
++    target_link_libraries(${LAUNCHER_BINARY} ${FLTK_LIBRARIES} lib/libstracciatella_c_api.a dl pthread string_theory-internal)
+ endif()
+ 
+ macro(copy_assets_dir_to_ja2_binary_after_build DIR)
+@@ -375,12 +372,12 @@ set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_${CPACK_PACKAGE_VERSION}_${PACKAGE_
+ 
+ include(CPack)
+ 
+-if (UNIX AND NOT MINGW AND NOT APPLE)
++if (UNIX)
+     install(TARGETS ${JA2_BINARY} RUNTIME DESTINATION bin)
+     if(BUILD_LAUNCHER)
+         install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION bin)
+     endif()
+-    install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION bin)
++    install(PROGRAMS "bin/ja2-resource-pack" DESTINATION bin)
+     install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION share/ja2)
+     if(WITH_EDITOR_SLF)
+         install(FILES "${EDITORSLF_FILE}" DESTINATION share/ja2)
+@@ -400,7 +397,7 @@ else()
+     if(BUILD_LAUNCHER)
+         install(TARGETS ${LAUNCHER_BINARY} RUNTIME DESTINATION .)
+     endif()
+-    install(PROGRAMS "${CMAKE_BINARY_DIR}/lib-stracciatella/bin/ja2-resource-pack${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION .)
++    install(PROGRAMS "bin/ja2-resource-pack" DESTINATION .)
+     install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/assets/externalized assets/mods assets/unittests DESTINATION .)
+     if(WITH_EDITOR_SLF)
+         install(FILES "${EDITORSLF_FILE}" DESTINATION .)
+@@ -428,12 +425,6 @@ if (MINGW)
+     install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/install-dlls-mingw.cmake")
+ endif()
+ 
+-if(APPLE)
+-    file(GLOB APPLE_DIST_FILES "${CMAKE_CURRENT_SOURCE_DIR}/assets/distr-files-mac/*.txt")
+-    install(FILES ${APPLE_DIST_FILES} DESTINATION .)
+-    install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/lib-SDL2-2.0.8-macos/SDL2.framework DESTINATION .)
+-endif()
 -
- if (MSVC OR APPLE)
-     add_custom_command(TARGET ${JA2_BINARY} POST_BUILD
-             COMMAND ${CMAKE_COMMAND} -E copy
+ ## Uninstall
+ 
+ add_custom_templated_target("uninstall")
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index 50b6caee621..7a91b698c1c 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -33,14 +33,14 @@ let
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.8.1";
-  githash = "73bc3e38b3490cbe00179c9c37f5385dfd60c6bc";
+  version = "1.8.2";
+  githash = "b846bddd88fbc5353e4a93fa514f6cbf45358362";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "sha256-Rj6fgj1ZQgYhz6TrZk5b8dCMsCPk5N3qN3kgqV+UEDc=";
+    sha256 = "sha256-kL+y2rsEiC5GGDlWrbzxlJvLxHDCuvVT6CDOlUtXpDk=";
   };
 
   fakegit = writeShellScriptBin "git" "echo ${githash}";
diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix
index 0635ab8aed8..8ca8c3f8552 100644
--- a/pkgs/games/lunar-client/default.nix
+++ b/pkgs/games/lunar-client/default.nix
@@ -1,13 +1,14 @@
 { appimageTools, lib, fetchurl, makeDesktopItem }:
+
 let
   name = "lunar-client";
-  version = "2.4.0";
+  version = "2.6.0";
 
   desktopItem = makeDesktopItem {
     name = "Lunar Client";
     exec = "lunar-client";
     icon = "lunarclient";
-    comment = "Optimized Minecraft Client for 1.7.10 and 1.8.9";
+    comment = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client";
     desktopName = "Lunar Client";
     genericName = "Minecraft Client";
     categories = "Game;";
@@ -20,7 +21,7 @@ let
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
     name = "lunar-client.AppImage";
-    sha256 = "bb85a62127a9b3848cc60796c20ac75655794f1d3cd17cb6b5499bbf19d16019";
+    sha256 = "1pmblnnvs5jv5v7y5nnxr3liw9xfp5h6l44x7pln8kr9zg85dzma";
   };
 in appimageTools.wrapType1 rec {
   inherit name src;
@@ -31,11 +32,13 @@ in appimageTools.wrapType1 rec {
     cp -r ${appimageContents}/usr/share/icons/ $out/share/
   '';
 
+  extraPkgs = pkgs: [ pkgs.libpulseaudio ];
+
   meta = with lib; {
-    description = "Minecraft 1.7.10 & 1.8.9 PVP Client";
+    description = "Minecraft 1.7, 1.8, 1.12, 1.15, and 1.16 Client";
     homepage = "https://www.lunarclient.com/";
     license = with licenses; [ unfree ];
-    maintainers = with maintainers; [ zyansheep ];
+    maintainers = with maintainers; [ zyansheep Technical27 ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/games/mar1d/default.nix b/pkgs/games/mar1d/default.nix
index 1323e1a8ac9..1715a68f5d8 100644
--- a/pkgs/games/mar1d/default.nix
+++ b/pkgs/games/mar1d/default.nix
@@ -1,58 +1,34 @@
-{ lib, stdenv
-, fetchFromGitHub
-, cmake
+{ stdenv
+, lib
+, SDL2
+, SDL2_mixer
 , libGLU
-, xlibsWrapper
-, xorg
-, xinput_calibrator
-, doxygen
-, libpthreadstubs
-, alsaLib
-, alsaOss
-, libao
-, width ? 30
-, mute ? false
-, effects ? false
-, sensitivity ? 5
-, reverseY ? false
+, libconfig
+, meson
+, ninja
+, pkg-config
+, fetchFromGitHub
 }:
 
 stdenv.mkDerivation rec {
   pname = "MAR1D";
-  version = "0.2.0";
-  options = "-w${toString width}"
-          + " -s${toString sensitivity}"
-          + (if mute then " -m" else "")
-          + (if effects then " -f" else "")
-          + (if reverseY then " -r" else "");
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "152w5dnlxzv60cl24r5cmrj2q5ar0jiimrmxnp87kf4d2dpbnaq7";
+    sha256 = "sha256-/QZH2H0PFCLeweXUE11vimLnJTt86PjnTnHC9vWkKsk=";
     rev = "v${version}";
-    repo = "fp_mario";
-    owner = "olynch";
+    repo = "MAR1D";
+    owner = "Radvendii";
   };
 
-  buildInputs =
-    [
-      alsaLib
-      alsaOss
-      cmake
-      doxygen
-      libao
-      libpthreadstubs
-      libGLU
-      xlibsWrapper
-      xinput_calibrator
-      xorg.libXrandr
-      xorg.libXi
-      xorg.xinput
-      xorg.libXxf86vm
-    ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
-  preConfigure = ''
-    cd src
-  '';
+  buildInputs = [
+    SDL2
+    SDL2_mixer
+    libconfig
+    libGLU
+  ];
 
   meta = with lib; {
     description = "First person Super Mario Bros";
@@ -62,9 +38,9 @@ stdenv.mkDerivation rec {
       original, however, the game still takes place in a two dimensional world.
       You must view the world as mario does, as a one dimensional line.
     '';
-    homepage = "https://github.com/olynch/fp_mario";
+    homepage = "https://mar1d.com";
     license = licenses.agpl3;
     maintainers = with maintainers; [ taeer ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index af8ff5f24f9..7e1a0cba176 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -191,6 +191,8 @@ stdenv.mkDerivation rec {
     platforms = platforms.x86_64;
     # Hash mismatch on darwin:
     # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin
+    # does not work with any maintained java version (https://github.com/Anuken/Mindustry/issues/5114)
+      || true;
   };
 }
diff --git a/pkgs/games/oh-my-git/default.nix b/pkgs/games/oh-my-git/default.nix
new file mode 100644
index 00000000000..89dc1bdd50e
--- /dev/null
+++ b/pkgs/games/oh-my-git/default.nix
@@ -0,0 +1,115 @@
+{ lib
+, copyDesktopItems
+, fetchFromGitHub
+, makeDesktopItem
+, stdenv
+, alsaLib
+, gcc-unwrapped
+, git
+, godot-export-templates
+, godot-headless
+, libGLU
+, libX11
+, libXcursor
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, libglvnd
+, libpulseaudio
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oh-my-git";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "git-learning-game";
+    repo = "oh-my-git";
+    rev = version;
+    sha256 = "sha256-GQLHyBUXF+yqEZ/LYutAn6TBCXFX8ViOaERQEm2J6CY=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    godot-headless
+  ];
+
+  buildInputs = [
+    alsaLib
+    gcc-unwrapped.lib
+    git
+    libGLU
+    libX11
+    libXcursor
+    libXext
+    libXfixes
+    libXi
+    libXinerama
+    libXrandr
+    libXrender
+    libglvnd
+    libpulseaudio
+    zlib
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "oh-my-git";
+      exec = "oh-my-git";
+      icon = "oh-my-git";
+      desktopName = "oh-my-git";
+      comment = "An interactive Git learning game!";
+      genericName = "An interactive Git learning game!";
+      categories = "Game;";
+    })
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Cannot create file '/homeless-shelter/.config/godot/projects/...'
+    export HOME=$TMPDIR
+
+    # Link the export-templates to the expected location. The --export commands
+    # expects the template-file at .../templates/3.2.3.stable/linux_x11_64_release
+    # with 3.2.3 being the version of godot.
+    mkdir -p $HOME/.local/share/godot
+    ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot
+
+    mkdir -p $out/share/oh-my-git
+    godot-headless --export "Linux" $out/share/oh-my-git/oh-my-git
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    ln -s $out/share/oh-my-git/oh-my-git $out/bin
+
+    # Patch binaries.
+    interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
+    patchelf \
+      --set-interpreter $interpreter \
+      --set-rpath ${lib.makeLibraryPath buildInputs} \
+      $out/share/oh-my-git/oh-my-git
+
+    mkdir -p $out/share/pixmaps
+    cp images/oh-my-git.png $out/share/pixmaps/oh-my-git.png
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://ohmygit.org/";
+    description = "An interactive Git learning game";
+    license = with licenses; [ blueOak100 ];
+    platforms   = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index a39b9cab359..34de043a658 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "sha256-XmUYTgc2i6Gvpi27PjWrrubE2mcw/0vJ60RH1TNjx6g=";
+    sha256 = "sha256-qZGeLkKbsI+in+jme6m8dckOnvb6ZCSOs0IjoyXUAKM=";
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
diff --git a/pkgs/games/openttd/jgrpp.nix b/pkgs/games/openttd/jgrpp.nix
index 7f756dd10b7..3dcb621db4b 100644
--- a/pkgs/games/openttd/jgrpp.nix
+++ b/pkgs/games/openttd/jgrpp.nix
@@ -2,12 +2,12 @@
 
 openttd.overrideAttrs (oldAttrs: rec {
   pname = "openttd-jgrpp";
-  version = "0.40.5";
+  version = "0.41.0";
 
   src = fetchFromGitHub rec {
     owner = "JGRennison";
     repo = "OpenTTD-patches";
     rev = "jgrpp-${version}";
-    sha256 = "sha256-g1RmgVjefOrOVLTvFBiPEd19aLoFvB9yX/hMiKgGcGw=";
+    sha256 = "sha256-DrtxqXyeqA+X4iLTvTSPFDKDoLCyVd458+nJWc+9MF4=";
   };
 })
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 2d90dafb28d..81f50e96822 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -16,13 +16,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2021.331.0";
+  version = "2021.410.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "dCKBxVDBBhJ7LEawmMOU7PKh0yxmDgVw6PL2F0qA5RU=";
+    sha256 = "twKg9iZdY+zgwEQeHMOlRZKXxAHic7GnoqH0jOdW7fw=";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index a956f9efb2e..f30ac9b13f4 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -261,8 +261,8 @@
   })
   (fetchNuGet {
     name = "JetBrains.Annotations";
-    version = "2020.3.0";
-    sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2";
+    version = "2021.1.0";
+    sha256 = "07pnhxxlgx8spmwmakz37nmbvgyb6yjrbrhad5rrn6y767z5r1gb";
   })
   (fetchNuGet {
     name = "ManagedBass";
@@ -296,8 +296,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "5.0.0";
-    sha256 = "14njzl0907wzcbsnxl62m4y6mv9pdirm68bj8qbbip0q5a6xgidw";
+    version = "5.0.5";
+    sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Connections.Abstractions";
@@ -551,8 +551,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.ObjectPool";
-    version = "5.0.4";
-    sha256 = "07kyqbm7f7k4bv3fa54b826b87z00385pqgjzd4s8l26j6p39rrm";
+    version = "5.0.5";
+    sha256 = "0hh0xm14hp479dsd0gb9igz0vbbn3sak27v39phpyilxvk7ky5z1";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Options";
@@ -576,8 +576,8 @@
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.linux-x64";
-    version = "5.0.0";
-    sha256 = "1k9yxklzdnjfkqysg54dz0mr75yg29fhlls9alh5qlfpsfpk32yq";
+    version = "5.0.5";
+    sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
@@ -721,8 +721,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Framework";
-    version = "2021.330.0";
-    sha256 = "01v319nd9szq5z5qq6pa348y1mv93pnhw0vrgbrjwvcs797h7mjl";
+    version = "2021.410.0";
+    sha256 = "1vwdrspdpal44hyspv3rsax8mkszvbnc2xl1xswczx9mzj6qs4by";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
@@ -731,8 +731,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Game.Resources";
-    version = "2021.211.1";
-    sha256 = "0rqv5blmyzvcpk0b1r6fzr1bla62kr2fwkr1f9ahir9zafvk2wmm";
+    version = "2021.410.0";
+    sha256 = "1a5qia4595n0b21dj63sl71ar56m9x1glqwky7a9bb0dqpvfivya";
   })
   (fetchNuGet {
     name = "ppy.osuTK.NS20";
@@ -741,8 +741,8 @@
   })
   (fetchNuGet {
     name = "ppy.SDL2-CS";
-    version = "1.0.82";
-    sha256 = "0hdfih1hjpqxgblwc947inyfhskkj85f061cagf8gdl69xsp2l1b";
+    version = "1.0.225-alpha";
+    sha256 = "1x8hvk9kikwi7wrvwxdxk3pkbs491iss2mvqgiw844zld5izihqc";
   })
   (fetchNuGet {
     name = "ppy.squirrel.windows";
diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh
index 44a4bb3821d..b5c8208fe41 100755
--- a/pkgs/games/osu-lazer/update.sh
+++ b/pkgs/games/osu-lazer/update.sh
@@ -22,21 +22,8 @@ chmod -R +w "$src"
 
 pushd "$src"
 
-# Setup empty nuget package folder to force reinstall.
 mkdir ./nuget_tmp.packages
-cat >./nuget_tmp.config <<EOF
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
-  </packageSources>
-  <config>
-    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
-  </config>
-</configuration>
-EOF
-
-dotnet restore osu.Desktop --configfile ./nuget_tmp.config --runtime linux-x64
+dotnet restore osu.Desktop --packages ./nuget_tmp.packages --runtime linux-x64
 
 echo "{ fetchNuGet }: [" >"$deps_file"
 while read pkg_spec; do
diff --git a/pkgs/games/scummvm/default.nix b/pkgs/games/scummvm/default.nix
index 20d781db23d..68ccb894d99 100644
--- a/pkgs/games/scummvm/default.nix
+++ b/pkgs/games/scummvm/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl, nasm
 , alsaLib, curl, flac, fluidsynth, freetype, libjpeg, libmad, libmpeg2, libogg, libvorbis, libGLU, libGL, SDL2, zlib
+, Cocoa, AudioToolbox, Carbon, CoreMIDI, AudioUnit, cctools
 }:
 
 stdenv.mkDerivation rec {
@@ -13,8 +14,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ nasm ];
 
-  buildInputs = [
-    alsaLib curl freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU libGL SDL2 zlib
+  buildInputs = lib.optionals stdenv.isLinux [
+    alsaLib
+  ] ++ lib.optionals stdenv.isDarwin [
+    Cocoa AudioToolbox Carbon CoreMIDI AudioUnit
+  ] ++ [
+    curl freetype flac fluidsynth libjpeg libmad libmpeg2 libogg libvorbis libGLU libGL SDL2 zlib
   ];
 
   dontDisableStatic = true;
@@ -30,6 +35,8 @@ stdenv.mkDerivation rec {
   # They use 'install -s', that calls the native strip instead of the cross
   postConfigure = ''
     sed -i "s/-c -s/-c -s --strip-program=''${STRIP@Q}/" ports.mk
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace config.mk --replace x86_64-apple-darwin-ranlib ${cctools}/bin/ranlib
   '';
 
   meta = with lib; {
@@ -37,6 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.scummvm.org/";
     license = licenses.gpl2;
     maintainers = [ maintainers.peterhoeg ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index 8d92c88e1be..2ced60ef890 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -2,7 +2,7 @@
 , makeWrapper
 , fetchFromGitHub
 , nixosTests
-, gradle
+, gradle_6
 , perl
 , jre
 , libpulseaudio
@@ -33,7 +33,7 @@ let
   deps = stdenv.mkDerivation {
     pname = "${pname}-deps";
     inherit version src postPatch;
-    nativeBuildInputs = [ gradle perl ];
+    nativeBuildInputs = [ gradle_6 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
       # https://github.com/gradle/gradle/issues/4426
@@ -54,7 +54,7 @@ let
 in stdenv.mkDerivation rec {
   inherit pname version src postPatch;
 
-  nativeBuildInputs = [ gradle perl makeWrapper ];
+  nativeBuildInputs = [ gradle_6 perl makeWrapper ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
diff --git a/pkgs/games/shticker-book-unwritten/default.nix b/pkgs/games/shticker-book-unwritten/default.nix
index dd286ce0941..0179c7c86e8 100644
--- a/pkgs/games/shticker-book-unwritten/default.nix
+++ b/pkgs/games/shticker-book-unwritten/default.nix
@@ -8,6 +8,7 @@ in buildFHSUserEnv {
   targetPkgs = pkgs: with pkgs; [
       alsaLib
       xorg.libX11
+      xorg.libXcursor
       xorg.libXext
       libglvnd
       shticker-book-unwritten-unwrapped
diff --git a/pkgs/games/shticker-book-unwritten/unwrapped.nix b/pkgs/games/shticker-book-unwritten/unwrapped.nix
index 411bea6b00a..638a9ae792e 100644
--- a/pkgs/games/shticker-book-unwritten/unwrapped.nix
+++ b/pkgs/games/shticker-book-unwritten/unwrapped.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoPatches = [ ./cargo-lock.patch ];
-  cargoSha256 = "1lnhdr8mri1ns9lxj6aks4vs2v4fvg7mcriwzwj78inpi1l0xqk5";
+  cargoSha256 = "1d4mnfzkdbqnjmqk7fl4bsy27lr7wnq997nz0hflaybnx2d3nisn";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/games/soldat-unstable/default.nix b/pkgs/games/soldat-unstable/default.nix
index d48cf3048ee..496d51e31c4 100644
--- a/pkgs/games/soldat-unstable/default.nix
+++ b/pkgs/games/soldat-unstable/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, fpc, zip, makeWrapper
+{ lib, stdenv, fetchFromGitHub, fpc, zip, makeWrapper
 , SDL2, freetype, physfs, openal, gamenetworkingsockets
 , xorg, autoPatchelfHook
 }:
@@ -38,15 +38,15 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "soldat-unstable";
-  version = "2020-11-26";
+  pname = "soldat";
+  version = "unstable-2021-04-27";
 
   src = fetchFromGitHub {
     name = "soldat";
     owner = "Soldat";
     repo = "soldat";
-    rev = "2280296ac56883f6a9cad4da48025af8ae7782e7";
-    sha256 = "17i3nlhxm4x4zx00i00aivhxmagbnyizxnpwiqzg57bf23hrvdj3";
+    rev = "4d17667c316ff08934e97448b7f290a8dc434e81";
+    sha256 = "1pf557psmhfaagblfwdn36cw80j7bgs0lgjq8hmjbv58dysw3jdb";
   };
 
   nativeBuildInputs = [ fpc makeWrapper autoPatchelfHook ];
@@ -54,23 +54,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ SDL2 freetype physfs openal gamenetworkingsockets ];
   runtimeDependencies = [ xorg.libX11 ];
 
-  patches = [
-    # fix an argument parsing issue which prevents
-    # us from passing nix store paths to soldat
-    (fetchpatch {
-      url = "https://github.com/sternenseemann/soldat/commit/9f7687430f5fe142c563b877d2206f5c9bbd5ca0.patch";
-      sha256 = "0wsrazb36i7v4idg06jlzfhqwf56q9szzz7jp5cg4wsvcky3wajf";
-    })
-  ];
-
-  postPatch = ''
-    for f in client/Makefile server/Makefile; do
-      # fix unportable uname invocation
-      substituteInPlace "$f" --replace "uname -p" "uname -m"
-    done
-  '';
-
   buildPhase = ''
+    runHook preBuild
+
     mkdir -p client/build server/build
 
     # build .so from stb headers
@@ -87,9 +73,13 @@ stdenv.mkDerivation rec {
     pushd server
     make mode=release
     popd
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm644 client/libs/stb/libstb.so -t $out/lib
     install -Dm755 client/build/soldat_* $out/bin/soldat
     install -Dm755 server/build/soldatserver_* $out/bin/soldatserver
@@ -107,6 +97,8 @@ stdenv.mkDerivation rec {
         --add-flags "-fs_userpath \"$configDir\"" \
         --add-flags "-fs_basepath \"${base}/share/soldat\""
     done
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 1a2ca5161eb..f17c436cccb 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -136,6 +136,13 @@ in buildFHSUserEnv rec {
     libbsd
     alsaLib
 
+    # Loop Hero
+    libidn2
+    libpsl
+    nghttp2.lib
+    openssl_1_1
+    rtmpdump
+
     # needed by getcap for vr startup
     libcap
 
@@ -202,7 +209,6 @@ in buildFHSUserEnv rec {
     SDL
     SDL2_image
     glew110
-    openssl
     libidn
     tbb
     wayland
diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix
index 2c5932cf7fa..f9883633576 100644
--- a/pkgs/games/steam/steam.nix
+++ b/pkgs/games/steam/steam.nix
@@ -2,15 +2,15 @@
 
 let
   traceLog = "/tmp/steam-trace-dependencies.log";
-  version = "1.0.0.69";
+  version = "1.0.0.70";
 
 in stdenv.mkDerivation {
   pname = "steam-original";
   inherit version;
 
   src = fetchurl {
-    url = "https://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
-    sha256 = "sha256-b5g4AUprE/lTunJs59IDlGu5O/1dB0kBvCFq0Eqyx2c=";
+    url = "https://repo.steampowered.com/steam/archive/stable/steam_${version}.tar.gz";
+    sha256 = "sha256-n/iKV3jHsA77GPMk1M0MKC1fQ42tEgG8Ppgi4/9qLf8=";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index a90f76743d7..c0707ed5e86 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -39,11 +39,11 @@ in
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version  = "4.0.0";
+  version  = "4.0.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz";
-    sha256 = "1d94072yns2xrjpagw1mqq7iyywhwz7vn3lgjdwmbgjy79jzcs1k";
+    sha256 = "1f8a4kflslsjl8jrryhwg034h1yc9y3y1zmllgww3fqkz3aj4xik";
   };
 
   buildInputs = [
diff --git a/pkgs/misc/drivers/infnoise/default.nix b/pkgs/misc/drivers/infnoise/default.nix
new file mode 100644
index 00000000000..b64cb56c407
--- /dev/null
+++ b/pkgs/misc/drivers/infnoise/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, libftdi }:
+
+stdenv.mkDerivation rec {
+  pname = "infnoise";
+  version = "unstable-2019-08-12";
+
+  src = fetchFromGitHub {
+    owner = "13-37-org";
+    repo = "infnoise";
+    rev = "132683d4b5ce0902468b666cba63baea36e97f0c";
+    sha256 = "1dzfzinyvhyy9zj32kqkl19fyhih6sy8r5sa3qahbbr4c30k7flp";
+  };
+
+  # Patch makefile so we can set defines from the command line instead of it depending on .git
+  patches = [ ./makefile.patch ];
+  GIT_COMMIT = src.rev;
+  GIT_VERSION = version;
+  GIT_DATE = "2019-08-12";
+
+  buildInputs = [ libftdi ];
+
+  sourceRoot = "source/software";
+  makefile = "Makefile.linux";
+  makeFlags = [ "PREFIX=$(out)" ];
+  postPatch = ''
+    substituteInPlace init_scripts/infnoise.service --replace "/usr/local" "$out"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/13-37-org/infnoise";
+    description = "Driver for the Infinite Noise TRNG";
+    longDescription = ''
+      The Infinite Noise TRNG is a USB key hardware true random number generator.
+      It can either provide rng for userland applications, or provide rng for the OS entropy.
+      Add the following to your system configuration for plug and play support, adding to the OS entropy:
+      systemd.packages = [ pkgs.infnoise ];
+      services.udev.packages = [ pkgs.infnoise ];
+    '';
+    license = licenses.cc0;
+    maintainers = with maintainers; [ StijnDW ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/drivers/infnoise/makefile.patch b/pkgs/misc/drivers/infnoise/makefile.patch
new file mode 100644
index 00000000000..b38519036d2
--- /dev/null
+++ b/pkgs/misc/drivers/infnoise/makefile.patch
@@ -0,0 +1,14 @@
+diff --git a/software/Makefile.linux b/software/Makefile.linux
+index db48aa5..df8b3d2 100644
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -1,6 +1,6 @@
+-GIT_VERSION := $(shell git --no-pager describe --tags --always)
+-GIT_COMMIT  := $(shell git rev-parse --verify HEAD)
+-GIT_DATE    := $(firstword $(shell git --no-pager show --date=iso-strict --format="%ad" --name-only))
++GIT_VERSION ?= $(shell git --no-pager describe --tags --always)
++GIT_COMMIT  ?= $(shell git rev-parse --verify HEAD)
++GIT_DATE    ?= $(firstword $(shell git --no-pager show --date=iso-strict --format="%ad" --name-only))
+ 
+ PREFIX = $(DESTDIR)/usr/local
+ 
diff --git a/pkgs/misc/emulators/maiko/default.nix b/pkgs/misc/emulators/maiko/default.nix
new file mode 100644
index 00000000000..e78b680d617
--- /dev/null
+++ b/pkgs/misc/emulators/maiko/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake, libX11 }:
+
+stdenv.mkDerivation rec {
+  pname = "maiko";
+  version = "2021-04-14";
+  src = fetchFromGitHub {
+    owner = "Interlisp";
+    repo = "maiko";
+    rev = "91fe7d51f9d607bcedde0e78e435ee188a8c84c0";
+    hash = "sha256-Y+ngep/xHw6RCU8XVRYSWH6S+9hJ74z50pGpIqS2CjM=";
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libX11 ];
+  installPhase = ''
+    runHook preInstall
+    find . -maxdepth 1 -executable -type f -exec install -Dt $out/bin '{}' \;
+    runHook postInstall
+  '';
+  meta = with lib; {
+    description = "Medley Interlisp virtual machine";
+    homepage = "https://interlisp.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ehmry ];
+    inherit (libX11.meta) platforms;
+  };
+}
diff --git a/pkgs/misc/emulators/pcsx2/default.nix b/pkgs/misc/emulators/pcsx2/default.nix
index 52d1010b5a4..476ea7122cb 100644
--- a/pkgs/misc/emulators/pcsx2/default.nix
+++ b/pkgs/misc/emulators/pcsx2/default.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://pcsx2.net";
     maintainers = with maintainers; [ hrdinka govanify ];
+    mainProgram = "PCSX2";
 
     # PCSX2's source code is released under LGPLv3+. It However ships
     # additional data files and code that are licensed differently.
diff --git a/pkgs/misc/emulators/pcsxr/default.nix b/pkgs/misc/emulators/pcsxr/default.nix
index e6f0ec47744..099795c63fd 100644
--- a/pkgs/misc/emulators/pcsxr/default.nix
+++ b/pkgs/misc/emulators/pcsxr/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook intltool pkg-config wrapGAppsHook ];
   buildInputs = [
     gtk3 SDL2 xorg.libXv xorg.libXtst libcdio nasm ffmpeg file
+    xorg.libXxf86vm
   ];
 
   dynarecTarget =
diff --git a/pkgs/misc/emulators/punes/default.nix b/pkgs/misc/emulators/punes/default.nix
new file mode 100644
index 00000000000..68f48bc7b40
--- /dev/null
+++ b/pkgs/misc/emulators/punes/default.nix
@@ -0,0 +1,61 @@
+{ mkDerivation
+, stdenv
+, lib
+, fetchFromGitHub
+, unstableGitUpdater
+, qtbase
+, qtsvg
+, qttools
+, autoreconfHook
+, cmake
+, pkg-config
+, ffmpeg
+, libGLU
+, alsaLib
+, sndio
+}:
+
+mkDerivation rec {
+  pname = "punes";
+  version = "unstable-2021-04-25";
+
+  src = fetchFromGitHub {
+    owner = "punesemu";
+    repo = "puNES";
+    rev = "4b4c3495a56d3989544cb56079ce641da8aa9b35";
+    sha256 = "1wszvdgm38513v26p14k58shbkxn1qhkn8l0hsqi04vviicad59s";
+  };
+
+  postPatch = ''
+    substituteInPlace configure.ac \
+      --replace '`$PKG_CONFIG --variable=host_bins Qt5Core`/lrelease' '${qttools.dev}/bin/lrelease'
+  '';
+
+  nativeBuildInputs = [ autoreconfHook cmake pkg-config qttools ];
+
+  buildInputs = [ ffmpeg qtbase qtsvg libGLU ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ alsaLib ]
+    ++ lib.optionals stdenv.hostPlatform.isBSD [ sndio ];
+
+  dontUseCmakeConfigure = true;
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--prefix=${placeholder "out"}"
+    "--without-opengl-nvidia-cg"
+    "--with-ffmpeg"
+  ];
+
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/punesemu/puNES.git";
+  };
+
+  meta = with lib; {
+    description = "Qt-based Nintendo Entertaiment System emulator and NSF/NSFe Music Player";
+    homepage = "https://github.com/punesemu/puNES";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = with platforms; linux ++ freebsd ++ openbsd ++ windows;
+  };
+}
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index 7d0ba259dc5..887e79999ca 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -1011,6 +1011,20 @@ in with lib.licenses;
     makefile = "Makefile";
   };
 
+  thepowdertoy = mkLibRetroCore rec {
+    core = "thepowdertoy";
+    src = fetchRetro {
+      repo = "ThePowderToy";
+      rev = "0ff547e89ae9d6475b0226db76832daf03eec937";
+      sha256 = "kDpmo/RPYRvROOX3AhsB5pIl0MfHbQmbyTMciLPDNew=";
+    };
+    description = "Port of The Powder Toy to libretro";
+    license = gpl3Only;
+    extraNativeBuildInputs = [ cmake ];
+    makefile = "Makefile";
+    postBuild = "cd src/";
+  };
+
   tic80 = mkLibRetroCore {
     core = "tic80";
     src = fetchRetro {
diff --git a/pkgs/misc/emulators/ryujinx/default.nix b/pkgs/misc/emulators/ryujinx/default.nix
index 8bad6b3cd9e..db3b87b7b59 100644
--- a/pkgs/misc/emulators/ryujinx/default.nix
+++ b/pkgs/misc/emulators/ryujinx/default.nix
@@ -16,13 +16,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "ryujinx";
-  version = "1.0.6807"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
+  version = "1.0.6835"; # Versioning is based off of the official appveyor builds: https://ci.appveyor.com/project/gdkchan/ryujinx
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "0ee314fb3b9d476d0d207a3595bde24af9c4b69b";
-    sha256 = "1yyjy5qblsdg186hr81qpc07n0cqla67q3hjf2rrzq5pyb10bldy";
+    rev = "e520eecb5ba682d4b51bb782e3bc99fb1d6afe04";
+    sha256 = "1yy1xslnvvl0m7g0jszj2pjwdwf0pbv53crzfkhla3n68kvfy00f";
   };
 
   nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper wrapGAppsHook gobject-introspection gdk-pixbuf ];
diff --git a/pkgs/misc/emulators/ryujinx/deps.nix b/pkgs/misc/emulators/ryujinx/deps.nix
index 5e3f1a4944f..1ccd7c9b38f 100644
--- a/pkgs/misc/emulators/ryujinx/deps.nix
+++ b/pkgs/misc/emulators/ryujinx/deps.nix
@@ -45,9 +45,9 @@
     sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5";
   })
   (fetchNuGet {
-    name = "GLWidget";
-    version = "1.0.2";
-    sha256 = "0nb46jiscnsywwdfy7zhx1bw4jfmca3s6l8dhbi99gc4bvp8ar7p";
+    name = "GtkSharp";
+    version = "3.22.25.128";
+    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
   })
   (fetchNuGet {
     name = "GtkSharp.Dependencies";
@@ -55,29 +55,24 @@
     sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn";
   })
   (fetchNuGet {
-    name = "GtkSharp";
-    version = "3.22.25.128";
-    sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy";
-  })
-  (fetchNuGet {
     name = "LibHac";
     version = "0.12.0";
     sha256 = "08r9b9cdcbz6339sw8r5dfy2a8iw53df0j3xq9rygkg02xspimld";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "5.0.0";
-    sha256 = "14njzl0907wzcbsnxl62m4y6mv9pdirm68bj8qbbip0q5a6xgidw";
+    version = "5.0.5";
+    sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.osx-x64";
-    version = "5.0.0";
-    sha256 = "1mmklq1fwq4km9y9jgk63wmwjlarx4npkpvjaiwdzv83vdv104ja";
+    version = "5.0.5";
+    sha256 = "09nsi9fa8kb3jpnim0hdap3jabskvpr4fmpvnj5wsh3gp91vqvgb";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.win-x64";
-    version = "5.0.0";
-    sha256 = "0k7q89w3nky4m0j5jsk95c8gczlyp5jl9982gf1hli3gqpl2q4jr";
+    version = "5.0.5";
+    sha256 = "10g2vdsz685agqbd7h7dd9gvs584prpai0zv37r59wzlynj1assl";
   })
   (fetchNuGet {
     name = "Microsoft.CodeCoverage";
@@ -95,34 +90,29 @@
     sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
   })
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.8.0";
-    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
-  })
-  (fetchNuGet {
     name = "Microsoft.NETCore.App.Host.osx-x64";
-    version = "5.0.0";
-    sha256 = "1nirb155gzn2ws1ayaqspjmjaizw87jq2684mzkn18jv4si0hbpf";
+    version = "5.0.5";
+    sha256 = "14d6wz593dwm2j3apd3ny10idk8bfxqgfrparhc1q7q4i66y21ws";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App.Host.win-x64";
-    version = "5.0.0";
-    sha256 = "0nghghcapc28ixg21wb30ccjirc9wz83h0y3bn5zyfanxv2m2ypx";
+    version = "5.0.5";
+    sha256 = "1233y31z46yqzjgwpa6mmb1h63iqp6wbly6mbwkjqm2adx1wkp47";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.linux-x64";
-    version = "5.0.0";
-    sha256 = "1k9yxklzdnjfkqysg54dz0mr75yg29fhlls9alh5qlfpsfpk32yq";
+    version = "5.0.5";
+    sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.osx-x64";
-    version = "5.0.0";
-    sha256 = "0lvpf4zz617y94zz3zsmzrg6zcdd6z3z9gz2bd5kq1l8y1pmq77y";
+    version = "5.0.5";
+    sha256 = "1a1ijdk61l0h25sj9ypcf96vz1c08ca7q5809g82qpi9m34kw8b8";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.App.Runtime.win-x64";
-    version = "5.0.0";
-    sha256 = "1486654z369857h45v73jz8pwr8ibb97fiw5mfm7f01kdbyjdsdd";
+    version = "5.0.5";
+    sha256 = "1gc4msk61jgj9ill4icp0mn523g411iqpxphp0fykfvqdpqyqg46";
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
@@ -141,11 +131,6 @@
   })
   (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
-    version = "3.1.0";
-    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
-  })
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
     version = "5.0.0";
     sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc";
   })
@@ -160,6 +145,11 @@
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.8.0";
+    sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9";
+  })
+  (fetchNuGet {
     name = "Microsoft.TestPlatform.ObjectModel";
     version = "16.8.0";
     sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m";
@@ -191,21 +181,11 @@
   })
   (fetchNuGet {
     name = "Microsoft.Win32.Registry";
-    version = "4.7.0";
-    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Win32.Registry";
     version = "5.0.0";
     sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n";
   })
   (fetchNuGet {
     name = "Microsoft.Win32.SystemEvents";
-    version = "4.5.0";
-    sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Win32.SystemEvents";
     version = "5.0.0";
     sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq";
   })
@@ -255,9 +235,24 @@
     sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6";
   })
   (fetchNuGet {
-    name = "OpenTK.NetStandard";
-    version = "1.0.5.32";
-    sha256 = "12y8kg73llmq3zibcp6j3hhiw04g7mqlm1nslmb74gfkzx0b4m9f";
+    name = "OpenTK.Core";
+    version = "4.5.0";
+    sha256 = "06qxczikp0aah20d4skk3g588dgh2vn2xffn0ajyyv0475m61s9m";
+  })
+  (fetchNuGet {
+    name = "OpenTK.Graphics";
+    version = "4.5.0";
+    sha256 = "180g5c92fhhhpmwl6paihx4h1bil7akaihlz2qy124n28pf4s988";
+  })
+  (fetchNuGet {
+    name = "OpenTK.Mathematics";
+    version = "4.5.0";
+    sha256 = "1h9dxhq1llxdbgdzsi87ijqgj2ilr3rv0zkxhaa65xrc5x8j8fva";
+  })
+  (fetchNuGet {
+    name = "OpenTK.OpenAL";
+    version = "4.5.0";
+    sha256 = "0lqxpc3vnxglql42x2frvq5bpkl5cf3dpnf9nx6pr3q6qnhigkfb";
   })
   (fetchNuGet {
     name = "PangoSharp";
@@ -265,6 +260,11 @@
     sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp";
   })
   (fetchNuGet {
+    name = "ppy.SDL2-CS";
+    version = "1.0.225-alpha";
+    sha256 = "1x8hvk9kikwi7wrvwxdxk3pkbs491iss2mvqgiw844zld5izihqc";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Collections";
     version = "4.3.0";
     sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
@@ -280,14 +280,14 @@
     sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization.Calendars";
+    name = "runtime.any.System.Globalization";
     version = "4.3.0";
-    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Globalization";
+    name = "runtime.any.System.Globalization.Calendars";
     version = "4.3.0";
-    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
   })
   (fetchNuGet {
     name = "runtime.any.System.IO";
@@ -295,6 +295,11 @@
     sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
     name = "runtime.any.System.Reflection.Extensions";
     version = "4.3.0";
     sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
@@ -305,14 +310,14 @@
     sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Reflection";
+    name = "runtime.any.System.Resources.ResourceManager";
     version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
+    name = "runtime.any.System.Runtime";
     version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
   })
   (fetchNuGet {
     name = "runtime.any.System.Runtime.Handles";
@@ -325,9 +330,9 @@
     sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Runtime";
+    name = "runtime.any.System.Text.Encoding";
     version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
   })
   (fetchNuGet {
     name = "runtime.any.System.Text.Encoding.Extensions";
@@ -335,11 +340,6 @@
     sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
   })
   (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
-  })
-  (fetchNuGet {
     name = "runtime.any.System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
@@ -365,6 +365,16 @@
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
     name = "runtime.native.System.IO.Compression";
     version = "4.1.0";
     sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
@@ -375,24 +385,14 @@
     sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
-  })
-  (fetchNuGet {
     name = "runtime.native.System.Security.Cryptography";
     version = "4.0.0";
     sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.0.0";
-    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
-  })
-  (fetchNuGet {
-    name = "runtime.native.System";
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
   })
   (fetchNuGet {
     name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
@@ -525,14 +525,19 @@
     sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql";
   })
   (fetchNuGet {
+    name = "SixLabors.ImageSharp";
+    version = "1.0.2";
+    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
+  })
+  (fetchNuGet {
     name = "SixLabors.ImageSharp.Drawing";
     version = "1.0.0-beta11";
     sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5";
   })
   (fetchNuGet {
-    name = "SixLabors.ImageSharp";
-    version = "1.0.2";
-    sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj";
+    name = "SPB";
+    version = "0.0.2";
+    sha256 = "178z9mi7zlk0laj79nkjh75ych47jjajiaj33hnh7zfmz05d8h6r";
   })
   (fetchNuGet {
     name = "System.AppContext";
@@ -560,6 +565,16 @@
     sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh";
   })
   (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
     name = "System.Collections.Concurrent";
     version = "4.0.12";
     sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
@@ -575,14 +590,9 @@
     sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
-  })
-  (fetchNuGet {
-    name = "System.Collections";
+    name = "System.ComponentModel";
     version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
   })
   (fetchNuGet {
     name = "System.ComponentModel.EventBasedAsync";
@@ -600,11 +610,6 @@
     sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
-    version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
-  })
-  (fetchNuGet {
     name = "System.Console";
     version = "4.0.0";
     sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
@@ -646,11 +651,6 @@
   })
   (fetchNuGet {
     name = "System.Drawing.Common";
-    version = "4.5.0";
-    sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc";
-  })
-  (fetchNuGet {
-    name = "System.Drawing.Common";
     version = "5.0.1";
     sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb";
   })
@@ -660,6 +660,16 @@
     sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
   })
   (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
     name = "System.Globalization.Calendars";
     version = "4.0.1";
     sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
@@ -675,19 +685,14 @@
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    name = "System.IO";
     version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
-  })
-  (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
-    version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -695,14 +700,9 @@
     sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    name = "System.IO.Compression.ZipFile";
     version = "4.0.1";
-    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
-  })
-  (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -715,19 +715,14 @@
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
-    name = "System.IO";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.3.0";
-    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
-  })
-  (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
     name = "System.Linq";
@@ -740,6 +735,11 @@
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
     name = "System.Management";
     version = "5.0.0";
     sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s";
@@ -785,6 +785,26 @@
     sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
   })
   (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
     version = "4.0.1";
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
@@ -805,16 +825,6 @@
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
-  })
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
-  })
-  (fetchNuGet {
     name = "System.Reflection.Extensions";
     version = "4.0.1";
     sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
@@ -845,16 +855,6 @@
     sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.1.0";
-    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
-  })
-  (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
-  })
-  (fetchNuGet {
     name = "System.Resources.ResourceManager";
     version = "4.0.1";
     sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
@@ -865,6 +865,16 @@
     sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
     name = "System.Runtime.CompilerServices.Unsafe";
     version = "4.7.0";
     sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
@@ -895,16 +905,6 @@
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
-    version = "4.0.0";
-    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
-  })
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
-    version = "4.3.0";
-    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
-  })
-  (fetchNuGet {
     name = "System.Runtime.InteropServices";
     version = "4.1.0";
     sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
@@ -915,6 +915,16 @@
     sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
   })
   (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
     name = "System.Runtime.Numerics";
     version = "4.0.1";
     sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
@@ -925,27 +935,12 @@
     sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-  })
-  (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
-  })
-  (fetchNuGet {
     name = "System.Security.AccessControl";
     version = "4.5.0";
     sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
   })
   (fetchNuGet {
     name = "System.Security.AccessControl";
-    version = "4.7.0";
-    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
-  })
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
     version = "5.0.0";
     sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r";
   })
@@ -990,6 +985,11 @@
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.3.0";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+  })
+  (fetchNuGet {
     name = "System.Security.Principal.Windows";
     version = "4.3.0";
     sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
@@ -1001,18 +1001,18 @@
   })
   (fetchNuGet {
     name = "System.Security.Principal.Windows";
-    version = "4.7.0";
-    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
-  })
-  (fetchNuGet {
-    name = "System.Security.Principal.Windows";
     version = "5.0.0";
     sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
     version = "4.3.0";
-    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.Extensions";
@@ -1025,16 +1025,6 @@
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.0.11";
-    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
-  })
-  (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
-  })
-  (fetchNuGet {
     name = "System.Text.RegularExpressions";
     version = "4.1.0";
     sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
@@ -1045,19 +1035,19 @@
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "System.Threading.Overlapped";
-    version = "4.3.0";
-    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.0.0";
-    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    name = "System.Threading.Overlapped";
     version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
   })
   (fetchNuGet {
     name = "System.Threading.Tasks";
@@ -1070,6 +1060,16 @@
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
     name = "System.Threading.Thread";
     version = "4.3.0";
     sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
@@ -1085,16 +1085,6 @@
     sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
-  })
-  (fetchNuGet {
-    name = "System.Threading";
-    version = "4.3.0";
-    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
-  })
-  (fetchNuGet {
     name = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
@@ -1115,13 +1105,13 @@
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
+    name = "System.Xml.XPath";
     version = "4.3.0";
-    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath";
+    name = "System.Xml.XPath.XmlDocument";
     version = "4.3.0";
-    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
   })
 ]
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 6d7c2543d80..8553ab83645 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -151,5 +151,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
     license = with lib.licenses; [ lgpl21Plus ];
     description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
     maintainers = with lib.maintainers; [ avnik raskin bendlas ];
+    mainProgram = "wine";
   };
 })
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 7f02ead3e02..0fe4e4da92d 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -44,10 +44,17 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "6.5";
+    version = "6.7";
     url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
-    sha256 = "sha256-BgD9IIwGkl1mNNKfVDu6CmQ2HDTpvXYJwvDiCWEK00c=";
-    inherit (stable) mono gecko32 gecko64;
+    sha256 = "sha256-wwUUt3YdRhFRSuAhyx41QSjXfv9UooPxQB7nAid7vqQ=";
+    inherit (stable) gecko32 gecko64;
+
+    ## see http://wiki.winehq.org/Mono
+    mono = fetchurl rec {
+      version = "6.1.1";
+      url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
+      sha256 = "sha256-rDsUvq/eNLhIIofllwABE9wGqRXzLJ/QbHfrgZB544s=";
+    };
 
     patches = [
       # Also look for root certificates at $NIX_SSL_CERT_FILE
@@ -58,7 +65,7 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-u6wDavrFirN1e0fFra4ui3i4PnJF0gcENYoIyNwhIYc=";
+    sha256 = "sha256-fWriizSk2+U7Mpn6w/Dlrevd4vc5MnlSWSGxQDf2p+M=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/frescobaldi/default.nix b/pkgs/misc/frescobaldi/default.nix
index 82a3aa8c7be..070babc0cbc 100644
--- a/pkgs/misc/frescobaldi/default.nix
+++ b/pkgs/misc/frescobaldi/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "frescobaldi";
-  version = "3.1.1";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "wbsoft";
     repo = "frescobaldi";
     rev = "v${version}";
-    sha256 = "07hjlq29npasn2bsb3qrzr1gikyvcc85avx0sxybfih329bvjk03";
+    sha256 = "1p8f4vn2dpqndw1dylmg7wms6vi69zcfj544c908s4r8rrmbycyf";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -19,6 +19,12 @@ buildPythonApplication rec {
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
 
+  # Needed because source is fetched from git
+  preBuild = ''
+    make -C i18n
+    make -C linux
+  '';
+
   # no tests in shipped with upstream
   doCheck = false;
 
diff --git a/pkgs/misc/openrussian-cli/default.nix b/pkgs/misc/openrussian-cli/default.nix
new file mode 100644
index 00000000000..ce9a9e49c4c
--- /dev/null
+++ b/pkgs/misc/openrussian-cli/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchFromGitHub, gnumake, pkg-config, wget, unzip, gawk
+, sqlite, which, luaPackages, installShellFiles, makeWrapper
+}:
+stdenv.mkDerivation rec {
+  pname   = "openrussian-cli";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner   = "rhaberkorn";
+    repo    = "openrussian-cli";
+    rev     = version;
+    sha256  = "1ria7s7dpqip2wdwn35wmkry84g8ghdqnxc9cbxzzq63vl6pgvcn";
+  };
+
+  nativeBuildInputs = [
+    gnumake pkg-config wget unzip gawk sqlite which installShellFiles makeWrapper
+  ];
+
+  buildInputs = with luaPackages; [ lua luasql-sqlite3 luautf8 ];
+
+  makeFlags = [
+    "LUA=${luaPackages.lua}/bin/lua"
+    "LUAC=${luaPackages.lua}/bin/luac"
+  ];
+
+  dontConfigure = true;
+
+  # Disable check as it's too slow.
+  # doCheck = true;
+
+  #This is needed even though it's the default for some reason.
+  checkTarget = "check";
+
+  # Can't use "make install" here
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/openrussian
+    cp openrussian-sqlite3.db $out/share/openrussian
+    cp openrussian $out/bin
+
+    wrapProgram $out/bin/openrussian \
+      --prefix LUA_PATH ';' "$LUA_PATH" \
+      --prefix LUA_CPATH ';' "$LUA_CPATH"
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    installShellCompletion --cmd openrussian --bash ./openrussian-completion.bash
+    installManPage ./openrussian.1
+  '';
+
+  meta = with lib; {
+    homepage    = "https://github.com/rhaberkorn/openrussian-cli";
+    description = "Offline Console Russian Dictionary (based on openrussian.org)";
+    license     = with licenses; [ gpl3Only mit cc-by-sa-40 ];
+    maintainers = with maintainers; [ zane ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/misc/scream-receivers/default.nix b/pkgs/misc/scream-receivers/default.nix
deleted file mode 100644
index 6c0f73f1b25..00000000000
--- a/pkgs/misc/scream-receivers/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, alsaLib
-, pulseSupport ? false, libpulseaudio ? null
-}:
-
-stdenv.mkDerivation rec {
-  pname = "scream-receivers";
-  version = "3.4";
-
-  src = fetchFromGitHub {
-    owner = "duncanthrax";
-    repo = "scream";
-    rev = version;
-    sha256 = "1ig89bmzfrm57nd8lamzsdz5z81ks5vjvq3f0xhgm2dk2mrgjsj3";
-  };
-
-  buildInputs = [ alsaLib ] ++ lib.optional pulseSupport libpulseaudio;
-
-  buildPhase = ''
-    (cd Receivers/alsa && make)
-    (cd Receivers/alsa-ivshmem && make)
-  '' + lib.optionalString pulseSupport ''
-    (cd Receivers/pulseaudio && make)
-    (cd Receivers/pulseaudio-ivshmem && make)
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mv ./Receivers/alsa/scream-alsa $out/bin/
-    mv ./Receivers/alsa-ivshmem/scream-ivshmem-alsa $out/bin/
-  '' + lib.optionalString pulseSupport ''
-    mv ./Receivers/pulseaudio/scream-pulse $out/bin/
-    mv ./Receivers/pulseaudio-ivshmem/scream-ivshmem-pulse $out/bin/
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    export PATH=$PATH:$out/bin
-    set -o verbose
-    set +o pipefail
-
-    # Programs exit with code 1 when testing help, so grep for a string
-    scream-alsa -h 2>&1 | grep -q Usage:
-    scream-ivshmem-alsa 2>&1 | grep -q Usage:
-  '' + lib.optionalString pulseSupport ''
-    scream-pulse -h 2>&1 | grep -q Usage:
-    scream-ivshmem-pulse 2>&1 | grep -q Usage:
-  '';
-
-  meta = with lib; {
-    description = "Audio receivers for the Scream virtual network sound card";
-    homepage = "https://github.com/duncanthrax/scream";
-    license = licenses.mspl;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/misc/screensavers/multilockscreen/default.nix b/pkgs/misc/screensavers/multilockscreen/default.nix
index 56f5c82fe30..3049f3ba2a7 100644
--- a/pkgs/misc/screensavers/multilockscreen/default.nix
+++ b/pkgs/misc/screensavers/multilockscreen/default.nix
@@ -16,13 +16,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "multilockscreen";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "jeffmhubbard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0gmnrq7ibbhiwsn7mfi2r71fwm6nvhiwf4wsyz44cscm474z83p0";
+    sha256 = "1vdai1ymkzlkh5l69s8zpyj2klzm8zyak00vd4p7lcldxfj861ig";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/misc/vim-plugins/deprecated.json b/pkgs/misc/vim-plugins/deprecated.json
index b95e91a19b2..41373adf62b 100644
--- a/pkgs/misc/vim-plugins/deprecated.json
+++ b/pkgs/misc/vim-plugins/deprecated.json
@@ -19,4 +19,4 @@
         "date": "2020-03-27",
         "new": "YouCompleteMe"
     }
-}
\ No newline at end of file
+}
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index dfed2004abd..7eb81d54d84 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 = "2021-04-12";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "1cd0c0c33b211b5fface9b29f9c58bc6ae09323e";
-      sha256 = "0cx8ap63742xr3zmk1gkqrchfzvzg0j9blggcw63s23wr9d1yriw";
+      rev = "737c1bf1ac9becd67519f7a6832ad276feca8f08";
+      sha256 = "0imngagc6p5mfx1v2maxcwzh75l1y4diyd1ymwjil51x93qkrzxi";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,12 +89,12 @@ let
 
   aniseed = buildVimPluginFrom2Nix {
     pname = "aniseed";
-    version = "2021-02-27";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "aniseed";
-      rev = "984d84a1bda7208587feb3d62cfec5bcab404af2";
-      sha256 = "00gf2xm20wg0p1ik55jwhzlbd5sz06k3hk30415xayfa6flgh0n4";
+      rev = "9cf0d261a5fb24908f6cc7588f568646dce3d712";
+      sha256 = "051s3nxil63gl3y6xj047c8ifxpra1xqlp3bic3x2ww1fb3wpjz3";
     };
     meta.homepage = "https://github.com/Olical/aniseed/";
   };
@@ -209,12 +209,12 @@ let
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-04-09";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "49e2a0ef443eb0578c2b884a7b85f9f4e4c08fde";
-      sha256 = "1xsb3346qgggpzfln3z1skk4d4hvss3qfck0h5ylpbcbh3f8dxyb";
+      rev = "6e87fa2ed6b6fe7ccd14fe4b30cc00be47afc3c6";
+      sha256 = "00d3ga6rpzwcz2pcdgwrnr2xymh1hizs46zzc8jjmrj58k8sg033";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -257,12 +257,12 @@ let
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar-nvim";
-    version = "2021-04-07";
+    version = "2021-04-21";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "c5c67f450921dec675b42c7f6f960169411dc7fc";
-      sha256 = "17gpmyqqskzmfvqilgdmcp5rb2ddgb8hvjz7ihfyaawp8sy11lv0";
+      rev = "54b4376d9a44b45f12b0f6f5bcc46f98b66782e1";
+      sha256 = "0nh4rgyix8mj3wag8wpcy68avyrh5ps89a842fqdd5x6054d3apv";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -329,12 +329,12 @@ let
 
   bufexplorer = buildVimPluginFrom2Nix {
     pname = "bufexplorer";
-    version = "2020-02-17";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "jlanzarotta";
       repo = "bufexplorer";
-      rev = "29258f58357acc10c672585a9efe8913d756734d";
-      sha256 = "00wjwk9yzfclrbd4p59b5wpl21s2vjs4ahn30xhpza93bk513wnq";
+      rev = "99557c451ff6ed3bbb9b9f6215ad57e919740635";
+      sha256 = "0grkkbvrdnkmvq7wfj0rf128fzlbi3m5z8k4fg66l6gfiyp86zyc";
     };
     meta.homepage = "https://github.com/jlanzarotta/bufexplorer/";
   };
@@ -377,24 +377,24 @@ let
 
   caw-vim = buildVimPluginFrom2Nix {
     pname = "caw-vim";
-    version = "2021-01-25";
+    version = "2021-04-15";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "caw.vim";
-      rev = "26b91ddfcebaee954a3cd2aec1769a5b16779bdd";
-      sha256 = "0yiic0a1l9ggwh3f5y150j74hxj7v783j4y3wnn5j1n7ljvqvhqc";
+      rev = "42637427b1760f3f3006fafe95fb3e25fedca07b";
+      sha256 = "1xyc50y7cicqwvzqyj0jm3bzqbwcy39v4mdjjx2czlmzzgv8qlqy";
     };
     meta.homepage = "https://github.com/tyru/caw.vim/";
   };
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-04-12";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "45ace3afea4e722efa3697b37d8c7dd7c58cab9c";
-      sha256 = "113g6jqpy06z9mfc5097w99flvj7m6g8nqxv68ikkdqbp73kx51c";
+      rev = "23c8aacf13be02b985455ef027fbd28896dd1ef8";
+      sha256 = "1bwaxs8rgyr1w81rqygia9ab7l10vcvad0d3xx89x17z6szakj3x";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -425,14 +425,14 @@ let
 
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
-    version = "2021-03-03";
+    version = "2021-04-24";
     src = fetchFromGitHub {
-      owner = "chuling";
+      owner = "yunlingz";
       repo = "ci_dark";
-      rev = "9063153b05ca47c030a5f656411dbbed33697678";
-      sha256 = "011017ywcgjcflsl21fjcrz7ap68aqvgx5y5z64075qkrk1pqgz1";
+      rev = "4c314000b5a21a1b9f52442a0c80e4b3fd4f0a1f";
+      sha256 = "1wxsgaixdmb8v87kavvyyiyqlkn7ck5g39hkq4j19747jnb6lvqf";
     };
-    meta.homepage = "https://github.com/chuling/ci_dark/";
+    meta.homepage = "https://github.com/yunlingz/ci_dark/";
   };
 
   clang_complete = buildVimPluginFrom2Nix {
@@ -485,24 +485,24 @@ let
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2021-03-21";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "8f27377229c5d2dcee9ae9cda8dea0fad4a5ac3b";
-      sha256 = "0ri0rlz4fwxli6ssz69zyifrdwhc8yx4p996rw8d2m76nm7hflv0";
+      rev = "70f0691e14c8e55290e554591c0a2661dea530fa";
+      sha256 = "1m3kwgng7xi8xycc0dcx0wr9i7q0anx9lpax0r4p2a26vaqam539";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2021-03-28";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "d826e14db13980f7f1734117ff60f5e3573eb2ce";
-      sha256 = "1b0yi6513n690y2sqlyzsckr15jim9izkjlfpphpw4a8d819hx7l";
+      rev = "f76e290d6765261b0a4aee2247dfaaba77e30ab9";
+      sha256 = "0xm9clynyp7h248iddpns7rqdllgvf3f34qlxn47fby2nh07galc";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -533,12 +533,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2021-04-03";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "d3e40ceabd76323c07434fc2711521cc8bb2d028";
-      sha256 = "0mppsxzcgxg20kf2zwja8r6gascxa9r9c7zh73i00i7n216f8fxd";
+      rev = "473668eabee0592e817f9c692b0509c2743fb1c3";
+      sha256 = "1r6wx6bpzfbhb8a95jw1gi2xkvx4h8i4rima2ylkrdbx86hgicjz";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -618,12 +618,12 @@ let
 
   compe-tabnine = buildVimPluginFrom2Nix {
     pname = "compe-tabnine";
-    version = "2021-04-12";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "compe-tabnine";
-      rev = "def6e1a1c4e4a2c18f7ba3ab61152d96500ba0d3";
-      sha256 = "1m8qrf5984kfmmv4yjs0bnqbhg62mmpag6zsw719r95v7r2j8p6n";
+      rev = "f6ace45ef5cbd8b274d7163a2931c11083d34d44";
+      sha256 = "0wjy38v3h5nqr2vw2ydhy2227cqkd8k14cnb3vr39xm5c0fc3ci5";
     };
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
@@ -690,12 +690,12 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2021-04-01";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "46b766dee43a97266741087085889751b474fb56";
-      sha256 = "1034n76bg4p4yvqmz9g9clsrrhx0kvqs0z8fy6p9axmxqzi8z9rr";
+      rev = "b7cc8a2e0936f3069235ed312fb89ff2a5390660";
+      sha256 = "0bxbisyzpp9rrakzqp3kqx61yzgcqvg90qll76vx7s6mxp0qz9rw";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -726,12 +726,12 @@ let
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-04-05";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "54b9cbf9da4a956dc55cd903f3b4f7b211b712a2";
-      sha256 = "0ir10ff5va38ch52fvyl5cfz4mjins3lpklqyh23rrqc0hfd8154";
+      rev = "6ad4f8374c1c1b06146c5c866a404cd4f2b4a8f9";
+      sha256 = "0nwfzsl4g8z45mj84sck7dz5yxrdgklp9l7xz3pialaz8bqsc6vm";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -822,12 +822,12 @@ let
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp-vim";
-    version = "2020-11-12";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "971c4d41880b72dbbf1620b3ad91418a6a6f6b9c";
-      sha256 = "0n68hg59h4rjn0ziqbsh5pr03l3kr98zk54659ny6vq107af1w96";
+      rev = "f68f4d00b9c99d0d711bfde3b071f0dafd249901";
+      sha256 = "0lj596jmisv42mpaxp0w1gm31lyiv28kxjyy7352d16dv5a5432g";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
@@ -846,12 +846,12 @@ let
 
   dashboard-nvim = buildVimPluginFrom2Nix {
     pname = "dashboard-nvim";
-    version = "2021-03-28";
+    version = "2021-04-17";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "dashboard-nvim";
-      rev = "181ca6577101c04dd220b7a25096cbd4325979ec";
-      sha256 = "03zazbnbcsg272zzx4q4n6vkvcwzm8lh1jw1fzbkn2blmffyjld6";
+      rev = "ba98ab86487b8eda3b0934b5423759944b5f7ebd";
+      sha256 = "1gyk0n8ks7xyjqab0gb7yx4ypl9k7csfjgmha84hy7mz4h08fkxq";
     };
     meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
   };
@@ -882,12 +882,12 @@ let
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2021-04-11";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "94a655cd9993b152feb6de4d6168d234d4b3f14b";
-      sha256 = "0kram585pmj88gvfs71k50lgawg87qbiisw0plzp41hjrgs0ymkz";
+      rev = "f0e31bf12b0dc1b8c733c3bf76fdfd9679fb63be";
+      sha256 = "0js6k32jqkf4nfs7vpx6pd7ix36p2599nzd4myshfsphb470zbny";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -930,24 +930,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2021-04-03";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "452b1800ad2f2db96847da857f9a0d67ff6ecc95";
-      sha256 = "0rhqi6rc3iz549g95m6m6s10hzihyg3fjj4v8dhic3iqpxilw8l8";
+      rev = "b9ec10c07d4525001de2660ae1ee25ce572fa5c7";
+      sha256 = "17vivrhyn4qhvw1a4bf5wycl136whiic1srpvvvh8fs4pzsc2yn3";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2021-04-12";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "b9dd634beacfda00a6d4c388867cc1348735f3a2";
-      sha256 = "055k2fph67glzlx10611a6z7s10z3jsms21ixzy25hsdvr75xpda";
+      rev = "2b89f3060bc0539b32ad50e2cba20de877cf960a";
+      sha256 = "1hqj9gaymfkzlc0v0v0kg5ac9yn7zbv14zvwaly8bjf28q8vh5yn";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1172,12 +1172,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2021-04-05";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "20d181d84c108ea2b13ce227e9dd5ae13df0e13e";
-      sha256 = "058bb2pznmldk8936d69ynqf79apiv0j39sva68qpqmsixnljnz9";
+      rev = "0cb28652b7acab25ba85a598dfeae3829234fc6e";
+      sha256 = "16arlh3xq8pfsicyc76jalvd6q2ld9k4xwdndmgkr2wsdmnc9kwz";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -1244,24 +1244,24 @@ let
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2021-04-08";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "d82b9198d4dda1ac4a96756570f56125a1f86cb1";
-      sha256 = "1zj6ifair5gm1nn4nh886y6m8snlhiskiwxlfd1cm7j3xafwqapx";
+      rev = "d21059cd5960f4d0a5627fda82d29371772b247f";
+      sha256 = "0cbsiw0qkynm0glq8kidkbfxwy6lhn7rc6dvxflrrm62cl7yvw91";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
-    version = "2021-04-11";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "da1704818a342c4ad17abdc6886836ae61aa6b2a";
-      sha256 = "0k1gzajn335518vz1ga957i91pfb04bmhhmzc96l617qdkp3ij30";
+      rev = "63d3c193ccb1652a972ca0def7ab82048bfb6068";
+      sha256 = "0v0fd6n6fza1rj008zpjicvh9d8mcvz3kza8hhby9nx9cjlj2dpc";
     };
     meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
@@ -1305,24 +1305,24 @@ let
 
   embark-vim = buildVimPluginFrom2Nix {
     pname = "embark-vim";
-    version = "2021-03-12";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "fda8867d405a93938f154fb9d70e4f4a4e6ef8c8";
-      sha256 = "09kvk3wjmpvssv8j5iba2dngnfkv178gkr620pa3k1imb0m9f0bq";
+      rev = "95847fbae47aa5d49b6470568b8151a93e15307a";
+      sha256 = "06qvnbhwm2gl8921hyq75dwxxfbkwfvvsn4pci89831qn6w3pa6f";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
 
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
-    version = "2021-03-20";
+    version = "2021-04-17";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "1f5daf6810d205844c039a4c9efa89317e62259d";
-      sha256 = "0250dp2jcxrhx333i6mk99q7ygwa8ac055id9qafdx331v9wxcil";
+      rev = "46e60676f2d6b6f02478e444ae23ee804a3de45e";
+      sha256 = "0civ9sx6qbm2cd0a8m57fangvrb1yrbfldg850avi9ay3s4y2nq5";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -1354,12 +1354,12 @@ let
 
   falcon = buildVimPluginFrom2Nix {
     pname = "falcon";
-    version = "2021-03-22";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "fenetikm";
       repo = "falcon";
-      rev = "f6be01e8642dc8ccc7ed1f37b23f4b0dfa2c6f8c";
-      sha256 = "1w4ld5dvy0jxgjvp6yf8qibc4x82hn490vfg0hpln67nr6mhq1iw";
+      rev = "376aacc4ec6dd5495f201bc5bea0c1bcff574535";
+      sha256 = "1y3r36594f6vhgi0gzszl9pf1d7jizxj6iamcpwmbqbj75i62hp3";
     };
     meta.homepage = "https://github.com/fenetikm/falcon/";
   };
@@ -1402,12 +1402,12 @@ let
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern-vim";
-    version = "2021-03-25";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "3f9f1957699346f240a9e71eee83fcb67c8fc0e5";
-      sha256 = "1wkxih5glkpvjy6ka42y0x1di2iqm1y7rc93av4gfqhhskryfv0h";
+      rev = "609610754b52d3d32616bd70094dcce3a88db3e6";
+      sha256 = "1va4iaxnb03zk880k2kilsyr498pv0g78418d0nzxa4cdmvxcp5z";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
@@ -1485,6 +1485,18 @@ let
     meta.homepage = "https://github.com/megaannum/forms/";
   };
 
+  friendly-snippets = buildVimPluginFrom2Nix {
+    pname = "friendly-snippets";
+    version = "2021-04-17";
+    src = fetchFromGitHub {
+      owner = "rafamadriz";
+      repo = "friendly-snippets";
+      rev = "ee28380b2300b374251b89d73e7e5b23c573e2bc";
+      sha256 = "1ap2nf84gbrqlykw1l8zx01m9hm92vw57wkkzv2cqkjcbm3whqyg";
+    };
+    meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
+  };
+
   fruzzy = buildVimPluginFrom2Nix {
     pname = "fruzzy";
     version = "2020-08-31";
@@ -1523,24 +1535,24 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2021-03-24";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "caf7754b2636eabdf1bc11d30daccc5de66951ef";
-      sha256 = "1743br19x41rycc1iqh2jiwaa2z80bi2zcd0lr9n17dc733ww5n2";
+      rev = "ee91c93d4cbc6f29cf82877ca39f3ce23d5c5b7b";
+      sha256 = "0zpf45wp0p924x96w9i171w5mbh25rzbmp987wpv8kgfzq7dviir";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
 
   galaxyline-nvim = buildVimPluginFrom2Nix {
     pname = "galaxyline-nvim";
-    version = "2021-04-10";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "galaxyline.nvim";
-      rev = "cbf64bd4869c810b92f6450ed8763456c489be87";
-      sha256 = "0c7xgracnl92psc5b7m90ys9v5p20hipli8q797r495r59wnza20";
+      rev = "d544cb9d0b56f6ef271db3b4c3cf19ef665940d5";
+      sha256 = "1390lqsqdcj1q89zn6y5qrm1id7p8fnpy07vlz6mm4cki47211mb";
     };
     meta.homepage = "https://github.com/glepnir/galaxyline.nvim/";
   };
@@ -1559,12 +1571,12 @@ let
 
   gentoo-syntax = buildVimPluginFrom2Nix {
     pname = "gentoo-syntax";
-    version = "2021-02-07";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "gentoo";
       repo = "gentoo-syntax";
-      rev = "762f31ff620eb822ae4ca43c5dc2a62ca621f5fe";
-      sha256 = "035nj257r2nkwriqq5l4qjn5z1a04l39k4i9s1yz0mgv902kmics";
+      rev = "9b016fd42ba37395d9299e1e811b282b29effb63";
+      sha256 = "0x3rg1pxildm2mrfr28f4d41z4zzf6v2jng41nzylwm5r4c5r1gd";
     };
     meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
@@ -1593,30 +1605,54 @@ let
     meta.homepage = "https://github.com/eagletmt/ghcmod-vim/";
   };
 
+  gina-vim = buildVimPluginFrom2Nix {
+    pname = "gina-vim";
+    version = "2021-04-28";
+    src = fetchFromGitHub {
+      owner = "lambdalisue";
+      repo = "gina.vim";
+      rev = "699d1e9d4104c994a37cb18b730f38ff7f32f2d1";
+      sha256 = "1akcpf5iyrbj4apjvp02613x328igp9gk4gaqgkx4qvwha4khbi5";
+    };
+    meta.homepage = "https://github.com/lambdalisue/gina.vim/";
+  };
+
   git-blame-nvim = buildVimPluginFrom2Nix {
     pname = "git-blame-nvim";
-    version = "2021-04-12";
+    version = "2021-04-15";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "d75b433c1ea96d8133cb33dcdb2d1d47c98e59fb";
-      sha256 = "0b726nf63ydfsxc22v1ymz4z8qcp0i2yxgq5dh7i7b5ws809kyn5";
+      rev = "bba913f065b7fba7150e71dc07e093c758c5ca98";
+      sha256 = "1xvy5pnqcrvcs19b2b6l3n9rkj281grcgbrsg87iwvc9sw98bywl";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
 
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2021-03-21";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "6fe62ce47491953487dac540964a4cfb037be7f3";
-      sha256 = "0g8gaprkrqs69rplmbf6nc03km6qcapipyc13rghb7fyksad51nr";
+      rev = "866b3ed000d483b27067d9bc89dbaa57a83244e8";
+      sha256 = "1jj2nbsm5g1y9pw0frh35kbj17zpxy56gqym44gv8hy2wbhzwhbf";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
 
+  git-worktree-nvim = buildVimPluginFrom2Nix {
+    pname = "git-worktree-nvim";
+    version = "2021-04-23";
+    src = fetchFromGitHub {
+      owner = "ThePrimeagen";
+      repo = "git-worktree.nvim";
+      rev = "34d1c630546dc21517cd2faad82e23f02f2860d1";
+      sha256 = "0ddz2z7plw320kgsddlfywsa202bl8sxr9jbvldhh0j34q5lgdja";
+    };
+    meta.homepage = "https://github.com/ThePrimeagen/git-worktree.nvim/";
+  };
+
   gitignore-vim = buildVimPluginFrom2Nix {
     pname = "gitignore-vim";
     version = "2014-03-16";
@@ -1631,12 +1667,12 @@ let
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns-nvim";
-    version = "2021-04-12";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "2ba9f5a7610fac660c8266db244eea91b76dcf48";
-      sha256 = "1zcflhcpvyl1chsxwdcii8lzhig5fwjpvhr5l3wvpr63vix7iy65";
+      rev = "3d378118e442690e2e15ee6a26917a5c1871f571";
+      sha256 = "1ik37ppad5dzlkl237ls58hdlcm09igkklgr6zqjpili37p32z43";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -1655,12 +1691,12 @@ let
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow-nvim";
-    version = "2021-03-31";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "npxbr";
       repo = "glow.nvim";
-      rev = "89b4edfcb70529d9c713687aa6fcfa76a2010ae0";
-      sha256 = "0qq6cjzirr4zicy2n259sxi2ypz7w740qaf4a4vhphh4rd6gi18w";
+      rev = "f3770dd754501139dd11566b8b739d828a773272";
+      sha256 = "159arilpzv8pdwv4323gv85lwcz5libbk0drjkpbp2632bl9likh";
     };
     meta.homepage = "https://github.com/npxbr/glow.nvim/";
   };
@@ -1715,16 +1751,28 @@ let
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-03-17";
+    version = "2021-04-15";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "8a36e8dae3e31fa5edfb5ae91fb1c2d36b05979e";
-      sha256 = "0yq8bvpqlnj57pl2j4jwwpihpwmq0lym1q5sigvkp0yghlwliqxx";
+      rev = "42668ea643d56729467fb79c1a0a5e30289fe590";
+      sha256 = "090jh2pwkl2mpycnii78457k2pkdj76l9x4p4yn9j662986imnhl";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
+  gruvbox-nvim = buildVimPluginFrom2Nix {
+    pname = "gruvbox-nvim";
+    version = "2021-04-23";
+    src = fetchFromGitHub {
+      owner = "npxbr";
+      repo = "gruvbox.nvim";
+      rev = "9dc9ea64fd2fb255a39210e227fc7146855434af";
+      sha256 = "04d8knfhidxdm8lzc15hklq1mm6i5kmdkik4iln4cbhd3cg33iqy";
+    };
+    meta.homepage = "https://github.com/npxbr/gruvbox.nvim/";
+  };
+
   gundo-vim = buildVimPluginFrom2Nix {
     pname = "gundo-vim";
     version = "2021-02-21";
@@ -1799,12 +1847,12 @@ let
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop-nvim";
-    version = "2021-04-05";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "414b9aae83d7b13559ed5031995363fa6c4841f3";
-      sha256 = "05cajsdfys608mb5379aj70w4f7pp7x3x3f5c2aryij5fg0mnx5j";
+      rev = "998452d18934af4a527d4e1aa315fd2c74cb652a";
+      sha256 = "0y17zm792fxakja4c852k9pw3lp20vgbyyzrmnc20112dll8vzgn";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
@@ -2064,24 +2112,24 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-04-13";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "c76be0ea28926ab60276fd4788eddbd8c96b66fc";
-      sha256 = "1bai15a7wwr7v9z43qjzryb1cpd8xyylfrrlcjjfckw9gbqpgs3w";
+      rev = "b437dae505b0fbb6aac92a9aad8f4fb68ea1259b";
+      sha256 = "1l2kiaa44hd7x9a0w1x5kwfvqnkkzi9i7qnjnhch083chmjjy13d";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
   kotlin-vim = buildVimPluginFrom2Nix {
     pname = "kotlin-vim";
-    version = "2021-04-11";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "udalov";
       repo = "kotlin-vim";
-      rev = "ea258abc437d3615236d72c8b354de39b409a249";
-      sha256 = "1r6wc5nnx6lxc7cyxp5dwzwxgmdrqzxl63m0807sl69rgl2444rq";
+      rev = "e043f6a2ddcb0611e4afcb1871260a520e475c74";
+      sha256 = "0ygvicf8gcaskz33qkfl1yg1jiv0l9cyp8fn2rrnzdsb7amsss0v";
     };
     meta.homepage = "https://github.com/udalov/kotlin-vim/";
   };
@@ -2146,6 +2194,30 @@ let
     meta.homepage = "https://github.com/latex-box-team/latex-box/";
   };
 
+  lazygit-nvim = buildVimPluginFrom2Nix {
+    pname = "lazygit-nvim";
+    version = "2021-03-25";
+    src = fetchFromGitHub {
+      owner = "kdheepak";
+      repo = "lazygit.nvim";
+      rev = "fb5ab7d26ac414a7e7bfff6b89f69e2dd2fd3884";
+      sha256 = "1nn6zhjqfk88jmavl9y8li4y08v3wb2m2kskq9yf36hadw29im30";
+    };
+    meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
+  };
+
+  LeaderF = buildVimPluginFrom2Nix {
+    pname = "LeaderF";
+    version = "2021-04-28";
+    src = fetchFromGitHub {
+      owner = "Yggdroot";
+      repo = "LeaderF";
+      rev = "86eaa396858a8da957d9f445e9d8bd4c0c304f96";
+      sha256 = "0rq2f094jmz74krjszgahlx9qdhl4qghviy4qk64d9lygjjc8xln";
+    };
+    meta.homepage = "https://github.com/Yggdroot/LeaderF/";
+  };
+
   lean-vim = buildVimPluginFrom2Nix {
     pname = "lean-vim";
     version = "2021-01-02";
@@ -2244,12 +2316,12 @@ let
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2021-03-10";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "f1feb5b3b9d1b13ccedae475e9346392e17895a4";
-      sha256 = "1wki7q6w6ld1lx792f62s8k72ikcdl6il3ybsxxlajmnj5mixvkg";
+      rev = "570e732e9e89f2a900a1e86fb3fa170c7dd201d6";
+      sha256 = "0jvd7jp92qffas5hb2m6jg1vlm4g2is8q8hkj5mhyr5gnbpj2xf0";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
@@ -2280,16 +2352,28 @@ let
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs-nvim";
-    version = "2021-03-19";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "ff82d3668497e4520e195748d295cbe9513086b7";
-      sha256 = "03698f1lydnql9xi0a1iggpqv3001yn390z9j1hvpwmra3k7lnpg";
+      rev = "5225b347a722ba54ce3744364a3e0ff2939743cd";
+      sha256 = "0x4nshkizivjz5ldb3scsxxi6x379g3rfpiplsixcs6bpxkib166";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
 
+  lsp-colors-nvim = buildVimPluginFrom2Nix {
+    pname = "lsp-colors-nvim";
+    version = "2021-04-23";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "lsp-colors.nvim";
+      rev = "525c57c1138ca5640547efb476758938aedba943";
+      sha256 = "0dxalh12ifsghksl423bbawq096k8fcl1cgmnvaw3f2x71fngfs6";
+    };
+    meta.homepage = "https://github.com/folke/lsp-colors.nvim/";
+  };
+
   lsp-status-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-status-nvim";
     version = "2021-04-09";
@@ -2328,36 +2412,36 @@ let
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga-nvim";
-    version = "2021-04-09";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "lspsaga.nvim";
-      rev = "b77a08be564ccba4bd8c68cca89aa87e5520b3c3";
-      sha256 = "0hwngd27cdfbcw8l8x4ri93749v5r6z3q9s5h6av27zdb4gbvddd";
+      rev = "cb0e35d2e594ff7a9c408d2e382945d56336c040";
+      sha256 = "0ywhdgh6aqs0xlm8a4d9jhkik254ywagang12r5nyqxawjsmjnib";
     };
     meta.homepage = "https://github.com/glepnir/lspsaga.nvim/";
   };
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine-nvim";
-    version = "2021-04-12";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "hoob3rt";
       repo = "lualine.nvim";
-      rev = "8a99a0e9e76d81837ff9156599b399a70cb9fb80";
-      sha256 = "18ch67d3in3k1j766cy1wbbnd2dmbrch5rm9yqwys18263cjsihg";
+      rev = "6ba2b80b594c3ead11ab9bd1dbc94c0b4ea46c33";
+      sha256 = "0xhdc18sdlbhhyd7p898n4ymyvrhjqbsj5yzb6vmjvc4d9gln1k6";
     };
     meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
   };
 
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush-nvim";
-    version = "2021-04-11";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "3db21525382fa158fba22e2a5d033d6afdbc763a";
-      sha256 = "1k0678h22falk08mpvlxlfsx7z89p89clrc9hlk452dzj7wjy7wi";
+      rev = "3a188f13ffcd026e1c29938ff2fb1a8177b8f953";
+      sha256 = "06dk4xl1d4j06ccclzyg9nj3pcshypab5sv6wc5303by8l8j17j7";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -2424,12 +2508,12 @@ let
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap-vim";
-    version = "2021-03-30";
+    version = "2021-04-13";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "a7af085a6f549875f7721caa7cd3071fba800597";
-      sha256 = "0chzim7i3mq156n8zyay4prvyj306z6lqxdljzrz7j4mmkarcxl1";
+      rev = "6afcca86b2274b43de9d39e3c1235f4b0f659129";
+      sha256 = "08wabfqhj697qy92jrf6mzbhjbybyil45fsvhn6q3ffl161gvsak";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -2724,24 +2808,24 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2021-02-06";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "a75d96054618c47fbafef964d4d705525e8e37b9";
-      sha256 = "0c7k1fhw1fjgby4h99r22sbzn639v76r12dl66fhdrnkvrk0709n";
+      rev = "1a49552cdaddeaaa766a6f0016effe530634b39f";
+      sha256 = "114mp407vck6bm224mig91rka5k7jj6641lllijwj25b3yfkgkmr";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2021-04-07";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "fa941274218fb16464072805a17ba80e7c6f2648";
-      sha256 = "12f4f22wdsaa7ac0yzzqzsrrm2vrh0y7jmfir6ngkc9j3l52mg9d";
+      rev = "cd00786925191a245c85744c84ec0749b1c8b3f7";
+      sha256 = "0770p37i6r0dwyx9chfg75zy0wcw8a044xfh7vk7ddcqcmp4flhy";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -2868,12 +2952,12 @@ let
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-04-06";
+    version = "2021-04-13";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "6d0ab7dec9306fada667ea71edbb3da2b06a40ad";
-      sha256 = "0w5vaz7f8r61rizlgn3x9p3yzxw2aca1a76gb0zpalc2n51bdf9s";
+      rev = "1b53686d5f1d1607dc67430e9243283fee3a9764";
+      sha256 = "03qzbvry4mygx109mxxqqmbv9adh9ifsiwl0rsvfgp7kl6l6fzkk";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
@@ -2940,24 +3024,24 @@ let
 
   nlua-nvim = buildVimPluginFrom2Nix {
     pname = "nlua-nvim";
-    version = "2021-01-05";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "nlua.nvim";
-      rev = "c0e8fbcaf8bcf5571a9e1d780a72094aad3f3094";
-      sha256 = "0q5aw3n4dsszk5iw7qg01xx1rbrr18jh1wqs6k9dd1kcr6yq22rq";
+      rev = "31e3430acb84368c0933a3e765d834e897dfca2f";
+      sha256 = "0h8908x2pf139q6mxckcglb5w7zxvhp0vj97za0g8343lvlhf0v1";
     };
     meta.homepage = "https://github.com/tjdevries/nlua.nvim/";
   };
 
   nnn-vim = buildVimPluginFrom2Nix {
     pname = "nnn-vim";
-    version = "2021-03-22";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "mcchrish";
       repo = "nnn.vim";
-      rev = "6408b859f9fac3880d82109d25874fb6656026d9";
-      sha256 = "0r5s89882hj54qyi5rcwmf8g54jkjmap5c2rd2mhfjs3j4dfny72";
+      rev = "422cd80e35c81a303d16a600f549dc4d319cecf6";
+      sha256 = "187q3m0llrwmrqskf14cqy9ndvvj8nfnyrw46f8mdkrslkfs9vf2";
     };
     meta.homepage = "https://github.com/mcchrish/nnn.vim/";
   };
@@ -2988,12 +3072,12 @@ let
 
   nvcode-color-schemes-vim = buildVimPluginFrom2Nix {
     pname = "nvcode-color-schemes-vim";
-    version = "2021-04-09";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "ChristianChiarulli";
       repo = "nvcode-color-schemes.vim";
-      rev = "90ee71d66da58d57f0cb4a59103874bb519c79d4";
-      sha256 = "0sabb0iyrmfwfld57d1mf44k69bf8pk0c1ilfi3vz2hz04imxgab";
+      rev = "940f2eb232091f970e45232e9c96e5aac7d670de";
+      sha256 = "1sxi0dhbqg6fg23n8m069z6issyng18hbq9v7rxnzw90mqp0y5zb";
     };
     meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
   };
@@ -3012,36 +3096,48 @@ let
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2021-04-06";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "cae76770d1f69b927616313fe1676528adb6d62a";
-      sha256 = "1kh38zfa4x69m0j94f1wzzw4nqxwd89s50inik32zj5948j6licb";
+      rev = "0cacd33ec635430c80fd5522bad47662d3780f55";
+      sha256 = "18angbsm98zzbykdh83xkl6m8cbnrqvxg3n0v9abwi2r02wnfwqb";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
+  nvim-base16 = buildVimPluginFrom2Nix {
+    pname = "nvim-base16";
+    version = "2021-04-12";
+    src = fetchFromGitHub {
+      owner = "RRethy";
+      repo = "nvim-base16";
+      rev = "9d6649c01221680e5bb20ff9e2455280d9665de2";
+      sha256 = "18a974l753d92x3jyv5j0anri99hxzfw454lkz94amabbnc010p6";
+    };
+    meta.homepage = "https://github.com/RRethy/nvim-base16/";
+  };
+
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2021-04-02";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "cf9b92326411640891360c7bdd784967a8923f43";
-      sha256 = "14jd99i35yl04jhwnccj6bx80xwpn9fl5i3bpd7b7safpd6gfk8m";
+      rev = "56316fcc87d2654903e4213817d5fba56008c81d";
+      sha256 = "11z40nm53r5nq1h4q0l1gfrly2zdaqzp4li40zxzp962b80f0wxv";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
 
   nvim-bufferline-lua = buildVimPluginFrom2Nix {
     pname = "nvim-bufferline-lua";
-    version = "2021-04-07";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "nvim-bufferline.lua";
-      rev = "224f2627c471f319626fc7c1ab85f9d7d91bb98a";
-      sha256 = "0yxby3p82pjkz8n0vnavbhw0qlva8mfq3nqff4bf1sg9iw0jpfkm";
+      rev = "41debce12f99970f13c16dfd4fd89da64cf6abcf";
+      sha256 = "1ilsrcil3d7fwkfy1xqbcim0fc2ydal38b4xrvgv07bvih9pwflp";
     };
     meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
   };
@@ -3072,12 +3168,12 @@ let
 
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
-    version = "2021-04-12";
+    version = "2021-04-19";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-compe";
-      rev = "4b3ade100866bb64b472644642da670e2fc61dde";
-      sha256 = "0r3kwi5997rcfpc4gs25xcqslnlfwfm1cz2bgvxz389v71vay0mw";
+      rev = "99452ae6875889c12653963b68e53c4564848954";
+      sha256 = "1d5hpn3mr2h3s5h2svajbxm0n49mmc5w0sip9cpzyfdpbnv1gic3";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
   };
@@ -3096,24 +3192,24 @@ let
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2021-04-12";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "107c6882fa13f77d8a206709e3d50fb0290d57cc";
-      sha256 = "0c1wq4s3cjysphvkdicxvc87dg6jr2zmxcxfnpz14ncn1s05gr9h";
+      rev = "c6cb4fcbc91b0404ae157f1942e305d66073ca1a";
+      sha256 = "07mncx8bzigbh6yy7nbsgjb3g3fm1kx73wb6p7jl6h9ay3fmgrfc";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-virtual-text = buildVimPluginFrom2Nix {
     pname = "nvim-dap-virtual-text";
-    version = "2021-03-15";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "b26acb69a5a4940f9eb3fd6f4bca8e1cc16fa5ce";
-      sha256 = "16dkgmcfdx1n72khlwrcykwwpcjzz2mdh7dc53vb4j0pbmqmnna2";
+      rev = "96b8e0423609a23cb971edb1d10c757d7930787b";
+      sha256 = "0z84xisjj4a0blfy7ds5hlwvvr6yc7nwiqglli1h6lp7abxs5xx0";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -3144,12 +3240,12 @@ let
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2021-03-25";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "fdce47e0bd9669e2424cc2a0112ecb47ba571d13";
-      sha256 = "1dn9wr23dizhs7byrim9zd3yi22g629jc2aqfx0q1v1i2i9g107v";
+      rev = "a23ce7882d3caf4df00e79c515c81633055bae45";
+      sha256 = "0xlz3v4zzaklnkr5sx238i7d8agxbsk9zbs3br0dfjdbrvhgii02";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -3168,12 +3264,12 @@ let
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2021-03-28";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "4ebad2d52b7c648a7f6ceb5e62dde49167d07796";
-      sha256 = "0cnh6x49yy6z3f3h7q0q8l90cl7dchxfdgz7c143nv5qd3qkgnmc";
+      rev = "f449589f6c56426a82adead43fe8fdabda0454fb";
+      sha256 = "0l6f2596cdwbrwyacc6w60ad8616ivxcamjqcx3jizw5b6wlb475";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -3192,12 +3288,12 @@ let
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-04-10";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "8924812e0d114b67dca376533bef2ac5bb054f8b";
-      sha256 = "1dlx2bhvsdm9s5ivpkw5ikhkw6b99zng4p9qdh8ki49f644w5jsr";
+      rev = "62977b6b2eeb20bd37703ebe4bc4b4c2ef006db2";
+      sha256 = "0niwaq3mc7x1zaf3qx9dp43607rnhq2nvyizkxb7j1yir8a8dk4x";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -3240,12 +3336,12 @@ let
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-03-23";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "902f24503ab7a754be2a1c483de1cd3428bd85ec";
-      sha256 = "0b31lpzdx1z88fm60p7d5gs442h4apm2n9h098n4j0ghcs5ppvnf";
+      rev = "58f5ba925b51cfd7edf73e1135588403151bc719";
+      sha256 = "0033r4w4lh59a0ghvpk5r7ww4s46airfgi4idgizsc6w8xkrj2yy";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -3264,48 +3360,48 @@ let
 
   nvim-toggleterm-lua = buildVimPluginFrom2Nix {
     pname = "nvim-toggleterm-lua";
-    version = "2021-03-23";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "nvim-toggleterm.lua";
-      rev = "84980bd3f549821fe58d1821fdc1e7c54d1ebf3a";
-      sha256 = "09dcajyfbimfzgxj57c988rqr6y6ah4p97j04gyvg1mrvlj95dg4";
+      rev = "7e153f1a636d0dc92e013da3177bbbdf34e415a3";
+      sha256 = "0djjvqx52anrsdar68l4alyiyxwfbcq6bfpdjcghyhnwmnnygb3n";
     };
     meta.homepage = "https://github.com/akinsho/nvim-toggleterm.lua/";
   };
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2021-04-08";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "82b20f5b5ed741d2e6360990ee11a50f0cd253a4";
-      sha256 = "0il4z9ch5jmrwp5c51lxgrj8w3d5av3z5pkwjclh8gwpvm7siwvr";
+      rev = "f39869514645b98ec30bc8826763c288b6cbdbef";
+      sha256 = "0z6arqc2i8745vc08hdbwsm1i4biywq65v1zdzrhs3ysx0agppq0";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-04-10";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "615afe3541eec0b338b4ff5b6738f69c7f6f8860";
-      sha256 = "14n9q9fnfys8vj7m4fbngybcz9f2vzr8f67r5m7nd3lljn2389dg";
+      rev = "bbf3f87884756330793510261193b0a725fb899b";
+      sha256 = "1974jpw2sjz4v8vy7y665bl6avflsv7pdqmq9ahlqf2lw59x13hy";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2021-04-09";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "6855cc725ee7d98dff00886d22d687ef7ba82c4f";
-      sha256 = "1y2vpgmc2c2fpdxfpxlmz69f36wnp9q0yff6cidal61xaj28w71w";
+      rev = "d5070fb1171220e8db6eef77ed994079198d6522";
+      sha256 = "1x534yrbjnf4bny3bykj7jkydhkjxspmipkbb685ja4nppc2lp41";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
@@ -3324,48 +3420,48 @@ let
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-03-31";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "111cf356fd5c6c52d2dfb9299a76d201624be3cc";
-      sha256 = "1dvfwcdj2cbgxlsw09qgsvym8cvg8jval90h4rwmkn7yzh1wyf7a";
+      rev = "522b26a8795994b719a921a03cfacb0d7dcabf78";
+      sha256 = "0ww1agq33l3jhbfwr5ri9m3ipr48kgwzlzxv96w43x6y29p61g2v";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-04-09";
+    version = "2021-04-19";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "445c02bb35e350df733af3ec70a0a7dea5dbcf43";
-      sha256 = "0sh23vfk30492agc0a8jlcsksgw2ny0s3ngmxxy60xs8j4dpfhjs";
+      rev = "d42bf9f52607c1cb281db570f3f47e0d84b03a02";
+      sha256 = "13ndyskp3yx3nazg6xc1j3lzad588a1qdacs6ymh8vs616p5mqsf";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-04-06";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "ecc0ec031ec4330c7c4eaf3ed2efdf1abbaff834";
-      sha256 = "1m4bhwb1vg75lizdj8dkai9zcrxgky2g1gm6ivzj7i1y7p1k1ccv";
+      rev = "1db27380053de0cd4aaabd236a67c52d33199f1a";
+      sha256 = "1qq9mk102jj5hqdkmrirccr3jkh2dgsfb3gy4wvpcp7mdcqapsqc";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
 
   nvim-whichkey-setup-lua = buildVimPluginFrom2Nix {
     pname = "nvim-whichkey-setup-lua";
-    version = "2021-04-08";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "AckslD";
       repo = "nvim-whichkey-setup.lua";
-      rev = "7299ebd2bcfb412630a18356a653def7e72f162d";
-      sha256 = "1kxg7ss95cijf9i8nbsp3jkpmx9x3c4qp52d0ckwcdbyvskkal9y";
+      rev = "b2df0761b8ba3fca31b7ae1b0afcad2f8a4e89f4";
+      sha256 = "02bidgicrrx6jwm6hpcq0waqdzif2rws2q1i47zvi5x9i3zyl5cx";
     };
     meta.homepage = "https://github.com/AckslD/nvim-whichkey-setup.lua/";
   };
@@ -3480,12 +3576,12 @@ let
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer-nvim";
-    version = "2021-04-06";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "fdf1851c6121dee98294791c72aebff92b99b733";
-      sha256 = "1ylwr70z7jlga260ydah03ngh47kf8jh7zgpl9iclih01nz6xwci";
+      rev = "c742488c5a9b5f8b04e5a85f6ab060a592a987ff";
+      sha256 = "1yl9sq5qi4rbfzvm4n4ynrlvcfvca1vy8pa69c78pyx0lr3qh7z3";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -3564,24 +3660,24 @@ let
 
   playground = buildVimPluginFrom2Nix {
     pname = "playground";
-    version = "2021-04-11";
+    version = "2021-04-17";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "playground";
-      rev = "1bf0f79cb461b11196cc9f419763be3373db2848";
-      sha256 = "15b1lszshsf9jz2lb3q2045pjpjig3a6nkz9zvvjh7gwh6xywlv4";
+      rev = "a141bf5c9734ac164cb0dda5e7a2b8b16273a4f6";
+      sha256 = "1grhxhnh5zij2brlk2bmy3b2y8bp9j75hyajfki8dk908pplng0i";
     };
     meta.homepage = "https://github.com/nvim-treesitter/playground/";
   };
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2021-04-10";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "a3276a4752e66a2264988a171d06433b104c9351";
-      sha256 = "005xf3g9b38x6b29q9csbr2yyxvpw6f3nr6npygr65a2z4f1cjak";
+      rev = "d4476cdac636f3e6ae35aa9eb9bda6cbf4e11900";
+      sha256 = "1axdm1kxdzwlhkpd4p59z5fkpj0igjpwgcy5c99w83gad66z1kwb";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3757,12 +3853,12 @@ let
 
   ranger-vim = buildVimPluginFrom2Nix {
     pname = "ranger-vim";
-    version = "2019-02-08";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "rafaqz";
       repo = "ranger.vim";
-      rev = "6def86f4293d170480ce62cc41f15448075d7835";
-      sha256 = "0890rbmdw3p25cww6vsji7xrndcxsisfyv5przahpclk9fc9sxs8";
+      rev = "aa2394bd429e98303f2273011f0429ce92105960";
+      sha256 = "0kfhzamryaxhzrwg2rqipcbrnfxnjrfk2bk4f0z27a2hk6c0r7b9";
     };
     meta.homepage = "https://github.com/rafaqz/ranger.vim/";
   };
@@ -3793,12 +3889,12 @@ let
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers-nvim";
-    version = "2021-04-12";
+    version = "2021-04-13";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "29771d7b4d7b5b8b4c7398eef1becb911e2f4038";
-      sha256 = "07j40j3pjsp4dw1aav3j8b202p2zrqyx2zkfb5g5ng07bma5gszn";
+      rev = "b8ad2cd8a01dc3e4c2530820409d01b1bbd6fb95";
+      sha256 = "1jz41mskrrbb4w2hkxcpmnpgj93nbh2rb30mn566xkjn3zkh1r23";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
@@ -3839,6 +3935,18 @@ let
     meta.homepage = "https://github.com/gu-fan/riv.vim/";
   };
 
+  rnvimr = buildVimPluginFrom2Nix {
+    pname = "rnvimr";
+    version = "2020-10-02";
+    src = fetchFromGitHub {
+      owner = "kevinhwang91";
+      repo = "rnvimr";
+      rev = "d83f5a8e070a1fc7e7af0aeea58e71b78956daab";
+      sha256 = "0iwj01p9c2kczhx69vxrh1qd4z41ymcgfq5235b1l0rnz4d6v82y";
+    };
+    meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
+  };
+
   robotframework-vim = buildVimPluginFrom2Nix {
     pname = "robotframework-vim";
     version = "2017-04-14";
@@ -3877,12 +3985,12 @@ let
 
   rust-tools-nvim = buildVimPluginFrom2Nix {
     pname = "rust-tools-nvim";
-    version = "2021-04-11";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "simrat39";
       repo = "rust-tools.nvim";
-      rev = "230b147432556f2c751e7348a4915e30fd3f8023";
-      sha256 = "0r2d8qqwmjd571h89i4ph44mzmfwnlyyfa7pq4jjsnhns9c6qd47";
+      rev = "7d734e9b52fe54b6cd19435f0823d56dc2d17426";
+      sha256 = "181vq3p1f136qmb0qbd77khc04vrkdw8z9851car7lxs5m83wwp2";
     };
     meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
   };
@@ -3985,12 +4093,12 @@ let
 
   sideways-vim = buildVimPluginFrom2Nix {
     pname = "sideways-vim";
-    version = "2021-04-10";
+    version = "2021-04-21";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "sideways.vim";
-      rev = "a36b8f129e99becc5e00ee3267695f62c3937a2f";
-      sha256 = "0sk8xkqi3bciqwdd71z51mrx4dhy2i5nrf0b1c1xbzxbg3vkbvc3";
+      rev = "93021c0623c1822502a72131e2d45617510428b9";
+      sha256 = "042d7zmwmi0xhlshwwrf9bhc0j4ybksxxnrs986vm65y58c11fk3";
     };
     meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
   };
@@ -4057,12 +4165,12 @@ let
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2021-04-10";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "7a89d2d7ab1d8a92d137cdb358e7c5d661e7ceb3";
-      sha256 = "0yk79151fwbjdf2sy5ri2gg58g052y31dml9ilbwdq7f4jncgljk";
+      rev = "784de58d2bcad8b16bce972c1727fb0cb07e43b2";
+      sha256 = "04wlqd902fy474mk7688y2mysy8vsm3pf36d59bxd3jlspgp6zcl";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -4153,12 +4261,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2021-03-02";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "f0d785f7607be60c282b5f5a5d32a2e51560c07c";
-      sha256 = "1gbnhl1w0krlf2ppiz4h4fvnrjf8i0552nckhd67gfba2nqha0z4";
+      rev = "f4773c0d2f7453fea23f5f69f433547f3d62ea0a";
+      sha256 = "06fsfsvrq6sqyqpmj693vn810c6zvzn16781mw6bb2912cmyrs5z";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -4166,24 +4274,24 @@ let
 
   sql-nvim = buildVimPluginFrom2Nix {
     pname = "sql-nvim";
-    version = "2021-02-09";
+    version = "2021-04-13";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "sql.nvim";
-      rev = "96d000d9eff0165c7e0496f73787cc56d7c1581c";
-      sha256 = "1n9j3wv5xifs7ppgjnnbvx9p4h4llshbzgrly5b7lx0nnb91yqg0";
+      rev = "afd60eef9edff543d4d05ac51d518fd501f2e413";
+      sha256 = "115l3dp1i7pmfsqyqir5c73bprvsnnm737sbbz0dwibnlr5sd2q3";
     };
     meta.homepage = "https://github.com/tami5/sql.nvim/";
   };
 
   srcery-vim = buildVimPluginFrom2Nix {
     pname = "srcery-vim";
-    version = "2020-12-22";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "8cd04af0507635a8368609ede79a332b96a7a245";
-      sha256 = "0gb1mjr2yryrq0p9q17d4ndyi7b6wyba3s8ds72wf5bkl4vzrsbd";
+      rev = "9c692e3f17b3485969b55d76a708136e2ccaa5de";
+      sha256 = "1cd4vxx0zb4xcn2yp7kl5xgl8crfr0fwifn4apkn878lqx6ni7gj";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -4212,6 +4320,18 @@ let
     meta.homepage = "https://github.com/darfink/starsearch.vim/";
   };
 
+  suda-vim = buildVimPluginFrom2Nix {
+    pname = "suda-vim";
+    version = "2021-02-20";
+    src = fetchFromGitHub {
+      owner = "lambdalisue";
+      repo = "suda.vim";
+      rev = "fbb138f5090c3db4dabeba15326397a09df6b73b";
+      sha256 = "01kys8q3gycxqf760ydq1k8wq20brjvl1gxpl8j87jvnyx87kmnf";
+    };
+    meta.homepage = "https://github.com/lambdalisue/suda.vim/";
+  };
+
   SudoEdit-vim = buildVimPluginFrom2Nix {
     pname = "SudoEdit-vim";
     version = "2020-02-27";
@@ -4262,12 +4382,12 @@ let
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2021-03-15";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "f2ddb480c5afa1c0f155d78e6fc7853fd20f0420";
-      sha256 = "05ca80alkhnxj1klyy729y81g9ng2n841djxgd7zjg8cpkk94kw3";
+      rev = "a739985ef9fbb9888bdeea2f442d0574a9db0565";
+      sha256 = "0ajpn3q36mvczmvs0g17n1lz0h69rvm25bjsalw83mjxwn46g1h4";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -4358,36 +4478,36 @@ let
 
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2021-03-31";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "8b69645999fab1933faf4fb53ae930f7c4368e79";
-      sha256 = "1x4mwg8dvfw1plkifawckkdi7brqs9rxpm8irp1q7kfywiwbyw0y";
+      rev = "a15822ec1b42b7d43f5c8affaa3ad2c553a2831f";
+      sha256 = "0bl4shhk5ldqamq2zk8sv2bdswd9a4762fh2smj0h1jgs2ff5pkm";
     };
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
   telescope-frecency-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-frecency-nvim";
-    version = "2021-03-10";
+    version = "2021-04-17";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "926fbde059d6a7cefcccdd92b40fa866e073ba41";
-      sha256 = "100zi9ncz2b6hb5y9hxcsj5ra81kq8j2b4y8ck56y4yg96yi03pd";
+      rev = "721300e3d6f4a7157a781014d3d69bb1c7b702a3";
+      sha256 = "1981lfk7xckvf2jmhnnrb58iwb1s3qzz84g52h4rvbjr7dbrr4xk";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
 
   telescope-fzf-writer-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-fzf-writer-nvim";
-    version = "2021-01-10";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-fzf-writer.nvim";
-      rev = "9535863f519be3d5e57fd50916f96594241bfe16";
-      sha256 = "0jmkzjqlcz47hzp44407xwkmirgprzkwrz6x8ax771gpk8cghfrx";
+      rev = "00a1ab1b0aeaa4ad9da238861325ea1ee6d90a44";
+      sha256 = "1c5kiqxg7i1cm69xzvlrrz8dsrpfz8c9sfrnhqc4p6c95kfsna57";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-writer.nvim/";
   };
@@ -4431,12 +4551,12 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2021-04-09";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "5bd6f5ca9828ea02f2c54d616ad65c72a5cdd7fb";
-      sha256 = "0h47x7nqhr3wvxspymvgbyngqickvbxg13l1j525f3y68j4b2arg";
+      rev = "ad30a7b085afd31c66461b61e268aa88527199bb";
+      sha256 = "0191bax9mpw8q4hy126wyyyxyrb79c89m01plmzh66baiahd3sxv";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -4612,12 +4732,12 @@ let
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-04-11";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "3ccb1a7e75b31add82730f3b95c2be5c130b7ce4";
-      sha256 = "0rhkpzz0ss8sb6jf3ygvavygmqiy8a418685izanvyplwhqi5zy4";
+      rev = "204b501cc8f4acd7f32ebdea262bd5772ca007a2";
+      sha256 = "0jdb3v8lplrl3sqrmx8j8p4pirnwc42fc01arw64rjigrh0fwm4k";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -4636,12 +4756,12 @@ let
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2021-02-01";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "afb8db4f81580771c39967e89bc5772e72b9018e";
-      sha256 = "05d15yr5r8265j3yr8yz1dxl8p4p4nack4ldn663rmp29wm1q5pi";
+      rev = "090e77e30e46aceafd53a3219fb2a81b79927d8d";
+      sha256 = "136a8c4d4nrzvab2qa6sxc81x1mwg56nn8ajxikqgyvsr9fp1f9i";
     };
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
@@ -4960,36 +5080,36 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2021-03-27";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "ed60e1d36912f64fdbed5640532b1067e11557ca";
-      sha256 = "0yijan5nknkkxr36rncscm043badn49w6778nwyazi2fx4266jfn";
+      rev = "30f8ada1d6021d89228092b3c51840916c75a542";
+      sha256 = "0mriz1c0yfwavgmawj52n42rxzsmi3mchww5wlkvs6274am63da6";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-clock = buildVimPluginFrom2Nix {
     pname = "vim-airline-clock";
-    version = "2018-05-08";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "enricobacis";
       repo = "vim-airline-clock";
-      rev = "a752ae89d833ce14f87e303f3f479c01065077ca";
-      sha256 = "0wbaxm1k9j4cl5vw1wppsds0afc0h3n2ipp8xhgdh5jswjhr6wlc";
+      rev = "c37797d40aa882a71fc3fba0cc27abc637886623";
+      sha256 = "0rj53x4b0vjfrjvpr09vlz69r3y2rym4dab5lyx0sp3sgz9jqizm";
     };
     meta.homepage = "https://github.com/enricobacis/vim-airline-clock/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2021-03-03";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "fa808d74e0aacf131337b58f01ee45fd3d3588af";
-      sha256 = "02dq887676dq2rm1fxpzf3piyabs6zj0rvc70nxa5vvlv68qp6k7";
+      rev = "0f9995d5996adf613297896c744415cd9e6b7a80";
+      sha256 = "1zwicvlrfpvgczjnzjdkjhv2b110v5xbmvj132xl8a7xsj3rzg1d";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -5056,12 +5176,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2021-04-01";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "781c72c0625728eb5677a6952e57f282070666f8";
-      sha256 = "14l7h9h76x7cvvka8djn08dh3rmj34bycm8vqavh20nf2v8n9j2g";
+      rev = "916f9e10461def8c71b5359c0e0b7a08f80d5fc5";
+      sha256 = "1sn631dyqni3hf5psn2jhndzckw3p5vl7i57p6i5n6n3lhzzcvj7";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -5116,12 +5236,12 @@ let
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2021-03-07";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "30b55500094325af9e9498b72e75c8c1090df436";
-      sha256 = "0bh7q7s3zb2yrnck3zx1cx0kv8lm8zp4p5fwj6kv35y27v109pfm";
+      rev = "dd2f56a122b698454af582cbe7eae471dbdc48f8";
+      sha256 = "00wcq3wg02rjzhc83cm4gvc9fw78a7s5gds4qdn7zqf55ha2d6vi";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -5212,12 +5332,12 @@ let
 
   vim-choosewin = buildVimPluginFrom2Nix {
     pname = "vim-choosewin";
-    version = "2021-04-06";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "t9md";
       repo = "vim-choosewin";
-      rev = "1ca7da94aa1b8761f4212194e3c55e4a080d6525";
-      sha256 = "0nr6k8g0l27g4lczsy30cnh1il547qgbs4xl936v43gp4wvybah4";
+      rev = "839da609d9b811370216bdd9d4512ec2d0ac8644";
+      sha256 = "1451ji3a7waxz1kc8l2hw96fff54xwa7q8glrin8qxn48fc4605n";
     };
     meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
@@ -5236,12 +5356,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-04-07";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "ee7e6a5782ec7033f361311f8f61f23146822e62";
-      sha256 = "0gr2sh6fbc8qfz0xlv5rhkg8jxh81wb2lb141m0hyc0fk1n2pya7";
+      rev = "1afdd263a862bae0641f565e3f2952e1c01cec43";
+      sha256 = "0c2jrz02dsdykc3xxqw1yfnllmrpwzs6ygjqcclghw5mygfc3xcg";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -5294,14 +5414,26 @@ let
     meta.homepage = "https://github.com/alvan/vim-closetag/";
   };
 
+  vim-code-dark = buildVimPluginFrom2Nix {
+    pname = "vim-code-dark";
+    version = "2021-04-09";
+    src = fetchFromGitHub {
+      owner = "tomasiser";
+      repo = "vim-code-dark";
+      rev = "670fed53a2ae67542a78ef7b642f4aca6b6326dc";
+      sha256 = "0zdhhv3h8lzba8dpv0amc5abpkzayp6gbjw6qv712p638zyr99vw";
+    };
+    meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
+  };
+
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2021-03-28";
+    version = "2021-04-15";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "048baf8361d7ea24bfbaa4427ab4de08c39b0d57";
-      sha256 = "17xnxka4q7fqpl52x5fh2kpqzs7h1ql2lvv6sv7a0apf2qafs0qy";
+      rev = "793d816524934e6553c76437120eea5df8e85a1e";
+      sha256 = "174wq1sq862s474bhfq0w8lnmcilq75gf2sdp1hws7wj0fvn10h3";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -5404,12 +5536,12 @@ let
 
   vim-cpp-enhanced-highlight = buildVimPluginFrom2Nix {
     pname = "vim-cpp-enhanced-highlight";
-    version = "2019-11-14";
+    version = "2021-04-19";
     src = fetchFromGitHub {
       owner = "octol";
       repo = "vim-cpp-enhanced-highlight";
-      rev = "27e0ffc215b81fa5aa87eca396acd4421d36c060";
-      sha256 = "15nyd4yssswyi4brkch09rca0qh7p77li4xyrivmiapkr4a60vwb";
+      rev = "4b7314a497ea2dd0a6911ccb94ce83b2d8684617";
+      sha256 = "1fvy56r8p0fp8ipsfw6wiq6ppv541849cazzmp3da203ixs87wd1";
     };
     meta.homepage = "https://github.com/octol/vim-cpp-enhanced-highlight/";
   };
@@ -5488,12 +5620,12 @@ let
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2021-04-02";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "33c86149c0aa114a5d14a1a2f2b5cbcc78cc0116";
-      sha256 = "01rqs6hcfd1ih1hr8bbwl1f3g86q41g0jbvrn5fpdfr9ccjy2ip1";
+      rev = "63bfd6d99ba17832f4740efa5e2e6ad6537d4552";
+      sha256 = "0p9n1n8n0167kgq4wwwxsnair2hqqvy6vwcqchnb15hifl3cl0w3";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -5584,16 +5716,28 @@ let
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2021-03-26";
+    version = "2021-04-17";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "4313cbb398d8b61b08be09f9b5a9ae4270c86004";
-      sha256 = "154vxj4bd10i70wd0d40g9j2yji6l5y00a0y4xk9402x5yljjmwr";
+      rev = "250ea269e206445d10700b299afd3eb993e939ad";
+      sha256 = "1fcp2nsgamkxm7x0mn1n3xp02dc7x773cdp9p30ikqn44pzgyq10";
     };
     meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
 
+  vim-dispatch-neovim = buildVimPluginFrom2Nix {
+    pname = "vim-dispatch-neovim";
+    version = "2017-01-18";
+    src = fetchFromGitHub {
+      owner = "radenling";
+      repo = "vim-dispatch-neovim";
+      rev = "c8c4e21a95c25032a041002f9bf6e45a75a73021";
+      sha256 = "111n3f7lv9nkpj200xh0fwbi3scjqyivpw5fwdjdyiqzd6qabxml";
+    };
+    meta.homepage = "https://github.com/radenling/vim-dispatch-neovim/";
+  };
+
   vim-docbk = buildVimPluginFrom2Nix {
     pname = "vim-docbk";
     version = "2015-04-01";
@@ -5680,12 +5824,12 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2021-04-10";
+    version = "2021-04-21";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "5a1811c3c70adeee42d9dc5faae1cba1d57461f9";
-      sha256 = "03cqsv2y1zns2sj6i9afxb4yjnzd42nmwijdlbwbqnnjp03xq1ns";
+      rev = "c3cb96e153728fbfd050173b4af19118b131f278";
+      sha256 = "1v0rgzpnpanics4zhx3y9m6ppa727yc0mvcx065jg2a2a1563sgy";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
@@ -5884,24 +6028,24 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-04-12";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "b7747704c4df716efd21f331b4d94336c490a5ad";
-      sha256 = "0sl40fvdciir9cbb4bcll971zhk38n6h8kmqy473viki149lg7pa";
+      rev = "4a1938457489fe072acf2fbbe7142a3cfb0d8ad8";
+      sha256 = "1va57czyrihcc2cihbbil5vqhnlzvjrb9bw7wirdrpjrd04ciaa4";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
 
   vim-flog = buildVimPluginFrom2Nix {
     pname = "vim-flog";
-    version = "2021-03-07";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "904b964eb0f878e44f47d39898e72fc0b939756b";
-      sha256 = "07x8xafcvpg6dgxlvmf46gh7a9xvnrxj7i326q73g3yfh5xpma6c";
+      rev = "30fe977b46bee7a7005fd808d14aa425149f4563";
+      sha256 = "1ap1ghyi3f61zi5kc17nc7sw4dh3r7g2mlypy19hzhrfxysdxz7b";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -5944,12 +6088,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-04-12";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "ae45609cfc3fae91bb7859dde95cb0aee493f34c";
-      sha256 = "17m46r23gbrj8qh6vglcwhkqikjipvkyskkx1k9j9x29vnwz2r54";
+      rev = "8f4a23e6639ff67c0efd7242870d4beed47b5d37";
+      sha256 = "0ss8qlxgidlf1ma6z3ma63lqgaynnbrj9fdbw38szwc823vdqiid";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -6016,12 +6160,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2021-03-19";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "24cc47789557827209add5881c226243711475ce";
-      sha256 = "0fk8691wkhb7mb5ssmydipb61kh3hjnl31ngqbrbifzsqlkvibid";
+      rev = "f4bdaa4e9cf07f62ce1161a3d0ff70c8aad25bc5";
+      sha256 = "0h00i0b8p0mnynp7hhj2vpgj9rhqmlx14y2kcskvac8i2wlyj30c";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -6064,12 +6208,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-04-02";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "ce95699efa82921f80fdc0984d002ff81584c6e6";
-      sha256 = "0fq6i4arnzq5fmzy50kf2fb8bf5ickrrhs53la04x1jwx3lfzs05";
+      rev = "a2f964d0e22b9023e1f0233b611461d64dabcd4b";
+      sha256 = "1gwb2wncdqn51ifp3pkgjz1lw2c7fzavh43639scj9mdj8rr6r12";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -6112,12 +6256,12 @@ let
 
   vim-gruvbox8 = buildVimPluginFrom2Nix {
     pname = "vim-gruvbox8";
-    version = "2021-04-06";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-gruvbox8";
-      rev = "acb2574d85f3878cd5ab82dc3579403c174dafc3";
-      sha256 = "17k3fcidsk26i9nnbk37jcgznypzwh0pzam03yayb6dw4n733mld";
+      rev = "217a87f4f751ed0d6fe5c79b2c0963f557bf0314";
+      sha256 = "1gdys8ycmmykq121ix34wva75m18nda0camiqr4aavb9hj32faj6";
     };
     meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/";
   };
@@ -6218,14 +6362,26 @@ let
     meta.homepage = "https://github.com/bitc/vim-hdevtools/";
   };
 
+  vim-helm = buildVimPluginFrom2Nix {
+    pname = "vim-helm";
+    version = "2020-01-02";
+    src = fetchFromGitHub {
+      owner = "towolf";
+      repo = "vim-helm";
+      rev = "2c2e2e936607ed93f8f75de2066d04feff0e8e81";
+      sha256 = "1vlaqcxxsbys0ybk2x7ri1flyx412ak0dmanqg1cdig6xzhna2kc";
+    };
+    meta.homepage = "https://github.com/towolf/vim-helm/";
+  };
+
   vim-hexokinase = buildVimPluginFrom2Nix {
     pname = "vim-hexokinase";
-    version = "2021-03-31";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-hexokinase";
-      rev = "6bd30278c7af4c624bf996650d62dac404342dc7";
-      sha256 = "1wimsi6pxhw410dbcgj4sr9q5k21066i762fyaaf424jyf1g8d2i";
+      rev = "62324b43ea858e268fb70665f7d012ae67690f43";
+      sha256 = "1qdy028i9zrldjx24blk5im35lcijvq4fwg63ks2vrrvn0dfsj01";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RRethy/vim-hexokinase/";
@@ -6353,12 +6509,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-04-09";
+    version = "2021-04-13";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "fe491924a7cf08bd839236a74f0c39bf0abf0fd2";
-      sha256 = "0c6vqfwrbw0z036y41kf03syixnp58g1pwghm1d7frz2adn6mlvb";
+      rev = "d20beb074f2de67104dda1f698cf83c920ffd78a";
+      sha256 = "0lll31xp6vjqrzphs6f3zkz15rwis6lavw2cibvi7hx2vfp4hds2";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -6435,6 +6591,18 @@ let
     meta.homepage = "https://github.com/fisadev/vim-isort/";
   };
 
+  vim-jack-in = buildVimPluginFrom2Nix {
+    pname = "vim-jack-in";
+    version = "2021-03-27";
+    src = fetchFromGitHub {
+      owner = "clojure-vim";
+      repo = "vim-jack-in";
+      rev = "80c69cc021486d1cfa5dac7d9d6ab6954ff20c27";
+      sha256 = "11dw8kngzznzf91n6iyvw7yi1l35vgpva32dck3n25vpxc24krpn";
+    };
+    meta.homepage = "https://github.com/clojure-vim/vim-jack-in/";
+  };
+
   vim-janah = buildVimPluginFrom2Nix {
     pname = "vim-janah";
     version = "2018-10-01";
@@ -6570,12 +6738,12 @@ let
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2021-03-31";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "f09007be7e477a491a478444b302d079104af23d";
-      sha256 = "06m9rf0c9nxmyz9qnri1lmyb7cljv3vz2njxvh3fz8q7hjghh6cd";
+      rev = "50b87c4287c791addc7364dfa377605d0837d326";
+      sha256 = "0z3hmgflpiv0czdrkvpc845ms7bjy9rs2a6mp7gyzlqyqrjvqzzy";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -6726,48 +6894,48 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2021-03-23";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "2f0cbbfb8ea8997b408e447a2bc9554a3de33617";
-      sha256 = "1y3r5a5mcjf8dp0pkmhgnbay10hh48w1b3wd795wwbm6nx4izjjq";
+      rev = "4b0fc48037c628f14209f30616a19287d9e54823";
+      sha256 = "1jwfc193wbh2rmyi6mdwgr3lcq82qhlclq4hjwg1hcw94442r5xv";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-04-12";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "9dc382c04af3389b48fd1ffb5ed4b6c294571f62";
-      sha256 = "19bk55ifqh76528rf3k6pnwfc5y9954cir7apkz6ymrc0abiy47d";
+      rev = "b6898841c771df0a5231f74145e0813533d44def";
+      sha256 = "0r5hg2hjcmwm6mkm7s41wij6hdlfq2g5xjvgg0bn8nhyn4048mgd";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
 
   vim-lsp-cxx-highlight = buildVimPluginFrom2Nix {
     pname = "vim-lsp-cxx-highlight";
-    version = "2021-04-06";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "jackguo380";
       repo = "vim-lsp-cxx-highlight";
-      rev = "130fd4189e0328630be7ad4aa7e1d98a0a503170";
-      sha256 = "1nsac8f2c0lj42a77wxcv3k6i8sbpm5ghip6nx7yz0dj7zd4xm10";
+      rev = "ce92c8e9b1ab587eb22ad017d536619b6a100d09";
+      sha256 = "01h0lmxi9ly6qhywi5n7hzq881ff4kld7gzpzci81vflmi5k1gnx";
     };
     meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/";
   };
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-12-23";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "46730b0d818da2da005e3c8a38ff987a2dd36d7c";
-      sha256 = "1lc4lysv3q7qvivfrwqggrpdgsb3zkhq1clvzfsxfsa2m1y4gr0z";
+      rev = "0451d1e9dd580f50b92253c546fc7d41dc95920c";
+      sha256 = "0xxn0bnhvamf7r1k3ha5qwy8169gzd23k4m56iai514bbbfy9lfx";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -6835,12 +7003,12 @@ let
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-04-12";
+    version = "2021-04-25";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "58a26a4c0c65a27d54159ba0d8adf8912f89f3c3";
-      sha256 = "19jp6ilfsgwx6p7cq1gvswxxkhhg6czwwyim9g60gd66wrh2xbqf";
+      rev = "a39772e2fbd464776b0aa025ca04c2504379cf72";
+      sha256 = "08sj11x507nh5fi5zx88p31wx936saqvw641rdwlk3g20b99sinj";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -7171,12 +7339,12 @@ let
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2021-04-01";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "5b48c13143e55c234e8bf5bcfa2439b9ffa85241";
-      sha256 = "1njxf2vwd9jfpjybx0f5c7k7fhlzmdwkwsflb9rkgv0pz3l0wkqb";
+      rev = "2a0af02d0fd59baeb84cf865e395827750c875f0";
+      sha256 = "06vrham1zg5vfr4q4gmz2ski4y02c3bfivzy4rlfvjs81qj3vn3m";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -7219,12 +7387,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2021-03-10";
+    version = "2021-04-16";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "0d4b68eb7f63e43f963a119d60a3e29c2bb822e0";
-      sha256 = "0p7m75f7vqdm0nvg0p3nbzqnsd7wdvbsf3y2mzirdl7c0pbvphqp";
+      rev = "5af0dcf7878a8c947ae5a69989524f0a1ba5f6da";
+      sha256 = "17vb0xnzq6ic9naqg2wvjdh7s7ckz82ixv45pknxc21b6wjrfc75";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -7305,12 +7473,12 @@ let
     pname = "vim-pencil";
     version = "2021-02-06";
     src = fetchFromGitHub {
-      owner = "reedes";
+      owner = "preservim";
       repo = "vim-pencil";
       rev = "2135374d48a7cb89efd5e818c12bb0ff450dfbb4";
       sha256 = "17wgin33fj40brdb3zhm70qls2j2vssc4yrrv36y1qxwi7gdzn0f";
     };
-    meta.homepage = "https://github.com/reedes/vim-pencil/";
+    meta.homepage = "https://github.com/preservim/vim-pencil/";
   };
 
   vim-phabricator = buildVimPluginFrom2Nix {
@@ -7363,12 +7531,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2021-03-01";
+    version = "2021-04-14";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "cc63193ce82c1e7b9ee2ad7d0ddd14e8394211ef";
-      sha256 = "0and9148l36m8bhnzlyjirl1bd2ynswwzjc22605if82az9j55m8";
+      rev = "730dcb02caab60a6ae5d8b4bdc16d290041061ec";
+      sha256 = "1pgqw008xy3fn821zxfiwc9xpd0v33wxmk4yf9avm5jgqbkwn1ld";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -7519,12 +7687,12 @@ let
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2021-01-27";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "c980977f1d77b3285937b9d7b5baa964fc9ed7f5";
-      sha256 = "00f1slgrjnh8m59sm3xmias3jvjlvw26yigv9fmy6zwcynlivc5x";
+      rev = "3f6acfc2de2fa06e8e61269cf6a900336552abdc";
+      sha256 = "11hdq749sli3k4cp4g0s9vm7v2blp49k0s1r814drc0x5rxkj5fy";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
@@ -7567,12 +7735,12 @@ let
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2021-03-29";
+    version = "2021-04-26";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "9c3c831a089c7b4dcc4ebd8b8c73f366f754c976";
-      sha256 = "15m7hhqadvpf3ryig5vifp8m0md2mg9apx71z8xrpc7hgwsvy1bi";
+      rev = "c171b86845a64d9ed3f5b9b4040f1164be37f115";
+      sha256 = "0jr2xif05xb4iiv18nr7xz978z246bkbabgx1djh73rpjk3683y3";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -7591,12 +7759,12 @@ let
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2021-04-12";
+    version = "2021-04-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "b4081f0a882ff36d92d9d3ae5c3b70a378bfd5af";
-      sha256 = "017mb54qc7ix5h1b1hg7rb3j31x5ihmsc1g5286sirzj4rcm90fi";
+      rev = "2590324d7fdaf0c6311fad4ee2a2878acaaec42d";
+      sha256 = "0ljlkzy2r8dzqkcl9pbgshr7swdcdbbxcgfvvmyxrw7swfx1srk9";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
@@ -7771,12 +7939,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2021-03-07";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "2542b6459085f3d1e361e8b5bf406dec6448487e";
-      sha256 = "1m7m1fwn4bpbqfji7fvvgx00fxz1hy5nvfajbpj4vpgaxzqwsf8k";
+      rev = "6b9afcce385b1121d46f749f9cd46d05e132c1e4";
+      sha256 = "04yh7cq9vi1hksksyphg8s4xz64qc6pmwnrbqapfgfsmp6jk11s5";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
@@ -7879,12 +8047,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-04-12";
+    version = "2021-04-19";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "03f7e3395b1d2a0eaf8fc8bdb83fc95368a8b467";
-      sha256 = "0s7ilz0zm6p03qhadr39v9hpkbygv4i984ac6f8bbdrf5bfkrclk";
+      rev = "2a28fc35f6848ad38681d4b509ae3f5962276b5d";
+      sha256 = "05xywkyh809g7zax4wdw5vn29xcs1wg3ylbsdi9rz18phm6im41k";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -7927,12 +8095,12 @@ let
 
   vim-speeddating = buildVimPluginFrom2Nix {
     pname = "vim-speeddating";
-    version = "2019-11-12";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-speeddating";
-      rev = "fe98cfaa7ea9c4b838d42a6830437c919eb55b4e";
-      sha256 = "02875qswrmanr7b798ymlc7w60055q0av0qj3fh7fvpqhsqpg52k";
+      rev = "95da3d72efc91a5131acf388eafa4b1ad6512a9b";
+      sha256 = "1al53c1x2bnnf0nnn7319jxq7bphaxdcnb5i7qa86m337jb2wqrp";
     };
     meta.homepage = "https://github.com/tpope/vim-speeddating/";
   };
@@ -7951,12 +8119,12 @@ let
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2021-04-02";
+    version = "2021-04-23";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "5ee8914b26e9f0b2d8ec01b3cef8c46e7a3954b5";
-      sha256 = "0zg100sjbn7952ayqligpkfqvrh1qwr2q6pjqs5cnsyl5xs411v2";
+      rev = "df0f1dbdc0689f6172bdd3b8685868aa93446c6f";
+      sha256 = "0idrzl2kgclalsxixrh21fkw6d2vd53apw47ajjlcsl94acy2139";
     };
     meta.homepage = "https://github.com/mhinz/vim-startify/";
   };
@@ -7973,6 +8141,18 @@ let
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
 
+  vim-strip-trailing-whitespace = buildVimPluginFrom2Nix {
+    pname = "vim-strip-trailing-whitespace";
+    version = "2021-01-03";
+    src = fetchFromGitHub {
+      owner = "axelf4";
+      repo = "vim-strip-trailing-whitespace";
+      rev = "9a93dd653806ba3f886b2cf92111b663ce8d44bd";
+      sha256 = "1pvirqj21xl2qbs9ycdp7n3lnf4n8b2bz1y90nphnvda4dfaac8l";
+    };
+    meta.homepage = "https://github.com/axelf4/vim-strip-trailing-whitespace/";
+  };
+
   vim-stylish-haskell = buildVimPluginFrom2Nix {
     pname = "vim-stylish-haskell";
     version = "2019-11-28";
@@ -8228,12 +8408,12 @@ let
 
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
     pname = "vim-tmux-focus-events";
-    version = "2021-04-04";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux-focus-events";
-      rev = "26237f9284c3853084fbf9e8303efb8fb62e0aa9";
-      sha256 = "0pmkjwpad63gdrp0qykkcsjdavb5kxwqvlcip0ykdm6ivvzi9fy5";
+      rev = "b1330e04ffb95ede8e02b2f7df1f238190c67056";
+      sha256 = "19r8gslq4m70rgi51bnlazhppggiy3crnmaqyvjc25f59f1213a7";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/";
   };
@@ -8276,12 +8456,12 @@ let
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2021-04-10";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "be39204b64ac6d285d735166b94a28c218f1e4bc";
-      sha256 = "0ghw3vzk6rjw5sfahrhfiisvm38zvn67ddvqg7l1h3hq411i0f2g";
+      rev = "01d4073e7f1319f223c0d5bfd1abe1e292238252";
+      sha256 = "1nfwiizd8nk4pqz1jsw9nq5ngmavjdb3jra2xb5kzgjl2fbzvjda";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -8408,12 +8588,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-04-05";
+    version = "2021-04-21";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "b05641ca8c7ebd396017121219047c480182a743";
-      sha256 = "0184d5498iwi0kqf0gbd5zdqckvmqwaf7bs1dvj8rphp9xzsl72x";
+      rev = "395d200728b467e141615f53afe564adc26985b9";
+      sha256 = "1g0fhdqr6qmqmhvm3amv22fqb1aacmvd0swmk38w25zzcbl4b4gy";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -8468,24 +8648,24 @@ let
 
   vim-wayland-clipboard = buildVimPluginFrom2Nix {
     pname = "vim-wayland-clipboard";
-    version = "2021-03-15";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "jasonccox";
       repo = "vim-wayland-clipboard";
-      rev = "1f7f05039c572fde082043915953a88b77c0ddb0";
-      sha256 = "0ihyfdvgiclmcric66nd54ha7ikf2c1pl1slbn4y6mkbxla02yv9";
+      rev = "bb44d7fb1a098c2fd4a4d26bb213a805184f30b8";
+      sha256 = "07hc6nqhka544pgag0dh4k59w6cfn3vk9969ckg9ls6ywjwfyz8x";
     };
     meta.homepage = "https://github.com/jasonccox/vim-wayland-clipboard/";
   };
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2021-04-05";
+    version = "2021-04-22";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "fdadbdcf5eda4b1ab381f3a36562005d161a6c4a";
-      sha256 = "1lqqadf6qr4i7sfkjmra9b4rb6wa3sh93dp7lr5jdf365i4b0jfb";
+      rev = "20163f6ffda855fa40a11cb999002211dc66288f";
+      sha256 = "1g29z5f2w1g6znljdgwn49wp8g85m1pawvg8qjrh1kxyjv9dr8x1";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -8494,12 +8674,12 @@ let
     pname = "vim-wordy";
     version = "2020-10-24";
     src = fetchFromGitHub {
-      owner = "reedes";
+      owner = "preservim";
       repo = "vim-wordy";
       rev = "667426a0171787b2620dffa5b2d7c01c9040237f";
       sha256 = "1lcrisv2wcd8iw76prql03wd11jgmknm3rvbcw7vv4v5r2s9rv5z";
     };
-    meta.homepage = "https://github.com/reedes/vim-wordy/";
+    meta.homepage = "https://github.com/preservim/vim-wordy/";
   };
 
   vim-xdebug = buildVimPluginFrom2Nix {
@@ -8526,6 +8706,18 @@ let
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
 
+  vim-xtabline = buildVimPluginFrom2Nix {
+    pname = "vim-xtabline";
+    version = "2021-01-31";
+    src = fetchFromGitHub {
+      owner = "mg979";
+      repo = "vim-xtabline";
+      rev = "654675222adde47c9d72caa400e35c7e680fe5a1";
+      sha256 = "1f7d4vmr7n5v7h5a1bjcvxaqygrdi33y0vdx4yjfdswi835yd45h";
+    };
+    meta.homepage = "https://github.com/mg979/vim-xtabline/";
+  };
+
   vim-yaml = buildVimPluginFrom2Nix {
     pname = "vim-yaml";
     version = "2021-01-14";
@@ -8574,6 +8766,18 @@ let
     meta.homepage = "https://github.com/andrep/vimacs/";
   };
 
+  vimade = buildVimPluginFrom2Nix {
+    pname = "vimade";
+    version = "2021-04-07";
+    src = fetchFromGitHub {
+      owner = "TaDaa";
+      repo = "vimade";
+      rev = "9b9254340e39dab3dad64c05b10af0fd85490b71";
+      sha256 = "0sbk9lf5w136lwl3ca866m594993s23zad5ss4whzm9j0qknihl3";
+    };
+    meta.homepage = "https://github.com/TaDaa/vimade/";
+  };
+
   vimagit = buildVimPluginFrom2Nix {
     pname = "vimagit";
     version = "2020-11-18";
@@ -8624,12 +8828,12 @@ let
 
   vimoutliner = buildVimPluginFrom2Nix {
     pname = "vimoutliner";
-    version = "2020-10-26";
+    version = "2021-04-24";
     src = fetchFromGitHub {
       owner = "vimoutliner";
       repo = "vimoutliner";
-      rev = "d198aa72c70270f1330f4237bbf853efaaa79723";
-      sha256 = "05wcqs36qn8f3vcy9xi2cf0yyp7yzawlxqvpjhbad6lm52vzsabs";
+      rev = "6d849acb977fc2d008f9cd2edf4f1356537794fe";
+      sha256 = "1hy4zgxrc0zn6dnbdv7zy2cn4ny99srsvrgkyvwhg4pzd9rwcqpp";
     };
     meta.homepage = "https://github.com/vimoutliner/vimoutliner/";
   };
@@ -8684,12 +8888,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-04-11";
+    version = "2021-04-29";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "fa92c2a8d525972bcc97cba9579d9adfca3c859a";
-      sha256 = "0a8wph6l1nr6ip6d02wg6x6g1zwys45pmj95i8c655fc6877rd79";
+      rev = "0c88cc8badeeee74f9cafbf461b72769b06a15d5";
+      sha256 = "1f9k0mhcaaddjdd3619m95syy4rbh5fgacya9fr1580z16vcir8p";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -8697,12 +8901,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-04-11";
+    version = "2021-04-28";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "e6c03a17611a71ab1fc12ed0e9b4c32bf9ca826b";
-      sha256 = "1g4vl0lxq7rvl064pf11n4r69z78c5k77qd987mm4hajbvmkbjqi";
+      rev = "479152f38efb0a787de661b33838aa2dc5a6da75";
+      sha256 = "0ahqys0408n7c9hzc6dy70cj3rrg4nzha38iwwvcf7my2nvldbx2";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -8745,12 +8949,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2021-03-31";
+    version = "2021-04-27";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "a2236deb0a40d745f38fac4523ed6a0c86639863";
-      sha256 = "14gxwqykm4cql80la3x1x7sxcfmdvpm05r9brxw3xfn9bsqy3qsk";
+      rev = "3d4e2a80658467af02a6347e3dae8810e6a5f02f";
+      sha256 = "05hh9hk5qcn8gd4k3zm8qz077wxamp4rja486nwm9y5p6723vqn9";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -8791,6 +8995,30 @@ let
     meta.homepage = "https://github.com/mattn/webapi-vim/";
   };
 
+  which-key-nvim = buildVimPluginFrom2Nix {
+    pname = "which-key-nvim";
+    version = "2021-04-29";
+    src = fetchFromGitHub {
+      owner = "folke";
+      repo = "which-key.nvim";
+      rev = "6cf68b49d48f2e07b82aee18ad01c4115d9ce0e5";
+      sha256 = "06r5hlwm1i1gim12k3i5kxrwnhjbq2xfxic5z0iax9m86szb4ja3";
+    };
+    meta.homepage = "https://github.com/folke/which-key.nvim/";
+  };
+
+  wildfire-vim = buildVimPluginFrom2Nix {
+    pname = "wildfire-vim";
+    version = "2014-11-16";
+    src = fetchFromGitHub {
+      owner = "gcmt";
+      repo = "wildfire.vim";
+      rev = "e2baded7162260e05d2527f5bca9fca81f0bc8f2";
+      sha256 = "01i12x8brsnqicj5vclg57nv6ha7nz70gilphf6sr14xr741ra1y";
+    };
+    meta.homepage = "https://github.com/gcmt/wildfire.vim/";
+  };
+
   wmgraphviz-vim = buildVimPluginFrom2Nix {
     pname = "wmgraphviz-vim";
     version = "2018-04-26";
@@ -8827,6 +9055,18 @@ let
     meta.homepage = "https://github.com/lukaszkorecki/workflowish/";
   };
 
+  wstrip-vim = buildVimPluginFrom2Nix {
+    pname = "wstrip-vim";
+    version = "2021-03-14";
+    src = fetchFromGitHub {
+      owner = "tweekmonster";
+      repo = "wstrip.vim";
+      rev = "3d4c35c8ca462fbece58886e52679a5355f461d6";
+      sha256 = "020bikc5482gzshjh2vgvknqxpzzzaff14z1rj6b2yvmbr2a837f";
+    };
+    meta.homepage = "https://github.com/tweekmonster/wstrip.vim/";
+  };
+
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
     version = "2020-06-29";
@@ -8878,12 +9118,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2021-04-09";
+    version = "2021-04-20";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "a3d02238ca5c19a64ff3336087fe016a4137fde9";
-      sha256 = "05sfyqynqliyz2w2ams2a5rqi8v0i65iz5jfk2vsy9qcn94i2sr6";
+      rev = "c8acf70d23337047af6548dbb8337d3e3a0c0357";
+      sha256 = "0l24b07l1bdiwffpj2ajks879w69cjkn1adx9ak6pv98jlmsdzi1";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -8927,12 +9167,12 @@ let
 
   zephyr-nvim = buildVimPluginFrom2Nix {
     pname = "zephyr-nvim";
-    version = "2021-04-10";
+    version = "2021-04-18";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "zephyr-nvim";
-      rev = "057ee834776939bf76c4ae6c71e94e911014a172";
-      sha256 = "0x1da7ihyrcrr3msy1jds566506k0jbsap5fk1w823cm8m0mwqn9";
+      rev = "32c4ea97cc1cd3db1abebd46aff2ee18d66d8d59";
+      sha256 = "1ab5ivfddifapc31qbipvajjgx1mclyqqf29cpz7avsc4h6fp3w0";
     };
     meta.homepage = "https://github.com/glepnir/zephyr-nvim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index f0f1ec2cc3e..3cc8620a89c 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -1,146 +1,94 @@
 { lib
 , stdenv
-, python
-, cmake
-, meson
-, vim
-, ruby
-, which
+
+  # nixpkgs functions
+, buildGoModule
+, buildVimPluginFrom2Nix
 , fetchFromGitHub
-, fetchurl
 , fetchpatch
-, llvmPackages
+, fetchurl
+, substituteAll
+
+  # Language dependencies
+, python
+, python3
 , rustPlatform
-, buildGoModule
-, pkg-config
-, curl
-, openssl
-, libgit2
-, libiconv
-, xkb-switch
+
+  # Misc dependencies
+, Cocoa
+, code-minimap
+, dasht
+, direnv
 , fzf
+, gnome3
+, khard
+, languagetool
+, llvmPackages
+, meson
+, nim
+, nodePackages
 , skim
+, sqlite
 , stylish-haskell
-, python3
+, tabnine
+, vim
+, which
+, xkb-switch
+, ycmd
+
+  # command-t dependencies
+, rake
+, ruby
+
+  # cpsm dependencies
 , boost
+, cmake
 , icu
 , ncurses
-, ycmd
-, rake
-, gobject-introspection
-, glib
-, wrapGAppsHook
-, substituteAll
-, languagetool
-, tabnine
 
-, Cocoa
+  # LanguageClient-neovim dependencies
 , CoreFoundation
 , CoreServices
 
-, buildVimPluginFrom2Nix
-, nodePackages
-, dasht
-, sqlite
-, code-minimap
+# nvim-treesitter dependencies
+, tree-sitter
 
-  # deoplete-khard dependency
-, khard
+  # sved dependencies
+, glib
+, gobject-introspection
+, wrapGAppsHook
+
+  # vim-clap dependencies
+, curl
+, libgit2
+, libiconv
+, openssl
+, pkg-config
 
-  # vim-go dependencies
+# vim-go dependencies
 , asmfmt
 , delve
 , errcheck
+, gnused
+, go-motion
+, go-tools
+, gocode
+, gocode-gomod
 , godef
+, gogetdoc
+, golangci-lint
 , golint
 , gomodifytags
+, gopls
 , gotags
 , gotools
-, go-motion
-, gnused
-, reftools
-, gogetdoc
-, golangci-lint
-, impl
 , iferr
-, gocode
-, gocode-gomod
-, go-tools
-, gopls
-
-  # direnv-vim dependencies
-, direnv
-
-  # vCoolor dependency
-, gnome3
-
-  # fruzzy dependency
-, nim
+, impl
+, reftools
 }:
 
 self: super: {
 
-  vim2nix = buildVimPluginFrom2Nix {
-    pname = "vim2nix";
-    version = "1.0";
-    src = ./vim2nix;
-    dependencies = with super; [ vim-addon-manager ];
-  };
-
-  # Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim
-  # plugin, since part of the fzf vim plugin is included in the main fzf
-  # program.
-  fzfWrapper = buildVimPluginFrom2Nix {
-    inherit (fzf) src version;
-    pname = "fzf";
-    postInstall = ''
-      ln -s ${fzf}/bin/fzf $target/bin/fzf
-    '';
-  };
-
-  skim = buildVimPluginFrom2Nix {
-    pname = "skim";
-    version = skim.version;
-    src = skim.vim;
-  };
-
-  LanguageClient-neovim =
-    let
-      version = "0.1.160";
-      LanguageClient-neovim-src = fetchFromGitHub {
-        owner = "autozimu";
-        repo = "LanguageClient-neovim";
-        rev = version;
-        sha256 = "143cifahav1pfmpx3j1ihx433jrwxf6z27s0wxndgjkd2plkks58";
-      };
-      LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
-        pname = "LanguageClient-neovim-bin";
-        inherit version;
-        src = LanguageClient-neovim-src;
-
-        cargoSha256 = "0mf94j85awdcqa6cyb89bipny9xg13ldkznjf002fq747f55my2a";
-        buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
-
-        # FIXME: Use impure version of CoreFoundation because of missing symbols.
-        #   Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable"
-        preConfigure = lib.optionalString stdenv.isDarwin ''
-          export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS"
-        '';
-      };
-    in
-    buildVimPluginFrom2Nix {
-      pname = "LanguageClient-neovim";
-      inherit version;
-      src = LanguageClient-neovim-src;
-
-      propagatedBuildInputs = [ LanguageClient-neovim-bin ];
-
-      preFixup = ''
-        substituteInPlace "$out"/share/vim-plugins/LanguageClient-neovim/autoload/LanguageClient.vim \
-          --replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
-      '';
-    };
-
   clang_complete = super.clang_complete.overrideAttrs (old: {
     # In addition to the arguments you pass to your compiler, you also need to
     # specify the path of the C++ std header (if you are using C++).
@@ -156,14 +104,6 @@ self: super: {
     '';
   });
 
-  direnv-vim = super.direnv-vim.overrideAttrs (oa: {
-    preFixup = oa.preFixup or "" + ''
-      substituteInPlace $out/share/vim-plugins/direnv-vim/autoload/direnv.vim \
-        --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
-          "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
-    '';
-  });
-
   clighter8 = super.clighter8.overrideAttrs (old: {
     preFixup = ''
       sed "/^let g:clighter8_libclang_path/s|')$|${llvmPackages.clang.cc.lib}/lib/libclang.so')|" \
@@ -179,6 +119,32 @@ self: super: {
     '';
   });
 
+  compe-tabnine = super.compe-tabnine.overrideAttrs (old: {
+    buildInputs = [ tabnine ];
+
+    postFixup = ''
+      mkdir $target/binaries
+      ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
+    '';
+  });
+
+  completion-buffers = super.completion-buffers.overrideAttrs (old: {
+    dependencies = with self; [ completion-nvim ];
+  });
+
+  completion-tabnine = super.completion-tabnine.overrideAttrs (old: {
+    dependencies = with self; [ completion-nvim ];
+    buildInputs = [ tabnine ];
+    postFixup = ''
+      mkdir $target/binaries
+      ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
+    '';
+  });
+
+  completion-treesitter = super.completion-treesitter.overrideAttrs (old: {
+    dependencies = with self; [ completion-nvim nvim-treesitter ];
+  });
+
   cpsm = super.cpsm.overrideAttrs (old: {
     buildInputs = [
       python3
@@ -204,11 +170,11 @@ self: super: {
   });
 
   defx-nvim = super.defx-nvim.overrideAttrs (old: {
-    dependencies = with super; [ nvim-yarp ];
+    dependencies = with self; [ nvim-yarp ];
   });
 
   deoplete-fish = super.deoplete-fish.overrideAttrs (old: {
-    dependencies = with super; [ deoplete-nvim vim-fish ];
+    dependencies = with self; [ deoplete-nvim vim-fish ];
   });
 
   deoplete-go = super.deoplete-go.overrideAttrs (old: {
@@ -222,7 +188,7 @@ self: super: {
   });
 
   deoplete-khard = super.deoplete-khard.overrideAttrs (old: {
-    dependencies = [ self.deoplete-nvim ];
+    dependencies = with self; [ deoplete-nvim ];
     passthru.python3Dependencies = ps: [ (ps.toPythonModule khard) ];
     meta = {
       description = "Address-completion for khard via deoplete";
@@ -232,13 +198,21 @@ self: super: {
     };
   });
 
+  direnv-vim = super.direnv-vim.overrideAttrs (oa: {
+    preFixup = oa.preFixup or "" + ''
+      substituteInPlace $out/share/vim-plugins/direnv-vim/autoload/direnv.vim \
+        --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
+          "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
+    '';
+  });
+
   ensime-vim = super.ensime-vim.overrideAttrs (old: {
     passthru.python3Dependencies = ps: with ps; [ sexpdata websocket_client ];
-    dependencies = with super; [ vimproc-vim vimshell-vim super.self forms ];
+    dependencies = with self; [ vimproc-vim vimshell-vim self.self forms ];
   });
 
   forms = super.forms.overrideAttrs (old: {
-    dependencies = with super; [ super.self ];
+    dependencies = with self; [ self.self ];
   });
 
   fruzzy =
@@ -276,22 +250,101 @@ self: super: {
       '';
     });
 
+  fzf-vim = super.fzf-vim.overrideAttrs (old: {
+    dependencies = with self; [ fzfWrapper ];
+  });
+
+  # Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim
+  # plugin, since part of the fzf vim plugin is included in the main fzf
+  # program.
+  fzfWrapper = buildVimPluginFrom2Nix {
+    inherit (fzf) src version;
+    pname = "fzf";
+    postInstall = ''
+      ln -s ${fzf}/bin/fzf $target/bin/fzf
+    '';
+  };
+
   ghcid = super.ghcid.overrideAttrs (old: {
     configurePhase = "cd plugins/nvim";
   });
 
-  vimsence = super.vimsence.overrideAttrs (old: {
-    meta = with lib; {
-      description = "Discord rich presence for Vim";
-      homepage = "https://github.com/hugolgst/vimsence";
-      maintainers = with lib.maintainers; [ hugolgst ];
+  gitsigns-nvim = super.gitsigns-nvim.overrideAttrs (old: {
+    dependencies = with self; [ plenary-nvim ];
+  });
+
+  gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {
+    dependencies = with self; [ lush-nvim ];
+  });
+
+  jedi-vim = super.jedi-vim.overrideAttrs (old: {
+    # checking for python3 support in vim would be neat, too, but nobody else seems to care
+    buildInputs = [ python3.pkgs.jedi ];
+    meta = {
+      description = "code-completion for python using python-jedi";
+      license = lib.licenses.mit;
     };
   });
 
-  vim-gist = super.vim-gist.overrideAttrs (old: {
-    dependencies = with super; [ webapi-vim ];
+  LanguageClient-neovim =
+    let
+      version = "0.1.161";
+      LanguageClient-neovim-src = fetchFromGitHub {
+        owner = "autozimu";
+        repo = "LanguageClient-neovim";
+        rev = version;
+        sha256 = "Z9S2ie9RxJCIbmjSV/Tto4lK04cZfWmK3IAy8YaySVI=";
+      };
+      LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
+        pname = "LanguageClient-neovim-bin";
+        inherit version;
+        src = LanguageClient-neovim-src;
+
+        cargoSha256 = "H34UqJ6JOwuSABdOup5yKeIwFrGc83TUnw1ggJEx9o4=";
+        buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
+        # FIXME: Use impure version of CoreFoundation because of missing symbols.
+        #   Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable"
+        preConfigure = lib.optionalString stdenv.isDarwin ''
+          export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS"
+        '';
+      };
+    in
+    buildVimPluginFrom2Nix {
+      pname = "LanguageClient-neovim";
+      inherit version;
+      src = LanguageClient-neovim-src;
+
+      propagatedBuildInputs = [ LanguageClient-neovim-bin ];
+
+      preFixup = ''
+        substituteInPlace "$out"/share/vim-plugins/LanguageClient-neovim/autoload/LanguageClient.vim \
+          --replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
+      '';
+    };
+
+  lens-vim = super.lens-vim.overrideAttrs (old: {
+    # remove duplicate g:lens#animate in doc/lens.txt
+    # https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
+    # https://github.com/camspiers/lens.vim/pull/40/files
+    patches = [
+      (substituteAll {
+        src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
+        inherit languagetool;
+      })
+    ];
+  });
+
+  lf-vim = super.lf-vim.overrideAttrs (old: {
+    dependencies = with self; [ vim-floaterm ];
   });
 
+  meson = buildVimPluginFrom2Nix {
+    inherit (meson) pname version src;
+    preInstall = "cd data/syntax-highlighting/vim";
+    meta.maintainers = with lib.maintainers; [ vcunat ];
+  };
+
   minimap-vim = super.minimap-vim.overrideAttrs (old: {
     preFixup = ''
       substituteInPlace $out/share/vim-plugins/minimap-vim/plugin/minimap.vim \
@@ -301,51 +354,65 @@ self: super: {
     '';
   });
 
-  meson = buildVimPluginFrom2Nix {
-    inherit (meson) pname version src;
-    preInstall = "cd data/syntax-highlighting/vim";
-    meta.maintainers = with lib.maintainers; [ vcunat ];
-  };
-
   ncm2 = super.ncm2.overrideAttrs (old: {
-    dependencies = with super; [ nvim-yarp ];
+    dependencies = with self; [ nvim-yarp ];
   });
 
   ncm2-jedi = super.ncm2-jedi.overrideAttrs (old: {
-    dependencies = with super; [ nvim-yarp ncm2 ];
+    dependencies = with self; [ nvim-yarp ncm2 ];
     passthru.python3Dependencies = ps: with ps; [ jedi ];
   });
 
   ncm2-neoinclude = super.ncm2-neoinclude.overrideAttrs (old: {
-    dependencies = with super; [ neoinclude-vim ];
+    dependencies = with self; [ neoinclude-vim ];
   });
 
   ncm2-neosnippet = super.ncm2-neosnippet.overrideAttrs (old: {
-    dependencies = with super; [ neosnippet-vim ];
+    dependencies = with self; [ neosnippet-vim ];
   });
 
   ncm2-syntax = super.ncm2-syntax.overrideAttrs (old: {
-    dependencies = with super; [ neco-syntax ];
+    dependencies = with self; [ neco-syntax ];
   });
 
   ncm2-ultisnips = super.ncm2-ultisnips.overrideAttrs (old: {
-    dependencies = with super; [ ultisnips ];
+    dependencies = with self; [ ultisnips ];
   });
 
   nvim-lsputils = super.nvim-lsputils.overrideAttrs (old: {
-    dependencies = with super; [ popfix ];
-  });
-
-  fzf-vim = super.fzf-vim.overrideAttrs (old: {
-    dependencies = [ self.fzfWrapper ];
+    dependencies = with self; [ popfix ];
+  });
+
+  # Usage:
+  # pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.tree-sitter-c p.tree-sitter-java ... ])
+  # or for all grammars:
+  # pkgs.vimPlugins.nvim-treesitter.withPlugins (_: tree-sitter.allGrammars)
+  nvim-treesitter = super.nvim-treesitter.overrideAttrs (old: {
+    passthru.withPlugins =
+      grammarFn: self.nvim-treesitter.overrideAttrs (_: {
+        postPatch =
+          let
+            grammars = tree-sitter.withPlugins grammarFn;
+          in
+          ''
+            rm -r parser
+            ln -s ${grammars} parser
+          '';
+      });
   });
 
   onehalf = super.onehalf.overrideAttrs (old: {
     configurePhase = "cd vim";
   });
 
+  skim = buildVimPluginFrom2Nix {
+    pname = "skim";
+    version = skim.version;
+    src = skim.vim;
+  };
+
   skim-vim = super.skim-vim.overrideAttrs (old: {
-    dependencies = [ self.skim ];
+    dependencies = with self; [ skim ];
   });
 
   sql-nvim = super.sql-nvim.overrideAttrs (old: {
@@ -384,56 +451,107 @@ self: super: {
       };
     });
 
-  vimacs = super.vimacs.overrideAttrs (old: {
-    buildPhase = ''
-      substituteInPlace bin/vim \
-        --replace '/usr/bin/vim' 'vim' \
-        --replace '/usr/bin/gvim' 'gvim'
-      # remove unnecessary duplicated bin wrapper script
-      rm -r plugin/vimacs
-    '';
-    meta = with lib; {
-      description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
-      homepage = "http://algorithm.com.au/code/vimacs";
-      license = licenses.gpl2Plus;
-      maintainers = with lib.maintainers; [ millerjason ];
-    };
+  telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs (old: {
+    dependencies = with self; [ sql-nvim telescope-nvim ];
   });
 
-  vimshell-vim = super.vimshell-vim.overrideAttrs (old: {
-    dependencies = with super; [ vimproc-vim ];
+  telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
   });
 
-  vim-addon-manager = super.vim-addon-manager.overrideAttrs (old: {
-    buildInputs = lib.optional stdenv.isDarwin Cocoa;
+  telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
+    preFixup =
+      let
+        fzy-lua-native-path = "deps/fzy-lua-native";
+        fzy-lua-native =
+          stdenv.mkDerivation {
+            name = "fzy-lua-native";
+            src = "${old.src}/${fzy-lua-native-path}";
+            # remove pre-compiled binaries
+            preBuild = "rm -rf static/*";
+            installPhase = ''
+              install -Dm 444 -t $out/static static/*
+              install -Dm 444 -t $out/lua lua/*
+            '';
+          };
+      in
+      ''
+        rm -rf $target/${fzy-lua-native-path}/*
+        ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
+        ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
+      '';
+    meta.platforms = lib.platforms.all;
+  });
+
+  telescope-nvim = super.telescope-nvim.overrideAttrs (old: {
+    dependencies = with self; [ plenary-nvim popup-nvim ];
+  });
+
+  telescope-symbols-nvim = super.telescope-symbols-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
+  });
+
+  telescope-z-nvim = super.telescope-z-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
+  });
+
+  unicode-vim =
+    let
+      unicode-data = fetchurl {
+        url = "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt";
+        sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
+      };
+    in
+    super.unicode-vim.overrideAttrs (old: {
+
+      # redirect to /dev/null else changes terminal color
+      buildPhase = ''
+        cp "${unicode-data}" autoload/unicode/UnicodeData.txt
+        echo "Building unicode cache"
+        ${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
+      '';
+    });
+
+  vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
+    # on linux can use either Zenity or Yad.
+    propagatedBuildInputs = [ gnome3.zenity ];
+    meta = {
+      description = "Simple color selector/picker plugin";
+      license = lib.licenses.publicDomain;
+    };
   });
 
   vim-addon-actions = super.vim-addon-actions.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
+    dependencies = with self; [ vim-addon-mw-utils tlib_vim ];
   });
 
   vim-addon-async = super.vim-addon-async.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-signs ];
+    dependencies = with self; [ vim-addon-signs ];
   });
 
   vim-addon-background-cmd = super.vim-addon-background-cmd.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-mw-utils ];
+    dependencies = with self; [ vim-addon-mw-utils ];
   });
 
   vim-addon-completion = super.vim-addon-completion.overrideAttrs (old: {
-    dependencies = with super; [ tlib_vim ];
+    dependencies = with self; [ tlib_vim ];
   });
 
   vim-addon-goto-thing-at-cursor = super.vim-addon-goto-thing-at-cursor.overrideAttrs (old: {
-    dependencies = with super; [ tlib_vim ];
+    dependencies = with self; [ tlib_vim ];
+  });
+
+  vim-addon-manager = super.vim-addon-manager.overrideAttrs (old: {
+    buildInputs = lib.optional stdenv.isDarwin Cocoa;
   });
 
   vim-addon-mru = super.vim-addon-mru.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-other vim-addon-mw-utils ];
+    dependencies = with self; [ vim-addon-other vim-addon-mw-utils ];
   });
 
   vim-addon-nix = super.vim-addon-nix.overrideAttrs (old: {
-    dependencies = with super; [
+    dependencies = with self; [
       vim-addon-completion
       vim-addon-goto-thing-at-cursor
       vim-addon-errorformats
@@ -444,29 +562,59 @@ self: super: {
   });
 
   vim-addon-sql = super.vim-addon-sql.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-completion vim-addon-background-cmd tlib_vim ];
+    dependencies = with self; [ vim-addon-completion vim-addon-background-cmd tlib_vim ];
   });
 
   vim-addon-syntax-checker = super.vim-addon-syntax-checker.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
+    dependencies = with self; [ vim-addon-mw-utils tlib_vim ];
   });
 
   vim-addon-toggle-buffer = super.vim-addon-toggle-buffer.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
+    dependencies = with self; [ vim-addon-mw-utils tlib_vim ];
   });
 
   vim-addon-xdebug = super.vim-addon-xdebug.overrideAttrs (old: {
-    dependencies = with super; [ webapi-vim vim-addon-mw-utils vim-addon-signs vim-addon-async ];
+    dependencies = with self; [ webapi-vim vim-addon-mw-utils vim-addon-signs vim-addon-async ];
   });
 
   vim-bazel = super.vim-bazel.overrideAttrs (old: {
-    dependencies = with super; [ vim-maktaba ];
+    dependencies = with self; [ vim-maktaba ];
   });
 
   vim-beancount = super.vim-beancount.overrideAttrs (old: {
     passthru.python3Dependencies = ps: with ps; [ beancount ];
   });
 
+  vim-clap = super.vim-clap.overrideAttrs (old: {
+    preFixup =
+      let
+        maple-bin = rustPlatform.buildRustPackage {
+          name = "maple";
+          src = old.src;
+
+          nativeBuildInputs = [
+            pkg-config
+          ];
+
+          buildInputs = [
+            openssl
+          ] ++ lib.optionals stdenv.isDarwin [
+            CoreServices
+            curl
+            libgit2
+            libiconv
+          ];
+
+          cargoSha256 = "1c8bwvwd23d7c3bk1ky1i8xgfz10dr8nqqcvp20g8rldjl8p2r08";
+        };
+      in
+      ''
+        ln -s ${maple-bin}/bin/maple $target/bin/maple
+      '';
+
+    meta.platforms = lib.platforms.all;
+  });
+
   vim-closer = super.vim-closer.overrideAttrs (old: {
     patches = [
       # Fix duplicate tag in doc
@@ -478,7 +626,7 @@ self: super: {
   });
 
   vim-codefmt = super.vim-codefmt.overrideAttrs (old: {
-    dependencies = with super; [ vim-maktaba ];
+    dependencies = with self; [ vim-maktaba ];
   });
 
   vim-dasht = super.vim-dasht.overrideAttrs (old: {
@@ -489,7 +637,7 @@ self: super: {
   });
 
   vim-easytags = super.vim-easytags.overrideAttrs (old: {
-    dependencies = with super; [ vim-misc ];
+    dependencies = with self; [ vim-misc ];
     patches = [
       (fetchpatch {
         # https://github.com/xolox/vim-easytags/pull/170 fix version detection for universal-ctags
@@ -533,6 +681,10 @@ self: super: {
       '';
     });
 
+  vim-gist = super.vim-gist.overrideAttrs (old: {
+    dependencies = with self; [ webapi-vim ];
+  });
+
   vim-grammarous = super.vim-grammarous.overrideAttrs (old: {
     # use `:GrammarousCheck` to initialize checking
     # In neovim, you also want to use set
@@ -546,16 +698,20 @@ self: super: {
     ];
   });
 
-  lens-vim = super.lens-vim.overrideAttrs (old: {
-    # remove duplicate g:lens#animate in doc/lens.txt
-    # https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
-    # https://github.com/camspiers/lens.vim/pull/40/files
-    patches = [
-      (substituteAll {
-        src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
-        inherit languagetool;
-      })
-    ];
+  vim-hexokinase = super.vim-hexokinase.overrideAttrs (old: {
+    preFixup =
+      let
+        hexokinase = buildGoModule {
+          name = "hexokinase";
+          src = old.src + "/hexokinase";
+          vendorSha256 = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+        };
+      in
+      ''
+        ln -s ${hexokinase}/bin/hexokinase $target/hexokinase/hexokinase
+      '';
+
+    meta.platforms = lib.platforms.all;
   });
 
   vim-hier = super.vim-hier.overrideAttrs (old: {
@@ -590,9 +746,16 @@ self: super: {
   });
 
   vim-snipmate = super.vim-snipmate.overrideAttrs (old: {
-    dependencies = with super; [ vim-addon-mw-utils tlib_vim ];
+    dependencies = with self; [ vim-addon-mw-utils tlib_vim ];
   });
 
+  vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
+    postPatch = old.postPatch or "" + ''
+      substituteInPlace ftplugin/haskell/stylish-haskell.vim --replace \
+        'g:stylish_haskell_command = "stylish-haskell"' \
+        'g:stylish_haskell_command = "${stylish-haskell}/bin/stylish-haskell"'
+    '';
+  });
 
   vim-wakatime = super.vim-wakatime.overrideAttrs (old: {
     buildInputs = [ python ];
@@ -617,6 +780,37 @@ self: super: {
     '';
   });
 
+  vim2nix = buildVimPluginFrom2Nix {
+    pname = "vim2nix";
+    version = "1.0";
+    src = ./vim2nix;
+    dependencies = with self; [ vim-addon-manager ];
+  };
+
+  vimacs = super.vimacs.overrideAttrs (old: {
+    buildPhase = ''
+      substituteInPlace bin/vim \
+        --replace '/usr/bin/vim' 'vim' \
+        --replace '/usr/bin/gvim' 'gvim'
+      # remove unnecessary duplicated bin wrapper script
+      rm -r plugin/vimacs
+    '';
+    meta = with lib; {
+      description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
+      homepage = "http://algorithm.com.au/code/vimacs";
+      license = licenses.gpl2Plus;
+      maintainers = with lib.maintainers; [ millerjason ];
+    };
+  });
+
+  vimsence = super.vimsence.overrideAttrs (old: {
+    meta = with lib; {
+      description = "Discord rich presence for Vim";
+      homepage = "https://github.com/hugolgst/vimsence";
+      maintainers = with lib.maintainers; [ hugolgst ];
+    };
+  });
+
   vimproc-vim = super.vimproc-vim.overrideAttrs (old: {
     buildInputs = [ which ];
 
@@ -629,6 +823,10 @@ self: super: {
     '';
   });
 
+  vimshell-vim = super.vimshell-vim.overrideAttrs (old: {
+    dependencies = with self; [ vimproc-vim ];
+  });
+
   YankRing-vim = super.YankRing-vim.overrideAttrs (old: {
     sourceRoot = ".";
   });
@@ -652,145 +850,6 @@ self: super: {
     };
   });
 
-  jedi-vim = super.jedi-vim.overrideAttrs (old: {
-    # checking for python3 support in vim would be neat, too, but nobody else seems to care
-    buildInputs = [ python3.pkgs.jedi ];
-    meta = {
-      description = "code-completion for python using python-jedi";
-      license = lib.licenses.mit;
-    };
-  });
-
-  lf-vim = super.lf-vim.overrideAttrs (old: {
-    dependencies = with super; [ vim-floaterm ];
-  });
-
-  vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
-    postPatch = old.postPatch or "" + ''
-      substituteInPlace ftplugin/haskell/stylish-haskell.vim --replace \
-        'g:stylish_haskell_command = "stylish-haskell"' \
-        'g:stylish_haskell_command = "${stylish-haskell}/bin/stylish-haskell"'
-    '';
-  });
-
-  vCoolor-vim = super.vCoolor-vim.overrideAttrs (old: {
-    # on linux can use either Zenity or Yad.
-    propagatedBuildInputs = [ gnome3.zenity ];
-    meta = {
-      description = "Simple color selector/picker plugin";
-      license = lib.licenses.publicDomain;
-    };
-  });
-
-  unicode-vim =
-    let
-      unicode-data = fetchurl {
-        url = "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt";
-        sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
-      };
-    in
-    super.unicode-vim.overrideAttrs (old: {
-
-      # redirect to /dev/null else changes terminal color
-      buildPhase = ''
-        cp "${unicode-data}" autoload/unicode/UnicodeData.txt
-        echo "Building unicode cache"
-        ${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
-      '';
-    });
-
-  vim-hexokinase = super.vim-hexokinase.overrideAttrs (old: {
-    preFixup =
-      let
-        hexokinase = buildGoModule {
-          name = "hexokinase";
-          src = old.src + "/hexokinase";
-          vendorSha256 = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
-        };
-      in
-      ''
-        ln -s ${hexokinase}/bin/hexokinase $target/hexokinase/hexokinase
-      '';
-
-    meta.platforms = lib.platforms.all;
-  });
-
-  vim-clap = super.vim-clap.overrideAttrs (old: {
-    preFixup =
-      let
-        maple-bin = rustPlatform.buildRustPackage {
-          name = "maple";
-          src = old.src;
-
-          nativeBuildInputs = [
-            pkg-config
-          ];
-
-          buildInputs = [
-            openssl
-          ] ++ lib.optionals stdenv.isDarwin [
-            CoreServices
-            curl
-            libgit2
-            libiconv
-          ];
-
-          cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
-        };
-      in
-      ''
-        ln -s ${maple-bin}/bin/maple $target/bin/maple
-      '';
-
-    meta.platforms = lib.platforms.all;
-  });
-
-  compe-tabnine = super.compe-tabnine.overrideAttrs (old: {
-    buildInputs = [ tabnine ];
-
-    postFixup = ''
-      mkdir $target/binaries
-      ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
-    '';
-  });
-
-  completion-tabnine = super.completion-tabnine.overrideAttrs (old: {
-    buildInputs = [ tabnine ];
-
-    postFixup = ''
-      mkdir $target/binaries
-      ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
-    '';
-  });
-
-  telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs (old: {
-    dependencies = [ self.sql-nvim ];
-  });
-
-  telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
-    preFixup =
-      let
-        fzy-lua-native-path = "deps/fzy-lua-native";
-        fzy-lua-native =
-          stdenv.mkDerivation {
-            name = "fzy-lua-native";
-            src = "${old.src}/${fzy-lua-native-path}";
-            # remove pre-compiled binaries
-            preBuild = "rm -rf static/*";
-            installPhase = ''
-              install -Dm 444 -t $out/static static/*
-              install -Dm 444 -t $out/lua lua/*
-            '';
-          };
-      in
-      ''
-        rm -rf $target/${fzy-lua-native-path}/*
-        ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
-        ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
-      '';
-    meta.platforms = lib.platforms.all;
-  });
-
 } // (
   let
     nodePackageNames = [
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 8cb03c52cec..c5e9deeb0ab 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -25,6 +25,7 @@ ap/vim-css-color
 arcticicestudio/nord-vim
 artur-shaik/vim-javacomplete2
 autozimu/LanguageClient-neovim
+axelf4/vim-strip-trailing-whitespace
 ayu-theme/ayu-vim
 bakpakin/fennel.vim
 bazelbuild/vim-bazel
@@ -61,8 +62,8 @@ chriskempson/base16-vim
 ChristianChiarulli/nvcode-color-schemes.vim
 christoomey/vim-sort-motion
 christoomey/vim-tmux-navigator
-chuling/ci_dark
 ckarnell/antonys-macro-repeater
+clojure-vim/vim-jack-in
 cloudhead/neovim-fuzzy
 CoatiSoftware/vim-sourcetrail
 cocopon/iceberg.vim
@@ -130,6 +131,8 @@ fiatjaf/neuron.vim
 fisadev/vim-isort
 flazz/vim-colorschemes
 floobits/floobits-neovim
+folke/lsp-colors.nvim@main
+folke/which-key.nvim@main
 freitass/todo.txt-vim
 frigoeu/psc-ide-vim
 fruit-in/brainfuck-vim
@@ -137,6 +140,7 @@ fruit-in/vim-nong-theme
 fsharp/vim-fsharp
 fszymanski/deoplete-emoji
 garbas/vim-snipmate
+gcmt/wildfire.vim
 gennaro-tedesco/nvim-peekup
 gentoo/gentoo-syntax
 GEverding/vim-hocon
@@ -266,12 +270,14 @@ kana/vim-textobj-user
 kassio/neoterm
 kbenzie/vim-spirv
 kchmck/vim-coffee-script
+kdheepak/lazygit.nvim
 KeitaNakamura/neodark.vim
 keith/investigate.vim
 keith/rspec.vim
 keith/swift.vim
 kevinhwang91/nvim-bqf@main
 kevinhwang91/nvim-hlslens@main
+kevinhwang91/rnvimr
 kien/rainbow_parentheses.vim
 knubie/vim-kitty-navigator
 konfekt/fastfold
@@ -287,6 +293,8 @@ kshenoy/vim-signature
 kyazdani42/nvim-tree.lua
 kyazdani42/nvim-web-devicons
 lambdalisue/fern.vim
+lambdalisue/gina.vim
+lambdalisue/suda.vim
 lambdalisue/vim-gista
 lambdalisue/vim-manpager
 lambdalisue/vim-pager
@@ -361,6 +369,7 @@ mfukar/robotframework-vim
 mfussenegger/nvim-dap
 mfussenegger/nvim-jdtls
 mg979/vim-visual-multi
+mg979/vim-xtabline
 mhartington/oceanic-next
 mhinz/vim-crates
 mhinz/vim-grepper
@@ -428,6 +437,7 @@ norcalli/nvim-colorizer.lua
 norcalli/nvim-terminal.lua
 norcalli/snippets.nvim
 npxbr/glow.nvim@main
+npxbr/gruvbox.nvim@main
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
@@ -483,6 +493,8 @@ prabirshrestha/vim-lsp
 preservim/nerdcommenter
 preservim/nerdtree
 preservim/tagbar
+preservim/vim-pencil
+preservim/vim-wordy
 preservim/vimux
 psliwka/vim-smoothie
 ptzz/lf.vim
@@ -493,6 +505,8 @@ qnighy/lalrpop.vim
 qpkorr/vim-bufkill
 Quramy/tsuquyomi
 racer-rust/vim-racer
+radenling/vim-dispatch-neovim
+rafamadriz/friendly-snippets@main
 rafaqz/ranger.vim
 rafi/awesome-vim-colorschemes
 raghur/fruzzy
@@ -501,8 +515,6 @@ Raimondi/delimitMate
 rakr/vim-one
 rbgrouleff/bclose.vim
 rbong/vim-flog
-reedes/vim-pencil
-reedes/vim-wordy
 rhysd/committia.vim
 rhysd/devdocs.vim
 rhysd/git-messenger.vim
@@ -524,6 +536,7 @@ roxma/nvim-cm-racer
 roxma/nvim-completion-manager
 roxma/nvim-yarp
 roxma/vim-tmux-clipboard
+RRethy/nvim-base16
 RRethy/vim-hexokinase
 RRethy/vim-illuminate
 rstacruz/vim-closer
@@ -578,6 +591,7 @@ sunaku/vim-dasht
 svermeulen/vim-subversive
 t9md/vim-choosewin
 t9md/vim-smalls
+TaDaa/vimade
 takac/vim-hardtime
 tami5/compe-conjure
 tami5/lispdocs.nvim
@@ -589,6 +603,7 @@ terryma/vim-multiple-cursors
 tex/vimpreviewpandoc
 Th3Whit3Wolf/one-nvim@main
 theHamsta/nvim-dap-virtual-text
+ThePrimeagen/git-worktree.nvim
 ThePrimeagen/vim-apm
 thinca/vim-ft-diff_fold
 thinca/vim-prettyprint
@@ -607,6 +622,7 @@ tmhedberg/SimpylFold
 tmsvg/pear-tree
 tmux-plugins/vim-tmux
 tmux-plugins/vim-tmux-focus-events
+tomasiser/vim-code-dark
 tomasr/molokai
 tomlion/vim-solidity
 tommcdo/vim-exchange
@@ -615,6 +631,7 @@ tommcdo/vim-ninja-feet
 tomtom/tcomment_vim
 tomtom/tlib_vim
 tools-life/taskwiki
+towolf/vim-helm
 tpope/vim-abolish
 tpope/vim-capslock
 tpope/vim-commentary
@@ -650,6 +667,7 @@ tremor-rs/tremor-vim@main
 triglav/vim-visual-increment
 troydm/zoomwintab.vim
 tversteeg/registers.nvim@main
+tweekmonster/wstrip.vim
 twerth/ir_black
 twinside/vim-haskellconceal
 Twinside/vim-hoogle
@@ -739,7 +757,9 @@ Xuyuanp/nerdtree-git-plugin
 yamatsum/nvim-nonicons@main
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+Yggdroot/LeaderF
 Yilin-Yang/vim-markbar
 yuki-yano/ncm2-dictionary
+yunlingz/ci_dark
 zah/nim.vim
 ziglang/zig.vim
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index fd66c48ecb2..c55e8aa0a01 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin
+# tests available at pkgs/test/vim
+{ lib, stdenv, vim, vimPlugins, vim_configurable, buildEnv, writeText, writeScriptBin
 , nix-prefetch-hg, nix-prefetch-git
 , fetchFromGitHub, runtimeShell
 }:
@@ -183,13 +184,49 @@ let
 
   rtpPath = "share/vim-plugins";
 
+  nativeImpl = packages: lib.optionalString (packages != null)
+  (let
+    link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
+    packageLinks = (packageName: {start ? [], opt ? []}:
+    let
+      # `nativeImpl` expects packages to be derivations, not strings (as
+      # opposed to older implementations that have to maintain backwards
+      # compatibility). Therefore we don't need to deal with "knownPlugins"
+      # and can simply pass `null`.
+      depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt);
+      startWithDeps = findDependenciesRecursively start;
+    in
+      [ "mkdir -p $out/pack/${packageName}/start" ]
+      # To avoid confusion, even dependencies of optional plugins are added
+      # to `start` (except if they are explicitly listed as optional plugins).
+      ++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins)))
+      ++ ["mkdir -p $out/pack/${packageName}/opt"]
+      ++ (builtins.map (link packageName "opt") opt)
+    );
+    packDir = (packages:
+      stdenv.mkDerivation {
+        name = "vim-pack-dir";
+        src = ./.;
+        installPhase = lib.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList packageLinks packages));
+        preferLocalBuild = true;
+      }
+    );
+  in
+  ''
+    set packpath^=${packDir packages}
+    set runtimepath^=${packDir packages}
+  '');
+
   vimrcContent = {
     packages ? null,
     vam ? null,
     pathogen ? null,
     plug ? null,
-    beforePlugins ? "",
-    customRC ? ""
+    beforePlugins ? ''
+      " configuration generated by NIX
+      set nocompatible
+    '',
+    customRC ? null
   }:
 
     let
@@ -301,56 +338,16 @@ let
         call vam#Scripts(l, {})
       '');
 
-      nativeImpl = lib.optionalString (packages != null)
-      (let
-        link = (packageName: dir: pluginPath: "ln -sf ${pluginPath}/share/vim-plugins/* $out/pack/${packageName}/${dir}");
-        packageLinks = (packageName: {start ? [], opt ? []}:
-        let
-          # `nativeImpl` expects packages to be derivations, not strings (as
-          # opposed to older implementations that have to maintain backwards
-          # compatibility). Therefore we don't need to deal with "knownPlugins"
-          # and can simply pass `null`.
-          depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt);
-          startWithDeps = findDependenciesRecursively start;
-        in
-          ["mkdir -p $out/pack/${packageName}/start"]
-          # To avoid confusion, even dependencies of optional plugins are added
-          # to `start` (except if they are explicitly listed as optional plugins).
-          ++ (builtins.map (link packageName "start") (lib.unique (startWithDeps ++ depsOfOptionalPlugins)))
-          ++ ["mkdir -p $out/pack/${packageName}/opt"]
-          ++ (builtins.map (link packageName "opt") opt)
-        );
-        packDir = (packages:
-          stdenv.mkDerivation {
-            name = "vim-pack-dir";
-            src = ./.;
-            installPhase = lib.concatStringsSep
-                             "\n"
-                             (lib.flatten (lib.mapAttrsToList packageLinks packages));
-            preferLocalBuild = true;
-          }
-        );
-      in
-      ''
-        set packpath^=${packDir packages}
-        set runtimepath^=${packDir packages}
-
-        filetype indent plugin on | syn on
-      '');
-
-  in ''
-  " configuration generated by NIX
-  set nocompatible
-
-  ${beforePlugins}
+      entries = [
+        beforePlugins
+        vamImpl pathogenImpl plugImpl
+        (nativeImpl packages)
+        customRC
+      ];
 
-  ${vamImpl}
-  ${pathogenImpl}
-  ${plugImpl}
-  ${nativeImpl}
+    in
+      lib.concatStringsSep "\n" (lib.filter (x: x != null && x != "") entries);
 
-  ${customRC}
-  '';
   vimrcFile = settings: writeText "vimrc" (vimrcContent settings);
 
 in
@@ -448,8 +445,6 @@ rec {
     '';
   };
 
-  vim_with_vim2nix = vim_configurable.customize { name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ]; };
-
   inherit (import ./build-vim-plugin.nix { inherit lib stdenv rtpPath vim; }) buildVimPlugin buildVimPluginFrom2Nix;
 
   # used to figure out which python dependencies etc. neovim needs
@@ -475,62 +470,4 @@ rec {
       nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs;
     in
       nativePlugins ++ nonNativePlugins;
-
-
-  # test cases:
-  test_vim_with_vim_nix_using_vam = vim_configurable.customize {
-   name = "vim-with-vim-addon-nix-using-vam";
-    vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }];
-  };
-
-  test_vim_with_vim_nix_using_pathogen = vim_configurable.customize {
-    name = "vim-with-vim-addon-nix-using-pathogen";
-    vimrcConfig.pathogen.pluginNames = [ "vim-nix" ];
-  };
-
-  test_vim_with_vim_nix_using_plug = vim_configurable.customize {
-    name = "vim-with-vim-addon-nix-using-plug";
-    vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ];
-  };
-
-  test_vim_with_vim_nix = vim_configurable.customize {
-    name = "vim-with-vim-addon-nix";
-    vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
-  };
-
-  # only neovim makes use of `requiredPlugins`, test this here
-  test_nvim_with_vim_nix_using_pathogen = neovim.override {
-    configure.pathogen.pluginNames = [ "vim-nix" ];
-  };
-
-  # regression test for https://github.com/NixOS/nixpkgs/issues/53112
-  # The user may have specified their own plugins which may not be formatted
-  # exactly as the generated ones. In particular, they may not have the `pname`
-  # attribute.
-  test_vim_with_custom_plugin = vim_configurable.customize {
-    name = "vim_with_custom_plugin";
-    vimrcConfig.vam.knownPlugins =
-      vimPlugins // ({
-        vim-trailing-whitespace = buildVimPluginFrom2Nix {
-          name = "vim-trailing-whitespace";
-          src = fetchFromGitHub {
-            owner = "bronson";
-            repo = "vim-trailing-whitespace";
-            rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6";
-            sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9";
-          };
-          # make sure string dependencies are handled
-          dependencies = [ "vim-nix" ];
-        };
-      });
-    vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
-  };
-
-  # system remote plugin manifest should be generated, deoplete should be usable
-  # without the user having to do `UpdateRemotePlugins`. To test, launch neovim
-  # and do `:call deoplete#enable()`. It will print an error if the remote
-  # plugin is not registered.
-  test_nvim_with_remote_plugin = neovim.override {
-    configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
-  };
 }
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 0b68563a282..15d280c0750 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -279,6 +279,23 @@ let
         };
       };
 
+      editorconfig.editorconfig = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "EditorConfig";
+          publisher = "EditorConfig";
+          version = "0.16.4";
+          sha256 = "0fa4h9hk1xq6j3zfxvf483sbb4bd17fjl5cdm3rll7z9kaigdqwg";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/EditorConfig.EditorConfig/changelog";
+          description = "EditorConfig Support for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig";
+          homepage = "https://github.com/editorconfig/editorconfig-vscode";
+          license = licenses.mit;
+          maintainers = with maintainers; [ dbirks ];
+        };
+      };
+
       edonet.vscode-command-runner = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-command-runner";
@@ -390,6 +407,21 @@ let
         };
       };
 
+      foxundermoon.shell-format = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "shell-format";
+          publisher = "foxundermoon";
+          version = "7.1.0";
+          sha256 = "09z72mdr5bfdcb67xyzlv7lb9vyjlc3k9ackj4jgixfk40c68cnj";
+        };
+        meta = with lib; {
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format";
+          homepage = "https://github.com/foxundermoon/vs-shell-format";
+          license = licenses.mit;
+          maintainers = with maintainers; [ dbirks ];
+        };
+      };
+
       freebroccolo.reasonml = buildVscodeMarketplaceExtension {
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/freebroccolo.reasonml/changelog";
@@ -412,8 +444,8 @@ let
           mktplcRef = {
             name = "github-vscode-theme";
             publisher = "github";
-            version = "3.0.0";
-            sha256 = "1a77mbx75xfsfdlhgzghj9i7ik080bppc3jm8c00xp6781987fpa";
+            version = "4.0.2";
+            sha256 = "06mysdwjh7km874rrk0xc0xxaqx15b4a7x1i8dly440h8w3ng5bs";
           };
           meta = with lib; {
             description = "GitHub theme for VS Code";
@@ -464,8 +496,8 @@ let
         mktplcRef = {
           name = "todo-tree";
           publisher = "Gruntfuggly";
-          version = "0.0.209";
-          sha256 = "1i0wq8zwax4kmy69hh0hclx9a47ycm3qp3gspjq8xpmcq3nmbfaq";
+          version = "0.0.211";
+          sha256 = "1di2v1bhlhl1yi9rrmbq0r9gypiydl8xvj24yw64vsnkqs9yxbp3";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -510,6 +542,23 @@ let
         };
       };
 
+      iciclesoft.workspacesort = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "workspacesort";
+          publisher = "iciclesoft";
+          version = "1.6.0";
+          sha256 = "1pbk8kflywll6lqhmffz9yjf01dn8xq8sk6rglnfn2kl2ildfhh6";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/iciclesoft.workspacesort/changelog";
+          description = "Sort workspace-folders alphabetically rather than in chronological order";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=iciclesoft.workspacesort";
+          homepage = "https://github.com/iciclesoft/workspacesort-for-VSCode";
+          license = licenses.mit;
+          maintainers = with maintainers; [ dbirks ];
+        };
+      };
+
       james-yu.latex-workshop = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "latex-workshop";
@@ -778,8 +827,8 @@ let
         mktplcRef = {
           name = "scala";
           publisher = "scala-lang";
-          version = "0.5.1";
-          sha256 = "0p9nhds2xn08xz8x822q15jdrdlqkg2wa1y7mk9k89n8n2kfh91g";
+          version = "0.5.3";
+          sha256 = "0isw8jh845hj2fw7my1i19b710v3m5qsjy2faydb529ssdqv463p";
         };
         meta = {
           license = lib.licenses.mit;
@@ -790,8 +839,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.9.13";
-          sha256 = "0vrg25ygmyjx1lwif2ypyv688b290ycfn1qf0izxbmgi2z3f0wf9";
+          version = "1.10.4";
+          sha256 = "0q6zjpdi98png4vpzz39q85nxmsh3h1nnan58saz5rr83d6jgj89";
         };
         meta = {
           license = lib.licenses.asl20;
diff --git a/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix b/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
index 3023642e77c..fb58c94cde9 100644
--- a/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
+++ b/pkgs/misc/vscode-extensions/ms-vsliveshare-vsliveshare/default.nix
@@ -38,8 +38,8 @@ in ((vscode-utils.override { stdenv = gccStdenv; }).buildVscodeMarketplaceExtens
   mktplcRef = {
     name = "vsliveshare";
     publisher = "ms-vsliveshare";
-    version = "1.0.4116";
-    sha256 = "1wrqmsrrc80agrw5ii4vcp2v6gzps9hvpjizwn30p0vf43mmw3mj";
+    version = "1.0.4131";
+    sha256 = "167fwb1nri9xs5bx14zdg2q3fsmlbihcvnk90fv9av8zirpwa3vs";
   };
 }).overrideAttrs({ nativeBuildInputs ? [], buildInputs ? [], ... }: {
   nativeBuildInputs = nativeBuildInputs ++ [
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
index fbfb7c06dc5..ce0e1e7c3f4 100644
--- a/pkgs/misc/vscode-extensions/terraform/default.nix
+++ b/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -3,13 +3,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "terraform";
     publisher = "hashicorp";
-    version = "2.9.1";
+    version = "2.10.1";
   };
 
   vsix = fetchurl {
     name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
-    url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix";
-    sha256 = "1i4pzxw57hf2g7x62hfsb588b1lz3zjjh8ny96qqrif2bj2h887z";
+    url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/${mktplcRef.name}-${mktplcRef.version}.vsix";
+    sha256 = "1galibrk4fx4qwa6q17mmwlikx78nmhgv1h98haiyak666cinzcq";
   };
 
   patches = [ ./fix-terraform-ls.patch ];
diff --git a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
index d91ffcc17ab..1e72b7b81ec 100644
--- a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
+++ b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -1,8 +1,8 @@
 diff --git a/out/extension.js b/out/extension.js
-index e44cef2..fba0899 100644
+index e815393..aeade0e 100644
 --- a/out/extension.js
 +++ b/out/extension.js
-@@ -141,24 +141,6 @@ function updateLanguageServer() {
+@@ -141,25 +141,6 @@ function updateLanguageServer() {
      return __awaiter(this, void 0, void 0, function* () {
          const delay = 1000 * 60 * 24;
          setTimeout(updateLanguageServer, delay); // check for new updates every 24hrs
@@ -16,6 +16,7 @@ index e44cef2..fba0899 100644
 -                    yield installer.install();
 -                }
 -                catch (err) {
+-                    console.log(err); // for test failure reporting
 -                    reporter.sendTelemetryException(err);
 -                    throw err;
 -                }
@@ -27,7 +28,7 @@ index e44cef2..fba0899 100644
          return startClients(); // on repeat runs with no install, this will be a no-op
      });
  }
-@@ -256,7 +238,7 @@ function pathToBinary() {
+@@ -257,7 +238,7 @@ function pathToBinary() {
                  reporter.sendTelemetryEvent('usePathToBinary');
              }
              else {
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index b86891352f0..6d01bff3b3e 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -61,7 +61,7 @@ let
     builder = ./builder.sh;
 
     meta = with lib; {
-      maintainers = with maintainers; [matthewbauer];
+      maintainers = with maintainers; [ matthewbauer qyliss ];
       platforms = platforms.unix;
       license = licenses.bsd2;
     };
@@ -484,13 +484,6 @@ let
     '';
   };
 
-  libkern = mkDerivation {
-    path = "lib/libkern";
-    version = "8.0";
-    sha256 = "1wirqr9bms69n4b5sr32g1b1k41hcamm7c9n7i8c440m73r92yv4";
-    meta.platforms = lib.platforms.netbsd;
-  };
-
   column = mkDerivation {
     path = "usr.bin/column";
     version = "8.0";
@@ -664,7 +657,7 @@ let
     path = "share/man";
     noCC = true;
     version = "8.0";
-    sha256 = "0d34b3irjbqsqfk8v8aaj36fjyvwyx410igl26jcx2ryh3ispch0";
+    sha256 = "0yp48syf3y5psm0mymxp6va6spym5izjym0ybr628iqwji21cqdz";
     makeFlags = [ "FILESDIR=$(out)/share" ];
   };
   #
diff --git a/pkgs/os-specific/darwin/chunkwm/default.nix b/pkgs/os-specific/darwin/chunkwm/default.nix
index b326b98de53..c0229ba3ae2 100644
--- a/pkgs/os-specific/darwin/chunkwm/default.nix
+++ b/pkgs/os-specific/darwin/chunkwm/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "chunkwm";
   version = "0.4.9";
   src = fetchzip {
-    url = "http://github.com/koekeishiya/chunkwm/archive/v${version}.tar.gz";
+    url = "https://github.com/koekeishiya/chunkwm/archive/v${version}.tar.gz";
     sha256 = "0w8q92q97fdvbwc3qb5w44jn4vi3m65ssdvjp5hh6b7llr17vspl";
   };
 
diff --git a/pkgs/os-specific/darwin/darling/default.nix b/pkgs/os-specific/darwin/darling/default.nix
index ef9afafbcd3..22fb6d3b07c 100644
--- a/pkgs/os-specific/darwin/darling/default.nix
+++ b/pkgs/os-specific/darwin/darling/default.nix
@@ -8,11 +8,22 @@ stdenv.mkDerivation rec {
     url = "https://github.com/darlinghq/darling/archive/d2cc5fa748003aaa70ad4180fff0a9a85dc65e9b.tar.gz";
     sha256 = "11b51fw47nl505h63bgx5kqiyhf3glhp1q6jkpb6nqfislnzzkrf";
     postFetch = ''
-      # Get rid of case conflict
-      mkdir $out
+      # The archive contains both `src/opendirectory` and `src/OpenDirectory`,
+      # pre-create the directory to choose the canonical case on
+      # case-insensitive filesystems.
+      mkdir -p $out/src/OpenDirectory
+
       cd $out
       tar -xzf $downloadedFile --strip-components=1
       rm -r $out/src/libm
+
+      # If `src/opendirectory` and `src/OpenDirectory` refer to different
+      # things, then combine them into `src/OpenDirectory` to match the result
+      # on case-insensitive filesystems.
+      if [ "$(stat -c %i src/opendirectory)" != "$(stat -c %i src/OpenDirectory)" ]; then
+        mv src/opendirectory/* src/OpenDirectory/
+        rmdir src/opendirectory
+      fi
     '';
   };
 
diff --git a/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix b/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
index cabac19ba86..ab934d7eaaa 100644
--- a/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
+++ b/pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
@@ -29,11 +29,6 @@ rec {
   binutils = wrapBintoolsWith {
     libc = targetIosSdkPkgs.libraries;
     bintools = binutils-unwrapped;
-    extraBuildCommands = lib.optionalString (sdk.platform == "iPhoneSimulator") ''
-      echo "-platform_version ios-sim ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
-    '' + lib.optionalString (sdk.platform == "iPhoneOS") ''
-      echo "-platform_version ios ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
-    '';
   };
 
   clang = (wrapCCWith {
@@ -46,10 +41,6 @@ rec {
       mv cc-cflags.tmp $out/nix-support/cc-cflags
       echo "-target ${targetPlatform.config}" >> $out/nix-support/cc-cflags
       echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags
-    '' + lib.optionalString (sdk.platform == "iPhoneSimulator") ''
-      echo "-mios-simulator-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
-    '' + lib.optionalString (sdk.platform == "iPhoneOS") ''
-      echo "-miphoneos-version-min=${minSdkVersion}" >> $out/nix-support/cc-cflags
     '';
   }) // {
     inherit sdk;
diff --git a/pkgs/os-specific/linux/afuse/default.nix b/pkgs/os-specific/linux/afuse/default.nix
index 7375f45eb6d..75c44e11172 100644
--- a/pkgs/os-specific/linux/afuse/default.nix
+++ b/pkgs/os-specific/linux/afuse/default.nix
@@ -11,11 +11,18 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ fuse ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Fix the build on macOS with macFUSE installed
+    substituteInPlace configure.ac --replace \
+      'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' \
+      ""
+  '';
+
   meta = {
     description = "Automounter in userspace";
     homepage = "https://github.com/pcarrier/afuse";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.marcweber ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/os-specific/linux/anbox/kmod.nix b/pkgs/os-specific/linux/anbox/kmod.nix
index f62e6ee6aa5..1ed6d9c5f72 100644
--- a/pkgs/os-specific/linux/anbox/kmod.nix
+++ b/pkgs/os-specific/linux/anbox/kmod.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/anbox/anbox-modules";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    broken = (versionOlder kernel.version "4.4") || (kernel.features.grsecurity or false);
+    broken = (versionOlder kernel.version "4.4");
     maintainers = with maintainers; [ edwtjo ];
   };
 
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index 290e3b56180..4235ecb38d3 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchurl, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , makeWrapper, cmake, llvmPackages, kernel
 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf
-, systemtap, bash
+, systemtap, bash, libbpf
 }:
 
 python.pkgs.buildPythonApplication rec {
@@ -10,9 +10,11 @@ python.pkgs.buildPythonApplication rec {
 
   disabled = !stdenv.isLinux;
 
-  src = fetchurl {
-    url = "https://github.com/iovisor/bcc/releases/download/v${version}/bcc-src-with-submodule.tar.gz";
-    sha256 = "sha256-TEH8Gmp+8ghLQ8UsGy5hBCMLqfMeApWEFr8THYSOdOQ=";
+  src = fetchFromGitHub {
+    owner = "iovisor";
+    repo = "bcc";
+    rev = "v${version}";
+    sha256 = "sha256:0k807vzznlb2icczw64ph6q28605kvghya2kd4h3c7jmap6gq1qg";
   };
   format = "other";
 
@@ -20,6 +22,7 @@ python.pkgs.buildPythonApplication rec {
     llvm clang-unwrapped kernel
     elfutils luajit netperf iperf
     systemtap.stapBuild flex bash
+    libbpf
   ];
 
   patches = [
@@ -38,6 +41,7 @@ python.pkgs.buildPythonApplication rec {
     "-DREVISION=${version}"
     "-DENABLE_USDT=ON"
     "-DENABLE_CPP_API=ON"
+    "-DCMAKE_USE_LIBBPF_PACKAGE=ON"
   ];
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index 96f9f23e97e..2e342fbc039 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchurl
 , alsaLib
 , dbus
@@ -20,11 +19,11 @@
   ];
 in stdenv.mkDerivation rec {
   pname = "bluez";
-  version = "5.56";
+  version = "5.58";
 
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${pname}-${version}.tar.xz";
-    sha256 = "sha256-WcTbqfyKripqX48S8ZvBsMLcJzVcfKMSPu0/5r19C50=";
+    sha256 = "1wgiv8cqya6n1w5fz24cb8q401bhn5aa6s7g95l26rzblmsmw1n8";
   };
 
   buildInputs = [
@@ -45,15 +44,6 @@ in stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ] ++ lib.optional doCheck "test";
 
-  patches = [
-    # Fixes https://github.com/NixOS/nixpkgs/issues/117663
-    (fetchpatch {
-      name = "disconnect-fix.patch";
-      url = "https://github.com/bluez/bluez/commit/28ddec8d6b829e002fa268c07b71e4c564ba9e16.patch";
-      sha256 = "sha256-vzMf1i44e4JrpL7cXbn9oDr+3B+Glf7dPW3QDstEnEM=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace tools/hid2hci.rules \
       --replace /sbin/udevadm ${systemd}/bin/udevadm \
diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix
index 70864b311d2..342272f4286 100644
--- a/pkgs/os-specific/linux/btfs/default.nix
+++ b/pkgs/os-specific/linux/btfs/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/johang/btfs";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ rnhmjoj ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index bd50852bd9d..ca3e38c2e70 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -20,17 +20,17 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "displaylink";
-  version = "5.3.1.34";
+  version = "5.4.0-55.153";
 
   src = requireFile rec {
     name = "displaylink.zip";
-    sha256 = "1c1kbjgpb71f73qnyl44rvwi6l4ivddq789rwvvh0ahw2jm324hy";
+    sha256 = "1m2l3bnlfwfp94w7khr05npsbysg9mcyi7hi85n78xkd0xdcxml8";
     message = ''
       In order to install the DisplayLink drivers, you must first
       comply with DisplayLink's EULA and download the binaries and
       sources from here:
 
-      https://www.displaylink.com/downloads/file?id=1576
+      https://www.synaptics.com/node/3751
 
       Once you have downloaded the file, please use the following
       commands and re-run the installation:
diff --git a/pkgs/os-specific/linux/dropwatch/default.nix b/pkgs/os-specific/linux/dropwatch/default.nix
index 288dea85cc8..c2701c05719 100644
--- a/pkgs/os-specific/linux/dropwatch/default.nix
+++ b/pkgs/os-specific/linux/dropwatch/default.nix
@@ -1,30 +1,47 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
-, libnl, readline, libbfd, ncurses, zlib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libbfd
+, libnl
+, libpcap
+, ncurses
+, readline
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "dropwatch";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "nhorman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qmax0l7z1qik42c949fnvjh5r6awk4gpgzdsny8iwnmwzjyp8b8";
+    sha256 = "0axx0zzrs7apqnl0r70jyvmgk7cs5wk185id479mapgngibwkyxy";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libbfd libnl ncurses readline zlib ];
-
-  # To avoid running into https://sourceware.org/bugzilla/show_bug.cgi?id=14243 we need to define:
-  NIX_CFLAGS_COMPILE = "-DPACKAGE=${pname} -DPACKAGE_VERSION=${version}";
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+  buildInputs = [
+    libbfd
+    libnl
+    libpcap
+    ncurses
+    readline
+    zlib
+  ];
 
   enableParallelBuilding = true;
 
   meta = with lib; {
     description = "Linux kernel dropped packet monitor";
     homepage = "https://github.com/nhorman/dropwatch";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.c0bw3b ];
+    maintainers = with maintainers; [ c0bw3b ];
   };
 }
diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix
index 0f56d0e95ca..a8a0445e955 100644
--- a/pkgs/os-specific/linux/evdi/default.nix
+++ b/pkgs/os-specific/linux/evdi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "v1.7.2";
+  version = "unstable-20210401";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
-    rev = version;
-    sha256 = "074j0xh037n8mc4isihfz9lap57wvxaxib32pvy6jhjl3wyik632";
+    rev = "b0b3d131b26df62664ca33775679eea7b70c47b1";
+    sha256 = "09apbvdc78bbqzja9z3b1wrwmqkv3k7cn3lll5gsskxjnqbhxk9y";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
@@ -33,6 +33,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = with licenses; [ lgpl21 gpl2 ];
     homepage = "https://www.displaylink.com/";
-    broken = versionOlder kernel.version "4.9" || stdenv.isAarch64;
+    broken = versionOlder kernel.version "4.19" || stdenv.isAarch64;
   };
 }
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 7e0c48a439d..6a826f63966 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -25,6 +25,6 @@ stdenvNoCC.mkDerivation rec {
     description = "Firmware for the Raspberry Pi board";
     homepage = "https://github.com/raspberrypi/firmware";
     license = licenses.unfreeRedistributableFirmware; # See https://github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom
-    maintainers = with maintainers; [ dezgeg tavyc ];
+    maintainers = with maintainers; [ dezgeg ];
   };
 }
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index b474c48e341..5ee39c5bf33 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -3,29 +3,28 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "sof-firmware";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "thesofproject";
     repo = "sof-bin";
-    rev = "cbdec6963b2c2d58b0080955d3c11b96ff4c92f0";
-    sha256 = "0la2pw1zpv50cywiqcfb00cxqvjc73drxwjchyzi54l508817nxh";
+    rev = "v${version}";
+    sha256 = "sha256-Z0Z4HLsIIuW8E1kFNhAECmzj1HkJVfbEw13B8V7PZLk=";
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
+  dontFixup = true; # binaries must not be stripped or patchelfed
 
   installPhase = ''
-    mkdir -p $out/lib/firmware
-
-    patchShebangs go.sh
-    ROOT=$out SOF_VERSION=v${version} ./go.sh
+    mkdir -p $out/lib/firmware/intel/
+    cp -a sof-v${version} $out/lib/firmware/intel/sof
+    cp -a sof-tplg-v${version} $out/lib/firmware/intel/sof-tplg
   '';
 
   meta = with lib; {
     description = "Sound Open Firmware";
     homepage = "https://www.sofproject.org/";
     license = with licenses; [ bsd3 isc ];
-    maintainers = with maintainers; [ lblasc evenbrenden ];
+    maintainers = with maintainers; [ lblasc evenbrenden hmenke ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/os-specific/linux/flashbench/default.nix b/pkgs/os-specific/linux/flashbench/default.nix
index 44bcbba205e..619aea69aa6 100644
--- a/pkgs/os-specific/linux/flashbench/default.nix
+++ b/pkgs/os-specific/linux/flashbench/default.nix
@@ -27,6 +27,5 @@ stdenv.mkDerivation {
     homepage = "https://github.com/bradfa/flashbench";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
-    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
index cb4412609ff..c1217f66938 100644
--- a/pkgs/os-specific/linux/fuse/common.nix
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -97,7 +97,7 @@ in stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     changelog = "https://github.com/libfuse/libfuse/releases/tag/fuse-${version}";
     platforms = platforms.linux;
-    license = with licenses; [ gpl2 lgpl21 ];
+    license = with licenses; [ gpl2Only lgpl21Only ];
     maintainers = [ maintainers.primeos ];
   };
 }
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index 02c46b9ba77..b7ee8772f46 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -11,7 +11,7 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.10.2";
-    sha256Hash = "0m44hhk6jxkgkvk2jsjcwa3pqgzzqnpm606n3n8wn1ldypkvpsps";
+    version = "3.10.3";
+    sha256Hash = "054g3jqy8lhlj8kkwd16wxaxzynmh8h5iv20cryd0psg0hgmhd7v";
   };
 }
diff --git a/pkgs/os-specific/linux/isgx/default.nix b/pkgs/os-specific/linux/isgx/default.nix
index 1806916b14d..3e551e55917 100644
--- a/pkgs/os-specific/linux/isgx/default.nix
+++ b/pkgs/os-specific/linux/isgx/default.nix
@@ -17,6 +17,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/intel/linux-sgx-driver/commit/276c5c6a064d22358542f5e0aa96b1c0ace5d695.patch";
       sha256 = "sha256-PmchqYENIbnJ51G/tkdap/g20LUrJEoQ4rDtqy6hj24=";
     })
+    # Fixes detection with kernel >= 5.11
+    (fetchpatch {
+      url = "https://github.com/intel/linux-sgx-driver/commit/ed2c256929962db1a8805db53bed09bb8f2f4de3.patch";
+      sha256 = "sha256-MRbgS4U8FTCP1J1n+rhsvbXxKDytfl6B7YlT9Izq05U=";
+    })
   ];
 
   hardeningDisable = [ "pic" ];
@@ -46,8 +51,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/intel/linux-sgx-driver";
     license = with licenses; [ bsd3 /* OR */ gpl2Only ];
     maintainers = with maintainers; [ oxalica ];
-    platforms = platforms.linux;
-    # The driver is already in kernel >= 5.11.0.
-    broken = kernelAtLeast "5.11.0";
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 008205f5b15..5cece836b73 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -12,7 +12,7 @@
 # Configuration
 { lib, stdenv, version
 
-, features ? { grsecurity = false; xen_dom0 = false; }
+, features ? {}
 }:
 
 with lib;
@@ -42,7 +42,7 @@ let
       TIMER_STATS               = whenOlder "4.11" yes;
       DEBUG_NX_TEST             = whenOlder "4.11" no;
       DEBUG_STACK_USAGE         = no;
-      DEBUG_STACKOVERFLOW       = mkIf (!features.grsecurity) (option no);
+      DEBUG_STACKOVERFLOW       = option no;
       RCU_TORTURE_TEST          = no;
       SCHEDSTATS                = no;
       DETECT_HUNG_TASK          = yes;
@@ -443,7 +443,7 @@ let
       SECURITY_SELINUX_BOOTPARAM_VALUE = whenOlder "5.1" (freeform "0"); # Disable SELinux by default
       # Prevent processes from ptracing non-children processes
       SECURITY_YAMA                    = option yes;
-      DEVKMEM                          = mkIf (!features.grsecurity) no; # Disable /dev/kmem
+      DEVKMEM                          = no; # Disable /dev/kmem
 
       USER_NS                          = yes; # Support for user namespaces
 
@@ -523,7 +523,7 @@ let
     virtualisation = {
       PARAVIRT = option yes;
 
-      HYPERVISOR_GUEST = mkIf (!features.grsecurity) yes;
+      HYPERVISOR_GUEST = yes;
       PARAVIRT_SPINLOCKS  = option yes;
 
       KVM_APIC_ARCHITECTURE             = whenOlder "4.8" yes;
@@ -531,7 +531,7 @@ let
       KVM_COMPAT = { optional = true; tristate = whenBetween "4.0" "4.12" "y"; };
       KVM_DEVICE_ASSIGNMENT  = { optional = true; tristate = whenBetween "3.10" "4.12" "y"; };
       KVM_GENERIC_DIRTYLOG_READ_PROTECT = whenAtLeast "4.0"  yes;
-      KVM_GUEST                         = mkIf (!features.grsecurity) yes;
+      KVM_GUEST                         = yes;
       KVM_MMIO                          = yes;
       KVM_VFIO                          = yes;
       KSM = yes;
@@ -547,13 +547,8 @@ let
       VBOXGUEST = option no;
       DRM_VBOXVIDEO = option no;
 
-    } // optionalAttrs (stdenv.isx86_64 || stdenv.isi686) ({
-      XEN = option yes;
-
-      # XXX: why isn't this in the xen-dom0 conditional section below?
-      XEN_DOM0 = option yes;
-
-    } // optionalAttrs features.xen_dom0 {
+      XEN                         = option yes;
+      XEN_DOM0                    = option yes;
       PCI_XEN                     = option yes;
       HVC_XEN                     = option yes;
       HVC_XEN_FRONTEND            = option yes;
@@ -572,7 +567,7 @@ let
       XEN_SELFBALLOONING          = option yes;
       XEN_STUB                    = option yes;
       XEN_TMEM                    = option yes;
-    });
+    };
 
     media = {
       MEDIA_DIGITAL_TV_SUPPORT = yes;
@@ -715,7 +710,6 @@ let
       MD                 = yes;     # Device mapper (RAID, LVM, etc.)
 
       # Enable initrd support.
-      BLK_DEV_RAM       = yes;
       BLK_DEV_INITRD    = yes;
 
       PM_TRACE_RTC         = no; # Disable some expensive (?) features.
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 0a9c2d11fef..68a1fcdb0e6 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -46,7 +46,6 @@
                        stdenv.hostPlatform != stdenv.buildPlatform
 , extraMeta ? {}
 
-, isXen      ? features.xen_dom0 or false
 , isZen      ? false
 , isLibre    ? false
 , isHardened ? false
@@ -73,8 +72,6 @@ let
     efiBootStub = true;
     needsCifsUtils = true;
     netfilterRPFilter = true;
-    grsecurity = false;
-    xen_dom0 = false;
     ia32Emulation = true;
   } // features) kernelPatches;
 
@@ -178,7 +175,8 @@ let
 
   passthru = {
     features = kernelFeatures;
-    inherit commonStructuredConfig isXen isZen isHardened isLibre modDirVersion;
+    inherit commonStructuredConfig isZen isHardened isLibre modDirVersion;
+    isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true;
     kernelOlder = lib.versionOlder version;
     kernelAtLeast = lib.versionAtLeast version;
     passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 9580836ced8..0222fe5d5a7 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,32 +1,32 @@
 {
     "4.14": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.14.230-hardened1.patch",
-        "sha256": "1nhaqhjga042b69969f0jy680xlrgnms1178ni6c6xhxy6n7y4pq",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.230-hardened1/linux-hardened-4.14.230-hardened1.patch"
+        "name": "linux-hardened-4.14.231-hardened1.patch",
+        "sha256": "0camacpjlix1ajx2z1krsv7j5m9g7vaikp2qsa43w3xxgms1slp6",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.231-hardened1/linux-hardened-4.14.231-hardened1.patch"
     },
     "4.19": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.19.186-hardened1.patch",
-        "sha256": "01f8scgr3shjxl6w7jqyvb38idrs0m53cafpplvz1q69axaf9gy6",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.186-hardened1/linux-hardened-4.19.186-hardened1.patch"
+        "name": "linux-hardened-4.19.188-hardened1.patch",
+        "sha256": "1l5hmfzkp9aajj48xny2khrg54501m57llykp6p3vpg9hwh19j1q",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.188-hardened1/linux-hardened-4.19.188-hardened1.patch"
     },
     "5.10": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.10.29-hardened1.patch",
-        "sha256": "0aj46a6bhfgn8czpmaqpnggmxzfqz29kmh9kif4v3a546q5mrq7n",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.29-hardened1/linux-hardened-5.10.29-hardened1.patch"
+        "name": "linux-hardened-5.10.32-hardened1.patch",
+        "sha256": "0vl01f6kpb38qv9855x1c4fzih1xmfb1xby70dzfkp5bg53ms5r3",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.32-hardened1/linux-hardened-5.10.32-hardened1.patch"
     },
     "5.11": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.11.13-hardened1.patch",
-        "sha256": "008izyg6a2dycxczfixykshll5hq5gff216fhgl1azr4ymiicywy",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.13-hardened1/linux-hardened-5.11.13-hardened1.patch"
+        "name": "linux-hardened-5.11.16-hardened1.patch",
+        "sha256": "1fxf1qcqrvgywxnyywsbav80ys0y4c9qg6s8ygmplyjvncd9005l",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.11.16-hardened1/linux-hardened-5.11.16-hardened1.patch"
     },
     "5.4": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.4.111-hardened1.patch",
-        "sha256": "1zvhdyhvmzi58g07bsg8140nf9k29dzxlbqvha2sylnlj99sjjfd",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.111-hardened1/linux-hardened-5.4.111-hardened1.patch"
+        "name": "linux-hardened-5.4.114-hardened1.patch",
+        "sha256": "0zbn9x59m6b62c9hjp47xkg1qk8a489nd99px2g4i24mnhgan0kf",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.114-hardened1/linux-hardened-5.4.114-hardened1.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 5b6cc206e41..9ec576a1aa6 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.230";
+  version = "4.14.231";
 
   # 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,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1gn5cs1ss4bfsnnv0b2s4g5ibiigpzsx0i3qfswchdbxvdag75cw";
+    sha256 = "10k63vwibygdd6gzs4r6rncqqa0qf8cbnqznhbfsi41lxsnpjfsp";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index bab03ada980..b1140311b60 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.186";
+  version = "4.19.188";
 
   # 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,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0cg6ja7plry1l2mg6hx16lsw0gzn4xpj7xdrrs2hwl8l8a2dgifq";
+    sha256 = "0xq00mwgclk89bk5jpmncjnz7vsq353qrnc0cjp0n9mi4vqg375h";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 8efd28f06c6..2cc14e6cf67 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.266";
+  version = "4.4.267";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "00x2dmjiiv9zpc0vih9xqmf78kynqzj9q9v1chc2q2hcjpqfj31c";
+    sha256 = "1qk629fsl1glr0h1hxami3f4ivgl58iqsnw43slvn1yc91cb7ws4";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 3d58bf31d08..eb6ef73dd19 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.266";
+  version = "4.9.267";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0qzigcslfp714vaswwlw93xj0h2f8laikppw6krrhfnh5wwrp5dr";
+    sha256 = "0q0a49b3wsxk9mqyy8b55lr1gmiqxjpqh2nlhj4xwcfzd7z9lfwq";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index fd8d8f0b692..cd09eadea1d 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.29";
+  version = "5.10.32";
 
   # 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,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1v79wylb2kd9gadiqf7dr7jcgynr970bbga09mdn940sq536g30m";
+    sha256 = "1fnp0wyiswg8q4w89ssm1fz1ryfc1567fx08bz3fmf2cdqr8wkv4";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-5.11.nix b/pkgs/os-specific/linux/kernel/linux-5.11.nix
index 54ebe189486..6dc3a2772a0 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.11.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.11.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.11.13";
+  version = "5.11.16";
 
   # 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,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0yvgkc1fmmd4g06sydn51q4l3g5785q9yaaq04lv3kgj4hyijqgs";
+    sha256 = "0hqgai4r40xxlfqp1paxhn2g4i4yqvi1k473dddcxjrhs60kc5i1";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_11 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index c80c4ccea26..e18cf2e23fd 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.111";
+  version = "5.4.114";
 
   # 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,7 +13,7 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "00qs4y4d9adffwysdh8sly81hxc3rw7bi9vs3fs4rhwdclr62qi1";
+    sha256 = "0mwmvvz817zgxalb2xcx0i49smjag6j81vmqxp2kpwjqrf3z165y";
   };
 
   kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-lqx.nix b/pkgs/os-specific/linux/kernel/linux-lqx.nix
index cf295acd741..8d0333e8fd6 100644
--- a/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.11.13";
+  version = "5.11.16";
   suffix = "lqx1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1yx0l90happm6g2cx1ar4lbhfv3a2aalpwhjqyzc8b15af0h0ddv";
+    sha256 = "1j25r45arikjwyhbr72r1935pr7a8g2j6vshggywdiixvizvrx9b";
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index 215d36af81c..382588c157a 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.27-rt36"; # updated by ./update-rt.sh
+  version = "5.10.30-rt37"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr";
+    sha256 = "0h06lavcbbj9a4dfzca9sprghiq9z33q8i4gh3n2912wmjsnj0nl";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1bx023ibav6n2di3i2m8i6n4hp7h6zmz9bva7nqxdflbdwfsma1c";
+      sha256 = "1jibjfmjyn90n5jz5vq056n9xfzn9p8g9fsv7nmj5mfxxm4qhjal";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index 0aa63af52d8..37ea8ab86fd 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.106-rt54"; # updated by ./update-rt.sh
+  version = "5.4.109-rt56"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -14,14 +14,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1ny8b69ngydh0iw53jwlmqlgv31wjhkybkgnqi5kv0n174n3p1yc";
+    sha256 = "1vmpc6yrr2zm4m3naflwik5111jr8hy0mnyddwk31l0p4xbg8smc";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0xwbpn1k1b4bxq15sw7gicrzkfg32nkja308a5pcwx1ihv9khchf";
+      sha256 = "08cg8b7mwihs8zgdh0jwi8hrn3hnf9j0jyplsyc7644wd6mqby4a";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix
index 0aad78531ba..95f736d9418 100644
--- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix
+++ b/pkgs/os-specific/linux/kernel/linux-xanmod.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
 
 let
-  version = "5.11.13";
+  version = "5.11.16";
   suffix = "xanmod1-cacule";
 in
   buildLinux (args // rec {
@@ -12,7 +12,7 @@ in
       owner = "xanmod";
       repo = "linux";
       rev = modDirVersion;
-      sha256 = "sha256-LUbkccAfDS0/FnNhHn64bkC8qwBD0NKcdZRzNoSw4uA=";
+      sha256 = "sha256-sK2DGJsmKP/gvPyT8HWjPa21OOXydMhGjJzrOkPo71Q=";
       extraPostFetch = ''
         rm $out/.config
       '';
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 80bb0c7ae50..b28400819d5 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.11.13";
+  version = "5.11.16";
   suffix = "zen1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1m95kqi2njm4cdixy7rwmycdbg386nidrk3xr4qqm64wych9bqn8";
+    sha256 = "0jyicnpqccn194jrm1mc4zq0cil7ls9l57ws3nv783vlk7b0k3gv";
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 2fc63322f5b..e45b21ff35f 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -37,7 +37,6 @@ in {
   extraMeta ? {},
 
   # for module compatibility
-  isXen      ? features.xen_dom0 or false,
   isZen      ? false,
   isLibre    ? false,
   isHardened ? false,
@@ -94,7 +93,8 @@ let
       passthru = {
         inherit version modDirVersion config kernelPatches configfile
           moduleBuildDependencies stdenv;
-        inherit isXen isZen isHardened isLibre;
+        inherit isZen isHardened isLibre;
+        isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true;
         kernelOlder = lib.versionOlder version;
         kernelAtLeast = lib.versionAtLeast version;
       };
diff --git a/pkgs/os-specific/linux/kernel/update-rt.sh b/pkgs/os-specific/linux/kernel/update-rt.sh
index 8cac5929252..ccb01793342 100755
--- a/pkgs/os-specific/linux/kernel/update-rt.sh
+++ b/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -37,6 +37,7 @@ 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}' |
+        grep -v '\-rc' |
         tail -n 1
 }
 
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index 871e04648e4..47fa7c05e79 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, fetchurl, attr, perl
+{ stdenv, lib, buildPackages, fetchurl, attr, perl, runtimeShell
 , usePam ? !isStatic, pam ? null
 , isStatic ? stdenv.hostPlatform.isStatic
 }:
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   prePatch = ''
     # use full path to bash
-    substituteInPlace progs/capsh.c --replace "/bin/bash" "${stdenv.shell}"
+    substituteInPlace progs/capsh.c --replace "/bin/bash" "${runtimeShell}"
 
     # set prefixes
     substituteInPlace Make.Rules \
diff --git a/pkgs/os-specific/linux/libfabric/default.nix b/pkgs/os-specific/linux/libfabric/default.nix
index 0bc1ed123dc..9a1e44f6af9 100644
--- a/pkgs/os-specific/linux/libfabric/default.nix
+++ b/pkgs/os-specific/linux/libfabric/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.12.0";
+  version = "1.12.1";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OFp6nEW5D8vjglqLRbEgKryb2/KFuJD8Zn6rkpcuPh0=";
+    sha256 = "sha256-J2PoDwjPWYpagX4M2k9E1xitBzgRUZzwX9Gf00H+Tdc=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ] ;
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index 6582c6d8e8d..2c9239b2e7d 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -35,15 +35,16 @@ stdenv.mkDerivation rec {
     "MAN3DIR=$(man)/share/man/man3"
     "MAN5DIR=$(man)/share/man/man5"
     "MAN8DIR=$(man)/share/man/man8"
-    "PYTHON=${python3.pythonForBuild}/bin/python"
-    "PYTHONLIBDIR=$(py)/${python3.sitePackages}"
     "SBINDIR=$(bin)/sbin"
     "SHLIBDIR=$(out)/lib"
 
     "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a"
+  ] ++ optionals enablePython [
+    "PYTHON=${python3.pythonForBuild.interpreter}"
+    "PYTHONLIBDIR=$(py)/${python3.sitePackages}"
   ];
 
-  preInstall = ''
+  preInstall = optionalString enablePython ''
     mkdir -p $py/${python3.sitePackages}/selinux
   '';
 
diff --git a/pkgs/os-specific/linux/lm-sensors/default.nix b/pkgs/os-specific/linux/lm-sensors/default.nix
index 34ad80a6c00..21324a5d6ce 100644
--- a/pkgs/os-specific/linux/lm-sensors/default.nix
+++ b/pkgs/os-specific/linux/lm-sensors/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ lgpl21Plus gpl2Plus ];
     maintainers = with maintainers; [ pengmeiyu ];
     platforms = platforms.linux;
+    mainProgram = "sensors";
   };
 }
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 1da25db7ae3..765118be119 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -28,18 +28,18 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "460.67";
-      sha256_64bit = "L2cRySVw7mgYSN25mJV+b4uOeHTdjLGvFPEkwyFgtec=";
-      settingsSha256 = "DB+ZeKm6cYQuVkJWjVd71qOTOmwIcRqx1CxfkgMbDpg=";
-      persistencedSha256 = "HCmZZRlNhOHi5yN2lNHhBILZkdng73q0vCbv7CIX/8s=";
+      version = "460.73.01";
+      sha256_64bit = "120ymf59l6nipczszf82lrm2p4ihhqyv2pfwwfg9wy96vqcckc8i";
+      settingsSha256 = "08jh7g34p9yxv5fh1cw0r2pjx65ryiv3w2lk1qg0gxn2r7xypkx0";
+      persistencedSha256 = "040gx4wqp3hxcfb4aba4sl7b01ixr5slhzw0xldwcqlmhpwqphi5";
     }
     else legacy_390;
 
   beta = generic {
-    version = "460.27.04";
-    sha256_64bit = "plTqtc5QZQwM0f3MeMZV0N5XOiuSXCCDklL/qyy8HM8=";
-    settingsSha256 = "hU9J0VSrLXs7N14zq6U5LbBLZXEIyTfih/Bj6eFcMf0=";
-    persistencedSha256 = "PmqhoPskqhJe2FxMrQh9zX1BWQCR2kkfDwvA89+XALA=";
+    version = "465.27";
+    sha256_64bit = "fmn/qFve5qqqa26n4dsoOwGZ+ash5Bon3JBI8kncMXE=";
+    settingsSha256 = "3BFLCx0dcrQY4Mv1joMsiVPwTPyufgsNT5pFgp1Mk/A=";
+    persistencedSha256 = "HtoFGTiBnAeQyRTOMlve5poaQh63LHRD+DHJxZO+c90=";
   };
 
   # Vulkan developer beta driver
@@ -56,11 +56,11 @@ rec {
 
   # Last one supporting x86
   legacy_390 = generic {
-    version = "390.138";
-    sha256_32bit = "0y3qjygl0kfz9qs0rp9scn1k3l8ym9dib7wpkyh5gs4klcip7xkv";
-    sha256_64bit = "0rnnb5l4i8s76vlg6yvlrxhm2x9wdqw7k5hgf4fyaa3cr3k1kysz";
-    settingsSha256 = "0ad6hwl56nvbdv9g85lw7ywadqvc2gaq9x6d2vjcia9kg4vrmfqx";
-    persistencedSha256 = "15jciyq6i3pz1g67xzqlwmc62v3xswzhjcqmfcdndvlvhcibsimr";
+    version = "390.143";
+    sha256_32bit = "AelrdTTeo/3+ZdXK0iniZDB8gJUkeZQtNoRm25z+bQY=";
+    sha256_64bit = "tyKqcPM71ErK8ZZHLPtxmgrWzv6tfEmxBRveCSwTlO8=";
+    settingsSha256 = "EJPXZbxZS1CMENAYk9dCAIsHsRTXJpj473+JLuhGkWI=";
+    persistencedSha256 = "FtlPF3jCNr18NnImTmr8zJsaK9wbj/aWZ9LwoLr5SeE=";
   };
 
   legacy_340 = generic {
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 75453d955ad..2d325ab3d56 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -51,7 +51,7 @@ let
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = args.url or "https://download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run";
+          url = args.url or "https://us.download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run";
           sha256 = sha256_64bit;
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
index 5e8bb550cf9..3a306508488 100644
--- a/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchFromGitHub {
     owner = "linux-nvme";
     repo = "nvme-cli";
     rev = "v${version}";
-    sha256 = "1d538kp841bjh8h8d9q7inqz56rdcwb3m78zfx8607ddykv7wcqb";
+    sha256 = "0dpadz945482srqpsbfx1bh7rc499fgpyzz1flhk9g9xjbpapkzc";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -35,6 +35,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos tavyc ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
index cb5719c31a2..511dd162785 100644
--- a/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
+++ b/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -10,12 +10,12 @@
 
 buildGoModule rec {
   pname = "oci-seccomp-bpf-hook";
-  version = "1.2.1";
+  version = "1.2.3";
   src = fetchFromGitHub {
     owner = "containers";
     repo = "oci-seccomp-bpf-hook";
     rev = "v${version}";
-    sha256 = "0zbrpv6j4gd4l36zl2dljazdm85qlqwchf0xvmnaywcj8c8b49xw";
+    sha256 = "sha256-EKD6tkdQCPlVlb9ScvRwDxYAtbbv9PIqBHH6SvtPDsE=";
   };
   vendorSha256 = null;
 
@@ -56,6 +56,5 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ saschagrunert ];
     platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/pkgs/os-specific/linux/radeontop/default.nix b/pkgs/os-specific/linux/radeontop/default.nix
index e6aa07e6cd1..b172fad6adc 100644
--- a/pkgs/os-specific/linux/radeontop/default.nix
+++ b/pkgs/os-specific/linux/radeontop/default.nix
@@ -40,6 +40,5 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/clbr/radeontop";
     platforms = platforms.linux;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ rycee ];
   };
 }
diff --git a/pkgs/os-specific/linux/rtw88/default.nix b/pkgs/os-specific/linux/rtw88/default.nix
index 6b5e3211a9e..42302351240 100644
--- a/pkgs/os-specific/linux/rtw88/default.nix
+++ b/pkgs/os-specific/linux/rtw88/default.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation {
   pname = "rtw88";
-  version = "unstable-2021-04-01";
+  version = "unstable-2021-04-19";
 
   src = fetchFromGitHub {
     owner = "lwfinger";
     repo = "rtw88";
-    rev = "689ce370b0c2da207bb092065697f6cb455a00dc";
-    hash = "sha256-gdfQxpzYJ9bEObc2iEapA0TPMZuXndBvEu6qwKqdhyo=";
+    rev = "0f3cc6a5973bc386d9cb542fc85a6ba027edff5d";
+    hash = "sha256-PRzWXC1lre8gt1GfVdnaG836f5YK57P9a8tG20yef0w=";
   };
 
   makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
diff --git a/pkgs/os-specific/linux/sd-switch/default.nix b/pkgs/os-specific/linux/sd-switch/default.nix
index a58b7efa7b3..faa766ecd97 100644
--- a/pkgs/os-specific/linux/sd-switch/default.nix
+++ b/pkgs/os-specific/linux/sd-switch/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sd-switch";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitLab {
     owner = "rycee";
     repo = pname;
     rev = version;
-    sha256 = "1bhks4ma3sn95bsszs6lj9cwfr8zgmja0hqfp8xr5iq77ww2p6k3";
+    sha256 = "0sg1y8lb2pnll3408fbqp65acys31mrlzsqfrwm4nvbkayf0jcv3";
   };
 
-  cargoSha256 = "0lskxakzh3yji0rzk8jcfz1sv4j19b5kmdsaj7401m5w84s1cbjw";
+  cargoSha256 = "16yb61wihg06i2h9vjqcsjqkjjpmxyv4df22i25034gkcgb20xcn";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus ];
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index 0ff6fa1f341..e20023b2b6e 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, nixosTests, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt
-, libxml2 , docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison
+, libxml2 , docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison, runtimeShell
 , pam ? null, glibcCross ? null
 }:
 
@@ -38,8 +38,11 @@ stdenv.mkDerivation rec {
       # Obtain XML resources from XML catalog (patch adapted from gtk-doc)
       ./respect-xml-catalog-files-var.patch
       dots_in_usernames
+      ./runtime-shell.patch
     ];
 
+  RUNTIME_SHELL = runtimeShell;
+
   # The nix daemon often forbids even creating set[ug]id files.
   postPatch =
     ''sed 's/^\(s[ug]idperms\) = [0-9]755/\1 = 0755/' -i src/Makefile.am
@@ -77,6 +80,8 @@ stdenv.mkDerivation rec {
       mv $out/bin/su $su/bin
     '';
 
+  disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage;
+
   meta = with lib; {
     homepage = "https://github.com/shadow-maint";
     description = "Suite containing authentication-related tools such as passwd and su";
diff --git a/pkgs/os-specific/linux/shadow/runtime-shell.patch b/pkgs/os-specific/linux/shadow/runtime-shell.patch
new file mode 100644
index 00000000000..0b2e68e330e
--- /dev/null
+++ b/pkgs/os-specific/linux/shadow/runtime-shell.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index e4c6aaec..03883ad7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -682,7 +682,7 @@ if test "$enable_utmpx" = "yes"; then
+ 	          [Define if utmpx should be used])
+ fi
+ 
+-AC_DEFINE_UNQUOTED(SHELL, ["$SHELL"], [The default shell.])
++AC_DEFINE_UNQUOTED(SHELL, ["$RUNTIME_SHELL"], [The runtime shell.])
+ 
+ AM_GNU_GETTEXT_VERSION(0.16)
+ AM_GNU_GETTEXT([external], [need-ngettext])
diff --git a/pkgs/os-specific/linux/teck-udev-rules/default.nix b/pkgs/os-specific/linux/teck-udev-rules/default.nix
new file mode 100644
index 00000000000..eec5eac344e
--- /dev/null
+++ b/pkgs/os-specific/linux/teck-udev-rules/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, teck-programmer }:
+
+stdenv.mkDerivation {
+  pname = "teck-udev-rules";
+  version = lib.getVersion teck-programmer;
+
+  inherit (teck-programmer) src;
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    install 40-teck.rules -D -t $out/etc/udev/rules.d/
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "udev rules for TECK keyboards";
+    inherit (teck-programmer.meta) license;
+    maintainers = [ lib.maintainers.lourkeur ];
+  };
+}
diff --git a/pkgs/os-specific/linux/usbip/default.nix b/pkgs/os-specific/linux/usbip/default.nix
index 923eab71b7a..43c22a8fd12 100644
--- a/pkgs/os-specific/linux/usbip/default.nix
+++ b/pkgs/os-specific/linux/usbip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, kernel, udev, autoconf, automake, libtool, kernelOlder }:
+{ lib, stdenv, kernel, udev, autoconf, automake, libtool, hwdata, kernelOlder }:
 
 stdenv.mkDerivation {
   name = "usbip-${kernel.name}";
@@ -22,10 +22,12 @@ stdenv.mkDerivation {
     ./autogen.sh
   '';
 
+  configureFlags = [ "--with-usbids-dir=${hwdata}/share/hwdata/" ];
+
   meta = with lib; {
     homepage = "https://github.com/torvalds/linux/tree/master/tools/usb/usbip";
     description = "allows to pass USB device from server to client over the network";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Only gpl2Plus ];
     platforms = platforms.linux;
     broken = kernelOlder "4.10";
   };
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index d7629f0df04..73f321f2631 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,22 +1,17 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, zlib, shadow
+{ lib, stdenv, fetchurl, pkg-config, zlib, shadow, libcap_ng
 , ncurses ? null, perl ? null, pam, systemd ? null, minimal ? false }:
 
 stdenv.mkDerivation rec {
   pname = "util-linux";
-  version = "2.36.1";
+  version = "2.36.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vbyydl1b13lx73di4bhc4br9ih24hcqv7bky0kyrn1c2x1c5yh9";
+    sha256 = "0psc0asjp1rmfx1j7468zfnk9nphlphybw2n8dcl74v8v2lnnlgp";
   };
 
   patches = [
     ./rtcwake-search-PATH-for-shutdown.patch
-    # Remove patch below in 2.36.2, see https://github.com/karelzak/util-linux/issues/1193
-    (fetchpatch {
-      url = "https://github.com/karelzak/util-linux/commit/52f730e47869ce630fafb24fd46f755dc7ffc691.patch";
-      sha256 = "1fz3p9127lfvmrdj1j1s8jds0jjz2dzkvmia66555ihv7hcfajbg";
-    })
   ];
 
   outputs = [ "bin" "dev" "out" "man" ];
@@ -57,7 +52,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
-    [ zlib pam ]
+    [ zlib pam libcap_ng ]
     ++ lib.filter (p: p != null) [ ncurses systemd perl ];
 
   doCheck = false; # "For development purpose only. Don't execute on production system!"
@@ -71,7 +66,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.kernel.org/pub/linux/utils/util-linux/";
     description = "A set of system utilities for Linux";
-    license = licenses.gpl2; # also contains parts under more permissive licenses
+    changelog = "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${lib.versions.majorMinor version}/v${version}-ReleaseNotes";
+    # https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/README.licensing
+    license = with licenses; [ gpl2Only gpl2Plus gpl3Plus lgpl21Plus bsd3 bsdOriginalUC publicDomain ];
     platforms = platforms.linux;
     priority = 6; # lower priority than coreutils ("kill") and shadow ("login" etc.) packages
   };
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 15c8df3cb13..adfd0cda819 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -157,7 +157,7 @@ let
         done
       '';
 
-      outputs = [ "out" ] ++ optionals buildUser [ "lib" "dev" ];
+      outputs = [ "out" ] ++ optionals buildUser [ "dev" ];
 
       passthru = {
         inherit enableMail;
@@ -210,9 +210,9 @@ in {
     kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.12";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2.0.4";
+    version = "2.1.0-rc4";
 
-    sha256 = "sha256-ySTt0K3Lc0Le35XTwjiM5l+nIf9co7wBn+Oma1r8YHo=";
+    sha256 = "sha256-eakOEA7LCJOYDsZH24Y5JbEd2wh1KfCN+qX3QxQZ4e8=";
 
     isUnstable = true;
   };
diff --git a/pkgs/os-specific/windows/libgnurx/default.nix b/pkgs/os-specific/windows/libgnurx/default.nix
index 85a3c463a28..e760bddabfb 100644
--- a/pkgs/os-specific/windows/libgnurx/default.nix
+++ b/pkgs/os-specific/windows/libgnurx/default.nix
@@ -10,6 +10,11 @@ in stdenv.mkDerivation rec {
     sha256 = "0xjxcxgws3bblybw5zsp9a4naz2v5bs1k3mk8dw00ggc0vwbfivi";
   };
 
+  # file looks for libgnurx.a when compiling statically
+  postInstall = lib.optionalString stdenv.hostPlatform.isStatic ''
+    ln -s $out/lib/libgnurx{.dll.a,.a}
+  '';
+
   meta = {
     platforms = lib.platforms.windows;
   };
diff --git a/pkgs/servers/asterisk/default.nix b/pkgs/servers/asterisk/default.nix
index 86017314ae7..be0cd877458 100644
--- a/pkgs/servers/asterisk/default.nix
+++ b/pkgs/servers/asterisk/default.nix
@@ -74,7 +74,7 @@ let
     meta = with lib; {
       description = "Software implementation of a telephone private branch exchange (PBX)";
       homepage = "https://www.asterisk.org/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Only;
       maintainers = with maintainers; [ auntie DerTim1 yorickvp ];
     };
   };
@@ -105,8 +105,8 @@ in rec {
   asterisk = asterisk_18;
 
   asterisk_13 = common {
-    version = "13.38.0";
-    sha256 = "1kxff6pbry8nydkspi0mqllidz2lw3d3g3r127x8jwgx021x0rik";
+    version = "13.38.2";
+    sha256 = "1v7wgsa9vf7qycg3xpvmn2bkandkfh3x15pr8ylg0w0gvfkkf5b9";
     externals = {
       "externals_cache/pjproject-2.10.tar.bz2" = pjproject_2_10;
       "addons/mp3" = mp3-202;
@@ -114,8 +114,8 @@ in rec {
   };
 
   asterisk_16 = common {
-    version = "16.15.0";
-    sha256 = "12nc7ywm6w1xyn720kdc1sqz5wkjjrkxr25wisl02f4v5wz8py7m";
+    version = "16.17.0";
+    sha256 = "1bzlsk9k735qf8a693b6sa548my7m9ahavmdicwmc14px70wrvnw";
     externals = {
       "externals_cache/pjproject-2.10.tar.bz2" = pjproject_2_10;
       "addons/mp3" = mp3-202;
@@ -123,8 +123,8 @@ in rec {
   };
 
   asterisk_17 = common {
-    version = "17.9.0";
-    sha256 = "1fnm1z7g45m883ivkm36r4kqb7163bzazi70mwf0fc2rc28jd1z4";
+    version = "17.9.3";
+    sha256 = "0nhk0izrxx24pz806fwnhidjmciwrkcrsvxvhrdvibiqyvfk8yk7";
     externals = {
       "externals_cache/pjproject-2.10.tar.bz2" = pjproject_2_10;
       "addons/mp3" = mp3-202;
@@ -132,8 +132,8 @@ in rec {
   };
 
   asterisk_18 = common {
-    version = "18.1.0";
-    sha256 = "1pq2nrf60xnvh2h1rv82bdfbxxxd277g68xas0vbfgr4531gc4nc";
+    version = "18.3.0";
+    sha256 = "1xb953i9ay82vcdv8izi5dd5xnspcsvg10ajiyph377jw2xnd5fb";
     externals = {
       "externals_cache/pjproject-2.10.tar.bz2" = pjproject_2_10;
       "addons/mp3" = mp3-202;
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 1356f1c7a07..24da18c4a87 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.9.2";
+  version = "0.9.4";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "16mh7v8z5ijr75pvavcj6225w6bg12qy1d1w9vm2d5axnfm3wfbk";
+    sha256 = "1qnzjqpwsvanfhd1yn5789yx4d3ijk9983llm0w5xnjz6rmcxrw5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index f24a1f32f88..53db5f7ed0b 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -53,7 +53,6 @@ python3.pkgs.buildPythonApplication rec {
     iso-639
     pypdf2
     requests
-    singledispatch
     sqlalchemy
     tornado
     unidecode
diff --git a/pkgs/servers/clickhouse/default.nix b/pkgs/servers/clickhouse/default.nix
index 063964b2f6a..02c0b4aa5e5 100644
--- a/pkgs/servers/clickhouse/default.nix
+++ b/pkgs/servers/clickhouse/default.nix
@@ -70,6 +70,9 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  # Builds in 7+h with 2 cores, and ~20m with a big-parallel builder.
+  requiredSystemFeatures = [ "big-parallel" ];
+
   meta = with lib; {
     homepage = "https://clickhouse.tech/";
     description = "Column-oriented database management system";
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index cc00f4cf0ce..fd1b14e6158 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.9.4";
+  version = "1.9.5";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "1ck55i8snpm583p21y1hac0w76wiwyjpgfxkzscd4whp2jnzhhif";
+    sha256 = "sha256-CKezHuCbL1I79gDz7ZQiSgPbSXo0NtssQro2MqqmeXw=";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorSha256 = "0y744zpj49zvn5vqqb9wmfs1fs0lir71h2kcmhidmn9j132vg1bq";
+  vendorSha256 = "sha256-YqrW3PeFv1Y6lmjVmMMP0SZao57iPqfut3a1afIWkI0=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix
index 5b4270a0a1c..97b9f12b8f9 100644
--- a/pkgs/servers/corosync/default.nix
+++ b/pkgs/servers/corosync/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, nss, nspr, libqb
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, kronosnet, nss, nspr, libqb
 , dbus, rdma-core, libstatgrab, net-snmp
 , enableDbus ? false
 , enableInfiniBandRdma ? false
@@ -10,17 +10,17 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "corosync";
-  version = "2.4.5";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "http://build.clusterlabs.org/corosync/releases/${pname}-${version}.tar.gz";
-    sha256 = "0pxs18vci9kq3qnqsg5i1h35jrxxiccwbm0mzja3g8j3izdsyvmb";
+    sha256 = "sha256-eAypUbDeGa3GKF/wJ602dyTW5FlkvjWeCRXT6h0d4zw=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
   buildInputs = [
-    nss nspr libqb
+    kronosnet nss nspr libqb
   ] ++ optional enableDbus dbus
     ++ optional enableInfiniBandRdma rdma-core
     ++ optional enableMonitoring libstatgrab
@@ -45,6 +45,8 @@ stdenv.mkDerivation rec {
     "LOGROTATEDIR=$(out)/etc/logrotate.d"
   ];
 
+  enableParallelBuilding = true;
+
   preConfigure = optionalString enableInfiniBandRdma ''
     # configure looks for the pkg-config files
     # of librdmacm and libibverbs
@@ -61,13 +63,11 @@ stdenv.mkDerivation rec {
       --prefix PATH ":" "$out/sbin:${libqb}/sbin"
   '';
 
-  enableParallelBuilding = true;
-
   meta = {
     homepage = "http://corosync.org/";
     description = "A Group Communication System with features for implementing high availability within applications";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ montag451 ];
+    maintainers = with maintainers; [ montag451 ryantm ];
   };
 }
diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix
index 6a8c6541c2c..a48215a57d5 100644
--- a/pkgs/servers/dico/default.nix
+++ b/pkgs/servers/dico/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dico";
-  version = "2.10";
+  version = "2.11";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0qag47mzs00d53hnrmh381r0jay42766vp5xrffmzmsn2307x8vl";
+    sha256 = "sha256-rB+Y4jPQ+srKrBBZ87gThKVZLib9TDCCrtAD9l4lLFo=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 5077ff98ecf..99366d24439 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.16.13";
+  version = "9.16.15";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-pUzHk/pbabNfYQ8glXYPgjjf9c/VJBn37hycIn2kzAg=";
+    sha256 = "0fbqisrh84f8wszm94cqp7v8q9r7pql3qyzbay7vz9vqv0rg9dlq";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index fff18486ab0..e6468ef550f 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "1kzmliim2pwh04y3y6bpai9fm0qmdicrmff09fv5h5wahi4pzfdh";
+    sha256 = "01dypbqq6ynrdr3dqwbz8dzpkd2ykgaz9mqhaz3i1hqc21c14hgq";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/gemini/agate/default.nix b/pkgs/servers/gemini/agate/default.nix
index a52e759bb35..b41153caeb8 100644
--- a/pkgs/servers/gemini/agate/default.nix
+++ b/pkgs/servers/gemini/agate/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "sha256-+X1ibnYAUB34u8+oNBSkjLtsArxlrg0Nq5zJrXi7Rfk=";
   };
 
-  cargoSha256 = "sha256-ZVu7wQFe+FHWX2wevVYct1dQSE9rFET8bkmv85wNV8A=";
+  cargoSha256 = "sha256-EOxklOiazxhhIIv6c+N4uuItY/oFMAG0r/ATZ3Anlko=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix
index f805d45b212..7b100b692a3 100644
--- a/pkgs/servers/home-assistant/appdaemon.nix
+++ b/pkgs/servers/home-assistant/appdaemon.nix
@@ -3,79 +3,61 @@
 , fetchFromGitHub
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      astral = super.astral.overridePythonAttrs (oldAttrs: rec {
-        version = "1.10.1";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1wbvnqffbgh8grxm07cabdpahlnyfq91pyyaav432cahqi1p59nj";
-        };
-      });
-
-      bcrypt = super.bcrypt.overridePythonAttrs (oldAttrs: rec {
-        version = "3.1.7";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "CwBpx1LsFBcsX3ggjxhj161nVab65v527CyA0TvkHkI=";
-        };
-      });
-
-      yarl = super.yarl.overridePythonAttrs (oldAttrs: rec {
-        version = "1.4.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "WM2cRp7O1VjNgao/SEspJOiJcEngaIno/yUQQ1t+90s=";
-        };
-      });
-    };
-  };
-
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "appdaemon";
-  version = "4.0.5";
-  disabled = python.pythonOlder "3.6";
+  version = "4.0.8";
+  disabled = python3.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "AppDaemon";
     repo = pname;
     rev = version;
-    sha256 = "7o6DrTufAC+qK3dDfpkuQMQWuduCZ6Say/knI4Y07QM=";
+    sha256 = "04a4qx0rbx2vpkzpibmwkpy7fawa6dbgqlrllryrl7dchbrf703q";
   };
 
-  propagatedBuildInputs = with python.pkgs; [
-    daemonize astral requests websocket_client aiohttp yarl jinja2
-    aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt setuptools
-    deepdiff dateutil bcrypt python-socketio pid pytz sockjs pygments
-    azure-mgmt-compute azure-mgmt-storage azure-mgmt-resource azure-keyvault-secrets azure-storage-blob
-  ];
-
-  # no tests implemented
-  doCheck = false;
-
+  # relax dependencies
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "pyyaml==5.3" "pyyaml" \
-      --replace "pid==2.2.5" "pid" \
-      --replace "Jinja2==2.11.1" "Jinja2" \
-      --replace "pytz==2019.3" "pytz" \
-      --replace "aiohttp==3.6.2" "aiohttp>=3.6" \
-      --replace "iso8601==0.1.12" "iso8601>=0.1" \
-      --replace "azure==4.0.0" "azure-mgmt-compute
-    azure-mgmt-storage
-    azure-mgmt-resource
+      --replace "deepdiff==5.2.3" "deepdiff" \
+      --replace "pygments==2.8.1" "pygments"
+    sed -i 's/==/>=/' requirements.txt
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiodns
+    aiohttp
+    aiohttp-jinja2
+    astral
     azure-keyvault-secrets
-    azure-storage-blob" \
-      --replace "sockjs==0.10.0" "sockjs" \
-      --replace "deepdiff==4.3.1" "deepdiff" \
-      --replace "voluptuous==0.11.7" "voluptuous" \
-      --replace "python-socketio==4.4.0" "python-socketio" \
-      --replace "feedparser==5.2.1" "feedparser>=5.2.1" \
-      --replace "aiohttp_jinja2==1.2.0" "aiohttp_jinja2>=1.2.0" \
-      --replace "pygments==2.6.1" "pygments>=2.6.1" \
-      --replace "paho-mqtt==1.5.0" "paho-mqtt>=1.5.0" \
-      --replace "websocket-client==0.57.0" "websocket-client>=0.57.0"
+    azure-mgmt-compute
+    azure-mgmt-resource
+    azure-mgmt-storage
+    azure-storage-blob
+    bcrypt
+    cchardet
+    deepdiff
+    feedparser
+    iso8601
+    jinja2
+    paho-mqtt
+    pid
+    pygments
+    python-dateutil
+    python-engineio
+    python-socketio
+    pytz
+    pyyaml
+    requests
+    sockjs
+    uvloop
+    voluptuous
+    websocket_client
+    yarl
+  ];
+
+  # no tests implemented
+  checkPhase = ''
+    $out/bin/appdaemon -v | grep -q "${version}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 5e2e70c85fe..cf8c0641bc7 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2021.4.4";
+  version = "2021.4.6";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -32,7 +32,7 @@
     "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
     "analytics" = ps: with ps; [ aiohttp-cors ];
-    "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam
+    "android_ip_webcam" = ps: with ps; [ pydroid-ipcam ];
     "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ];
     "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
     "anthemav" = ps: with ps; [ ]; # missing inputs: anthemav
@@ -90,7 +90,7 @@
     "blueprint" = ps: with ps; [ ];
     "bluesound" = ps: with ps; [ xmltodict ];
     "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
-    "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; # missing inputs: pybluez
+    "bluetooth_tracker" = ps: with ps; [ bt_proximity pybluez ];
     "bme280" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
     "bme680" = ps: with ps; [ bme680 smbus-cffi ];
     "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
@@ -131,7 +131,7 @@
     "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase
     "color_extractor" = ps: with ps; [ ]; # missing inputs: colorthief
     "comed_hourly_pricing" = ps: with ps; [ ];
-    "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect
+    "comfoconnect" = ps: with ps; [ pycomfoconnect ];
     "command_line" = ps: with ps; [ ];
     "concord232" = ps: with ps; [ ]; # missing inputs: concord232
     "config" = ps: with ps; [ aiohttp-cors ];
@@ -187,7 +187,7 @@
     "doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy
     "dovado" = ps: with ps; [ ]; # missing inputs: dovado
     "downloader" = ps: with ps; [ ];
-    "dsmr" = ps: with ps; [ ]; # missing inputs: dsmr_parser
+    "dsmr" = ps: with ps; [ dsmr-parser ];
     "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "dte_energy_bridge" = ps: with ps; [ ];
     "dublin_bus_transport" = ps: with ps; [ ];
@@ -351,7 +351,7 @@
     "hitron_coda" = ps: with ps; [ ];
     "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
     "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
-    "home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
+    "home_connect" = ps: with ps; [ aiohttp-cors homeconnect ];
     "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
     "homeassistant" = ps: with ps; [ ];
     "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
@@ -373,7 +373,7 @@
     "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
     "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
     "hydrawise" = ps: with ps; [ hydrawiser ];
-    "hyperion" = ps: with ps; [ ]; # missing inputs: hyperion-py
+    "hyperion" = ps: with ps; [ hyperion-py ];
     "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
     "iaqualink" = ps: with ps; [ iaqualink ];
     "icloud" = ps: with ps; [ pyicloud ];
@@ -573,7 +573,7 @@
     "number" = ps: with ps; [ ];
     "nut" = ps: with ps; [ ]; # missing inputs: pynut2
     "nws" = ps: with ps; [ pynws ];
-    "nx584" = ps: with ps; [ ]; # missing inputs: pynx584
+    "nx584" = ps: with ps; [ pynx584 ];
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
     "obihai" = ps: with ps; [ ]; # missing inputs: pyobihai
@@ -583,14 +583,14 @@
     "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
     "omnilogic" = ps: with ps; [ omnilogic ];
     "onboarding" = ps: with ps; [ aiohttp-cors pillow ];
-    "ondilo_ico" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ondilo
+    "ondilo_ico" = ps: with ps; [ aiohttp-cors ondilo ];
     "onewire" = ps: with ps; [ ]; # missing inputs: pi1wire pyownet
     "onkyo" = ps: with ps; [ onkyo-eiscp ];
     "onvif" = ps: with ps; [ ha-ffmpeg zeep ]; # missing inputs: WSDiscovery onvif-zeep-async
     "openalpr_cloud" = ps: with ps; [ ];
     "openalpr_local" = ps: with ps; [ ];
     "opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless
-    "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api
+    "openerz" = ps: with ps; [ openerz-api ];
     "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
     "openexchangerates" = ps: with ps; [ ];
     "opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
@@ -692,7 +692,7 @@
     "rituals_perfume_genie" = ps: with ps; [ pyrituals ];
     "rmvtransport" = ps: with ps; [ PyRMVtransport ];
     "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
-    "roku" = ps: with ps; [ ]; # missing inputs: rokuecp
+    "roku" = ps: with ps; [ rokuecp ];
     "roomba" = ps: with ps; [ roombapy ];
     "roon" = ps: with ps; [ ]; # missing inputs: roonapi
     "route53" = ps: with ps; [ boto3 ];
@@ -750,17 +750,17 @@
     "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
     "skybell" = ps: with ps; [ skybellpy ];
-    "slack" = ps: with ps; [ ]; # missing inputs: slackclient
+    "slack" = ps: with ps; [ slackclient ];
     "sleepiq" = ps: with ps; [ sleepyq ];
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ pysma ];
     "smappee" = ps: with ps; [ aiohttp-cors pysmappee ];
     "smart_meter_texas" = ps: with ps; [ ]; # missing inputs: smart-meter-texas
     "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab
-    "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings
+    "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa pysmartapp pysmartthings ];
     "smarttub" = ps: with ps; [ python-smarttub ];
     "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
-    "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg
+    "smhi" = ps: with ps; [ smhi-pkg ];
     "sms" = ps: with ps; [ python-gammu ];
     "smtp" = ps: with ps; [ ];
     "snapcast" = ps: with ps; [ snapcast ];
@@ -984,6 +984,6 @@
     "zone" = ps: with ps; [ ];
     "zoneminder" = ps: with ps; [ zm-py ];
     "zwave" = ps: with ps; [ aiohttp-cors homeassistant-pyozw paho-mqtt pydispatcher python-openzwave-mqtt ];
-    "zwave_js" = ps: with ps; [ aiohttp-cors ]; # missing inputs: zwave-js-server-python
+    "zwave_js" = ps: with ps; [ aiohttp-cors zwave-js-server-python ];
   };
 }
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index fed9d61114c..cb455738080 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -23,10 +23,23 @@ let
     # Override the version of some packages pinned in Home Assistant's setup.py
 
     # Pinned due to API changes in astral>=2.0, required by the sun/moon plugins
-    # https://github.com/home-assistant/core/issues/36636
+    # https://github.com/home-assistant/core/pull/48573; Remove >= 2021.5
     (mkOverride "astral" "1.10.1"
       "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1")
 
+    # Pinned due to API changes in brother>=1.0, remove >= 2021.5
+    (self: super: {
+      brother = super.brother.overridePythonAttrs (oldAttrs: rec {
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "bieniu";
+          repo = "brother";
+          rev = version;
+          sha256 = "sha256-vIefcL3K3ZbAUxMFM7gbbTFdrnmufWZHcq4OA19SYXE=";
+        };
+      });
+    })
+
     # Pinned due to API changes in iaqualink>=2.0, remove after
     # https://github.com/home-assistant/core/pull/48137 was merged
     (self: super: {
@@ -42,7 +55,16 @@ let
       });
     })
 
+    # Pinned due to API changes in pyjwt>=2.0
+    (mkOverride "pyjwt" "1.7.1"
+      "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd")
+
+    # Pinned due to API changes in pykmtronic>=0.2.0
+    (mkOverride "pykmtronic" "0.0.3"
+      "sha256-8bxn27DU1XUQUxQFJklEge29DHx1DMu7pJG4hVE1jDU=")
+
     # Pinned due to API changes in pylilterbot>=2021.3.0
+    # https://github.com/home-assistant/core/pull/48300; Remove >= 2021.5
     (self: super: {
       pylitterbot = super.pylitterbot.overridePythonAttrs (oldAttrs: rec {
         version = "2021.2.8";
@@ -108,7 +130,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.4.4";
+  hassVersion = "2021.4.6";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -127,7 +149,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "1p36ymjhirl32ax3xxdg9ia089jw1klww5imq18r6ksajafr78ys";
+    sha256 = "1s1slwcqls2prz9kgyhggs8xi3x7ghwdi33j983kvpg0gva7d2f0";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
@@ -204,12 +226,14 @@ in with py.pkgs; buildPythonApplication rec {
     "axis"
     "bayesian"
     "binary_sensor"
+    "brother"
     "caldav"
     "calendar"
     "camera"
     "cast"
     "climate"
     "cloud"
+    "comfoconnect"
     "command_line"
     "config"
     "configurator"
@@ -226,6 +250,7 @@ in with py.pkgs; buildPythonApplication rec {
     "devolo_home_control"
     "dhcp"
     "discovery"
+    "dsmr"
     "econet"
     "emulated_hue"
     "esphome"
@@ -250,6 +275,7 @@ in with py.pkgs; buildPythonApplication rec {
     "hddtemp"
     "history"
     "history_stats"
+    "home_connect"
     "home_plus_control"
     "homekit"
     "homekit_controller"
@@ -259,6 +285,7 @@ in with py.pkgs; buildPythonApplication rec {
     "html5"
     "http"
     "hue"
+    "hyperion"
     "iaqualink"
     "ifttt"
     "image"
@@ -273,6 +300,7 @@ in with py.pkgs; buildPythonApplication rec {
     "intent_script"
     "ipp"
     "kmtronic"
+    "knx"
     "kodi"
     "light"
     "litterrobot"
@@ -304,7 +332,10 @@ in with py.pkgs; buildPythonApplication rec {
     "notify"
     "notion"
     "number"
+    "nx584"
     "omnilogic"
+    "ondilo_ico"
+    "openerz"
     "ozw"
     "panel_custom"
     "panel_iframe"
@@ -321,6 +352,7 @@ in with py.pkgs; buildPythonApplication rec {
     "rest_command"
     "rituals_perfume_genie"
     "rmvtransport"
+    "roku"
     "rss_feed_template"
     "ruckus_unleashed"
     "safe_mode"
@@ -334,7 +366,10 @@ in with py.pkgs; buildPythonApplication rec {
     "simulated"
     "sleepiq"
     "sma"
+    "smhi"
     "sensor"
+    "slack"
+    "smartthings"
     "smarttub"
     "smtp"
     "smappee"
@@ -377,6 +412,7 @@ in with py.pkgs; buildPythonApplication rec {
     "zha"
     "zone"
     "zwave"
+    "zwave_js"
   ];
 
   pytestFlagsArray = [
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index eeb117a984e..b6ff5662f9e 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -124,7 +124,10 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional
     for name in names:
         # treat "-" and "_" equally
         name = re.sub("[-_]", "[-_]", name)
-        pattern = re.compile("^python\\d\\.\\d-{}-\\d".format(name), re.I)
+        # python(minor).(major)-(pname)-(version or unstable-date)
+        # we need the version qualifier, or we'll have multiple matches
+        # (e.g. pyserial and pyserial-asyncio when looking for pyserial)
+        pattern = re.compile("^python\\d\\.\\d-{}-(?:\\d|unstable-.*)".format(name), re.I)
         for attr_path, package in packages.items():
             if pattern.match(package["name"]):
                 attr_paths.add(attr_path)
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index e6ecbb86860..57c0e22d8af 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -38,7 +38,7 @@ buildBazelPackage rec {
 
   patches = [
     # Quiche needs to be updated to compile under newer GCC.
-    # This is a manual backport of http://github.com/envoyproxy/envoy/pull/13949.
+    # This is a manual backport of https://github.com/envoyproxy/envoy/pull/13949.
     ./0001-quiche-update-QUICHE-tar-13949.patch
 
     # upb needs to be updated to compile under newer GCC.
diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix
index 920a3299929..33c556fb54a 100644
--- a/pkgs/servers/http/gitlab-pages/default.nix
+++ b/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.35.0";
+  version = "1.38.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-5AkzbOutBXy59XvMwfyH6A8ETwjP2QokG/Rz31/nCpk=";
+    sha256 = "sha256-QaqZGTkNAzQEqlwccAWPDP91BSc9vRDEsCBca/lEXW4=";
   };
 
-  vendorSha256 = "sha256-g8FDWpZmbZSkJAzoEiI8/JZLTTgG7uJ4sS35axaEXLY=";
+  vendorSha256 = "sha256-uuwuiGQWLIQ5UJuCKDBEvCPo2+AXtJ54ARK431qiakc=";
   subPackages = [ "." ];
-  doCheck = false; # Broken
 
   meta = with lib; {
     description = "Daemon used to serve static websites for GitLab users";
     homepage = "https://gitlab.com/gitlab-org/gitlab-pages";
+    changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ das_j ];
+    maintainers = with maintainers; [ ajs124 das_j ];
   };
 }
diff --git a/pkgs/servers/http/jetty/default.nix b/pkgs/servers/http/jetty/default.nix
index 1a43f259282..a8c45c48872 100644
--- a/pkgs/servers/http/jetty/default.nix
+++ b/pkgs/servers/http/jetty/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.37.v20210219";
+  version = "9.4.39.v20210325";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
-    sha256 = "sha256-Jyg0cQBnwYtcVJnr2uWwE/9yC3wq+CLTTGKtv3BsZs8=";
+    sha256 = "0mn3ranh599w946cnykj7sbkj4w7ddpdhly7njmalsgabfbk8qv5";
   };
 
   dontBuild = true;
@@ -15,10 +15,11 @@ stdenv.mkDerivation rec {
     mv etc lib modules start.ini start.jar $out
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A Web server and javax.servlet container";
     homepage = "https://www.eclipse.org/jetty/";
-    platforms = lib.platforms.all;
-    license = [ lib.licenses.asl20 lib.licenses.epl10 ];
+    platforms = platforms.all;
+    license = with licenses; [ asl20 epl10 ];
+    maintainers = with maintainers; [ emmanuelrosa ];
   };
 }
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index d249d47a215..663193789a5 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -142,7 +142,10 @@ stdenv.mkDerivation {
 
   passthru = {
     modules = modules;
-    tests.nginx = nixosTests.nginx;
+    tests = {
+      inherit (nixosTests) nginx nginx-auth nginx-etag nginx-pubhtml nginx-sandbox nginx-sso;
+      variants = lib.recurseIntoAttrs nixosTests.nginx-variants;
+    };
   };
 
   meta = if meta != null then meta else {
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 0409f6a26ea..b7a11fc240d 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.9";
-  sha256 = "0hfqqyfgqa6wqazmb3d434nb3r5p8szfisa0m6nfh9lqdbqdyd9f";
+  version = "1.20.0";
+  sha256 = "072dn2qhgx20y4pfa3mi97qszbifhcnwj28ccin4iamwivn93vsl";
 }
diff --git a/pkgs/servers/http/nginx/quic.nix b/pkgs/servers/http/nginx/quic.nix
new file mode 100644
index 00000000000..38a4bd9cdf4
--- /dev/null
+++ b/pkgs/servers/http/nginx/quic.nix
@@ -0,0 +1,24 @@
+{ callPackage
+, fetchhg
+, ...
+} @ args:
+
+callPackage ./generic.nix args {
+  src = fetchhg {
+    url = "https://hg.nginx.org/nginx-quic";
+    rev = "12f18e0bca09"; # branch=quic
+    sha256 = "1lr6zlny26kamczgk8ddscmy5fp5mzxqcppwhjhvq1a029a0r4b7";
+  };
+
+  preConfigure = ''
+    ln -s auto/configure configure
+  '';
+
+  configureFlags = [
+    "--with-http_v3_module"
+    "--with-http_quic_module"
+    "--with-stream_quic_module"
+  ];
+
+  version = "quic";
+}
diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix
index c08615ef512..5972177204f 100644
--- a/pkgs/servers/http/nginx/stable.nix
+++ b/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix args {
-  version = "1.18.0";
-  sha256 = "16azscl74ym1far0s0p6xsjin1k1cm4wk80i9x5d74dznmx3wdsc";
+  version = "1.20.0";
+  sha256 = "072dn2qhgx20y4pfa3mi97qszbifhcnwj28ccin4iamwivn93vsl";
 }
diff --git a/pkgs/servers/http/tengine/default.nix b/pkgs/servers/http/tengine/default.nix
index 01e5c0950dc..d7c8ea226fe 100644
--- a/pkgs/servers/http/tengine/default.nix
+++ b/pkgs/servers/http/tengine/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, openssl, zlib, pcre, libxml2, libxslt
-, substituteAll, gd, geoip, gperftools, jemalloc
+, substituteAll, gd, geoip, gperftools, jemalloc, nixosTests
 , withDebug ? false
 , withMail ? false
 , withStream ? false
@@ -111,6 +111,11 @@ stdenv.mkDerivation rec {
     mv $out/sbin $out/bin
   '';
 
+  passthru = {
+    inherit modules;
+    tests = nixosTests.nginx-variants.tengine;
+  };
+
   meta = {
     description = "A web server based on Nginx and has many advanced features, originated by Taobao";
     homepage    = "https://tengine.taobao.org";
diff --git a/pkgs/servers/irc/robustirc-bridge/default.nix b/pkgs/servers/irc/robustirc-bridge/default.nix
index 2530c72cbb9..bc42fd12629 100644
--- a/pkgs/servers/irc/robustirc-bridge/default.nix
+++ b/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -24,6 +24,5 @@ buildGoModule rec {
     homepage = "https://robustirc.net/";
     license = licenses.bsd3;
     maintainers = [ maintainers.hax404 ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/jellyfin/10.5.x.nix b/pkgs/servers/jellyfin/10.5.x.nix
deleted file mode 100644
index 9bece72566f..00000000000
--- a/pkgs/servers/jellyfin/10.5.x.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnetCorePackages, ffmpeg,
-  fontconfig, freetype, nixosTests }:
-
-let
-  os = if stdenv.isDarwin then "osx" else "linux";
-  arch =
-    with stdenv.hostPlatform;
-    if isx86_32 then "x86"
-    else if isx86_64 then "x64"
-    else if isAarch32 then "arm"
-    else if isAarch64 then "arm64"
-    else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown";
-  musl = lib.optionalString stdenv.hostPlatform.isMusl
-    (if (arch != "x64")
-      then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-"
-      else "musl-");
-  runtimeDir = "${os}-${musl}${arch}";
-
-in stdenv.mkDerivation rec {
-  pname = "jellyfin";
-  version = "10.5.5";
-
-  # Impossible to build anything offline with dotnet
-  src = fetchurl {
-    url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
-    sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
-  };
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [
-    makeWrapper
-  ];
-
-  propagatedBuildInputs = [
-    dotnetCorePackages.aspnetcore_3_1
-    sqlite
-  ];
-
-  preferLocalBuild = true;
-
-  installPhase = ''
-    install -dm 755 "$out/opt/jellyfin"
-    cp -r * "$out/opt/jellyfin"
-    makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
-        sqlite fontconfig freetype stdenv.cc.cc.lib
-      ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \
-      --add-flags "$out/opt/jellyfin/jellyfin.dll --ffmpeg ${ffmpeg}/bin/ffmpeg"
-  '';
-
-  passthru.tests = {
-    smoke-test = nixosTests.jellyfin;
-  };
-
-  meta =  with lib; {
-    description = "The Free Software Media System";
-    homepage = "https://jellyfin.org/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ nyanloutre minijackson ];
-  };
-}
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 92f31126e81..77406c46415 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -11,19 +11,18 @@ let
     else if isAarch64 then "arm64"
     else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown";
   musl = lib.optionalString stdenv.hostPlatform.isMusl
-    (if (arch != "x64")
-      then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-"
-      else "musl-");
+    (lib.warnIf (arch != "x64") "Some image processing features might be unavailable for non x86-64 with Musl"
+      "musl-");
   runtimeDir = "${os}-${musl}${arch}";
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.7.1";
+  version = "10.7.2";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
     url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
-    sha256 = "sha256-pgFksZz0sD73uZDyUIhdFCgHPo67ZZiwklafyemJFGs=";
+    sha256 = "sha256-l2tQmKez06cekq/QLper+OrcSU/0lWpZ85xY2wZcK1s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/ma1sd/default.nix b/pkgs/servers/ma1sd/default.nix
index 5947d18eb9e..46578019194 100644
--- a/pkgs/servers/ma1sd/default.nix
+++ b/pkgs/servers/ma1sd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, jre, git, gradle, perl, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, jre, git, gradle_6, perl, makeWrapper }:
 
 let
   name = "ma1sd-${version}";
@@ -16,7 +16,7 @@ let
   deps = stdenv.mkDerivation {
     name = "${name}-deps";
     inherit src;
-    nativeBuildInputs = [ gradle perl git ];
+    nativeBuildInputs = [ gradle_6 perl git ];
 
     buildPhase = ''
       export MA1SD_BUILD_VERSION=${rev}
@@ -41,7 +41,7 @@ let
 in
 stdenv.mkDerivation {
   inherit name src version;
-  nativeBuildInputs = [ gradle perl makeWrapper ];
+  nativeBuildInputs = [ gradle_6 perl makeWrapper ];
   buildInputs = [ jre ];
 
   buildPhase = ''
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index eb3f8bf19cb..a20068767e5 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
   pname = "fts-xapian";
-  version = "1.4.7";
+  version = "1.4.9";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "K2d1FFAilIggNuP0e698s+9bN08x2s/0Jryp7pmeixc=";
+    sha256 = "0p4ps9h24vr9bldrcf9cdx6l4rdz5i8zyc58qp10h7cc3jilwddy";
   };
 
   buildInputs = [ dovecot xapian icu64 ];
@@ -28,8 +28,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/grosjo/fts-xapian";
     description = "Dovecot FTS plugin based on Xapian";
-    license = licenses.lgpl21;
-    maintainers = with maintainers; [ julm ];
+    changelog = "https://github.com/grosjo/fts-xapian/releases";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ julm symphorien ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
index 7f1e02fd76e..392239a7140 100644
--- a/pkgs/servers/mail/mailman/default.nix
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -54,6 +54,6 @@ buildPythonPackage rec {
     homepage = "https://www.gnu.org/software/mailman/";
     description = "Free software for managing electronic mail discussion and newsletter lists";
     license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ peti ];
+    maintainers = with lib.maintainers; [ peti qyliss ];
   };
 }
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index 054d9dcf91a..99eae786cbf 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -9,12 +9,12 @@ buildPythonPackage rec {
   pname = "HyperKitty";
   # Note: Mailman core must be on the latest version before upgrading HyperKitty.
   # See: https://gitlab.com/mailman/postorius/-/issues/516#note_544571309
-  version = "1.3.3";
+  version = "1.3.4";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p85r9q6mn5as5b39xp9hkkipnk0156acx540n2ygk3qb3jd4a5n";
+    sha256 = "1lbh8n66fp3l5s0xvmvsbfvgs3z4knx0gwf0q117n2nfkslf13zp";
   };
 
   nativeBuildInputs = [ isort ];
@@ -42,6 +42,6 @@ buildPythonPackage rec {
     description = "Archiver for GNU Mailman v3";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ peti globin ];
+    maintainers = with lib.maintainers; [ peti globin qyliss ];
   };
 }
diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix
index 189e152fce0..222a21bcb7f 100644
--- a/pkgs/servers/mail/mailman/postorius.nix
+++ b/pkgs/servers/mail/mailman/postorius.nix
@@ -23,6 +23,6 @@ buildPythonPackage rec {
     homepage = "https://docs.mailman3.org/projects/postorius";
     description = "Web-based user interface for managing GNU Mailman";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ globin peti ];
+    maintainers = with maintainers; [ globin peti qyliss ];
   };
 }
diff --git a/pkgs/servers/mail/mailman/web.nix b/pkgs/servers/mail/mailman/web.nix
index 2f1e9cd251e..434f5b3191e 100644
--- a/pkgs/servers/mail/mailman/web.nix
+++ b/pkgs/servers/mail/mailman/web.nix
@@ -14,18 +14,25 @@ buildPythonPackage rec {
     leaveDotGit = true;
   };
 
-  # This is just so people installing from pip also get uwsgi
-  # installed, AFAICT.
-
-  # Django is depended on transitively by hyperkitty and postorius,
-  # and mailman_web has overly restrictive version bounds on it, so
-  # let's remove it.
   postPatch = ''
+    # This is just so people installing from pip also get uwsgi
+    # installed, AFAICT.
     sed -i '/^  uwsgi$/d' setup.cfg
+
+    # Django is depended on transitively by hyperkitty and postorius,
+    # and mailman_web has overly restrictive version bounds on it, so
+    # let's remove it.
     sed -i '/^  Django/d' setup.cfg
+
+    # Upstream seems to mostly target installing on top of existing
+    # distributions, and uses a path appropriate for that, but we are
+    # a distribution, so use a state directory appropriate for a
+    # distro package.
+    substituteInPlace mailman_web/settings/base.py \
+        --replace /opt/mailman/web /var/lib/mailman-web
   '';
 
-  nativeBuildInputs = [ git setuptools-scm makeWrapper ];
+  nativeBuildInputs = [ git makeWrapper setuptools-scm ];
   propagatedBuildInputs = [ hyperkitty postorius whoosh ];
 
   # Tries to check runtime configuration.
diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix
index ab2bdae0add..6a9fc815fd9 100644
--- a/pkgs/servers/mail/opensmtpd/default.nix
+++ b/pkgs/servers/mail/opensmtpd/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     "--with-auth-pam"
     "--without-auth-bsdauth"
     "--with-path-socket=/run"
+    "--with-path-pidfile=/run"
     "--with-user-smtpd=smtpd"
     "--with-user-queue=smtpq"
     "--with-group-queue=smtpq"
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 6862507c629..579ce383319 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -26,11 +26,11 @@ in stdenv.mkDerivation rec {
 
   pname = "postfix";
 
-  version = "3.5.9";
+  version = "3.5.10";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz";
-    sha256 = "0avn00drmk9c9mjynfvcmir72ss9s3mckdhjm3mmnhas2sixbkji";
+    sha256 = "sha256-W7TX1y11ErWPOjFCbcvTlP01TgpD3iHaiUZrBXoCKPg=";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
@@ -103,7 +103,6 @@ in stdenv.mkDerivation rec {
     description = "A fast, easy to administer, and secure mail server";
     license = with licenses; [ ipl10 epl20 ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ globin ];
+    maintainers = with maintainers; [ globin dotlambda ];
   };
-
 }
diff --git a/pkgs/servers/mail/spamassassin/default.nix b/pkgs/servers/mail/spamassassin/default.nix
index 03a135d6c76..cc06cc6ee6d 100644
--- a/pkgs/servers/mail/spamassassin/default.nix
+++ b/pkgs/servers/mail/spamassassin/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, perlPackages, makeWrapper, gnupg }:
+{ lib, fetchurl, perlPackages, makeWrapper, gnupg, re2c, gcc, gnumake }:
 
 perlPackages.buildPerlPackage rec {
   pname = "SpamAssassin";
@@ -29,7 +29,7 @@ perlPackages.buildPerlPackage rec {
     mv "rules/"* $out/share/spamassassin/
 
     for n in "$out/bin/"*; do
-      wrapProgram "$n" --prefix PERL5LIB : "$PERL5LIB" --prefix PATH : "${gnupg}/bin"
+      wrapProgram "$n" --prefix PERL5LIB : "$PERL5LIB" --prefix PATH : ${lib.makeBinPath [ gnupg re2c gcc gnumake ]}
     done
   '';
 
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 468c46b1269..b54ad76e8f7 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -12,11 +12,11 @@ let
 in
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.30.0";
+  version = "1.32.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ca69v479537bbj2hjliwk9zzy9fqqsf7fm188k6xxj0a37q9y41";
+    sha256 = "sha256-Biwj/zORBsU8XvpMMlSjR3Nqx0q1LqaSX/vX+UDeXI8=";
   };
 
   patches = [
diff --git a/pkgs/servers/mautrix-signal/default.nix b/pkgs/servers/mautrix-signal/default.nix
new file mode 100644
index 00000000000..2bf69a63061
--- /dev/null
+++ b/pkgs/servers/mautrix-signal/default.nix
@@ -0,0 +1,55 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "mautrix-signal";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = "mautrix-signal";
+    rev = "v${version}";
+    sha256 = "11snsl7i407855h39g1fgk26hinnq0inr8sjrgd319li0d3jwzxl";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    CommonMark
+    aiohttp
+    asyncpg
+    attrs
+    mautrix
+    phonenumbers
+    pillow
+    prometheus_client
+    pycryptodome
+    python-olm
+    python_magic
+    qrcode
+    ruamel_yaml
+    unpaddedbase64
+    yarl
+  ];
+
+  doCheck = false;
+
+  postInstall = ''
+    mkdir -p $out/bin
+
+    # Make a little wrapper for running mautrix-signal with its dependencies
+    echo "$mautrixSignalScript" > $out/bin/mautrix-signal
+    echo "#!/bin/sh
+      exec python -m mautrix_signal \"$@\"
+    " > $out/bin/mautrix-signal
+    chmod +x $out/bin/mautrix-signal
+    wrapProgram $out/bin/mautrix-signal \
+      --set PATH ${python3Packages.python}/bin \
+      --set PYTHONPATH "$PYTHONPATH"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/tulir/mautrix-signal";
+    description = "A Matrix-Signal puppeting bridge";
+    license = licenses.agpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 3fed8691ec5..b0d7f1048bc 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio";
-  version = "2021-04-06T23-11-00Z";
+  version = "2021-04-22T15-44-28Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-gwf6qA63EFxGQxk8DiAiqLpIYVhVQDQYPffLNP5JfVw=";
+    sha256 = "147a4vgf2hdpbndska443axzvxx56bmc0011m3cq4ca1vm783k8q";
   };
 
-  vendorSha256 = "sha256-VeYc+UtocpeNSV+0MocZj/83X/SMMv5PX2cPIPBV/sk=";
+  vendorSha256 = "0qj1zab97q8s5gy7a304wqi832y8m083cnk8hllz8lz9yjcw6q92";
 
   doCheck = false;
 
diff --git a/pkgs/servers/misc/podgrab/default.nix b/pkgs/servers/misc/podgrab/default.nix
new file mode 100644
index 00000000000..a5fd230d48f
--- /dev/null
+++ b/pkgs/servers/misc/podgrab/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
+
+buildGoModule rec {
+  pname = "podgrab";
+  version = "unstable-2021-04-14";
+
+  src = fetchFromGitHub {
+    owner = "akhilrex";
+    repo = pname;
+    rev = "3179a875b8b638fb86d0e829d12a9761c1cd7f90";
+    sha256 = "sha256-vhxIm20ZUi+RusrAsSY54tv/D570/oMO5qLz9dNqgqo=";
+  };
+
+  vendorSha256 = "sha256-xY9xNuJhkWPgtqA/FBVIp7GuWOv+3nrz6l3vaZVLlIE=";
+
+  postInstall = ''
+    mkdir -p $out/share/
+    cp -r $src/client $out/share/
+    cp -r $src/webassets $out/share/
+  '';
+
+  passthru.tests = { inherit (nixosTests) podgrab; };
+
+  meta = with lib; {
+    description = "A self-hosted podcast manager to download episodes as soon as they become live";
+    homepage = "https://github.com/akhilrex/podgrab";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+}
diff --git a/pkgs/servers/monitoring/alertmanager-bot/default.nix b/pkgs/servers/monitoring/alertmanager-bot/default.nix
index 1eaaf01578f..9fb364de191 100644
--- a/pkgs/servers/monitoring/alertmanager-bot/default.nix
+++ b/pkgs/servers/monitoring/alertmanager-bot/default.nix
@@ -17,6 +17,12 @@ buildGoModule rec {
     sed "s;/templates/default.tmpl;$out/share&;" -i cmd/alertmanager-bot/main.go
   '';
 
+  preBuild = ''
+    export buildFlagsArray=(
+      "-ldflags=-s -w -X main.Version=v${version} -X main.Revision=${src.rev}"
+    )
+  '';
+
   postInstall = ''
     install -Dm644 -t $out/share/templates $src/default.tmpl
   '';
diff --git a/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix b/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
index 07e58e471d8..50cf5a00164 100644
--- a/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
+++ b/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "alertmanager-irc-relay";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "alertmanager-irc-relay";
     rev = "v${version}";
-    sha256 = "sha256-SmyKk0vSXfHzRxOdbULD2Emju/VjDcXZZ7cgVbZxGIA=";
+    sha256 = "sha256-02uEvcxT5+0OJtqOyuQjgkqL0fZnN7umCSxBqAVPT9U=";
   };
 
-  vendorSha256 = "sha256-aJVA9MJ9DK/dCo7aSB9OLfgKGN5L6Sw2k2aOR4J2LE4=";
+  vendorSha256 = "sha256-VLG15IXS/fXFMTCJKEqGW6qZ9aOLPhazidVsOywG+w4=";
 
   buildFlagsArray = [ "-ldflags=-s -w" ];
 
diff --git a/pkgs/servers/monitoring/mackerel-agent/default.nix b/pkgs/servers/monitoring/mackerel-agent/default.nix
index 8051602489c..38c93248b5b 100644
--- a/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -37,6 +37,5 @@ buildGoModule rec {
     homepage = "https://github.com/mackerelio/mackerel-agent";
     license = licenses.asl20;
     maintainers = with maintainers; [ midchildan ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix b/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
index 06cd0cf9b2d..fb2d9c5f4e7 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "check_systemd";
-  version = "2.2.1";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "Josef-Friedrich";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04r14dhqzrdndn235dvr6afy4s4g4asynsgvj99cmyq55nah4asn";
+    sha256 = "11sc0gycxzq1vfvin501jnwnky2ky6ns64yjiw8vq9vmkbf8nni6";
   };
 
   propagatedBuildInputs = with python3Packages; [ nagiosplugin ];
@@ -29,6 +29,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "Nagios / Icinga monitoring plugin to check systemd for failed units";
     inherit (src.meta) homepage;
+    changelog = "https://github.com/Josef-Friedrich/check_systemd/releases";
     maintainers = with maintainers; [ symphorien ];
     license = licenses.lgpl2Only;
     platforms = platforms.linux;
diff --git a/pkgs/servers/monitoring/prometheus/unbound-exporter.nix b/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
new file mode 100644
index 00000000000..6b26379bf26
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
@@ -0,0 +1,30 @@
+{ lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, nixosTests }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "unbound-telemetry";
+  version = "unstable-2021-03-17";
+
+  src = fetchFromGitHub {
+    owner = "svartalf";
+    repo = pname;
+    rev = "7f1b6d4e9e4b6a3216a78c23df745bcf8fc84021";
+    sha256 = "xCelL6WGaTRhDJkkUdpdwj1zcKKAU2dyUv3mHeI4oAw=";
+  };
+
+  cargoSha256 = "P3nAtYOuwNSLMP7q1L5zKTsZ6rJA/qL1mhVHzP3szi4=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  passthru.tests = {
+    inherit (nixosTests.prometheus-exporters) unbound;
+  };
+
+  meta = with lib; {
+    description = "Prometheus exporter for Unbound DNS resolver";
+    homepage = "https://github.com/svartalf/unbound-telemetry";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index 285db02e1cc..37a4b3e87da 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.18.0";
+  version = "1.18.1";
 
   excludedPackages = "test";
 
@@ -12,7 +12,7 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "sha256-1sFl+F3g2anssW59eKbjPdVCIyGq8JuoJGXVQZys854=";
+    sha256 = "sha256-iFigbnqUXWQrhDovwQYZsr8llkB9553c5LgcKJ78yZ4=";
   };
 
   vendorSha256 = "sha256-m53S/L71nyioCBbIDDAWEnqStBdqTFGq16y5ozsXq1c=";
diff --git a/pkgs/servers/mxisd/default.nix b/pkgs/servers/mxisd/default.nix
deleted file mode 100644
index b2ea5420809..00000000000
--- a/pkgs/servers/mxisd/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, jre, git, gradle, perl, makeWrapper }:
-
-let
-  name = "mxisd-${version}";
-  version = "1.4.6";
-  rev = "6e9601cb3a18281857c3cefd20ec773023b577d2";
-
-  src = fetchFromGitHub {
-    inherit rev;
-    owner = "kamax-matrix";
-    repo = "mxisd";
-    sha256 = "07gpdgbz281506p2431qn92bvdza6ap3jfq5b7xdm7nwrry80pzd";
-  };
-
-
-  deps = stdenv.mkDerivation {
-    name = "${name}-deps";
-    inherit src;
-    nativeBuildInputs = [ gradle perl git ];
-
-    buildPhase = ''
-      export MXISD_BUILD_VERSION=${rev}
-      export GRADLE_USER_HOME=$(mktemp -d);
-      gradle --no-daemon build -x test
-    '';
-
-     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
-    installPhase = ''
-      find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \
-        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
-        | sh
-    '';
-
-    dontStrip = true;
-
-    outputHashAlgo = "sha256";
-    outputHashMode = "recursive";
-    outputHash = "0z9f3w7lfdvbk26kyckpbgas7mi98rjghck9w0kvx3r7k48p5vnv";
-  };
-
-in
-stdenv.mkDerivation {
-  inherit name src version;
-  nativeBuildInputs = [ gradle perl makeWrapper ];
-  buildInputs = [ jre ];
-
-  patches = [ ./0001-gradle.patch ];
-
-  buildPhase = ''
-    export MXISD_BUILD_VERSION=${rev}
-    export GRADLE_USER_HOME=$(mktemp -d)
-
-    sed -ie "s#REPLACE#mavenLocal(); maven { url '${deps}' }#g" build.gradle
-    gradle --offline --no-daemon build -x test
-  '';
-
-  installPhase = ''
-    install -D build/libs/source.jar $out/lib/mxisd.jar
-    makeWrapper ${jre}/bin/java $out/bin/mxisd --add-flags "-jar $out/lib/mxisd.jar"
-  '';
-
-  meta = with lib; {
-    description = "a federated matrix identity server";
-    homepage = "https://github.com/kamax-matrix/mxisd";
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ mguentner ];
-    platforms = platforms.all;
-  };
-
-}
diff --git a/pkgs/servers/nosql/influxdb/default.nix b/pkgs/servers/nosql/influxdb/default.nix
index a178d43d231..98bd45516e2 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "influxdb";
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cL+QaUGMElYd6P+xXkQgRnL8BKo2C95bhCwy59kRnwo=";
+    sha256 = "sha256-qKkCTsSUejqJhMzAgFJYMGalAUepUaP/caocRwnKflg=";
   };
 
-  vendorSha256 = "sha256-v4CEkhQiETeU6i186XIE/8z4T71gdKL+6W7sQ7/2RuI=";
+  vendorSha256 = "sha256-t7uwrsrF4LYdRjOhwdsCouDJXvD9364Ma5gvKezvi5o=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index b9809a9a105..48dcbb8f813 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, lua, pkg-config, systemd, nixosTests
+{ lib, stdenv, fetchurl, lua, pkg-config, nixosTests
+, withSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isMusl, systemd
 , tlsSupport ? true, openssl
 }:
 
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ lua ]
-    ++ lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isMusl) systemd
+    ++ lib.optional withSystemd systemd
     ++ lib.optionals tlsSupport [ openssl ];
   # More cross-compiling fixes.
   # Note: this enables libc malloc as a temporary fix for cross-compiling.
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
   # It's weird that the build isn't failing because of failure to compile dependencies, it's from failure to link them!
   makeFlags = [ "PREFIX=$(out)" ]
     ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "AR=${stdenv.cc.targetPrefix}ar" "RANLIB=${stdenv.cc.targetPrefix}ranlib" "MALLOC=libc" ]
-    ++ lib.optional (stdenv.isLinux && !stdenv.hostPlatform.isMusl) ["USE_SYSTEMD=yes"]
+    ++ lib.optional withSystemd [ "USE_SYSTEMD=yes" ]
     ++ lib.optionals tlsSupport [ "BUILD_TLS=yes" ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/oauth2_proxy/default.nix b/pkgs/servers/oauth2-proxy/default.nix
index 7c2bcbe4740..7c2bcbe4740 100644
--- a/pkgs/servers/oauth2_proxy/default.nix
+++ b/pkgs/servers/oauth2-proxy/default.nix
diff --git a/pkgs/servers/ombi/default.nix b/pkgs/servers/ombi/default.nix
index bbad311edda..a2ffc449d47 100644
--- a/pkgs/servers/ombi/default.nix
+++ b/pkgs/servers/ombi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, patchelf, openssl, libunwind, zlib, krb5, icu, nixosTests }:
+{ lib, stdenv, fetchurl, makeWrapper, autoPatchelfHook, fixDarwinDylibNames, zlib, krb5, openssl, icu, nixosTests }:
 
 let
   os = if stdenv.isDarwin then "osx" else "linux";
@@ -10,20 +10,14 @@ let
     "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-Cuvz9Mhwpg8RIaiSXib+QW00DM66qPRQulrchRL2BSk=";
-    arm64-linux_hash = "sha256-uyVwa73moHWMZScNNSOU17lALuK3PC/cvTZPJ9qg7JQ=";
-    x64-osx_hash = "sha256-FGXLsfEuCW94D786LJ/wvA9TakOn5sG2M1rDXPQicYw=";
+    x64-linux_hash = "sha256-9m5vWobkibqOHsuIJmvEHuwsuJogvQQe8h0dvFj62tw=";
+    arm64-linux_hash = "sha256-OBm4j5Ez04XLjp4DHyOrwSOSGanuuI8g2y2wZaotH8M=";
+    x64-osx_hash = "sha256-UPf6Yl0nbhmiWq9oGyi7sRhlahB6zHL7nTj7GRlKoII=";
   }."${arch}-${os}_hash";
 
-  rpath = lib.makeLibraryPath [
-    stdenv.cc.cc openssl libunwind zlib krb5 icu
-  ];
-
-  dynamicLinker = stdenv.cc.bintools.dynamicLinker;
-
 in stdenv.mkDerivation rec {
   pname = "ombi";
-  version = "4.0.1292";
+  version = "4.0.1345";
 
   sourceRoot = ".";
 
@@ -32,25 +26,20 @@ in stdenv.mkDerivation rec {
     sha256 = hash;
   };
 
-  buildInputs = [ makeWrapper patchelf ];
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ]
+    ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+
+  propagatedBuildInputs = [ stdenv.cc.cc zlib krb5 ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/${pname}-${version}}
     cp -r * $out/share/${pname}-${version}
 
     makeWrapper $out/share/${pname}-${version}/Ombi $out/bin/Ombi \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ openssl icu ]} \
       --run "cd $out/share/${pname}-${version}"
   '';
 
-  dontPatchELF = true;
-  postFixup = ''
-    patchelf --set-interpreter "${dynamicLinker}" \
-      --set-rpath "$ORIGIN:${rpath}" $out/share/${pname}-${version}/Ombi
-
-    find $out -type f -name "*.so" -exec \
-      patchelf --set-rpath '$ORIGIN:${rpath}' {} ';'
-  '';
-
   passthru = {
     updateScript = ./update.sh;
     tests.smoke-test = nixosTests.ombi;
diff --git a/pkgs/servers/quagga/default.nix b/pkgs/servers/quagga/default.nix
deleted file mode 100644
index c3c69fa79b6..00000000000
--- a/pkgs/servers/quagga/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ lib, stdenv, fetchurl, libcap, libnl, readline, net-snmp, less, perl, texinfo,
-  pkg-config, c-ares }:
-
-stdenv.mkDerivation rec {
-  pname = "quagga";
-  version = "1.2.4";
-
-  src = fetchurl {
-    url = "mirror://savannah/quagga/${pname}-${version}.tar.gz";
-    sha256 = "1lsksqxij5f1llqn86pkygrf5672kvrqn1kvxghi169hqf1c0r73";
-  };
-
-  buildInputs =
-    [ readline net-snmp c-ares ]
-    ++ lib.optionals stdenv.isLinux [ libcap libnl ];
-
-  nativeBuildInputs = [ pkg-config perl texinfo ];
-
-  configureFlags = [
-    "--sysconfdir=/etc/quagga"
-    "--localstatedir=/run/quagga"
-    "--sbindir=$(out)/libexec/quagga"
-    "--disable-exampledir"
-    "--enable-user=quagga"
-    "--enable-group=quagga"
-    "--enable-configfile-mask=0640"
-    "--enable-logfile-mask=0640"
-    "--enable-vtysh"
-    "--enable-vty-group=quaggavty"
-    "--enable-snmp"
-    "--enable-multipath=64"
-    "--enable-rtadv"
-    "--enable-irdp"
-    "--enable-opaque-lsa"
-    "--enable-ospf-te"
-    "--enable-pimd"
-    "--enable-isis-topology"
-  ];
-
-  preConfigure = ''
-    substituteInPlace vtysh/vtysh.c --replace \"more\" \"${less}/bin/less\"
-  '';
-
-  postInstall = ''
-    rm -f $out/bin/test_igmpv3_join
-    mv -f $out/libexec/quagga/ospfclient $out/bin/
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "Quagga BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite";
-    longDescription = ''
-      GNU Quagga is free software which manages TCP/IP based routing protocols.
-      It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, and RIPng as
-      well as the IPv6 versions of these.
-
-      As the predecessor Zebra has been considered orphaned, the Quagga project
-      has been formed by members of the zebra mailing list and the former
-      zebra-pj project to continue developing.
-
-      Quagga uses threading if the kernel supports it, but can also run on
-      kernels that do not support threading. Each protocol has its own daemon.
-
-      It is more than a routed replacement, it can be used as a Route Server and
-      a Route Reflector.
-    '';
-    homepage = "https://www.nongnu.org/quagga/";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ tavyc ];
-  };
-}
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index bd781d869e9..25f4d4b69c0 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -1,14 +1,20 @@
-{ lib, python3 }:
+{ lib, python3, fetchFromGitHub, nixosTests }:
 
 python3.pkgs.buildPythonApplication rec {
-  pname = "Radicale";
+  pname = "radicale";
   version = "3.0.6";
 
-  src = python3.pkgs.fetchPypi {
-    inherit pname version;
-    sha256 = "a9433d3df97135d9c02cec8dde4199444daf1b73ad161ded398d67b8e629fdc6";
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = version;
+    sha256 = "1xlsvrmx6jhi71j6j8z9sli5vwxasivzjyqf8zq8r0l5p7350clf";
   };
 
+  postPatch = ''
+    sed -i '/addopts/d' setup.cfg
+  '';
+
   propagatedBuildInputs = with python3.pkgs; [
     defusedxml
     passlib
@@ -18,14 +24,14 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   checkInputs = with python3.pkgs; [
-    pytestrunner
-    pytest
-    pytestcov
-    pytest-flake8
-    pytest-isort
+    pytestCheckHook
     waitress
   ];
 
+  passthru.tests = {
+    inherit (nixosTests) radicale;
+  };
+
   meta = with lib; {
     homepage = "https://www.radicale.org/3.0.html";
     description = "CalDAV and CardDAV server";
diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix
index 6bedb891b57..8c5f5c0e402 100644
--- a/pkgs/servers/rippled/default.nix
+++ b/pkgs/servers/rippled/default.nix
@@ -31,8 +31,8 @@ let
 
   nudb = fetchgit rec {
     url = "https://github.com/CPPAlliance/NuDB.git";
-    rev = "2.0.3";
-    sha256 = "0imd9sh6knydwa3pxa5bbvjs3bmb8650dnsvj04qgns6bynwlqh1";
+    rev = "2.0.5";
+    sha256 = "02zbd07qvdjjsm4ivvhxah5n466bncvm6m03vmq0qdbbrlnp6s37";
     leaveDotGit = true;
     fetchSubmodules = true;
     postFetch = "cd $out && git tag ${rev}";
@@ -40,8 +40,8 @@ let
 
   rocksdb = fetchgit rec {
     url = "https://github.com/facebook/rocksdb.git";
-    rev = "v6.5.3";
-    sha256 = "11kbwqph1i3w6rbhr0kl2aq4jidhai24gw420y9qi9ab7zl0zcqg";
+    rev = "v6.7.3";
+    sha256 = "16qb636qs2yxqmz30hmvq8mllf038s80p37b0vyc0bazwlr93d9z";
     deepClone = true;
     fetchSubmodules = false;
     leaveDotGit = true;
@@ -116,12 +116,12 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "rippled";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchgit {
     url = "https://github.com/ripple/rippled.git";
     rev = version;
-    sha256 = "176i3dm98zp5jllslpzfhh52bd2lapq9i8r7m45v8sg9icvsmyz7";
+    sha256 = "1rr5kxks9hsxyxrz90dw259b6fs9lywdlqv0bj2g21a6f7g60v2v";
     leaveDotGit = true;
     fetchSubmodules = true;
   };
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 145a1927f2c..3fcb8af65e2 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -11,15 +11,15 @@
 , zlib
 }: stdenv.mkDerivation rec {
   name = "roon-server";
-  version = "100800753";
+  version = "100800790";
 
   # N.B. The URL is unstable. I've asked for them to provide a stable URL but
   # they have ignored me. If this package fails to build for you, you may need
   # to update the version and sha256.
   # c.f. https://community.roonlabs.com/t/latest-roon-server-is-not-available-for-download-on-nixos/118129
   src = fetchurl {
-    url = "https://web.archive.org/web/20210209195555/https://download.roonlabs.com/builds/RoonServer_linuxx64.tar.bz2";
-    sha256 = "sha256-uas1vqIDWlYr7jgsrlBeJSPjMxwzVnrkCD9jJljkFZs=";
+    url = "https://web.archive.org/web/20210428204513/https://download.roonlabs.com/builds/RoonServer_linuxx64.tar.bz2";
+    sha256 = "1jhj52fmkdgr9qfang1i9qrl1z56h56x07k31n3kllknkv02lc8p";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index ea6fd939457..6ba221f8baf 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "11.0.0";
+  version = "11.0.1";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "sha256-kgQAFa4Orvfms/trjaMrXULYy7nV+nsmLPpyZAq3cDY=";
+    sha256 = "sha256-Ap5DdOf3PVctMAYCP0Xr4VjqO5yEWqrKX6FbId8/FMQ=";
   };
 
   buildInputs = with lib;
diff --git a/pkgs/servers/simple-http-server/default.nix b/pkgs/servers/simple-http-server/default.nix
new file mode 100644
index 00000000000..d93b4664019
--- /dev/null
+++ b/pkgs/servers/simple-http-server/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "simple-http-server";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "TheWaWaR";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "01a129i1ph3m8k6zkdcqnnkqbhlqpk7qvvdsz2i2kas54csbgsww";
+  };
+
+  cargoSha256 = "050avk6wff8v1dlsfvxwvldmmgfakdxmhglv2bhvc2f3q8cf1d5d";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  # Currently no tests are implemented, so we avoid building the package twice
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple HTTP server in Rust";
+    homepage = "https://github.com/TheWaWaR/simple-http-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mephistophiles ];
+  };
+}
diff --git a/pkgs/servers/sonarr/default.nix b/pkgs/servers/sonarr/default.nix
index cdaa96464e7..2ffbbb27023 100644
--- a/pkgs/servers/sonarr/default.nix
+++ b/pkgs/servers/sonarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "3.0.5.1144";
+  version = "3.0.6.1196";
 
   src = fetchurl {
     url = "https://download.sonarr.tv/v3/main/${version}/Sonarr.main.${version}.linux.tar.gz";
-    sha256 = "1ajqh3hvjfsbs6rb2f8dnndxsycmlzamp0cwjwkh1j2dinbzdbvp";
+    sha256 = "10fm5s1ayjmj0ip5510rb0nfh08gdaxin0xf2f3qw1z5kxys88fm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/sql/materialize/default.nix b/pkgs/servers/sql/materialize/default.nix
new file mode 100644
index 00000000000..e89cd9804ab
--- /dev/null
+++ b/pkgs/servers/sql/materialize/default.nix
@@ -0,0 +1,91 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchzip
+, rustPlatform
+, bootstrap_cmds
+, DiskArbitration
+, Foundation
+, cmake
+, libiconv
+, openssl
+, perl
+, pkg-config}:
+
+let
+  fetchNpmPackage = {name, version, hash, js_prod_file, js_dev_file, ...} @ args:
+  let
+    package = fetchzip {
+      url = "https://registry.npmjs.org/${name}/-/${baseNameOf name}-${version}.tgz";
+      inherit hash;
+    };
+
+    static = "./src/materialized/src/http/static";
+    cssVendor = "./src/materialized/src/http/static/css/vendor";
+    jsProdVendor = "./src/materialized/src/http/static/js/vendor";
+    jsDevVendor = "./src/materialized/src/http/static-dev/js/vendor";
+
+    files = with args; [
+      { src = js_prod_file; dst = "${jsProdVendor}/${name}.js"; }
+      { src = js_dev_file;  dst = "${jsDevVendor}/${name}.js"; }
+    ] ++ lib.optional (args ? css_file) { src = css_file; dst = "${cssVendor}/${name}.css"; }
+      ++ lib.optional (args ? extra_file) { src = extra_file.src; dst = "${static}/${extra_file.dst}"; };
+  in
+    lib.concatStringsSep "\n" (lib.forEach files ({src, dst}: ''
+      mkdir -p "${dirOf dst}"
+      cp "${package}/${src}" "${dst}"
+    ''));
+
+  npmPackages = import ./npm_deps.nix;
+in
+rustPlatform.buildRustPackage rec {
+  pname = "materialize";
+  version = "0.7.1";
+  rev = "f4bd159fa73d37d44f8ed3f1db13c0c2ff85566f";
+
+  src = fetchFromGitHub {
+    owner = "MaterializeInc";
+    repo = pname;
+    inherit rev;
+    hash = "sha256-8nonB/KRv4qOGvJhh0v3UwlBzAXfzb3afeCm/7/E0AU=";
+  };
+
+  cargoSha256 = "sha256-5slgICqLZFqxPymgHvq98BtcD70hfJMr36pvAoQKEJ4=";
+
+  nativeBuildInputs = [ cmake perl pkg-config ]
+    # Provides the mig command used by the krb5-src build script
+    ++ lib.optional stdenv.isDarwin bootstrap_cmds;
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv DiskArbitration Foundation ];
+
+  # Skip tests that use the network
+  checkFlags = [
+    "--exact"
+    "--skip test_client"
+    "--skip test_client_errors"
+    "--skip test_no_block"
+  ];
+
+  postPatch = ''
+    ${lib.concatStringsSep "\n" (map fetchNpmPackage npmPackages)}
+    substituteInPlace ./misc/dist/materialized.service \
+      --replace /usr/bin $out/bin \
+      --replace _Materialize root
+  '';
+
+  MZ_DEV_BUILD_SHA = rev;
+  cargoBuildFlags = [ "--package materialized" ];
+
+  postInstall = ''
+    install --mode=444 -D ./misc/dist/materialized.service $out/etc/systemd/system/materialized.service
+  '';
+
+  meta = with lib; {
+    homepage    = "https://materialize.com";
+    description = "A streaming SQL materialized view engine for real-time applications";
+    license     = licenses.bsl11;
+    platforms   = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = [ maintainers.petrosagg ];
+  };
+}
diff --git a/pkgs/servers/sql/materialize/npm_deps.nix b/pkgs/servers/sql/materialize/npm_deps.nix
new file mode 100644
index 00000000000..a0fccb971c0
--- /dev/null
+++ b/pkgs/servers/sql/materialize/npm_deps.nix
@@ -0,0 +1,62 @@
+# materialized doesn't use npm to pull in its few node dependencies but instead
+# manually pulls the tar archives for each package and pulls out a couple of
+# files.
+#
+# The list of modules can be found in this file
+# https://github.com/MaterializeInc/materialize/blob/master/src/materialized/build/npm.rs
+[
+  {
+    name = "@hpcc-js/wasm";
+    version = "0.3.14";
+    hash = "sha256-EsbuFk9qtlm9yWpG29RnqVAHrP0rk3xyibQLy8qgRT4=";
+    js_prod_file = "dist/index.min.js";
+    js_dev_file = "dist/index.js";
+    extra_file = {
+      src = "dist/graphvizlib.wasm";
+      dst = "js/vendor/@hpcc-js/graphvizlib.wasm";
+    };
+  }
+  {
+    name = "babel-standalone";
+    version = "6.26.0";
+    hash = "sha256-zdeTj4aOEzWvrnh90T80jL+RD8qg8PaeG0Ceua82Dz4=";
+    js_prod_file = "babel.min.js";
+    js_dev_file = "babel.js";
+  }
+  {
+    name = "d3";
+    version = "5.16.0";
+    hash = "sha256-aQQRhnJxV5/9C+cQslctP3v/AePGfbSw8L3chObJzK4=";
+    js_prod_file = "dist/d3.min.js";
+    js_dev_file = "dist/d3.js";
+  }
+  {
+    name = "d3-flame-graph";
+    version = "3.1.1";
+    hash = "sha256-Ls3MqALr6+/A+n8jqFw7frIB++6d1W3lAXKU0qFZ2ok=";
+    css_file = "dist/d3-flamegraph.css";
+    js_prod_file = "dist/d3-flamegraph.min.js";
+    js_dev_file = "dist/d3-flamegraph.js";
+  }
+  {
+    name = "pako";
+    version = "1.0.11";
+    hash = "sha256-St7nKpcYlJQl8qMmPkEHwmTufOHAeZK4lBZHo8VRXLA=";
+    js_prod_file = "dist/pako.min.js";
+    js_dev_file = "dist/pako.js";
+  }
+  {
+    name = "react";
+    version = "16.14.0";
+    hash = "sha256-X/8Bc4XvC8IqQWbW/PCRJQpmOBI/0AZT/hSFBf/uJU8=";
+    js_prod_file = "umd/react.production.min.js";
+    js_dev_file = "umd/react.development.js";
+  }
+  {
+    name = "react-dom";
+    version = "16.14.0";
+    hash = "sha256-2mYm9dwBFrWws6CB5bL6ghROTzX84RLM31hdnEbhG10=";
+    js_prod_file = "umd/react-dom.production.min.js";
+    js_dev_file = "umd/react-dom.development.js";
+  }
+]
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index d3cc2304c63..35b46c673f8 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -191,15 +191,6 @@ let
 
 in self: {
 
-  postgresql_9_5 = self.callPackage generic {
-    version = "9.5.25";
-    psqlSchema = "9.5";
-    sha256 = "00yny0sskxrqk4ji2phgv3iqxd1aiy6rh660k73s4s1pn9gcaa3n";
-    this = self.postgresql_9_5;
-    thisAttr = "postgresql_9_5";
-    inherit self;
-  };
-
   postgresql_9_6 = self.callPackage generic {
     version = "9.6.21";
     psqlSchema = "9.6";
diff --git a/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index b3d0bd5e2e8..fd63d7a0cc7 100644
--- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgroonga";
-  version = "2.2.8";
+  version = "2.2.9";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-YDDO3t6ARbQv72QotjA7DNxOlRo2O5CYzrH+/eEzj3w=";
+    sha256 = "1dz3800jrq41l833q5ihi511wj5fiyw329g7hbxsbc9whkx7hngn";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/ext/pgvector.nix b/pkgs/servers/sql/postgresql/ext/pgvector.nix
new file mode 100644
index 00000000000..a5c0f558c46
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/ext/pgvector.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "pgvector";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "ankane";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03i8rq9wp9j2zdba82q31lzbrqpnhrqc8867pxxy3z505fxsvfzb";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    install -D -t $out/lib vector.so
+    install -D -t $out/share/postgresql/extension vector-*.sql
+    install -D -t $out/share/postgresql/extension vector.control
+  '';
+
+  meta = with lib; {
+    description = "Open-source vector similarity search for PostgreSQL";
+    homepage = "https://github.com/ankane/pgvector";
+    license = licenses.postgresql;
+    platforms = postgresql.meta.platforms;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 505aff66678..3d0cbcf5ace 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "2.1.1";
+  version = "2.2.0";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,15 +17,15 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "0mjqy0d60l62vqqbrayj6270173501i6aqgnkczywrqyzqw8522l";
+    sha256 = "0gl2jjk9k0s5h7s4yq1qb60lvcqvhp88rh1fhlpyx1vm1hifhhik";
   };
 
-  # -DWARNINGS_AS_ERRORS=OFF to be removed once https://github.com/timescale/timescaledb/issues/2770 is fixed in upstream
-  cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DWARNINGS_AS_ERRORS=OFF" ];
+  cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ]
+    ++ lib.optionals stdenv.isDarwin [ "-DLINTER=OFF" ];
 
   # Fix the install phase which tries to install into the pgsql extension dir,
   # and cannot be manually overridden. This is rather fragile but works OK.
-  patchPhase = ''
+  postPatch = ''
     for x in CMakeLists.txt sql/CMakeLists.txt; do
       substituteInPlace "$x" \
         --replace 'DESTINATION "''${PG_SHAREDIR}/extension"' "DESTINATION \"$out/share/postgresql/extension\""
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Scales PostgreSQL for time-series data via automatic partitioning across time and space";
     homepage    = "https://www.timescale.com/";
+    changelog   = "https://github.com/timescale/timescaledb/raw/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ volth marsam ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.asl20;
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index e8b2f4130a5..e2d655bdb37 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -25,6 +25,8 @@ self: super: {
 
     pgroonga = super.callPackage ./ext/pgroonga.nix { };
 
+    pgvector = super.callPackage ./ext/pgvector.nix { };
+
     plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
 
     plr = super.callPackage ./ext/plr.nix { };
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index 2350311b9db..c9ace581c7e 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -1,27 +1,27 @@
 # This file was generated by https://github.com/kamilchm/go2nix v2.0-dev
-{ lib, buildGoPackage, zip, fetchFromGitHub, makeWrapper, xdg-utils }:
+{ lib, buildGoModule, zip, fetchFromGitHub, makeWrapper, xdg-utils }:
 let
   webassets = fetchFromGitHub {
     owner = "gravitational";
     repo = "webassets";
-    rev = "8ace0cfcc6867651bed3fd5b5f35aaa2a80e1106";
-    sha256 = "sha256-mzvYysCFMvWHo8Y4cmhAju62jjpe92j564gc12BSdZA=";
+    rev = "cf396f868aebb8ba654ea2398c25f033181e7114";
+    sha256 = "sha256-12jkpWl/kL0ttRHtxyDnKjYAZNrheEGQF8HEGSXvvAk=";
   };
 in
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "teleport";
-  version = "5.2.1";
+  version = "6.1.2";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "sha256-8WEVH+04y1/s9KpBlK/LrgHG7qTpu2LqtanKKdi9N08=";
+    sha256 = "sha256-4ZaebTTgGrGRQbMfDw1PL/qtDKmHbSY6kPmWyFeIcAU=";
   };
 
-  goPackagePath = "github.com/gravitational/teleport";
+  vendorSha256 = null;
 
   subPackages = [ "tool/tctl" "tool/teleport" "tool/tsh" ];
 
@@ -29,7 +29,6 @@ buildGoPackage rec {
 
   postBuild = ''
     pushd .
-    cd $NIX_BUILD_TOP/go/src/github.com/gravitational/teleport
     mkdir -p build
     echo "making webassets"
     cp -r ${webassets}/* webassets/
@@ -41,13 +40,21 @@ buildGoPackage rec {
     popd
   '';
 
+  # Do not strip the embedded web assets
+  dontStrip = true;
+
   # Reduce closure size for client machines
   outputs = [ "out" "client" ];
 
   buildTargets = [ "full" ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   postInstall = ''
     install -Dm755 -t $client/bin $out/bin/tsh
+    wrapProgram $client/bin/tsh --prefix PATH : ${xdg-utils}/bin
     wrapProgram $out/bin/tsh --prefix PATH : ${xdg-utils}/bin
   '';
 
@@ -62,7 +69,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "A SSH CA management suite";
-    homepage = "https://gravitational.com/teleport/";
+    homepage = "https://goteleport.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sigma tomberek freezeboy ];
     platforms = platforms.unix;
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 900d6921092..4bcbee1d428 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -6,13 +6,13 @@
 }:
 
 let
-  version = "2.6.3";
+  version = "2.6.5";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-lAIhVxvmjxEiru1KNxbFV+eDMLUGza/Dma3WU0ex0xs=";
+    sha256 = "sha256-JQUgHxs2Cl2LBpg/6JLhZxje4RmPREL1IPta84kXwPw=";
   };
 
   runtimeDeps = [
diff --git a/pkgs/servers/web-apps/searx/default.nix b/pkgs/servers/web-apps/searx/default.nix
index bb9944ea377..43fb374fe11 100644
--- a/pkgs/servers/web-apps/searx/default.nix
+++ b/pkgs/servers/web-apps/searx/default.nix
@@ -1,23 +1,21 @@
-{ lib, nixosTests, python3, python3Packages, fetchFromGitHub, fetchpatch }:
+{ lib, nixosTests, python3, python3Packages, fetchFromGitHub }:
 
 with python3Packages;
 
 toPythonModule (buildPythonApplication rec {
   pname = "searx";
-  version = "0.18.0";
+  version = "1.0.0";
 
-  # Can not use PyPI because certain test files are missing.
+  # pypi doesn't receive updates
   src = fetchFromGitHub {
     owner = "searx";
     repo = "searx";
     rev = "v${version}";
-    sha256 = "0idxspvckvsd02v42h4z4wqrfkn1l8n59i91f7pc837cxya8p6hn";
+    sha256 = "0ghkx8g8jnh8yd46p4mlbjn2zm12nx27v7qflr4c8xhlgi0px0mh";
   };
 
   postPatch = ''
     sed -i 's/==.*$//' requirements.txt
-    # skip failing test
-    sed -i '/test_json_serial(/,+3d' tests/unit/test_standalone_searx.py
   '';
 
   preBuild = ''
@@ -25,16 +23,32 @@ toPythonModule (buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    pyyaml lxml grequests flaskbabel flask requests
-    gevent speaklater Babel pytz dateutil pygments
-    pyasn1 pyasn1-modules ndg-httpsclient certifi pysocks
-    jinja2 werkzeug
+    Babel
+    certifi
+    dateutil
+    flask
+    flaskbabel
+    gevent
+    grequests
+    jinja2
+    langdetect
+    lxml
+    ndg-httpsclient
+    pyasn1
+    pyasn1-modules
+    pygments
+    pysocks
+    pytz
+    pyyaml
+    requests
+    speaklater
+    werkzeug
   ];
 
-  checkInputs = [
-    Babel mock nose2 covCore pep8 plone-testing splinter
-    unittest2 zope_testrunner selenium
-  ];
+  # tests try to connect to network
+  doCheck = false;
+
+  pythonImportsCheck = [ "searx" ];
 
   postInstall = ''
     # Create a symlink for easier access to static data
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index 330470f0fd5..8ad888e759b 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.6.2";
+  version = "5.7.1";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-W9/U3i6jALXolDFraiI/a+PNPoNHim0rZHzaqSy4gkI=";
+    sha256 = "08c9g80lhs4h2psf3ykn0l4k1yyy0x21kxjqy8ckjpjvw3281nd4";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 1173fc22370..441d8834e08 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1717,11 +1717,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xf86inputlibinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation {
-    name = "xf86-input-libinput-1.0.0";
+    name = "xf86-input-libinput-1.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2";
-      sha256 = "0x4ay9y2clm2bql3myqnvhmikjbpzy95c800qiva8pg6dbvc4mgg";
+      url = "mirror://xorg/individual/driver/xf86-input-libinput-1.0.1.tar.bz2";
+      sha256 = "0nr4r9x8c7y1l0ipivjch5zps093mxmg2nqmfn2934am26fc9ppx";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
@@ -2692,11 +2692,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xorgserver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, openssl, libX11, libXau, libXaw, libxcb, xcbutil, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, libXdmcp, libXfixes, libxkbfile, libXmu, libXpm, libXrender, libXres, libXt }: stdenv.mkDerivation {
-    name = "xorg-server-1.20.10";
+    name = "xorg-server-1.20.11";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/xserver/xorg-server-1.20.10.tar.bz2";
-      sha256 = "16bwrf0ag41l7jbrllbix8z6avc5yimga7ihvq4ch3a5hb020x4p";
+      url = "mirror://xorg/individual/xserver/xorg-server-1.20.11.tar.bz2";
+      sha256 = "0jacqgin8kcyy8fyv0lhgb4if8g9hp60rm3ih3s1mgps7xp7jk4i";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 4c832291595..6ab9f8ed8dd 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -433,7 +433,7 @@ self: super:
   });
 
   xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: {
-    buildInputs =  attrs.buildInputs ++ [ mesa llvm ]; # for libxatracker
+    buildInputs =  attrs.buildInputs ++ [ mesa mesa.driversdev llvm ]; # for libxatracker
     meta = attrs.meta // {
       platforms = ["i686-linux" "x86_64-linux"];
     };
@@ -773,6 +773,14 @@ self: super:
       "--with-launchdaemons-dir=\${out}/LaunchDaemons"
       "--with-launchagents-dir=\${out}/LaunchAgents"
     ];
+    patches = [
+      # don't unset DBUS_SESSION_BUS_ADDRESS in startx
+      (fetchpatch {
+        name = "dont-unset-DBUS_SESSION_BUS_ADDRESS.patch";
+        url = "https://git.archlinux.org/svntogit/packages.git/plain/repos/extra-x86_64/fs46369.patch?h=packages/xorg-xinit&id=40f3ac0a31336d871c76065270d3f10e922d06f3";
+        sha256 = "18kb88i3s9nbq2jxl7l2hyj6p56c993hivk8mzxg811iqbbawkp7";
+      })
+    ];
     propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xauth ]
                          ++ lib.optionals isDarwin [ self.libX11 self.xorgproto ];
     postFixup = ''
diff --git a/pkgs/servers/x11/xorg/tarballs.list b/pkgs/servers/x11/xorg/tarballs.list
index 61cfd4df180..093aba26f63 100644
--- a/pkgs/servers/x11/xorg/tarballs.list
+++ b/pkgs/servers/x11/xorg/tarballs.list
@@ -81,7 +81,7 @@ mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-libinput-1.0.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
@@ -218,4 +218,4 @@ mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
 mirror://xorg/individual/util/makedepend-1.0.6.tar.bz2
 mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2
 mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.20.10.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.20.11.tar.bz2
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index e3d2698e830..e1b2597d4f4 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -1,40 +1,100 @@
-{ lib, wayland, wayland-protocols, xorgserver, xkbcomp, xkeyboard_config
-, epoxy, libxslt, libunwind, makeWrapper, egl-wayland
+{ egl-wayland
+, epoxy
+, fetchurl
+, fontutil
+, lib
+, libGL
+, libGLU
+, libX11
+, libXau
+, libXaw
+, libXdmcp
+, libXext
+, libXfixes
+, libXfont2
+, libXmu
+, libXpm
+, libXrender
+, libXres
+, libXt
+, libdrm
+, libtirpc
+, libunwind
+, libxcb
+, libxkbfile
+, libxshmfence
+, mesa
+, meson
+, ninja
+, openssl
+, pkg-config
+, pixman
+, stdenv
+, wayland
+, wayland-protocols
+, xkbcomp
+, xkeyboard_config
+, xorgproto
+, xtrans
+, zlib
 , defaultFontPath ? "" }:
 
-with lib;
+stdenv.mkDerivation rec {
 
-xorgserver.overrideAttrs (oldAttrs: {
-
-  name = "xwayland-${xorgserver.version}";
-  buildInputs = oldAttrs.buildInputs ++ [ egl-wayland ];
-  propagatedBuildInputs = oldAttrs.propagatedBuildInputs
-    ++ [wayland wayland-protocols epoxy libxslt makeWrapper libunwind];
-  configureFlags = [
-    "--disable-docs"
-    "--disable-devel-docs"
-    "--enable-xwayland"
-    "--enable-xwayland-eglstream"
-    "--disable-xorg"
-    "--disable-xvfb"
-    "--disable-xnest"
-    "--disable-xquartz"
-    "--disable-xwin"
-    "--enable-glamor"
-    "--with-default-font-path=${defaultFontPath}"
-    "--with-xkb-bin-directory=${xkbcomp}/bin"
-    "--with-xkb-path=${xkeyboard_config}/etc/X11/xkb"
-    "--with-xkb-output=$(out)/share/X11/xkb/compiled"
+  pname = "xwayland";
+  version = "21.1.1";
+  src = fetchurl {
+    url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
+    sha256 = "sha256-MfJhzlG77namyj7AKqNn/6K176K5hBLfV8zv16GQA84=";
+  };
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [
+    egl-wayland
+    epoxy
+    fontutil
+    libGL
+    libGLU
+    libX11
+    libXau
+    libXaw
+    libXdmcp
+    libXext
+    libXfixes
+    libXfont2
+    libXmu
+    libXpm
+    libXrender
+    libXres
+    libXt
+    libdrm
+    libtirpc
+    libunwind
+    libxcb
+    libxkbfile
+    libxshmfence
+    mesa
+    openssl
+    pixman
+    wayland
+    wayland-protocols
+    xkbcomp
+    xorgproto
+    xtrans
+    zlib
+  ];
+  mesonFlags = [
+    "-Dxwayland-eglstream=true"
+    "-Ddefault-font-path=${defaultFontPath}"
+    "-Dxkb_bin_dir=${xkbcomp}/bin"
+    "-Dxkb_dir=${xkeyboard_config}/etc/X11/xkb"
+    "-Dxkb_output_dir=${placeholder "out"}/share/X11/xkb/compiled"
   ];
 
-  postInstall = ''
-    rm -fr $out/share/X11/xkb/compiled
-  '';
-
-  meta = {
+  meta = with lib; {
     description = "An X server for interfacing X11 apps with the Wayland protocol";
     homepage = "https://wayland.freedesktop.org/xserver.html";
     license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
     platforms = platforms.linux;
   };
-})
+}
diff --git a/pkgs/servers/zookeeper/default.nix b/pkgs/servers/zookeeper/default.nix
index c2315999b3c..d5bf7b91014 100644
--- a/pkgs/servers/zookeeper/default.nix
+++ b/pkgs/servers/zookeeper/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper, bash, coreutils, runtimeShell }:
+{ lib, stdenv, fetchurl, jre, makeWrapper, bash, coreutils }:
 
 stdenv.mkDerivation rec {
   pname = "zookeeper";
-  version = "3.6.2";
+  version = "3.6.3";
 
   src = fetchurl {
     url = "mirror://apache/zookeeper/${pname}-${version}/apache-${pname}-${version}-bin.tar.gz";
-    sha512 = "caff5111bb6876b7124760bc006e6fa2523efa54b99321a3c9cd8192ea0d5596abc7d70a054b1aac9b20a411407dae7611c7aba870c23bff28eb1643ba499199";
+    sha512 = "3f7b1b7d9cf5647d52ad0076c922e108fa956e986b5624667c493cf6d8ff09d3ca88f623c79a799fe49c72e868cb3c9d0f77cb69608de74a183b2cbad10bc827";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   phases = ["unpackPhase" "installPhase"];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out
     cp -R conf docs lib $out
     # Without this, zkCli.sh tries creating a log file in the Nix store.
@@ -31,6 +32,7 @@ stdenv.mkDerivation rec {
         --prefix PATH : "${bash}/bin"
     done
     chmod -x $out/bin/zkEnv.sh
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/shells/fish/plugins/default.nix b/pkgs/shells/fish/plugins/default.nix
index 50b8eb4d981..0ce172ec489 100644
--- a/pkgs/shells/fish/plugins/default.nix
+++ b/pkgs/shells/fish/plugins/default.nix
@@ -6,6 +6,8 @@ lib.makeScope newScope (self: with self; {
 
   clownfish = callPackage ./clownfish.nix { };
 
+  done = callPackage ./done.nix { };
+
   # Fishtape 2.x and 3.x aren't compatible,
   # but both versions are used in the tests of different other plugins.
   fishtape = callPackage ./fishtape.nix { };
@@ -13,6 +15,8 @@ lib.makeScope newScope (self: with self; {
 
   foreign-env = callPackage ./foreign-env { };
 
+  forgit = callPackage ./forgit.nix { };
+
   fzf-fish = callPackage ./fzf-fish.nix { };
 
   pure = callPackage ./pure.nix { };
diff --git a/pkgs/shells/fish/plugins/done.nix b/pkgs/shells/fish/plugins/done.nix
new file mode 100644
index 00000000000..25065b21fb1
--- /dev/null
+++ b/pkgs/shells/fish/plugins/done.nix
@@ -0,0 +1,25 @@
+{ lib, buildFishPlugin, fetchFromGitHub, fishtape }:
+
+buildFishPlugin rec {
+  pname = "done";
+  version = "1.16.1";
+
+  src = fetchFromGitHub {
+    owner = "franciscolourenco";
+    repo = "done";
+    rev = version;
+    sha256 = "NFysKzRZgDXXZW/sUlZNu7ZpMCKwbjAhIfspSK3UqCY=";
+  };
+
+  checkPlugins = [ fishtape ];
+  checkPhase = ''
+    fishtape test/done.fish
+  '';
+
+  meta = {
+    description = "Automatically receive notifications when long processes finish";
+    homepage = "https://github.com/franciscolourenco/done";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ malo ];
+  };
+}
diff --git a/pkgs/shells/fish/plugins/forgit.nix b/pkgs/shells/fish/plugins/forgit.nix
new file mode 100644
index 00000000000..5fc647c73ee
--- /dev/null
+++ b/pkgs/shells/fish/plugins/forgit.nix
@@ -0,0 +1,26 @@
+{ lib, buildFishPlugin, fetchFromGitHub, git, fzf }:
+
+buildFishPlugin rec {
+  pname = "forgit";
+  version = "unstable-2021-04-09";
+
+  preFixup = ''
+    substituteInPlace $out/share/fish/vendor_conf.d/forgit.plugin.fish \
+      --replace "fzf " "${fzf}/bin/fzf " \
+      --replace "git " "${git}/bin/git "
+  '';
+
+  src = fetchFromGitHub {
+    owner = "wfxr";
+    repo = "forgit";
+    rev = "7806fc3ab37ac479c315eb54b164f67ba9ed17ea";
+    sha256 = "sha256-a7wjuqXe3+y5zlgSLk5J31WoORbieFimvtr0FQHRY5M=";
+  };
+
+  meta = with lib; {
+    description = "A utility tool powered by fzf for using git interactively.";
+    homepage = "https://github.com/wfxr/forgit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ happysalada ];
+  };
+}
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index 70022b5c2a8..98a73e1acd3 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-RZz8hmcLOJRz0HpPXc3121B1UcbtDgCFv8Zdv29E+XQ=";
+    sha256 = "104zrj15kmc0a698dc8dxbzhg1rjqn38v3wqcwg2xiickglpgd5f";
   };
 
-  cargoSha256 = "sha256-V6Qdg8xSm2/6BbSEOH5mH92Gjx+xy0J2CZ9FQxmhI88=";
+  cargoSha256 = "1c6yhkj1hyr82y82nff6gy9kq9z0mbq3ivlq8rir10pnqy4j5791";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne johntitor marsam ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+    mainProgram = "nu";
   };
 
   passthru = {
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 00610232e43..23c783246e9 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-04-11";
+  version = "2021-04-26";
   pname = "oh-my-zsh";
-  rev = "12669f29f0843b8b980dd137f150a74511f88842";
+  rev = "63a7422d8dd5eb93c849df0ab9e679e6f333818a";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "07vcxw60cvlh745lgy03l6vgsxkalmwh386akvrpvbg9a6p6k8rb";
+    sha256 = "1spi6y5jmha0bf1s69mycpmksxjniqmcnvkvmza4rhji8v8b120w";
   };
 
   installPhase = ''
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index a7b91a82a9d..227f53b02cc 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -1,7 +1,5 @@
 { lib
 , localSystem, crossSystem, config, overlays, crossOverlays ? []
-# Minimum required macOS version, used both for compatibility as well as reproducability.
-, macosVersionMin ? "10.12"
 # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
 , bootstrapFiles ? let
   fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
@@ -36,15 +34,13 @@ in rec {
     export NIX_IGNORE_LD_THROUGH_GCC=1
     unset SDKROOT
 
-    export MACOSX_DEPLOYMENT_TARGET=${macosVersionMin}
-
     # Workaround for https://openradar.appspot.com/22671534 on 10.11.
     export gl_cv_func_getcwd_abort_bug=no
 
     stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
   '';
 
-  bootstrapTools = derivation {
+  bootstrapTools = derivation ({
     inherit system;
 
     name    = "bootstrap-tools";
@@ -54,7 +50,11 @@ in rec {
     inherit (bootstrapFiles) mkdir bzip2 cpio tarball;
 
     __impureHostDeps = commonImpureHostDeps;
-  };
+  } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+    __contentAddressed = true;
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+  });
 
   stageFun = step: last: {shell             ? "${bootstrapTools}/bin/bash",
                           overrides         ? (self: super: {}),
@@ -147,9 +147,6 @@ in rec {
         __stdenvImpureHostDeps = commonImpureHostDeps;
         __extraImpureHostDeps = commonImpureHostDeps;
 
-        extraAttrs = {
-          inherit macosVersionMin;
-        };
         overrides  = self: super: (overrides self super) // {
           inherit ccNoLibcxx;
           fetchurl = thisStdenv.fetchurlBoot;
@@ -523,7 +520,7 @@ in rec {
     extraAttrs = {
       libc = pkgs.darwin.Libsystem;
       shellPackage = pkgs.bash;
-      inherit macosVersionMin bootstrapTools;
+      inherit bootstrapTools;
     };
 
     allowedRequisites = (with pkgs; [
diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix
index 5aadfd81a20..ddcdc6a66e0 100644
--- a/pkgs/stdenv/freebsd/default.nix
+++ b/pkgs/stdenv/freebsd/default.nix
@@ -170,7 +170,7 @@ in
   ({}: {
     __raw = true;
 
-    bootstrapTools = derivation {
+    bootstrapTools = derivation ({
       inherit system;
       inherit make bash coreutils findutils
         diffutils grep patch gawk cpio sed
@@ -182,7 +182,11 @@ in
       buildInputs = [ make ];
       mkdir = "/bin/mkdir";
       ln = "/bin/ln";
-    };
+    } // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+      __contentAddressed = true;
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+    });
   })
 
   ({ bootstrapTools, ... }: rec {
@@ -238,7 +242,7 @@ in
         buildPlatform hostPlatform targetPlatform
         initialPath shell fetchurlBoot;
 
-      cc = import ../../build-support/cc-wrapper {
+      cc = lib.makeOverridable (import ../../build-support/cc-wrapper) {
         inherit lib;
         nativeTools  = true;
         nativePrefix = "/usr";
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 7fa7f2305e8..ac62ad30829 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -203,6 +203,7 @@ let
   metaTypes = with lib.types; rec {
     # These keys are documented
     description = str;
+    mainProgram = str;
     longDescription = str;
     branch = str;
     homepage = either (listOf str) str;
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 476fab3eed6..4cfdb6e4c17 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -84,6 +84,11 @@ let
       allowedRequisites = allowedRequisites
         ++ defaultNativeBuildInputs ++ defaultBuildInputs;
     }
+    // lib.optionalAttrs (config.contentAddressedByDefault or false) {
+      __contentAddressed = true;
+      outputHashAlgo = "sha256";
+      outputHashMode = "recursive";
+    }
     // {
       inherit name;
 
@@ -106,6 +111,8 @@ let
       '' + lib.optionalString (hostPlatform.isDarwin || (hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.elf && hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.macho)) ''
         export NIX_DONT_SET_RPATH=1
         export NIX_NO_SELF_RPATH=1
+      '' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) ''
+        export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion}
       ''
       # TODO this should be uncommented, but it causes stupid mass rebuilds. I
       # think the best solution would just be to fixup linux RPATHs so we don't
@@ -137,7 +144,7 @@ let
 
       # Utility flags to test the type of platform.
       inherit (hostPlatform)
-        isDarwin isLinux isSunOS isCygwin isFreeBSD isOpenBSD
+        isDarwin isLinux isSunOS isCygwin isBSD isFreeBSD isOpenBSD
         isi686 isx86_32 isx86_64
         is32bit is64bit
         isAarch32 isAarch64 isMips isBigEndian;
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 74609412782..730c90c227c 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -89,6 +89,10 @@ in rec {
 
     , patches ? []
 
+    , __contentAddressed ?
+      (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too
+      && (config.contentAddressedByDefault or false)
+
     , ... } @ attrs:
 
     let
@@ -196,9 +200,7 @@ in rec {
         // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
           name =
             let
-              staticMarker = lib.optionalString stdenv.hostPlatform.isStatic "-static";
-              name' = attrs.name or
-                "${attrs.pname}${staticMarker}-${attrs.version}";
+              # Indicate the host platform of the derivation if cross compiling.
               # Fixed-output derivations like source tarballs shouldn't get a host
               # suffix. But we have some weird ones with run-time deps that are
               # just used for their side-affects. Those might as well since the
@@ -206,7 +208,16 @@ in rec {
               hostSuffix = lib.optionalString
                 (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix)
                 "-${stdenv.hostPlatform.config}";
-            in name' + hostSuffix;
+              # Disambiguate statically built packages. This was originally
+              # introduce as a means to prevent nix-env to get confused between
+              # nix and nixStatic. This should be also achieved by moving the
+              # hostSuffix before the version, so we could contemplate removing
+              # it again.
+              staticMarker = lib.optionalString stdenv.hostPlatform.isStatic "-static";
+            in
+              if attrs ? name
+              then attrs.name + hostSuffix
+              else "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}";
         }) // {
           builder = attrs.realBuilder or stdenv.shell;
           args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
@@ -253,6 +264,12 @@ in rec {
           inherit doCheck doInstallCheck;
 
           inherit outputs;
+        } // lib.optionalAttrs (__contentAddressed) {
+          inherit __contentAddressed;
+          # Provide default values for outputHashMode and outputHashAlgo because
+          # most people won't care about these anyways
+          outputHashAlgo = attrs.outputHashAlgo or "sha256";
+          outputHashMode = attrs.outputHashMode or "recursive";
         } // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
           cmakeFlags =
             (/**/ if lib.isString cmakeFlags then [cmakeFlags]
diff --git a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix b/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
index 6118585d545..d690f402672 100644
--- a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
+++ b/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix
@@ -1,6 +1,6 @@
-{ system, bootstrapFiles }:
+{ system, bootstrapFiles, extraAttrs }:
 
-derivation {
+derivation ({
   name = "bootstrap-tools";
 
   builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
   langC = true;
   langCC = true;
   isGNU = true;
-}
+} // extraAttrs)
diff --git a/pkgs/stdenv/linux/bootstrap-tools/default.nix b/pkgs/stdenv/linux/bootstrap-tools/default.nix
index 6118585d545..d690f402672 100644
--- a/pkgs/stdenv/linux/bootstrap-tools/default.nix
+++ b/pkgs/stdenv/linux/bootstrap-tools/default.nix
@@ -1,6 +1,6 @@
-{ system, bootstrapFiles }:
+{ system, bootstrapFiles, extraAttrs }:
 
-derivation {
+derivation ({
   name = "bootstrap-tools";
 
   builder = bootstrapFiles.busybox;
@@ -15,4 +15,4 @@ derivation {
   langC = true;
   langCC = true;
   isGNU = true;
-}
+} // extraAttrs)
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index f753af49926..6d6d0384a7f 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -61,7 +61,16 @@ let
 
 
   # Download and unpack the bootstrap tools (coreutils, GCC, Glibc, ...).
-  bootstrapTools = import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) { inherit system bootstrapFiles; };
+  bootstrapTools = import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) {
+    inherit system bootstrapFiles;
+    extraAttrs = lib.optionalAttrs
+      (config.contentAddressedByDefault or false)
+      {
+        __contentAddressed = true;
+        outputHashAlgo = "sha256";
+        outputHashMode = "recursive";
+      };
+  };
 
   getLibc = stage: stage.${localSystem.libc};
 
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index e4db92b7717..4db40a2e516 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -224,15 +224,24 @@ in with pkgs; rec {
     bootstrapTools = runCommand "bootstrap-tools.tar.xz" {} "cp ${build}/on-server/bootstrap-tools.tar.xz $out";
   };
 
-  bootstrapTools = if (stdenv.hostPlatform.libc == "glibc") then
+  bootstrapTools =
+    let extraAttrs = lib.optionalAttrs
+      (config.contentAddressedByDefault or false)
+      {
+        __contentAddressed = true;
+        outputHashAlgo = "sha256";
+        outputHashMode = "recursive";
+      };
+    in
+    if (stdenv.hostPlatform.libc == "glibc") then
     import ./bootstrap-tools {
       inherit (stdenv.buildPlatform) system; # Used to determine where to build
-      inherit bootstrapFiles;
+      inherit bootstrapFiles extraAttrs;
     }
     else if (stdenv.hostPlatform.libc == "musl") then
     import ./bootstrap-tools-musl {
       inherit (stdenv.buildPlatform) system; # Used to determine where to build
-      inherit bootstrapFiles;
+      inherit bootstrapFiles extraAttrs;
     }
     else throw "unsupported libc";
 
diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix
index b79b81253ad..010b4141e87 100644
--- a/pkgs/stdenv/native/default.nix
+++ b/pkgs/stdenv/native/default.nix
@@ -129,7 +129,7 @@ in
       name = "cc-native";
       nativeTools = true;
       nativeLibc = true;
-      inherit nativePrefix;
+      inherit lib nativePrefix;
       bintools = import ../../build-support/bintools-wrapper {
         name = "bintools";
         inherit stdenvNoCC nativePrefix;
diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix
index a8311f49609..2fb19992bc1 100644
--- a/pkgs/stdenv/nix/default.nix
+++ b/pkgs/stdenv/nix/default.nix
@@ -24,6 +24,7 @@ bootStages ++ [
       initialPath = (import ../common-path.nix) { pkgs = prevStage; };
 
       cc = import ../../build-support/cc-wrapper {
+        inherit lib;
         nativeTools = false;
         nativePrefix = lib.optionalString hostPlatform.isSunOS "/usr";
         nativeLibc = true;
diff --git a/pkgs/test/cuda/cuda-samples/default.nix b/pkgs/test/cuda/cuda-samples/default.nix
index 46d4d531690..1a361c57214 100644
--- a/pkgs/test/cuda/cuda-samples/default.nix
+++ b/pkgs/test/cuda/cuda-samples/default.nix
@@ -1,17 +1,9 @@
 { callPackage
-, cudatoolkit_9_2
 , cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2
 , cudatoolkit_11_0, cudatoolkit_11_1, cudatoolkit_11_2
 }:
 
 rec {
-  cuda-samples_cudatoolkit_9_2 = callPackage ./generic.nix {
-    cudatoolkit = cudatoolkit_9_2;
-    sha256 = "1ydankhyigcg99h0rqnmz1z4vc0sl6p9s1s0hbdxh5l1sx9141j6";
-  };
-
-  cuda-samples_cudatoolkit_9 = cuda-samples_cudatoolkit_9_2;
-
   ##
 
   cuda-samples_cudatoolkit_10_0 = callPackage ./generic.nix {
diff --git a/pkgs/test/cuda/default.nix b/pkgs/test/cuda/default.nix
index 9e7eaf8036a..aac52e6a4f5 100644
--- a/pkgs/test/cuda/default.nix
+++ b/pkgs/test/cuda/default.nix
@@ -3,8 +3,6 @@
 rec {
   cuda-samplesPackages = callPackage ./cuda-samples { };
   inherit (cuda-samplesPackages)
-    cuda-samples_cudatoolkit_9
-    cuda-samples_cudatoolkit_9_2
     cuda-samples_cudatoolkit_10
     cuda-samples_cudatoolkit_10_0
     cuda-samples_cudatoolkit_10_1
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index fa93ceb0721..b24fc539c93 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -41,6 +41,8 @@ with pkgs;
   rustCustomSysroot = callPackage ./rust-sysroot {};
   buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { };
 
+  vim = callPackage ./vim {};
+
   nixos-functions = callPackage ./nixos-functions {};
 
   patch-shebangs = callPackage ./patch-shebangs {};
diff --git a/pkgs/test/vim/default.nix b/pkgs/test/vim/default.nix
new file mode 100644
index 00000000000..4ca004a60c3
--- /dev/null
+++ b/pkgs/test/vim/default.nix
@@ -0,0 +1,72 @@
+{ vimUtils, vim_configurable, neovim, vimPlugins
+, lib, fetchFromGitHub,
+}:
+let
+  inherit (vimUtils) buildVimPluginFrom2Nix;
+
+  packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
+in
+{
+  vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
+
+  vim_with_vim2nix = vim_configurable.customize {
+    name = "vim"; vimrcConfig.vam.pluginDictionaries = [ "vim-addon-vim2nix" ];
+  };
+
+  # test cases:
+  test_vim_with_vim_nix_using_vam = vim_configurable.customize {
+   name = "vim-with-vim-addon-nix-using-vam";
+    vimrcConfig.vam.pluginDictionaries = [{name = "vim-nix"; }];
+  };
+
+  test_vim_with_vim_nix_using_pathogen = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix-using-pathogen";
+    vimrcConfig.pathogen.pluginNames = [ "vim-nix" ];
+  };
+
+  test_vim_with_vim_nix_using_plug = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix-using-plug";
+    vimrcConfig.plug.plugins = with vimPlugins; [ vim-nix ];
+  };
+
+  test_vim_with_vim_nix = vim_configurable.customize {
+    name = "vim-with-vim-addon-nix";
+    vimrcConfig.packages.myVimPackage.start = with vimPlugins; [ vim-nix ];
+  };
+
+  # only neovim makes use of `requiredPlugins`, test this here
+  test_nvim_with_vim_nix_using_pathogen = neovim.override {
+    configure.pathogen.pluginNames = [ "vim-nix" ];
+  };
+
+  # regression test for https://github.com/NixOS/nixpkgs/issues/53112
+  # The user may have specified their own plugins which may not be formatted
+  # exactly as the generated ones. In particular, they may not have the `pname`
+  # attribute.
+  test_vim_with_custom_plugin = vim_configurable.customize {
+    name = "vim_with_custom_plugin";
+    vimrcConfig.vam.knownPlugins =
+      vimPlugins // ({
+        vim-trailing-whitespace = buildVimPluginFrom2Nix {
+          name = "vim-trailing-whitespace";
+          src = fetchFromGitHub {
+            owner = "bronson";
+            repo = "vim-trailing-whitespace";
+            rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6";
+            sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9";
+          };
+          # make sure string dependencies are handled
+          dependencies = [ "vim-nix" ];
+        };
+      });
+    vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
+  };
+
+  # system remote plugin manifest should be generated, deoplete should be usable
+  # without the user having to do `UpdateRemotePlugins`. To test, launch neovim
+  # and do `:call deoplete#enable()`. It will print an error if the remote
+  # plugin is not registered.
+  test_nvim_with_remote_plugin = neovim.override {
+    configure.pathogen.pluginNames = with vimPlugins; [ deoplete-nvim ];
+  };
+}
diff --git a/pkgs/tools/X11/libstrangle/default.nix b/pkgs/tools/X11/libstrangle/default.nix
index d8c220d0fd7..2d7f6b456c4 100644
--- a/pkgs/tools/X11/libstrangle/default.nix
+++ b/pkgs/tools/X11/libstrangle/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ aske ];
+    mainProgram = "strangle";
   };
 }
diff --git a/pkgs/tools/admin/aws-nuke/default.nix b/pkgs/tools/admin/aws-nuke/default.nix
index 070a9b6430c..901f489fb46 100644
--- a/pkgs/tools/admin/aws-nuke/default.nix
+++ b/pkgs/tools/admin/aws-nuke/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "aws-nuke";
-  version = "2.14.0";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "rebuy-de";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ULHT2ysAVZHSojIdsbPTuwskwOQVrK8f14r9eq+Effs=";
+    sha256 = "sha256-FntHZi+L0Ti2QFbd8keF1sxcdXc01hs13Np23hF/pVc=";
   };
 
-  vendorSha256 = "sha256-GUCsl5VyptNvStJZgCsJDlllZasX1OhbVkahcQFuiC8=";
+  vendorSha256 = "sha256-VtsHUxI5RuKbQOSu55qPCJHsDO5+cNGT92y9dlibXlc=";
 
   preBuild = ''
     if [ "x$outputHashAlgo" != "x" ]; then
diff --git a/pkgs/tools/admin/aws-vault/default.nix b/pkgs/tools/admin/aws-vault/default.nix
index d9f20a9bc34..c1716015281 100644
--- a/pkgs/tools/admin/aws-vault/default.nix
+++ b/pkgs/tools/admin/aws-vault/default.nix
@@ -1,4 +1,10 @@
-{ buildGoModule, lib, fetchFromGitHub, installShellFiles }:
+{ buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, lib
+, makeWrapper
+, xdg-utils
+}:
 buildGoModule rec {
   pname = "aws-vault";
   version = "6.3.1";
@@ -12,9 +18,10 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-Lb5iiuT/Fd3RMt98AafIi9I0FHJaSpJ8pH7r4yZiiiw=";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postInstall = ''
+    wrapProgram $out/bin/aws-vault --prefix PATH : ${lib.makeBinPath [ xdg-utils ]}
     installShellCompletion --cmd aws-vault \
       --bash $src/contrib/completions/bash/aws-vault.bash \
       --fish $src/contrib/completions/fish/aws-vault.fish \
@@ -32,6 +39,12 @@ buildGoModule rec {
     -X main.Version=v${version}
   '';
 
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/aws-vault --version 2>&1 | grep ${version} > /dev/null
+  '';
+
   meta = with lib; {
     description =
       "A vault for securely storing and accessing AWS credentials in development environments";
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 7eb5dc6a8a7..c5b426e463b 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -21,11 +21,11 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.19.49"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.19.52"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-SiE3t26giRwNMJHGpeSzEO0nFjXS+bms4pRydOGWQyI=";
+    sha256 = "sha256-keKyuNeDC/90pn89KjoDTO8AGsmI8nqfDNSeGyM6iHQ=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 0c41f4127c8..925ed7699ae 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -152,9 +152,9 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     argcomplete
   ];
 
-  # TODO: make shell completion actually work
-  # uses argcomplete, so completion needs PYTHONPATH to work
   postInstall = ''
+    substituteInPlace az.completion.sh \
+      --replace register-python-argcomplete ${py.pkgs.argcomplete}/bin/register-python-argcomplete
     installShellCompletion --bash --name az.bash az.completion.sh
     installShellCompletion --zsh --name _az az.completion.sh
 
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index e81815b065c..5c338239292 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -427,6 +427,15 @@ let
         };
       });
 
+      pyjwt = super.pyjwt.overridePythonAttrs(oldAttrs: rec {
+        version = "1.7.1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
+        };
+      });
 
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
         version = "0.8.0rc2";
diff --git a/pkgs/tools/admin/bash-my-aws/default.nix b/pkgs/tools/admin/bash-my-aws/default.nix
index 5214cfeee2a..7d2f878f742 100644
--- a/pkgs/tools/admin/bash-my-aws/default.nix
+++ b/pkgs/tools/admin/bash-my-aws/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv
+, makeWrapper
 , awscli
 , jq
+, unixtools
 , fetchgit
 , installShellFiles
 , bashInteractive
@@ -22,9 +24,10 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [
     awscli
     jq
+    unixtools.column
     bashInteractive
   ];
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   checkPhase = ''
     pushd test
@@ -50,6 +53,7 @@ stdenv.mkDerivation rec {
         --replace .bash-my-aws ""
     substituteInPlace bin/bma \
         --replace '~/.bash-my-aws' $out
+    wrapProgram $out/bin/bma --prefix PATH : ${lib.makeBinPath [awscli jq unixtools.column bashInteractive ]}
     installShellCompletion --bash --name bash-my-aws.bash bash_completion.sh
     chmod +x $out/lib/*
     patchShebangs --host $out/lib
diff --git a/pkgs/tools/admin/cjdns-tools/default.nix b/pkgs/tools/admin/cjdns-tools/default.nix
new file mode 100644
index 00000000000..2468d329548
--- /dev/null
+++ b/pkgs/tools/admin/cjdns-tools/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, cjdns
+, nodejs
+, makeWrapper
+, lib
+}:
+
+stdenv.mkDerivation {
+  pname = "cjdns-tools";
+  version = cjdns.version;
+
+  src = cjdns.src;
+
+  buildInputs = [
+    nodejs
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildPhase = ''
+    patchShebangs tools
+
+    sed -e "s|'password': 'NONE'|'password': Fs.readFileSync('/etc/cjdns.keys').toString().split('\\\\n').map(v => v.split('=')).filter(v => v[0] === 'CJDNS_ADMIN_PASSWORD').map(v => v[1])[0]|g" \
+      -i tools/lib/cjdnsadmin/cjdnsadmin.js
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cat ${./wrapper.sh} | sed "s|@@out@@|$out|g" > $out/bin/cjdns-tools
+    chmod +x $out/bin/cjdns-tools
+
+    cp -r tools $out/tools
+    find $out/tools -maxdepth 1 -type f -exec chmod -v a+x {} \;
+    cp -r node_modules $out/node_modules
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/cjdelisle/cjdns";
+    description = "Tools for cjdns managment";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/cjdns-tools/wrapper.sh b/pkgs/tools/admin/cjdns-tools/wrapper.sh
new file mode 100644
index 00000000000..2e8d85b1dd9
--- /dev/null
+++ b/pkgs/tools/admin/cjdns-tools/wrapper.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+export PATH="@@out@@/tools:$PATH"
+
+set -eo pipefail
+
+if ! cat /etc/cjdns.keys >/dev/null 2>&1; then
+  echo "ERROR: No permission to read /etc/cjdns.keys (use sudo)" >&2
+  exit 1
+fi
+
+if [[ -z $1 ]]; then
+  echo "Cjdns admin"
+
+  echo "Usage: $0 <command> <args..>"
+
+  echo
+  echo "Commands:" $(find @@out@@/tools -maxdepth 1 -type f | sed -r "s|.+/||g")
+
+  _sh=$(which sh)
+  PATH="@@out@@/tools" PS1="cjdns\$ " "$_sh"
+else
+  if [[ ! -e @@out@@/tools/$1 ]]; then
+    echo "ERROR: '$1' is not a valid tool" >&2
+    exit 2
+  else
+    "$@"
+  fi
+fi
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 93b5433fcc0..e9e039cfbd4 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.0.4";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KY9POvwmyUVx9jcn02Ltcz2a1ULqyKW73A9Peb6rpYE=";
+    sha256 = "sha256-tpk5Avx2bRQlhOnHpmpDG14X9nk3x68TST+VtIW8rL8=";
   };
 
-  vendorSha256 = "sha256-+p3ucnvgOpSLS/uP9RAkWixCkaDoF64qCww013jPqSs=";
+  vendorSha256 = "sha256-O9SEVyBFnmyrQCmccXLyeOqlTwWHzICTLVKGO7rerjI=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index e24f0022483..83f62a2f1c1 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.41.0";
+  version = "0.46.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f4DkmIi4Uf4qJ3zkDWcpuN6nqXAwa91lj9Jd1MIskJ8=";
+    sha256 = "sha256-fPs9xB27fxUnsXndqpcifmMPGA8hEyeYC7tq+W9eBKI=";
   };
 
-  vendorSha256 = "sha256-G6rOmI1Q+bMRqOrkByff2q1AtuUN4hBfFzYaFq4TsxY=";
+  vendorSha256 = "sha256-ZC5Rk5HcnxU9X5o/t+oz8qx36WjOVYVEXxxa875UrZk=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index cb487db6a5f..3f0aca33d61 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.27.1";
+  version = "1.28.0";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-YaW7rTeVz2Mbnmp6ORsnALlyVxGnf8K73LXN/fmJMLk=";
+    sha256 = "sha256-YbWh4ZIlcxAD/8F/fsYIWjv5hKaHNNi+sNrD7Ax/xDw=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/pkgs/tools/admin/oci-cli/default.nix b/pkgs/tools/admin/oci-cli/default.nix
new file mode 100644
index 00000000000..16ecff07b73
--- /dev/null
+++ b/pkgs/tools/admin/oci-cli/default.nix
@@ -0,0 +1,58 @@
+{ lib, fetchFromGitHub, python3Packages, locale }:
+
+let
+  # https://github.com/oracle/oci-cli/issues/189
+  pinned_click = python3Packages.click.overridePythonAttrs (old: rec {
+    pname = "click";
+    version = "6.7";
+    src = python3Packages.fetchPypi {
+      inherit pname version;
+      hash = "sha256-8VUW30eNWlYYD7+A5o8gYBDm0WD8OfpQi2XgNf11Ews=";
+    };
+
+    postPatch = ''
+      substituteInPlace click/_unicodefun.py \
+      --replace "'locale'" "'${locale}/bin/locale'"
+    '';
+
+    # Issue that wasn't resolved when this version was released:
+    # https://github.com/pallets/click/issues/823
+    doCheck = false;
+  });
+in
+
+python3Packages.buildPythonApplication rec {
+  pname = "oci-cli";
+  version = "2.23.0";
+
+  src = fetchFromGitHub {
+    owner = "oracle";
+    repo = "oci-cli";
+    rev = "v${version}";
+    hash = "sha256-XRkycJrUSOZQAGiSyQZGA/SnlxnFumYL82kOkYd7s2o=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    oci arrow certifi pinned_click configparser cryptography jmespath dateutil
+    pytz retrying six terminaltables pyopenssl pyyaml
+  ];
+
+  # https://github.com/oracle/oci-cli/issues/187
+  doCheck = false;
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "configparser==4.0.2" "configparser" \
+      --replace "cryptography==3.2.1" "cryptography" \
+      --replace "pyOpenSSL==19.1.0" "pyOpenSSL" \
+      --replace "PyYAML==5.3.1" "PyYAML" \
+      --replace "six==1.14.0" "six"
+  '';
+
+  meta = with lib; {
+    description = "Command Line Interface for Oracle Cloud Infrastructure";
+    homepage = "https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm";
+    maintainers = with maintainers; [ ilian ];
+    license = with licenses; [ asl20 upl ];
+  };
+}
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 5a1dcfe16ec..3e7d11f4827 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,178 +1,186 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "2.24.1";
+  version = "3.1.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.24.1-linux-x64.tar.gz";
-        sha256 = "1c3a0ibwchl0lmcb8hr4j0x9b7hfsd0pfg6ay808zg1v8ddrj3xm";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.1.0-linux-x64.tar.gz";
+        sha256 = "103r0rih8qzpswij3bxls9gsb832n4ykwrzbki9b21w2ymj7k3x1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.10.0-linux-amd64.tar.gz";
-        sha256 = "1gqbs33mqqssymn48glm9h5qfkc1097ygk0mdanfigyhwv6rdmnc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.0.0-linux-amd64.tar.gz";
+        sha256 = "1f6r59qk48x73nm17swcs3cp3qw616m7p36bvgsc1s96h23k805w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.36.0-linux-amd64.tar.gz";
-        sha256 = "0dg5szlslp863slv6lfd8g98946ljvxhvq64b3j4zk6rsn0badvh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "12rnb18p7z709gvw50hvmx9v7f2wd3pwcncwz4g3ragd7f6a4kja";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-linux-amd64.tar.gz";
-        sha256 = "00ibqxb1qzwi93dsq56av0vxq80lx2rr8wll4q6d8wlph215hlqs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "0xs7i9l871x5kr22jg7jjw0rgyvs4j4hazr4n9375xgzc8ysrk09";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-linux-amd64.tar.gz";
-        sha256 = "04sk6km29ssqkv0xw26vq3iik2kfzc3dnzacn324m7fddv3p9wx9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "08588m5s6j1xhig4jprlkjgxk1sif4h3f6as7ixnvssin2vhhhl9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-linux-amd64.tar.gz";
-        sha256 = "0b3bz952wz7fsbk51j0mlfsyyg9ymc9wnq8kgm7dvs1p5zgzv4ni";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "01dqah12p23658awcp0sx5h696rdyjl79vd9dm5075jdaix1f648";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.7.0-linux-amd64.tar.gz";
-        sha256 = "0l1y8fckx7k3lasb6rzy3v58cl1x3qzbb999wi14z16z2a63zwsw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "0m8q1cswdml0hsc4vkq38pm2izs3lig57fg4a8ghqqi3ykni344d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-linux-amd64.tar.gz";
-        sha256 = "178l4h7wj9pn1283zajaqm7fwcfwzpzq7swrgr8q880qsa611gjs";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "06j5k599i8giy5v6scggw8zx1pyfm6w20biwcizv81zk0zkg3fzp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.19.0-linux-amd64.tar.gz";
-        sha256 = "0iliagpyvzn63pwcdq74w8ag9vc7asqpq658b19zly4jd6z3cwkd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.0.0-linux-amd64.tar.gz";
+        sha256 = "1bzy4zf473w49fz2n9lg5ncgblq2a5jh70nf6cfwc7kcla407in0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "0zp3rwhngj009a9s6w2vyvgyhj7nd03mwm44x62ikhnz6f414kr9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "0d17ccf84jj6a9hpdrnsziyw790i0y5zk18qgqh4qq79irwz6df2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-linux-amd64.tar.gz";
-        sha256 = "1xhrj950lk6qdazg4flymn3dmkbivc2rd71k8sdy9zfanyxnq8vv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "1j8232vw457fl0jhy08abs5hcx8nd2lll3zg9bp3s352wz2r5xl4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-linux-amd64.tar.gz";
-        sha256 = "0n2p14iam44icms4c8qrjfy1z7p4m6igxckvqxr0gphi8ngk4ggh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.0-linux-amd64.tar.gz";
+        sha256 = "0lqnb1xrb5ma8ssvn63lh92ihja6zx4nrx40pici1ggaln4sphn0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-linux-amd64.tar.gz";
-        sha256 = "0l9r0gqhhjbkv4vn4cxm2s9zf93005w8vrb103w101h1gc5gh93l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "0s7an3qvczhajs54i0ir3jjmwxpv9w94viqrik506k198j0qnl3b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-linux-amd64.tar.gz";
-        sha256 = "0clck5cra6bplfxd0nb6vkji50gg4ah4yfvc7202hi3w2b9hfjjg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "0ljxjv8rm4li61vgjbpmxw8w6d2pym5li3w61dqi3kka4ix25aww";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-linux-amd64.tar.gz";
-        sha256 = "1cd2bm030fa9spv7bx817id419lz1c54i8h84ifinkx88ig7ngyx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "1mxkwcricqnnbj0dp3wqidci6rgfn7daxkjprcnrndhgcdghq7sv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-linux-amd64.tar.gz";
-        sha256 = "1q9sx2lszmkcgphp3vwx0lvs5vc67sk98rn8s6ywhz0p426wakmr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "04gaimdzh04v7f11xw1b7p95rbb142kbnix1zqas68wd6vpw9kyp";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "1535c95ncgdifyz5m29gagpcr7lhhddlffmj9lmwch55w2xlk86k";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
         sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.9.0-linux-amd64.tar.gz";
-        sha256 = "0n486h5f683yq6z53s9l9x5air1vk4nz1skiirsprz7a12cy2xkn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "13j13kp0sbwp65l73mdcqiv4cszslxin567ccdkk2rw8vs1ni7x0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-linux-amd64.tar.gz";
-        sha256 = "1zpwlvdgjvhnhlzyppqg76csma8kan33amxa1svlhcai8b168878";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "0pah7s9wwaj8zp371blmj4c1bgyhh0dgsfr9axj0k4lhpqlyikmj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-linux-amd64.tar.gz";
-        sha256 = "16b1449vb6inlyjpb1iyr5j5mwg1g2d6bcd5g2kmxcsw4yhc7ai7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "0bk26k1igqljjpwkkvri6dp14cfw9l9a2dvg2as3v5930w4jxql8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-linux-amd64.tar.gz";
-        sha256 = "1z6v5vz0p9g3hrrgrchx2wnbparkbf5b8vn9pwnw69nkplr1qzff";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "1lxb03z80r8a2vfckyw5yf036ii30gdi3rch4sriksfv30il9kbc";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.24.1-darwin-x64.tar.gz";
-        sha256 = "1x6z0drvaxrps47nisvw513vgskaf86mz8fzlhqfkddp2k5la5j1";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.1.0-darwin-x64.tar.gz";
+        sha256 = "1lfqm4s72bwrycspr9nbgfvf5i6p50x8lk81pcs6zbzz6iff4x7z";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.0.0-darwin-amd64.tar.gz";
+        sha256 = "0nycqlz3lkwirr8rs4sqdqbzn2igv51hjyfjjsgnhx85kjzlkas6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.10.0-darwin-amd64.tar.gz";
-        sha256 = "05cz7b738bcai4aiya4rkjhmkh9pg6za4xp2snb9nx0jkw2vw2ms";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "1kim1lk9dycsanc2vcsr4fgfhk90zyjf24vvwmmkk70nq1lnwqp3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.36.0-darwin-amd64.tar.gz";
-        sha256 = "0k74x9a6b9xngrp1cgdal86h23m95r5sa3q036ms4py0phq47r2w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0kvr057hdwcxf7gj788sv6ysz25ap3z0akqhhb20mlzv3shwiiji";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.14.2-darwin-amd64.tar.gz";
-        sha256 = "05ggw10z0pp45yqq8bl32l3xjxvgwbs58czpw74whydqbd3qy8av";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "14d530fbzmq5m3njl31qkgwwfyipad9iqjhv3cd8pcl87blaxxki";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.9.1-darwin-amd64.tar.gz";
-        sha256 = "022458yxscfg56s2nqdr95wp2ffm7sni4kaksj87i6c5ddc9f1gx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0q29dyrnramr2bl89503gnbm4zq2x3bn7kaiwbhg6r17xa6rkji4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.17.1-darwin-amd64.tar.gz";
-        sha256 = "09nd5nfvjqgpbjs82bm5ym5wdg37mg863wvdp8s3fd8id4gdqb24";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "0v8iha0n1kqvaxrjll2mv9znc9lzqj7mqxgxig2g89qqjs6p69ql";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v3.7.0-darwin-amd64.tar.gz";
-        sha256 = "0iflll8lkk3s3dx3xl0iqmxac9nlspjnv8gmjfqwpryzk8h1fmzy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0ffic6mqr1zyskrv60q9wg7jc0hq23l5g0pdh3clpnn2m1xnxnxm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.9.1-darwin-amd64.tar.gz";
-        sha256 = "10vp75fc41yk9lg5x7wyhs4mn2f4krfnw4jn5xys7dd475blm6rh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.0.0-darwin-amd64.tar.gz";
+        sha256 = "1793qry84bch32zbc70c777y04qgys6n0vxsxzxqgz2j4r9vmi6a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v4.19.0-darwin-amd64.tar.gz";
-        sha256 = "061s8snsgz044ilh2s48810bmayypdyq9aqkhgal6v3l86jl8m95";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "1lzjjk2da1xla012xrs9jfcdsbpmkh48n6lypmbr2ixh13pdwk1b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "1p6xxhy30qzprxk3kwiwimw5m0c73fk7c9j4vrzj2z4kpgj8qx7w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "1i3zmflwjjfc13j7w9acavgrbblm9fri041z6qpb3ikcq5s9lqcm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v3.8.1-darwin-amd64.tar.gz";
-        sha256 = "14gqwz5nalbv97vl9apwda0xxl7cgkp5mixrc10xvx6a94w5758p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.0.0-darwin-amd64.tar.gz";
+        sha256 = "1lkrx2cayhhv432dvzvz8q4i1gfi659rkl59c0y0dkwbs8x425zb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.7.1-darwin-amd64.tar.gz";
-        sha256 = "0i0h1iz999pbz23gbs75bj3lxfg9a6044g4bwdwf3agxf3k9pji3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "10439p96wpxr13pxhii7li2cjq53pgr8c48ir63d2n4b8fn8iklr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.8.3-darwin-amd64.tar.gz";
-        sha256 = "1nwwqq1nn1zr6mia2wd82lzqsa8l3rr50hl1mf6l6ffyxz1q1lzj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "1n35b1cqglpwvcxdcgxwmv5j1qp8gwrjzh25884l0b72krna9alr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.5.1-darwin-amd64.tar.gz";
-        sha256 = "0zkd3rm6z8bc7pcbwl0bbbn0zb3jrl69b84g62ma9vzskccrxxpr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0qx4p0jz3n66r3kgpgs25qbzlmwdqf80353nywyijv3ham6hpicf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.5.1-darwin-amd64.tar.gz";
-        sha256 = "0v4qqp1x8xi0fqiczmmh2qbf3azbgf09cphia5w8r2kkrn4i0jxn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "18vrp0zzi92x4l5nkjszvd0zr7pk6nl6s3h5a3hvsz5qrj2830q3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.17.1-darwin-amd64.tar.gz";
-        sha256 = "1788ayj5zwlmvhd1qp6rzrcbman5i0hy1hw2fmgcrf66v5qc1f18";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0159ng9c9hshmng8ipss7hncqs5qp8plmr1qjadka6vyp1mxn2c3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
         sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.9.0-darwin-amd64.tar.gz";
-        sha256 = "08af55rrzpm42vx7w1i1cmfk48czjfwln737prp5mwcvddmg5s1g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "0h9zdiaanvm2yds9z0c5fmz0f05apdhm4w28d2i929djxh57jqrr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v3.1.1-darwin-amd64.tar.gz";
-        sha256 = "1j30gkz1m9ap8pd2r3lb3nl82bq5bq3h7y6jq2c0dmv3ksnp197f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "15pzcymjr9bzx47sq86llzfg0hydyf4cn0bb95zxjqrx8y37rql8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v3.5.1-darwin-amd64.tar.gz";
-        sha256 = "1s5kbqri9k7cpajkgnl2s5l0nznzridj5iscwd9n1nj4bsr44lap";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "1wkak84yg5a4b5791pdwcl0fr089yjk853hwp44x3rhdh8xrdq1p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.13.1-darwin-amd64.tar.gz";
-        sha256 = "133xspppmydjri5ba2yxc331ljzd8wj88q3hzmgvp0m50il1ks71";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "1g2q3zbhxmpk2qp3c9hz0vn0xh95pnl7pd5b5kcizbrdfgjlaabq";
       }
     ];
   };
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index 31ac38ab275..d8c5a698300 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -3,31 +3,32 @@
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="2.24.1"
+VERSION="3.1.0"
 
 # Grab latest release ${VERSION} from
 # https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
-    "auth0=1.10.0"
-    "aws=3.36.0"
-    "cloudflare=2.14.2"
-    "consul=2.9.1"
-    "datadog=2.17.1"
-    "digitalocean=3.7.0"
-    "docker=2.9.1"
-    "gcp=4.19.0"
-    "github=3.4.0"
-    "gitlab=3.8.1"
-    "hcloud=0.7.1"
-    "kubernetes=2.8.3"
-    "mailgun=2.5.1"
-    "mysql=2.5.1"
-    "openstack=2.17.1"
+    "auth0=2.0.0"
+    "aws=4.0.0"
+    "cloudflare=3.0.0"
+    "consul=3.0.0"
+    "datadog=3.0.0"
+    "digitalocean=4.0.0"
+    "docker=3.0.0"
+    "gcp=5.0.0"
+    "github=4.0.0"
+    "gitlab=4.0.0"
+    "hcloud=1.0.0"
+    "kubernetes=3.0.0"
+    "linode=3.0.0"
+    "mailgun=3.0.0"
+    "mysql=3.0.0"
+    "openstack=3.0.0"
     "packet=3.2.2"
-    "postgresql=2.9.0"
-    "random=3.1.1"
-    "vault=3.5.1"
-    "vsphere=2.13.1"
+    "postgresql=3.0.0"
+    "random=4.0.0"
+    "vault=4.0.0"
+    "vsphere=3.0.0"
 )
 
 function genMainSrc() {
diff --git a/pkgs/tools/admin/ssl-cert-check/default.nix b/pkgs/tools/admin/ssl-cert-check/default.nix
index aafe91dccd2..c314c304aec 100644
--- a/pkgs/tools/admin/ssl-cert-check/default.nix
+++ b/pkgs/tools/admin/ssl-cert-check/default.nix
@@ -1,38 +1,41 @@
-{ lib, stdenv
+{ lib
+, stdenv
+, coreutils
 , fetchFromGitHub
-, makeWrapper
-, openssl
-, which
+, findutils
+, gawk
 , gnugrep
 , gnused
-, gawk
+, makeWrapper
 , mktemp
-, coreutils
-, findutils
+, openssl
+, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "ssl-cert-check";
-  version = "3.31";
+  version = "4.14";
 
   src = fetchFromGitHub {
     owner = "Matty9191";
     repo = pname;
-    rev = "698c1996d05152cfaf2a1a3df4cc70482411fac8";
-    sha256 = "0jvi9phs0ngfwrj9zixb03v9byavbwxx8xkp0h5m98qppn1kvl3n";
+    rev = "4056ceeab5abc0e39f4e0ea40cd54147253a3369";
+    sha256 = "07k2n4l68hykraxvy030djc208z8rqff3kc7wy4ib9g6qj7s4mif";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
   buildInputs = [
-    openssl
-    which
-    gnugrep
-    mktemp
-    gawk
-    gnused
     coreutils
     findutils
+    gawk
+    gnugrep
+    gnused
+    mktemp
+    openssl
+    which
   ];
 
   prePatch = ''
@@ -47,11 +50,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "a Bourne shell script that can be used to report on expiring SSL certificates";
+    description = "Bourne shell script that can be used to report on expiring SSL certificates";
     homepage = "https://github.com/Matty9191/ssl-cert-check";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.ryantm ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ryantm ];
     platforms = platforms.linux;
   };
-
 }
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index d2d2a138d65..f91b0487bb8 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -2,27 +2,26 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E/tPjVc+XLDCFYzloAipwWjB4I86kAe/6NVoJSCrY2M=";
+    sha256 = "sha256-5TOKYxH1Tnsd1t2yoUflFUSW0QGS9l5+0JtS2Fo6vL0=";
   };
 
-  vendorSha256 = "sha256-YoQF0Eug747LhsR3V0IplwXgm0ndDqK1pUVjguOhjOU=";
+  vendorSha256 = "sha256-zVe1bTTLOHxfdbb6VcztOCWMbCbzT6igNpvPytktMWs=";
 
-  subPackages = [ "cmd/trivy" ];
+  excludedPackages = "misc";
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.version=v${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.version=v${version}")
+  '';
 
   meta = with lib; {
+    homepage = "https://github.com/aquasecurity/trivy";
+    changelog = "https://github.com/aquasecurity/trivy/releases/tag/v${version}";
     description = "A simple and comprehensive vulnerability scanner for containers, suitable for CI";
     longDescription = ''
       Trivy is a simple and comprehensive vulnerability scanner for containers
@@ -31,8 +30,6 @@ buildGoModule rec {
       vulnerabilities of OS packages (Alpine, RHEL, CentOS, etc.) and
       application dependencies (Bundler, Composer, npm, yarn, etc.).
     '';
-    homepage = src.meta.homepage;
-    changelog = "${src.meta.homepage}/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index 8a01353b01b..8ba87da6b6a 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
     description = "A new p7zip fork with additional codecs and improvements (forked from https://sourceforge.net/projects/p7zip/)";
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.raskin ];
+    mainProgram = "7z";
     # RAR code is under non-free UnRAR license, but we remove it
     license = if enableUnfree then lib.licenses.unfree else lib.licenses.lgpl2Plus;
   };
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index ef47578ac57..b9ed3eca919 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -105,13 +105,13 @@ in pythonPackages.buildPythonApplication rec {
   # unstable does not require bs1770gain[2].
   # [1]: https://discourse.beets.io/t/forming-a-beets-core-team/639
   # [2]: https://github.com/NixOS/nixpkgs/pull/90504
-  version = "unstable-2021-03-24";
+  version = "unstable-2021-04-17";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
-    rev = "854b4ab48324afe8884fcd11fa47bd6258d2f4f7";
-    sha256 = "sha256-y5EWVNF4bd9fNvU6VkucMpenyFZuqdPkrqQDgG9ZPJY=";
+    rev = "50163b373f527d1b1f8b2442240ca547e846744e";
+    sha256 = "sha256-l7drav4Qx2JCF+F5OA0s641idcKM3S4Yx2lM2evJQWE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/audio/beets/plugins/alternatives.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix
index c0b9123d96a..146e9f50664 100644
--- a/pkgs/tools/audio/beets/plugins/alternatives.nix
+++ b/pkgs/tools/audio/beets/plugins/alternatives.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "beets-alternatives";
-  version = "0.10.2";
+  version = "unstable-2021-02-01";
 
   src = fetchFromGitHub {
     repo = "beets-alternatives";
     owner = "geigerzaehler";
-    rev = "v${version}";
-    sha256 = "1dsz94fb29wra1f9580w20bz2f1bgkj4xnsjgwgbv14flbfw4bp0";
+    rev = "288299e3aa9a1602717b04c28696fce5ce4259bf";
+    sha256 = "sha256-Xl7AHr33hXQqQDuFbWuj8HrIugeipJFPmvNXpCkU/mI=";
   };
 
   postPatch = ''
@@ -23,10 +23,10 @@ pythonPackages.buildPythonApplication rec {
     mock
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Beets plugin to manage external files";
     homepage = "https://github.com/geigerzaehler/beets-alternatives";
-    maintainers = [ lib.maintainers.aszlig ];
-    license = lib.licenses.mit;
+    maintainers = with maintainers; [ aszlig lovesegfault ];
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index b8a17a7d13e..2f1ecdfc369 100644
--- a/pkgs/tools/audio/beets/plugins/copyartifacts.nix
+++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
@@ -1,13 +1,14 @@
 { lib, fetchFromGitHub, beets, pythonPackages, glibcLocales }:
 
 pythonPackages.buildPythonApplication {
-  name = "beets-copyartifacts";
+  pname = "beets-copyartifacts";
+  version = "unstable-2020-02-15";
 
   src = fetchFromGitHub {
     repo = "beets-copyartifacts";
-    owner = "sbarakat";
-    rev = "d0bb75c8fc8fe125e8191d73de7ade6212aec0fd";
-    sha256 = "19b4lqq1p45n348ssmql60jylw2fw7vfj9j22nly5qj5qx51j3g5";
+    owner = "adammillerio";
+    rev = "85eefaebf893cb673fa98bfde48406ec99fd1e4b";
+    sha256 = "sha256-bkT2BZZ2gdcacgvyrVe2vMrOMV8iMAm8Q5xyrZzyqU0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/audio/beets/plugins/extrafiles.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix
index 0ab6b3e5414..9118765cc1b 100644
--- a/pkgs/tools/audio/beets/plugins/extrafiles.nix
+++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "beets-extrafiles";
-  version = "0.0.7";
+  version = "unstable-2020-12-13";
 
   src = fetchFromGitHub {
     repo = "beets-extrafiles";
     owner = "Holzhaus";
-    rev = "v${version}";
-    sha256 = "0ah7mgax9zrhvvd5scf2z0v0bhd6xmmv5sdb6av840ixpl6vlvm6";
+    rev = "a1d6ef9a9682b6bf7af9483541e56a3ff12247b8";
+    sha256 = "sha256-ajuEbieWjTCNjdRZuGUwvStZwjx260jmY0m+ZqNd7ec=";
   };
 
   postPatch = ''
@@ -18,6 +18,8 @@ pythonPackages.buildPythonApplication rec {
 
   nativeBuildInputs = [ beets ];
 
+  propagatedBuildInputs = with pythonPackages; [ mediafile ];
+
   preCheck = ''
     HOME=$TEMPDIR
   '';
diff --git a/pkgs/tools/audio/spotdl/default.nix b/pkgs/tools/audio/spotdl/default.nix
index 5dc6e39f8d2..80480c91ca9 100644
--- a/pkgs/tools/audio/spotdl/default.nix
+++ b/pkgs/tools/audio/spotdl/default.nix
@@ -1,30 +1,20 @@
 { lib
 , python3
 , fetchFromGitHub
-, fetchpatch
 , ffmpeg
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "spotdl";
-  version = "3.5.1";
+  version = "3.5.2";
 
   src = fetchFromGitHub {
     owner = "spotDL";
     repo = "spotify-downloader";
     rev = "v${version}";
-    sha256 = "sha256-Mc0aODyt0rwmBhkvY/gH1ODz4k8LOxyU5xXglSb6sPs=";
+    sha256 = "sha256-V9jIA+ULjZRj+uVy4Yh55PapPiqFy9I9ZVln1nt/bJw=";
   };
 
-  patches = [
-    # https://github.com/spotDL/spotify-downloader/pull/1254
-    (fetchpatch {
-      name = "subprocess-dont-use-shell.patch";
-      url = "https://github.com/spotDL/spotify-downloader/commit/fe9848518900577776b463ef0798796201e226ac.patch";
-      sha256 = "1kqq3y31dcx1zglywr564hkd2px3qx6sk3rkg7yz8n5hnfjhp6fn";
-    })
-  ];
-
   propagatedBuildInputs = with python3.pkgs; [
     spotipy
     pytube
diff --git a/pkgs/tools/audio/tts/default.nix b/pkgs/tools/audio/tts/default.nix
index 325039d6865..3a10881b605 100644
--- a/pkgs/tools/audio/tts/default.nix
+++ b/pkgs/tools/audio/tts/default.nix
@@ -2,6 +2,7 @@
 , python3Packages
 , fetchFromGitHub
 , python3
+, fetchpatch
 }:
 
 # USAGE:
@@ -9,24 +10,32 @@
 # # pick your favorite vocoder/tts model
 # $ tts-server --model_name tts_models/en/ljspeech/glow-tts --vocoder_name vocoder_models/universal/libri-tts/fullband-melgan
 #
+# If you upgrade from an old version you may have to delete old models from ~/.local/share/tts
+# Also note that your tts version might not support all available models so check:
+#   https://github.com/coqui-ai/TTS/releases/tag/v0.0.12
+#
 # For now, for deployment check the systemd unit in the pull request:
 #   https://github.com/NixOS/nixpkgs/pull/103851#issue-521121136
-#
 
 python3Packages.buildPythonApplication rec {
   pname = "tts";
-  # until https://github.com/mozilla/TTS/issues/424 is resolved
-  # we treat released models as released versions:
-  # https://github.com/mozilla/TTS/wiki/Released-Models
-  version = "0.0.9";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
-    owner = "mozilla";
+    owner = "coqui-ai";
     repo = "TTS";
-    rev = "df5899daf4ba4ec89544edf94f9c2e105c544461";
-    sha256 = "sha256-lklG8DqG04LKJY93z2axeYhW8gtpbRG41o9ow2gJjuA=";
+    rev = "v${version}";
+    sha256 = "sha256-0M9wcdBmuTK+NvEGsXEdoYiVFjw8G2MRUwmi1PJgmzI=";
   };
 
+  patches = [
+    # https://github.com/coqui-ai/TTS/pull/435
+    (fetchpatch {
+      url = "https://github.com/coqui-ai/TTS/commit/97f98e4c4584ef14ed2f4885aa02c162d9364a00.patch";
+      sha256 = "sha256-DAZYOOAe+6TYBF5ukFq5HRwm49askEvNEivuwb/oCWM=";
+    })
+  ];
+
   preBuild = ''
     # numba jit tries to write to its cache directory
     export HOME=$TMPDIR
@@ -37,7 +46,11 @@ python3Packages.buildPythonApplication rec {
     sed -i -e 's!unidecode==[^"]*!unidecode!' requirements.txt setup.py
     sed -i -e 's!bokeh==[^"]*!bokeh!' requirements.txt setup.py
     sed -i -e 's!numba==[^"]*!numba!' requirements.txt setup.py
+    sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt setup.py
+    sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt setup.py
     # Not required for building/installation but for their development/ci workflow
+    sed -i -e '/black/d' requirements.txt
+    sed -i -e '/isor/d' requirements.txt
     sed -i -e '/pylint/d' requirements.txt
     sed -i -e '/cardboardlint/d' requirements.txt setup.py
   '';
@@ -45,24 +58,25 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = [ python3Packages.cython ];
 
   propagatedBuildInputs = with python3Packages; [
-    matplotlib
-    scipy
-    pytorch
-    flask
     attrdict
     bokeh
-    soundfile
-    tqdm
-    librosa
-    unidecode
-    umap-learn
-    phonemizer
-    tensorboardx
+    flask
     fuzzywuzzy
-    inflect
     gdown
+    inflect
+    jieba
+    librosa
+    matplotlib
+    phonemizer
+    pypinyin
     pysbd
-    pyworld
+    pytorch
+    scipy
+    soundfile
+    tensorboardx
+    tqdm
+    umap-learn
+    unidecode
   ];
 
   postInstall = ''
@@ -92,16 +106,17 @@ python3Packages.buildPythonApplication rec {
     mv TTS{,.old}
   '';
 
-  pytestFlagsArray = [
+  disabledTestPaths = [
     # requires tensorflow
-    "--ignore=tests/test_tacotron2_tf_model.py"
-    "--ignore=tests/test_vocoder_tf_melgan_generator.py"
-    "--ignore=tests/test_vocoder_tf_pqmf.py"
+    "tests/test_tacotron2_tf_model.py"
+    "tests/test_vocoder_tf_melgan_generator.py"
+    "tests/test_vocoder_tf_pqmf.py"
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/mozilla/TTS";
-    description = "Deep learning for Text to Speech";
+    homepage = "https://github.com/coqui-ai/TTS";
+    changelog = "https://github.com/coqui-ai/TTS/releases/tag/v${version}";
+    description = "Deep learning toolkit for Text-to-Speech, battle-tested in research and production";
     license = licenses.mpl20;
     maintainers = with maintainers; [ hexa mic92 ];
   };
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index d2a14aae330..c09045bdb6e 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -45,25 +45,25 @@ let
 
   # Derived from vst3.wrap
   vst3 = rec {
-    version = "e2fbb41f28a4b311f2fc7d28e9b4330eec1802b6";
+    version = "3.7.2_build_28-patched";
     src = fetchFromGitHub {
       owner = "robbert-vdh";
       repo = "vst3sdk";
-      rev = version;
+      rev = "v${version}";
       fetchSubmodules = true;
-      sha256 = "sha256-4oLOa6kVB053Hrq7BBbZFdruAXuqnC944y5Kuib1F7s=";
+      sha256 = "sha256-39pvfcg4fvf7DAbAPzEHA1ja1LFL6r88nEwNYwaDC8w=";
     };
   };
 in stdenv.mkDerivation rec {
   pname = "yabridge";
-  version = "3.0.2";
+  version = "3.1.0";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = pname;
     rev = version;
-    hash = "sha256-3uZCYGqo9acpANy5tQl3U0LK6wuOzjQpfjHDvaPSGlI=";
+    hash = "sha256-xvKjb+ql3WxnGHqcn3WnxunY5+s9f8Gt/n6EFSBrNdI=";
   };
 
   # Unpack subproject sources
diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix
index 5c7f3a628f5..4548b288b69 100644
--- a/pkgs/tools/audio/yabridgectl/default.nix
+++ b/pkgs/tools/audio/yabridgectl/default.nix
@@ -6,7 +6,7 @@ rustPlatform.buildRustPackage rec {
 
   src = yabridge.src;
   sourceRoot = "source/tools/yabridgectl";
-  cargoHash = "sha256-mSp/IH7ZB7YSOBCFwNtHLYDz7CvWo2sO9VuPdqpl/u0=";
+  cargoHash = "sha256-TcjFaDo5IUs6Z3tgb+6jqyyrB2BLcif6Ycw++5FzuDY=";
 
   patches = [
     # By default, yabridgectl locates libyabridge.so by using
diff --git a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
index e17cda6ada3..ec42f98a2e8 100644
--- a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
+++ b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
@@ -1,8 +1,8 @@
 diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
-index c1c89cf..d7bd822 100644
+index 6e05e34..656eef3 100644
 --- a/tools/yabridgectl/src/config.rs
 +++ b/tools/yabridgectl/src/config.rs
-@@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet};
+@@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet};
  use std::env;
  use std::fmt::Display;
  use std::fs;
@@ -10,7 +10,7 @@ index c1c89cf..d7bd822 100644
  use std::path::{Path, PathBuf};
  use which::which;
  use xdg::BaseDirectories;
-@@ -216,34 +217,24 @@ impl Config {
+@@ -222,34 +223,24 @@ impl Config {
                  }
              }
              None => {
@@ -56,10 +56,10 @@ index c1c89cf..d7bd822 100644
                          ));
                      }
 diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
-index 0db1bd4..221cdd0 100644
+index ce701b8..b6b9633 100644
 --- a/tools/yabridgectl/src/main.rs
 +++ b/tools/yabridgectl/src/main.rs
-@@ -102,7 +102,7 @@ fn main() -> Result<()> {
+@@ -150,7 +150,7 @@ fn main() -> Result<()> {
                          .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
                          .long_about(
                              "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
diff --git a/pkgs/tools/backup/bupstash/default.nix b/pkgs/tools/backup/bupstash/default.nix
index 54644ac3a0e..4a8de070ced 100644
--- a/pkgs/tools/backup/bupstash/default.nix
+++ b/pkgs/tools/backup/bupstash/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, installShellFiles, rustPlatform, ronn, pkg-config, libsodium }:
 rustPlatform.buildRustPackage rec {
   pname = "bupstash";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "andrewchambers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zZHJlC0OICIc3G825t7GrZwdmkaaLQKzX2IwkKigkV4=";
+    sha256 = "sha256-uA5XEG9nvqsXg34bqw8k4Rjk5F9bPFSk1HQ4Bv6Ar+I=";
   };
 
-  cargoSha256 = "sha256-KVeIF6x+gpb8vkqCtZptF5EX9G1Zv6q8L6tskN6HziM=";
+  cargoSha256 = "sha256-4r+Ioh6Waoy/7LVF3CPz18c2bCRYym5T4za1GSKw7WQ=";
 
   nativeBuildInputs = [ ronn pkg-config installShellFiles ];
   buildInputs = [ libsodium ];
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 172f30695d5..efb81a58adb 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -8,12 +8,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.14";
+  version = "2.7.0";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-1uzKj+q2klIdANhLzy6TStJzeQndeUvdT0Dzwijad+U=";
+    sha256 = "sha256-aJqNi2jZJgQmq0IObbAXZcmK2vvWePvHEUtw8O2nBwo=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
index bcf51372f6c..32f051f5ad9 100644
--- a/pkgs/tools/backup/kopia/default.nix
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub, coreutils }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "kopia";
-  version = "0.7.3";
+  version = "0.8.4";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dnk764y71c9k9nghn9q06f2zz9igsvm4z826azil2d58h5d06j6";
+    sha256 = "sha256-Or6RL6yT/X3rVIySqt5lWbXbI25f8HNLBpY3cOhMC0g=";
   };
 
-  vendorSha256 = "1mnhq6kn0pn67l55a9k6irmjlprr295218nms3klsk2720syzdwq";
+  vendorSha256 = "sha256-1FK5IIvm2iyzGqj8IPL3/qvxFj0dC37aycQQ5MO0mBI=";
 
   doCheck = false;
 
@@ -23,12 +23,6 @@ buildGoModule rec {
        -X github.com/kopia/kopia/repo.BuildInfo=${src.rev}
   '';
 
-  postConfigure = ''
-    # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
-    substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
-      --replace "/bin/stty" "${coreutils}/bin/stty"
-  '';
-
   meta = with lib; {
     homepage = "https://kopia.io";
     description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
diff --git a/pkgs/tools/backup/zrepl/default.nix b/pkgs/tools/backup/zrepl/default.nix
index 8d5a5159877..a7111633545 100644
--- a/pkgs/tools/backup/zrepl/default.nix
+++ b/pkgs/tools/backup/zrepl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "zrepl";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "zrepl";
     repo = "zrepl";
     rev = "v${version}";
-    sha256 = "sha256-wtUL8GGSJxn9yEdyTWKtkHODfxxLOxojNPlPLRjI9xo=";
+    sha256 = "5Bp8XGCjibDJgeAjW98rcABuddI+CV4Fh3hFJaKKwbo=";
   };
 
-  vendorSha256 = "sha256-4LBX0bD8qirFaFkV52QFU50lEW4eae6iObIa5fFT/wA=";
+  vendorSha256 = "MwmYiK2z7ZK5kKBZV7K6kCZRSd7v5Sgjoih1eeOh6go=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/compression/imagelol/default.nix b/pkgs/tools/compression/imagelol/default.nix
new file mode 100644
index 00000000000..d54d2da2f90
--- /dev/null
+++ b/pkgs/tools/compression/imagelol/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "imagelol";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "MCRedstoner2004";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0978zdrfj41jsqm78afyyd1l64iki9nwjvhd8ynii1b553nn4dmd";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./ImageLOL $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/MCredstoner2004/ImageLOL";
+    description = "Simple program to store a file into a PNG image";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/compression/nx2elf/default.nix b/pkgs/tools/compression/nx2elf/default.nix
new file mode 100644
index 00000000000..8b7f094bf39
--- /dev/null
+++ b/pkgs/tools/compression/nx2elf/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, lz4 }:
+
+stdenv.mkDerivation rec {
+  pname = "nx2elf";
+  version = "unstable-2020-05-26";
+
+  src = fetchFromGitHub {
+    owner = "shuffle2";
+    repo = "nx2elf";
+    rev = "7212e82a77b84fcc18ef2d050970350dbf63649b";
+    sha256 = "1j4k5s86c6ixa3wdqh4cfm31fxabwn6jcjc6pippx8mii98ac806";
+  };
+
+  buildInputs = [ lz4 ];
+
+  postPatch = ''
+    # This project does not comply with C++14 standards, and compilation on that fails.
+    # This does however succesfully compile with the gnu++20 standard.
+    substituteInPlace Makefile --replace "c++14" "gnu++20"
+
+    # pkg-config is not supported, so we'll manually use a non-ancient version of lz4
+    cp ${lz4.src}/lib/lz4.{h,c} .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -D nx2elf $out/bin/nx2elf
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/shuffle2/nx2elf";
+    description = "Convert Nintendo Switch executable files to ELFs";
+    license = licenses.unfree; # No license specified upstream
+    platforms = [ "x86_64-linux" ]; # Should work on Darwin as well, but this is untested. aarch64-linux fails.
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index 6394ea3338d..e890518a45a 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -36,13 +36,15 @@ stdenv.mkDerivation rec {
       tests/playTests.sh
   '';
 
-  cmakeFlags = [
-    "-DZSTD_BUILD_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
-    "-DZSTD_BUILD_STATIC:BOOL=${if static then "ON" else "OFF"}"
-    "-DZSTD_PROGRAMS_LINK_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
-    "-DZSTD_LEGACY_SUPPORT:BOOL=${if legacySupport then "ON" else "OFF"}"
-    "-DZSTD_BUILD_TESTS:BOOL=ON"
-  ];
+  cmakeFlags = lib.attrsets.mapAttrsToList
+    (name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") {
+      BUILD_SHARED = !static;
+      BUILD_STATIC = static;
+      PROGRAMS_LINK_SHARED = !static;
+      LEGACY_SUPPORT = legacySupport;
+      BUILD_TESTS = doCheck;
+    };
+
   cmakeDir = "../build/cmake";
   dontUseCmakeBuildDir = true;
   preConfigure = ''
@@ -50,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   checkInputs = [ file ];
-  doCheck = true;
+  doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
   checkPhase = ''
     runHook preCheck
     # Patch shebangs for playTests
diff --git a/pkgs/tools/filesystems/9pfs/default.nix b/pkgs/tools/filesystems/9pfs/default.nix
index 9664526761b..bf817a50873 100644
--- a/pkgs/tools/filesystems/9pfs/default.nix
+++ b/pkgs/tools/filesystems/9pfs/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation {
     sha256 = "007s2idsn6bspmfxv1qabj39ggkgvn6gwdbhczwn04lb4c6gh3xc";
   };
 
+  # Upstream development has stopped and is no longer accepting patches
+  # https://github.com/mischief/9pfs/pull/3
+  patches = [ ./fix-darwin-build.patch ];
+
   preConfigure =
     ''
       substituteInPlace Makefile --replace '-g bin' ""
@@ -25,7 +29,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/mischief/9pfs";
     description = "FUSE-based client of the 9P network filesystem protocol";
     maintainers = [ lib.maintainers.eelco ];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     license = with lib.licenses; [ lpl-102 bsd2 ];
   };
 }
diff --git a/pkgs/tools/filesystems/9pfs/fix-darwin-build.patch b/pkgs/tools/filesystems/9pfs/fix-darwin-build.patch
new file mode 100644
index 00000000000..a565248f19d
--- /dev/null
+++ b/pkgs/tools/filesystems/9pfs/fix-darwin-build.patch
@@ -0,0 +1,47 @@
+From 6b7863b51c97f8ecd9a93fc4347f8938f9b5c05f Mon Sep 17 00:00:00 2001
+From: midchildan <git@midchildan.org>
+Date: Tue, 30 Mar 2021 22:21:51 +0900
+Subject: [PATCH] build: fix build for macOS
+
+---
+ 9pfs.c | 4 ++--
+ libc.h | 4 ++++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/9pfs.c b/9pfs.c
+index 2c481bd..f5c487c 100644
+--- a/9pfs.c
++++ b/9pfs.c
+@@ -30,7 +30,7 @@
+ enum
+ {
+ 	CACHECTLSIZE = 8, /* sizeof("cleared\n") - 1 */
+-	MSIZE = 8192
++	MSIZE_9P = 8192
+ };
+ 
+ void	dir2stat(struct stat*, Dir*);
+@@ -505,7 +505,7 @@ main(int argc, char *argv[])
+ 		freeaddrinfo(ainfo);
+ 
+ 	init9p();
+-	msize = _9pversion(MSIZE);
++	msize = _9pversion(MSIZE_9P);
+ 	if(doauth){
+ 		authfid = _9pauth(AUTHFID, user, NULL);
+ 		ai = auth_proxy(authfid, auth_getkey, "proto=p9any role=client");
+diff --git a/libc.h b/libc.h
+index 099adba..aac03c5 100644
+--- a/libc.h
++++ b/libc.h
+@@ -61,6 +61,10 @@ typedef unsigned char uchar;
+ typedef unsigned long long uvlong;
+ typedef long long vlong;
+ 
++#ifndef __GLIBC__
++typedef unsigned long ulong;
++#endif
++
+ typedef
+ struct Qid
+ {
diff --git a/pkgs/tools/filesystems/aefs/default.nix b/pkgs/tools/filesystems/aefs/default.nix
index ed47b8f885b..fb6fa01894e 100644
--- a/pkgs/tools/filesystems/aefs/default.nix
+++ b/pkgs/tools/filesystems/aefs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fuse }:
+{ lib, stdenv, fetchurl, fetchpatch, fuse }:
 
 stdenv.mkDerivation rec {
   name = "aefs-0.4pre259-8843b7c";
@@ -8,12 +8,29 @@ stdenv.mkDerivation rec {
     sha256 = "167hp58hmgdavg2mqn5dx1xgq24v08n8d6psf33jhbdabzx6a6zq";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/edolstra/aefs/commit/15d8df8b8d5dc1ee20d27a86c4d23163a67f3123.patch";
+      sha256 = "0k36hsyvf8a0ji2hpghgqff2fncj0pllxn8p0rs0aj4h7j2vp4iv";
+    })
+  ];
+
+  # autoconf's AC_CHECK_HEADERS and AC_CHECK_LIBS fail to detect libfuse on
+  # Darwin if FUSE_USE_VERSION isn't set at configure time.
+  #
+  # NOTE: Make sure the value of FUSE_USE_VERSION specified here matches the
+  # actual version used in the source code:
+  #
+  #     $ tar xf "$(nix-build -A aefs.src)"
+  #     $ grep -R FUSE_USE_VERSION
+  configureFlags = lib.optional stdenv.isDarwin "CPPFLAGS=-DFUSE_USE_VERSION=26";
+
   buildInputs = [ fuse ];
 
   meta = with lib; {
     homepage = "https://github.com/edolstra/aefs";
     description = "A cryptographic filesystem implemented in userspace using FUSE";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.eelco ];
     license = licenses.gpl2;
   };
diff --git a/pkgs/tools/filesystems/android-file-transfer/darwin-dont-vendor-dependencies.patch b/pkgs/tools/filesystems/android-file-transfer/darwin-dont-vendor-dependencies.patch
new file mode 100644
index 00000000000..6e0f38582cc
--- /dev/null
+++ b/pkgs/tools/filesystems/android-file-transfer/darwin-dont-vendor-dependencies.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8b05ab0..81e31f5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -236,16 +236,6 @@ endif()
+
+ if (''${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ 	set(MACOSX_BUNDLE_LIBS)
+-	if (OPENSSL_FOUND)
+-		list(APPEND MACOSX_BUNDLE_LIBS /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib)
+-	endif()
+-	if (TAGLIB_FOUND)
+-		list(APPEND MACOSX_BUNDLE_LIBS /usr/local/opt/taglib/lib/libtag.1.dylib)
+-	endif()
+-	if (FUSE_FOUND)
+-		list(APPEND MACOSX_BUNDLE_LIBS /usr/local/lib/libosxfuse.2.dylib)
+-	endif()
+-
+ 	set(MACOSX_BUNDLE_LIBS_INSTALL)
+ 	set(MACOSX_BUNDLE_ROOT_DIR "''${CMAKE_INSTALL_PREFIX}/''${CMAKE_PROJECT_NAME}.app")
+ 	message(STATUS "bundle root dir: ''${MACOSX_BUNDLE_ROOT_DIR}")
diff --git a/pkgs/tools/filesystems/android-file-transfer/default.nix b/pkgs/tools/filesystems/android-file-transfer/default.nix
index f0efaaa3231..a8511f8b99a 100644
--- a/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -1,4 +1,14 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, fuse, readline, pkg-config, qtbase, qttools }:
+{ lib
+, stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, fuse
+, readline
+, pkg-config
+, qtbase
+, qttools
+, wrapQtAppsHook }:
 
 mkDerivation rec {
   pname = "android-file-transfer";
@@ -11,14 +21,24 @@ mkDerivation rec {
     sha256 = "125rq8ji83nw6chfw43i0h9c38hjqh1qjibb0gnf9wrigar9zc8b";
   };
 
-  nativeBuildInputs = [ cmake readline pkg-config ];
+  patches = [ ./darwin-dont-vendor-dependencies.patch ];
+
+  nativeBuildInputs = [ cmake readline pkg-config wrapQtAppsHook ];
   buildInputs = [ fuse qtbase qttools ];
 
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir $out/Applications
+    mv $out/*.app $out/Applications
+    for f in $out/Applications/android-file-transfer.app/Contents/MacOS/*; do
+      wrapQtApp "$f"
+    done
+  '';
+
   meta = with lib; {
     description = "Reliable MTP client with minimalistic UI";
     homepage = "https://whoozle.github.io/android-file-transfer-linux/";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.xaverdh ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/archivemount/default.nix b/pkgs/tools/filesystems/archivemount/default.nix
index e3f9d8505fc..32c942aea5b 100644
--- a/pkgs/tools/filesystems/archivemount/default.nix
+++ b/pkgs/tools/filesystems/archivemount/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
     license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/avfs/default.nix b/pkgs/tools/filesystems/avfs/default.nix
index e89828dd750..b4fc7f1e4f6 100644
--- a/pkgs/tools/filesystems/avfs/default.nix
+++ b/pkgs/tools/filesystems/avfs/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "avfs";
-  version = "1.1.3";
+  version = "1.1.4";
   src = fetchurl {
     url = "mirror://sourceforge/avf/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1psh8k7g7rb0gn7aygbjv86kxyi9xq07barxksa99nnmq3lc2kjg";
+    sha256 = "0ax1zbw4pmggx1b784bfabdqyn39k7109cnl22p69y2phnpq2y9s";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://avf.sourceforge.net/";
     description = "Virtual filesystem that allows browsing of compressed files";
-    platforms = lib.platforms.linux;
-    license = lib.licenses.gpl2;
+    platforms = lib.platforms.unix;
+    license = lib.licenses.gpl2Only;
   };
 }
diff --git a/pkgs/tools/filesystems/boxfs/default.nix b/pkgs/tools/filesystems/boxfs/default.nix
index 5637b9af291..ef611afd5d0 100644
--- a/pkgs/tools/filesystems/boxfs/default.nix
+++ b/pkgs/tools/filesystems/boxfs/default.nix
@@ -37,7 +37,10 @@ in stdenv.mkDerivation {
   buildInputs = [ curl fuse libxml2 ];
   nativeBuildInputs = [ pkg-config ];
 
-  buildFlags = [ "static" ];
+  buildFlags = [
+    "static"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ] ++ lib.optional stdenv.isDarwin "CFLAGS=-D_BSD_SOURCE";
 
   installPhase = ''
     mkdir -p $out/bin
@@ -55,6 +58,6 @@ in stdenv.mkDerivation {
     '';
     homepage = "https://github.com/drotiro/boxfs2";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/btrfs-heatmap/default.nix b/pkgs/tools/filesystems/btrfs-heatmap/default.nix
index 04d74d78cfd..9de91738e74 100644
--- a/pkgs/tools/filesystems/btrfs-heatmap/default.nix
+++ b/pkgs/tools/filesystems/btrfs-heatmap/default.nix
@@ -2,25 +2,17 @@
 , fetchFromGitHub
 , python3
 , installShellFiles
-, fetchurl
 }:
 
 stdenv.mkDerivation rec {
   pname = "btrfs-heatmap";
-  version = "8";
+  version = "9";
 
   src = fetchFromGitHub {
     owner = "knorrie";
     repo = "btrfs-heatmap";
     rev = "v${version}";
-    sha256 = "035frvk3s7g18y81srssvm550nfq7jylr7w60nvixidxvrc0yrnh";
-  };
-
-  # man page is currently only in the debian branch
-  # https://github.com/knorrie/btrfs-heatmap/issues/11
-  msrc = fetchurl {
-    url = "https://raw.githubusercontent.com/knorrie/btrfs-heatmap/45d844e12d7f5842ebb99e65d7b968a5e1a89066/debian/man/btrfs-heatmap.8";
-    sha256 = "1md7xc426sc8lq4w29gjd6gv7vjqhcwrqqcr6z39kihvi04d5f6q";
+    sha256 = "sha256-yCkuZqWwxrs2eS7EXY6pAOVVVSq7dAMxJtf581gX8vg=";
   };
 
   buildInputs = [ python3 ];
@@ -29,11 +21,15 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "man" ];
 
   installPhase = ''
-    install -Dm 0755 heatmap.py $out/sbin/btrfs-heatmap
-    installManPage ${msrc}
+    runHook preInstall
+
+    install -Dm 0755 btrfs-heatmap $out/sbin/btrfs-heatmap
+    installManPage man/btrfs-heatmap.1
 
     buildPythonPath ${python3.pkgs.btrfs}
     patchPythonScript $out/sbin/btrfs-heatmap
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index e923bb6132e..a7add68b2da 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, runCommand, fetchurl
-, fetchpatch
 , ensureNewerSourcesHook
 , cmake, pkg-config
 , which, git
@@ -14,6 +13,15 @@
 , libnl, libcap_ng
 , rdkafka
 , nixosTests
+, cryptsetup
+, sqlite
+, lua
+, icu
+, bzip2
+, doxygen
+, graphviz
+, fmt
+, python3
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -123,10 +131,10 @@ let
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "15.2.10";
+  version = "16.2.1";
   src = fetchurl {
     url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-    sha256 = "1xfijynfb56gydpwh6h4q781xymwxih6nx26idnkcjqih48nsn01";
+    sha256 = "1qqvfhnc94vfrq1ddizf6habjlcp77abry4v18zlq6rnhwr99zrh";
   };
 in rec {
   ceph = stdenv.mkDerivation {
@@ -142,12 +150,18 @@ in rec {
       pkg-config which git python3Packages.wrapPython makeWrapper
       python3Packages.python # for the toPythonPath function
       (ensureNewerSourcesHook { year = "1980"; })
+      python3
+      fmt
+      # for building docs/man-pages presumably
+      doxygen
+      graphviz
     ];
 
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
       snappy lz4 oathToolkit leveldb libnl libcap_ng rdkafka
+      cryptsetup sqlite lua icu bzip2
     ] ++ lib.optionals stdenv.isLinux [
       linuxHeaders util-linux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -161,6 +175,7 @@ in rec {
     preConfigure =''
       substituteInPlace src/common/module.c --replace "/sbin/modinfo"  "modinfo"
       substituteInPlace src/common/module.c --replace "/sbin/modprobe" "modprobe"
+      substituteInPlace src/common/module.c --replace "/bin/grep" "grep"
 
       # for pybind/rgw to find internal dep
       export LD_LIBRARY_PATH="$PWD/build/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
@@ -171,7 +186,6 @@ in rec {
     '';
 
     cmakeFlags = [
-      "-DWITH_PYTHON3=ON"
       "-DWITH_SYSTEM_ROCKSDB=OFF"  # breaks Bluestore
       "-DCMAKE_INSTALL_DATADIR=${placeholder "lib"}/lib"
 
@@ -182,6 +196,8 @@ in rec {
       "-DWITH_TESTS=OFF"
       # TODO breaks with sandbox, tries to download stuff with npm
       "-DWITH_MGR_DASHBOARD_FRONTEND=OFF"
+      # WITH_XFS has been set default ON from Ceph 16, keeping it optional in nixpkgs for now
+      ''-DWITH_XFS=${if optLibxfs != null then "ON" else "OFF"}''
     ];
 
     postFixup = ''
@@ -197,6 +213,9 @@ in rec {
 
     doCheck = false; # uses pip to install things from the internet
 
+    # Takes 7+h to build with 2 cores.
+    requiredSystemFeatures = [ "big-parallel" ];
+
     meta = getMeta "Distributed storage system";
 
     passthru.version = version;
diff --git a/pkgs/tools/filesystems/cryfs/default.nix b/pkgs/tools/filesystems/cryfs/default.nix
index eec257c44b7..0da6c4c2099 100644
--- a/pkgs/tools/filesystems/cryfs/default.nix
+++ b/pkgs/tools/filesystems/cryfs/default.nix
@@ -25,6 +25,9 @@ stdenv.mkDerivation rec {
       url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryfs/files/cryfs-0.10.2-unbundle-libs.patch?id=192ac7421ddd4093125f4997898fb62e8a140a44";
       sha256 = "0hzss5rawcjrh8iqzc40w5yjhxdqya4gbg6dzap70180s50mahzs";
     })
+
+    # Backported from https://github.com/cryfs/cryfs/pull/378
+    ./use-macfuse.patch
   ];
 
   postPatch = ''
@@ -48,16 +51,19 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  buildInputs = [ boost cryptopp curl fuse openssl gtest ];
+  buildInputs = [ boost cryptopp curl fuse openssl ];
+
+  checkInputs = [ gtest ];
 
   cmakeFlags = [
     "-DCRYFS_UPDATE_CHECKS:BOOL=FALSE"
     "-DBoost_USE_STATIC_LIBS:BOOL=FALSE" # this option is case sensitive
     "-DUSE_SYSTEM_LIBS:BOOL=TRUE"
-    "-DBUILD_TESTING:BOOL=TRUE"
-  ];
+    "-DBUILD_TESTING:BOOL=${if doCheck then "TRUE" else "FALSE"}"
+  ] ++ lib.optional doCheck "-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake";
 
-  doCheck = (!stdenv.isDarwin); # Cryfs tests are broken on darwin
+  # macFUSE needs to be installed for the test to succeed on Darwin
+  doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
     # Skip CMakeFiles directory and tests depending on fuse (does not work well with sandboxing)
@@ -73,6 +79,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://www.cryfs.org";
     license     = licenses.lgpl3;
     maintainers = with maintainers; [ peterhoeg c0bw3b ];
-    platforms   = with platforms; linux;
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/cryfs/use-macfuse.patch b/pkgs/tools/filesystems/cryfs/use-macfuse.patch
new file mode 100644
index 00000000000..47e7845cf3d
--- /dev/null
+++ b/pkgs/tools/filesystems/cryfs/use-macfuse.patch
@@ -0,0 +1,207 @@
+diff --git a/.travisci/install.sh b/.travisci/install.sh
+index 9057a75b..2929c360 100755
+--- a/.travisci/install.sh
++++ b/.travisci/install.sh
+@@ -6,12 +6,11 @@ set -e
+ if [ "${CXX}" == "g++" ]; then
+     # We need to uninstall oclint because it creates a /usr/local/include/c++ symlink that clashes with the gcc5 package
+     # see https://github.com/Homebrew/homebrew-core/issues/21172
+-    brew cask uninstall oclint
++    brew uninstall oclint
+     brew install gcc@7
+ fi
+ 
+-brew cask install osxfuse
+-brew install libomp
++brew install libomp pkg-config macfuse
+ 
+ # By default, travis only fetches the newest 50 commits. We need more in case we're further from the last version tag, so the build doesn't fail because it can't generate the version number.
+ git fetch --unshallow --tags
+diff --git a/README.md b/README.md
+index b0f4a684..7001119a 100644
+--- a/README.md
++++ b/README.md
+@@ -19,7 +19,7 @@ OSX
+ 
+ CryFS is distributed via Homebrew. Just do
+ 
+-    brew cask install osxfuse
++    brew install osxfuse
+     brew install cryfs
+     
+ Windows (experimental)
+@@ -45,6 +45,7 @@ Requirements
+   - Git (for getting the source code)
+   - GCC version >= 5.0 or Clang >= 4.0
+   - CMake version >= 3.0 
++  - pkg-config (on Unix)
+   - libcurl4 (including development headers)
+   - Boost libraries version >= 1.65.1 (including development headers)
+     - filesystem
+@@ -53,20 +54,20 @@ Requirements
+     - program_options
+     - thread
+   - SSL development libraries (including development headers, e.g. libssl-dev)
+-  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/
++  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install macFUSE from https://osxfuse.github.io/
+   - Python >= 2.7
+   - OpenMP
+ 
+ You can use the following commands to install these requirements
+ 
+         # Ubuntu
+-        $ sudo apt install git g++ cmake make libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
++        $ sudo apt install git g++ cmake make pkg-config libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
+ 
+         # Fedora
+-        sudo dnf install git gcc-c++ cmake make libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
++        sudo dnf install git gcc-c++ cmake make pkgconf libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
+ 
+         # Macintosh
+-        brew install cmake boost openssl libomp
++        brew install cmake pkg-config boost openssl libomp
+ 
+ Build & Install
+ ---------------
+@@ -116,17 +117,17 @@ On most systems, CMake should find the libraries automatically. However, that do
+ 
+         cmake .. -DBoost_USE_STATIC_LIBS=off
+ 
+-2. **Fuse/Osxfuse library not found**
++2. **Fuse library not found**
+ 
+     Pass in the library path with
+ 
+-        cmake .. -DFUSE_LIB_PATH=/path/to/fuse/or/osxfuse
++        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
+ 
+-3. **Fuse/Osxfuse headers not found**
++3. **Fuse headers not found**
+ 
+     Pass in the include path with
+ 
+-        cmake .. -DCMAKE_CXX_FLAGS="-I/path/to/fuse/or/osxfuse/headers"
++        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
+ 
+ 4. **Openssl headers not found**
+ 
+diff --git a/cmake-utils/utils.cmake b/cmake-utils/utils.cmake
+index da4dff8c..66021c5c 100644
+--- a/cmake-utils/utils.cmake
++++ b/cmake-utils/utils.cmake
+@@ -157,33 +157,6 @@ function(require_clang_version VERSION)
+     endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ endfunction(require_clang_version)
+ 
+-##################################################
+-# Find the location of a library and return its full path in OUTPUT_VARIABLE.
+-# If PATH_VARIABLE points to a defined variable, then the library will only be searched in this path.
+-# If PATH_VARIABLE points to a undefined variable, default system locations will be searched.
+-#
+-# Uses (the following will search for fuse in system locations by default, and if the user passes -DFUSE_LIB_PATH to cmake, it will only search in this path.
+-#  find_library_with_path(MYLIBRARY fuse FUSE_LIB_PATH)
+-#  target_link_library(target ${MYLIBRARY})
+-##################################################
+-function(find_library_with_path OUTPUT_VARIABLE LIBRARY_NAME PATH_VARIABLE)
+-    if(${PATH_VARIABLE})
+-        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME} PATHS ${${PATH_VARIABLE}} NO_DEFAULT_PATH)
+-        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} in path specified by the ${PATH_VARIABLE} parameter (${${PATH_VARIABLE}}). Pass in the correct path or remove the parameter to try common system locations.")
+-        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-            message(STATUS "Found ${LIBRARY_NAME} in user-defined path ${${PATH_VARIABLE}}")
+-        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-    else(${PATH_VARIABLE})
+-        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME})
+-        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} library. If ${LIBRARY_NAME} is installed, try passing in the library location with -D${PATH_VARIABLE}=/path/to/${LIBRARY_NAME}/lib.")
+-        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-            message(STATUS "Found ${LIBRARY_NAME} in system location")
+-        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
+-    endif(${PATH_VARIABLE})
+-endfunction(find_library_with_path)
+-
+ include(cmake-utils/TargetArch.cmake)
+ function(get_target_architecture output_var)
+ 	target_architecture(local_output_var)
+diff --git a/src/fspp/fuse/CMakeLists.txt b/src/fspp/fuse/CMakeLists.txt
+index b991bd72..8df3dbb7 100644
+--- a/src/fspp/fuse/CMakeLists.txt
++++ b/src/fspp/fuse/CMakeLists.txt
+@@ -35,12 +35,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+     DESTINATION "${CMAKE_INSTALL_BINDIR}"
+   )
+ 
+-elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+-  set(CMAKE_FIND_FRAMEWORK LAST)
+-  find_library_with_path(FUSE "osxfuse" FUSE_LIB_PATH)
+-  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
+-else() # Linux
+-  find_library_with_path(FUSE "fuse" FUSE_LIB_PATH)
+-  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
++else() # Linux and macOS
++  find_package(PkgConfig REQUIRED)
++  pkg_check_modules(Fuse REQUIRED IMPORTED_TARGET fuse)
++  target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::Fuse)
+ endif()
+ 
++if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
++  set(CMAKE_FIND_FRAMEWORK LAST)
++endif()
+diff --git a/src/fspp/fuse/Fuse.cpp b/src/fspp/fuse/Fuse.cpp
+index 52cd5644..df0b400d 100644
+--- a/src/fspp/fuse/Fuse.cpp
++++ b/src/fspp/fuse/Fuse.cpp
+@@ -295,7 +295,7 @@ vector<char *> Fuse::_build_argv(const bf::path &mountdir, const vector<string>
+   // Make volume name default to mountdir on macOS
+   _add_fuse_option_if_not_exists(&argv, "volname", mountdir.filename().string());
+ #endif
+-  // TODO Also set read/write size for osxfuse. The options there are called differently.
++  // TODO Also set read/write size for macFUSE. The options there are called differently.
+   // large_read not necessary because reads are large anyhow. This option is only important for 2.4.
+   //argv.push_back(_create_c_string("-o"));
+   //argv.push_back(_create_c_string("large_read"));
+diff --git a/src/fspp/fuse/params.h b/src/fspp/fuse/params.h
+index 4a45ef79..9903ac82 100644
+--- a/src/fspp/fuse/params.h
++++ b/src/fspp/fuse/params.h
+@@ -3,14 +3,6 @@
+ #define MESSMER_FSPP_FUSE_PARAMS_H_
+ 
+ #define FUSE_USE_VERSION 26
+-#if defined(__linux__) || defined(__FreeBSD__)
+ #include <fuse.h>
+-#elif __APPLE__
+-#include <osxfuse/fuse.h>
+-#elif defined(_MSC_VER)
+-#include <fuse.h> // Dokany fuse
+-#else
+-#error System not supported
+-#endif
+ 
+ #endif
+diff --git a/src/fspp/impl/FilesystemImpl.cpp b/src/fspp/impl/FilesystemImpl.cpp
+index bc0ffbd7..23b28601 100644
+--- a/src/fspp/impl/FilesystemImpl.cpp
++++ b/src/fspp/impl/FilesystemImpl.cpp
+@@ -321,7 +321,7 @@ void FilesystemImpl::statfs(struct ::statvfs *fsstat) {
+   fsstat->f_namemax = stat.max_filename_length;
+ 
+   //f_frsize, f_favail, f_fsid and f_flag are ignored in fuse, see http://fuse.sourcearchive.com/documentation/2.7.0/structfuse__operations_4e765e29122e7b6b533dc99849a52655.html#4e765e29122e7b6b533dc99849a52655
+-  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, osxfuse needs it.
++  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, macFUSE needs it.
+ }
+ 
+ void FilesystemImpl::createSymlink(const bf::path &to, const bf::path &from, ::uid_t uid, ::gid_t gid) {
+diff --git a/test/fspp/testutils/FuseThread.cpp b/test/fspp/testutils/FuseThread.cpp
+index 277a2dac..7f3638db 100644
+--- a/test/fspp/testutils/FuseThread.cpp
++++ b/test/fspp/testutils/FuseThread.cpp
+@@ -23,7 +23,7 @@ void FuseThread::start(const bf::path &mountDir, const vector<string> &fuseOptio
+   //Wait until it is running (busy waiting is simple and doesn't hurt much here)
+   while(!_fuse->running()) {}
+ #ifdef __APPLE__
+-  // On Mac OS X, _fuse->running() returns true too early, because osxfuse calls init() when it's not ready yet. Give it a bit time.
++  // On Mac OS X, _fuse->running() returns true too early, because macFUSE calls init() when it's not ready yet. Give it a bit time.
+   std::this_thread::sleep_for(std::chrono::milliseconds(200));
+ #endif
+ }
diff --git a/pkgs/tools/filesystems/curlftpfs/default.nix b/pkgs/tools/filesystems/curlftpfs/default.nix
index 4bfa22838ad..2c5d886c14d 100644
--- a/pkgs/tools/filesystems/curlftpfs/default.nix
+++ b/pkgs/tools/filesystems/curlftpfs/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, fuse, curl, pkg-config, glib, zlib}:
+{ lib, stdenv, fetchurl, autoreconfHook, fuse, curl, pkg-config, glib, zlib }:
 
 stdenv.mkDerivation {
   name = "curlftpfs-0.9.2";
@@ -6,8 +6,18 @@ stdenv.mkDerivation {
     url = "mirror://sourceforge/curlftpfs/curlftpfs-0.9.2.tar.gz";
     sha256 = "0n397hmv21jsr1j7zx3m21i7ryscdhkdsyqpvvns12q7qwwlgd2f";
   };
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [fuse curl glib zlib];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ fuse curl glib zlib ];
+
+  CFLAGS = lib.optionalString stdenv.isDarwin "-D__off_t=off_t";
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Fix the build on macOS with macFUSE installed. Needs autoreconfHook for
+    # this change to effect
+    substituteInPlace configure.ac --replace \
+      'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' \
+      ""
+  '';
 
   doCheck = false; # fails, doesn't work well too, btw
 
@@ -15,7 +25,6 @@ stdenv.mkDerivation {
     description = "Filesystem for accessing FTP hosts based on FUSE and libcurl";
     homepage = "http://curlftpfs.sourceforge.net";
     license = licenses.gpl2;
-    platforms = platforms.linux;
-
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/darling-dmg/default.nix b/pkgs/tools/filesystems/darling-dmg/default.nix
index b5addf833c1..54d23e770db 100644
--- a/pkgs/tools/filesystems/darling-dmg/default.nix
+++ b/pkgs/tools/filesystems/darling-dmg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse }:
+{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse, libiconv }:
 
 stdenv.mkDerivation rec {
   pname = "darling-dmg";
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ fuse openssl zlib bzip2 libxml2 icu lzfse ];
+  buildInputs = [ fuse openssl zlib bzip2 libxml2 icu lzfse ]
+    ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   CXXFLAGS = [
     "-DCOMPILE_WITH_LZFSE=1"
@@ -22,8 +23,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.darlinghq.org/";
     description = "Darling lets you open macOS dmgs on Linux";
-    platforms = platforms.linux;
-    license = licenses.gpl3;
+    platforms = platforms.unix;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/tools/filesystems/dislocker/default.nix b/pkgs/tools/filesystems/dislocker/default.nix
index e65e4665bd5..10559985f86 100644
--- a/pkgs/tools/filesystems/dislocker/default.nix
+++ b/pkgs/tools/filesystems/dislocker/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
+, pkg-config
 , mbedtls
 , fuse
 }:
@@ -17,7 +19,20 @@ stdenv.mkDerivation rec {
     sha256 = "1ak68s1v5dwh8y2dy5zjybmrh0pnqralmyqzis67y21m87g47h2k";
   };
 
-  nativeBuildInputs = [ cmake ];
+  patches = [
+    # This patch
+    #   1. adds support for the latest FUSE on macOS
+    #   2. uses pkg-config to find libfuse instead of searching in predetermined
+    #      paths
+    #
+    # https://github.com/Aorimn/dislocker/pull/246
+    (fetchpatch {
+      url = "https://github.com/Aorimn/dislocker/commit/7744f87c75fcfeeb414d0957771042b10fb64e62.diff";
+      sha256 = "0bpyccbbfjsidsrd2q9qylb95nvi8g3glb3jss7xmhywj86bhzr5";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ fuse mbedtls ];
 
   meta = with lib; {
@@ -25,6 +40,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/aorimn/dislocker";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ elitak ];
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 2b88dde1531..14701a615c0 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "An encrypted filesystem in user-space via FUSE";
     homepage = "https://vgough.github.io/encfs";
-    license = with licenses; [ gpl3 lgpl3 ];
-    platforms = with platforms; linux;
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/exfat/default.nix b/pkgs/tools/filesystems/exfat/default.nix
index 8cb552cdc70..488ae337a33 100644
--- a/pkgs/tools/filesystems/exfat/default.nix
+++ b/pkgs/tools/filesystems/exfat/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index e39a3d33dac..b145d1802a1 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.33.2";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "sha256-y40JWfD6selBo2IP7VgASmlNUDhXwOdQIRlRHPi3Nh0=";
+    sha256 = "16ns04g4cvp6lfhkifgib5rxpbcxy8ghhavi3mv1cvxawpmdrxnq";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/pkgs/tools/filesystems/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
index e4a120264fd..03e76e5fb27 100644
--- a/pkgs/tools/filesystems/gitfs/default.nix
+++ b/pkgs/tools/filesystems/gitfs/default.nix
@@ -14,6 +14,12 @@ python3Packages.buildPythonApplication rec {
   patchPhase = ''
     # requirement checks are unnecessary at runtime
     echo > requirements.txt
+
+    # NOTE: As of gitfs 0.5.2, The pygit2 release that upstream uses is a major
+    # version behind the one packaged in nixpkgs.
+    substituteInPlace gitfs/mounter.py --replace \
+      'from pygit2.remote import RemoteCallbacks' \
+      'from pygit2 import RemoteCallbacks'
   '';
 
   checkInputs = with python3Packages; [ pytest pytestcov mock ];
@@ -31,7 +37,7 @@ python3Packages.buildPythonApplication rec {
     '';
     homepage = "https://github.com/PressLabs/gitfs";
     license = lib.licenses.asl20;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.robbinch ];
   };
 }
diff --git a/pkgs/tools/filesystems/httpfs/default.nix b/pkgs/tools/filesystems/httpfs/default.nix
index c62703c7b52..f107add29c0 100644
--- a/pkgs/tools/filesystems/httpfs/default.nix
+++ b/pkgs/tools/filesystems/httpfs/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
     license = lib.licenses.gpl2Plus;
 
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/tools/filesystems/hubicfuse/default.nix b/pkgs/tools/filesystems/hubicfuse/default.nix
index 4f40bd37abe..0ebc1f23223 100644
--- a/pkgs/tools/filesystems/hubicfuse/default.nix
+++ b/pkgs/tools/filesystems/hubicfuse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, curl, openssl, fuse, libxml2, json_c, file }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, curl, openssl, fuse, libxml2, json_c, file }:
 
 stdenv.mkDerivation rec {
   pname = "hubicfuse";
@@ -11,6 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "1x988hfffxgvqxh083pv3lj5031fz03sbgiiwrjpaiywfbhm8ffr";
   };
 
+  patches = [
+    # Fix Darwin build
+    # https://github.com/TurboGit/hubicfuse/pull/159
+    (fetchpatch {
+      url = "https://github.com/TurboGit/hubicfuse/commit/b460f40d86bc281a21379158a7534dfb9f283786.patch";
+      sha256 = "0nqvcbrgbc5dms8fkz3brlj40yn48p36drabrnc26gvb3hydh5dl";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ curl openssl fuse libxml2 json_c file ];
   postInstall = ''
@@ -22,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/TurboGit/hubicfuse";
     description = "FUSE-based filesystem to access hubic cloud storage";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.mit;
     maintainers = [ maintainers.jpierre03 ];
   };
diff --git a/pkgs/tools/filesystems/ifuse/default.nix b/pkgs/tools/filesystems/ifuse/default.nix
index 4abb50b8bd7..09be33384d5 100644
--- a/pkgs/tools/filesystems/ifuse/default.nix
+++ b/pkgs/tools/filesystems/ifuse/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       devices.
     '';
     license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/pkgs/tools/filesystems/jmtpfs/default.nix b/pkgs/tools/filesystems/jmtpfs/default.nix
index a9d3c40aae3..8589abffc77 100644
--- a/pkgs/tools/filesystems/jmtpfs/default.nix
+++ b/pkgs/tools/filesystems/jmtpfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, file, fuse, libmtp }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, file, fuse, libmtp }:
 
 let version = "0.5"; in
 stdenv.mkDerivation {
@@ -12,14 +12,22 @@ stdenv.mkDerivation {
     owner = "JasonFerrara";
   };
 
+  patches = [
+    # Fix Darwin build (https://github.com/JasonFerrara/jmtpfs/pull/12)
+    (fetchpatch {
+      url = "https://github.com/JasonFerrara/jmtpfs/commit/b89084303477d1bc4dc9a887ba9cdd75221f497d.patch";
+      sha256 = "0s7x3jfk8i86rd5bwhj7mb1lffcdlpj9bd7b41s1768ady91rb29";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ file fuse libmtp ];
 
   meta = with lib; {
     description = "A FUSE filesystem for MTP devices like Android phones";
     homepage = "https://github.com/JasonFerrara/jmtpfs";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
     maintainers = [ maintainers.coconnor ];
   };
 }
diff --git a/pkgs/tools/filesystems/moosefs/default.nix b/pkgs/tools/filesystems/moosefs/default.nix
index e38b040ec0d..ee0d5eedc92 100644
--- a/pkgs/tools/filesystems/moosefs/default.nix
+++ b/pkgs/tools/filesystems/moosefs/default.nix
@@ -24,14 +24,30 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ fuse libpcap zlib python ];
 
+  buildFlags = lib.optionals stdenv.isDarwin [ "CPPFLAGS=-UHAVE_STRUCT_STAT_ST_BIRTHTIME" ];
+
+  # Fix the build on macOS with macFUSE installed
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace configure --replace \
+      "/usr/local/lib/pkgconfig" "/nonexistent"
+  '';
+
+  preBuild = lib.optional stdenv.isDarwin ''
+    substituteInPlace config.h --replace \
+      "#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1" \
+      "#undef HAVE_STRUCT_STAT_ST_BIRTHTIME"
+  '';
+
   postInstall = ''
     substituteInPlace $out/sbin/mfscgiserv --replace "datapath=\"$out" "datapath=\""
   '';
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://moosefs.com";
     description = "Open Source, Petabyte, Fault-Tolerant, Highly Performing, Scalable Network Distributed File System";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.gpl2;
     maintainers = [ maintainers.mfossen ];
   };
diff --git a/pkgs/tools/filesystems/mp3fs/default.nix b/pkgs/tools/filesystems/mp3fs/default.nix
index 8b241e9026e..1b80adc843a 100644
--- a/pkgs/tools/filesystems/mp3fs/default.nix
+++ b/pkgs/tools/filesystems/mp3fs/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://khenriks.github.io/mp3fs/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 4316e0ee426..8f83f800b67 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mtools";
-  version = "4.0.26";
+  version = "4.0.27";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${pname}-${version}.tar.bz2";
-    sha256 = "06pabnjc4r2vv3dzfm6q97g6jbp2k5bhmcdwv2cf25ka8y5ir7sk";
+    sha256 = "1crqi10adwfahj8xyw60lx70hkpcc5g00b5r8277cm2f4kcwi24w";
   };
 
   patches = lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
diff --git a/pkgs/tools/filesystems/romdirfs/default.nix b/pkgs/tools/filesystems/romdirfs/default.nix
index b4fa173706e..0304508d41e 100644
--- a/pkgs/tools/filesystems/romdirfs/default.nix
+++ b/pkgs/tools/filesystems/romdirfs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "FUSE for access Playstation 2 IOP IOPRP images and BIOS dumps";
     homepage = "https://github.com/mlafeldt/romdirfs";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/filesystems/s3backer/default.nix b/pkgs/tools/filesystems/s3backer/default.nix
index 0a05a683adb..b196b294839 100644
--- a/pkgs/tools/filesystems/s3backer/default.nix
+++ b/pkgs/tools/filesystems/s3backer/default.nix
@@ -16,6 +16,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ fuse curl expat ];
 
+  # AC_CHECK_DECLS doesn't work with clang
+  postPatch = lib.optionalString stdenv.cc.isClang ''
+    substituteInPlace configure.ac --replace \
+      'AC_CHECK_DECLS(fdatasync)' ""
+  '';
+
   autoreconfPhase = ''
     patchShebangs ./autogen.sh
     ./autogen.sh
@@ -25,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/archiecobbs/s3backer";
     description = "FUSE-based single file backing store via Amazon S3";
     license = licenses.gpl2Plus;
-    platforms = with platforms; linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/sasquatch/default.nix b/pkgs/tools/filesystems/sasquatch/default.nix
index 66f74944150..b14dc620e42 100644
--- a/pkgs/tools/filesystems/sasquatch/default.nix
+++ b/pkgs/tools/filesystems/sasquatch/default.nix
@@ -1,34 +1,43 @@
-{ fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , fetchurl
-, lz4 ? null
-, lz4Support ? false
-, lzo
-, lib, stdenv
 , xz
+, lzo
 , zlib
+, zstd
+, lz4
+, lz4Support ? false
 }:
 
-assert lz4Support -> (lz4 != null);
-
 let
-  patch = fetchFromGitHub {
-    owner = "devttys0";
-    repo = "sasquatch";
-    rev = "3e0cc40fc6dbe32bd3a5e6c553b3320d5d91ceed";
-    sha256 = "19lhndjv7v9w6nmszry63zh5rqii9v7wvsbpc2n6q606hyz955g2";
-  } + "/patches/patch0.txt";
+  patch = fetchFromGitHub
+    {
+      # NOTE: This uses my personal fork for now, until
+      # https://github.com/devttys0/sasquatch/pull/40 is merged.
+      # I, cole-h, will keep this fork available until that happens.
+      owner = "cole-h";
+      repo = "sasquatch";
+      rev = "6edc54705454c6410469a9cb5bc58e412779731a";
+      sha256 = "x+PuPYGD4Pd0fcJtlLWByGy/nggsmZkxwSXxJfPvUgo=";
+    } + "/patches/patch0.txt";
 in
 stdenv.mkDerivation rec {
   pname = "sasquatch";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/squashfs/squashfs4.3.tar.gz";
-    sha256 = "1xpklm0y43nd9i6jw43y2xh5zvlmj9ar2rvknh0bh7kv8c95aq0d";
+    url = "mirror://sourceforge/squashfs/squashfs${version}.tar.gz";
+    sha256 = "qYGz8/IFS1ouZYhRo8BqJGCtBKmopkXgr+Bjpj/bsH4=";
   };
 
-  buildInputs = [ xz lzo xz zlib ]
-    ++ lib.optional lz4Support lz4;
+  buildInputs = [
+    xz
+    lzo
+    zlib
+    zstd
+  ]
+  ++ lib.optionals lz4Support [ lz4 ];
 
   patches = [ patch ];
   patchFlags = [ "-p0" ];
diff --git a/pkgs/tools/filesystems/securefs/add-macfuse-support.patch b/pkgs/tools/filesystems/securefs/add-macfuse-support.patch
new file mode 100644
index 00000000000..217f637ff9d
--- /dev/null
+++ b/pkgs/tools/filesystems/securefs/add-macfuse-support.patch
@@ -0,0 +1,188 @@
+From 8c65c2219976c02a68e27c28156ec0c4c02857e0 Mon Sep 17 00:00:00 2001
+From: midchildan <git@midchildan.org>
+Date: Sun, 28 Mar 2021 23:39:59 +0900
+Subject: [PATCH] Support the latest FUSE on macOS
+
+This drops osxfuse support in favor of macFUSE. macFUSE is a newer
+version of osxfuse that supports the latest release of macOS, and is a
+rebranded version of the same project.
+---
+ CMakeLists.txt             |  8 ++----
+ LICENSE.md                 | 58 ++++++++++++++++++++------------------
+ README.md                  |  2 +-
+ sources/commands.cpp       |  6 ----
+ 4 files changed, 33 insertions(+), 41 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7b5e57d..c176554 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,12 +18,8 @@ git_describe(GIT_VERSION --tags)
+ configure_file(${CMAKE_SOURCE_DIR}/sources/git-version.cpp.in ${CMAKE_BINARY_DIR}/git-version.cpp)
+ 
+ if (UNIX)
+-    find_path(FUSE_INCLUDE_DIR fuse.h PATHS /usr/local/include PATH_SUFFIXES osxfuse)
+-    if (APPLE)
+-        find_library(FUSE_LIBRARIES osxfuse PATHS /usr/local/lib)
+-    else()
+-        find_library(FUSE_LIBRARIES fuse PATHS /usr/local/lib)
+-    endif()
++    find_path(FUSE_INCLUDE_DIR fuse.h PATHS /usr/local/include)
++    find_library(FUSE_LIBRARIES fuse PATHS /usr/local/lib)
+     include_directories(${FUSE_INCLUDE_DIR})
+     link_libraries(${FUSE_LIBRARIES})
+     add_compile_options(-Wall -Wextra -Wno-unknown-pragmas)
+diff --git a/LICENSE.md b/LICENSE.md
+index a8f920c..b134532 100644
+--- a/LICENSE.md
++++ b/LICENSE.md
+@@ -758,13 +758,11 @@ Public License instead of this License.
+ 
+ ------------------------------------------------------------------------------
+ 
+-# [osxfuse] (https://github.com/osxfuse/osxfuse)
++# [macFUSE] (https://github.com/osxfuse/osxfuse)
+ 
+-FUSE for macOS is a software developed by the osxfuse project and is covered
+-under the following BSD-style license:
++macFUSE is covered under the following license:
+ 
+-  Copyright (c) 2011-2016 Benjamin Fleischer
+-  Copyright (c) 2011-2012 Erik Larsson
++  Copyright (c) 2011-2021 Benjamin Fleischer
+   All rights reserved.
+ 
+   Redistribution  and  use  in  source  and  binary  forms,  with   or   without
+@@ -775,9 +773,13 @@ under the following BSD-style license:
+   2. Redistributions in binary form must reproduce the above  copyright  notice,
+      this list of conditions and the following disclaimer in  the  documentation
+      and/or other materials provided with the distribution.
+-  3. Neither the name of osxfuse nor the names of its contributors may  be  used
+-     to endorse or promote products derived from this software without  specific
+-     prior written permission.
++  3. Neither the name of the copyright holder nor the names of its  contributors
++     may be used to endorse or  promote  products  derived  from  this  software 
++     without specific prior written permission.
++  4. Redistributions in binary form, bundled with commercial software,  are  not
++     allowed without  specific  prior  written  permission.  This  includes  the
++     automated download or installation or  both  of  the  binary  form  in  the
++     context of commercial software.
+ 
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND  CONTRIBUTORS  "AS  IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED  TO,  THE
+@@ -791,9 +793,9 @@ under the following BSD-style license:
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN  IF  ADVISED  OF  THE
+   POSSIBILITY OF SUCH DAMAGE.
+ 
+-FUSE for macOS is a fork of MacFUSE. MacFUSE has been developed by Google Inc..
+-Additional information and the original source of MacFUSE are available on
+-http://code.google.com/p/macfuse/. MacFUSE is covered under the following
++macFUSE is a fork of the legacy Google MacFUSE software. Additional information
++and the original source code of Google MacFUSE are available on
++http://code.google.com/p/macfuse/. Google MacFUSE is covered under the following
+ BSD-style license:
+ 
+   Copyright (c) 2007—2009 Google Inc.
+@@ -830,9 +832,9 @@ BSD-style license:
+ Portions of this package were derived from code developed by other authors.
+ Please read further for specific details.
+ 
+-* Unless otherwise noted, parts of the FUSE for macOS kernel extension contain
+-  code derived from the FreeBSD version of FUSE, which is covered under the
+-  following BSD-style license:
++* Unless otherwise noted, parts of the macFUSE kernel extension contain code
++  derived from the FreeBSD version of FUSE, which is covered under the following
++  BSD-style license:
+ 
+     Copyright (C) 2005 Csaba Henk. All rights reserved.
+ 
+@@ -856,12 +858,13 @@ Please read further for specific details.
+     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  OF  THE  USE  OF
+     THIS  SOFTWARE,  EVEN  IF  ADVISED  OF  THE  POSSIBILITY  OF  SUCH   DAMAGE.
+ 
+-* Parts of the FUSE for macOS kernel extension contain code derived from Tuxera
+-  Inc.'s "rebel" branch. The original source of the "rebel" branch is available
+-  on https://github.com/tuxera. These modifications are covered under the
+-  following BSD-style license:
++* Parts of the macFUSE kernel extension contain code derived from Tuxera's
++  "rebel" branch. The original source code of the "rebel" branch is available on
++  https://github.com/tuxera. These modifications are covered under the following
++  BSD-style license:
+ 
+     Copyright (c) 2010 Tuxera Inc.
++    Copyright (c) 2011-2012 Erik Larsson
+     All rights reserved.
+ 
+     Redistribution  and  use  in  source  and  binary  forms,  with  or  without
+@@ -888,9 +891,9 @@ Please read further for specific details.
+     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED  OF  THE
+     POSSIBILITY OF SUCH DAMAGE.
+ 
+-* Parts of FUSE for macOS contain code derived from Fuse4X. The original source
+-  of Fuse4X is available on https://github.com/fuse4x. Fuse4X is covered under
+-  the following BSD-style license:
++* Parts of macFUSE contain code derived from Fuse4X. The original source code of
++  Fuse4X is available on https://github.com/fuse4x. Fuse4X is covered under the
++  following BSD-style license:
+ 
+     Copyright (c) 2011 Anatol Pomozov
+     All rights reserved.
+@@ -916,21 +919,20 @@ Please read further for specific details.
+     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED  OF  THE
+     POSSIBILITY OF SUCH DAMAGE.
+ 
+-* Parts of the mount_osxfuse command-line program are covered under the Apple
++* Parts of the mount_macfuse command-line program are covered under the Apple
+   Public Source License (APSL). You can read the APSL at:
+ 
+     http://www.opensource.apple.com/license/apsl/
+ 
+-* fuse_kernel.h is an unmodified copy of the interface header from the Linux
++* fuse_kernel.h is a modified copy of the interface header from the Linux
+   FUSE distribution (https://github.com/libfuse/libfuse). fuse_kernel.h can be
+   redistributed either under the GPL or under the BSD license. It is being
+   redistributed here under the BSD license.
+ 
+-* fuse_nodehash.c is a slightly modified version of HashNode.c from an
+-  Apple Developer Technical Support (DTS) sample code example. The original
+-  source, which is available on
+-  http://developer.apple.com/library/mac/#samplecode/MFSLives/, has the
+-  following disclaimer:
++* fuse_nodehash.c is a modified version of HashNode.c from an Apple Developer
++  Technical Support (DTS) sample code example. The original source, which is
++  available on http://developer.apple.com/library/mac/#samplecode/MFSLives/,
++  has the following disclaimer:
+ 
+     Disclaimer: IMPORTANT: This Apple software  is  supplied  to  you  by  Apple
+     Computer, Inc.  Apple") in consideration of your agreement to the  following
+diff --git a/README.md b/README.md
+index 9085e96..6fe3592 100644
+--- a/README.md
++++ b/README.md
+@@ -28,7 +28,7 @@ There are already many encrypting filesystem in widespread use. Some notable one
+ 
+ ### macOS
+ 
+-Install with [Homebrew](https://brew.sh). [osxfuse](https://osxfuse.github.io) has to be installed beforehand.
++Install with [Homebrew](https://brew.sh). [macFUSE](https://osxfuse.github.io) has to be installed beforehand.
+ ```
+ brew install securefs
+ ```
+diff --git a/sources/commands.cpp b/sources/commands.cpp
+index a371212..862602b 100644
+--- a/sources/commands.cpp
++++ b/sources/commands.cpp
+@@ -1252,12 +1252,6 @@ class VersionCommand : public CommandBase
+                 printf("WinFsp %u.%u\n", vn >> 16, vn & 0xFFFFu);
+             }
+         }
+-#elif defined(__APPLE__)
+-        typedef const char* version_function(void);
+-        auto osx_version_func
+-            = reinterpret_cast<version_function*>(::dlsym(RTLD_DEFAULT, "osxfuse_version"));
+-        if (osx_version_func)
+-            printf("osxfuse %s\n", osx_version_func());
+ #else
+         typedef int version_function(void);
+         auto fuse_version_func
+
diff --git a/pkgs/tools/filesystems/securefs/default.nix b/pkgs/tools/filesystems/securefs/default.nix
index 235d8a53fe7..44e547b01c2 100644
--- a/pkgs/tools/filesystems/securefs/default.nix
+++ b/pkgs/tools/filesystems/securefs/default.nix
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Make it build with macFUSE
+    # Backported from https://github.com/netheril96/securefs/pull/114
+    ./add-macfuse-support.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ fuse ];
 
@@ -31,6 +37,6 @@ stdenv.mkDerivation rec {
       contents.
     '';
     license = with licenses; [ bsd2 mit ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index bb7df1aa940..265495389b0 100644
--- a/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -19,6 +19,17 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ qyliss ];
     platforms = platforms.unix;
+
+    # TODO: Remove once nixpkgs uses newer SDKs that supports '*at' functions.
+    # Probably macOS SDK 10.13 or later. Check the current version in
+    # ../../../../os-specific/darwin/apple-sdk/default.nix
+    #
+    # From the build logs:
+    #
+    # > Undefined symbols for architecture x86_64:
+    # >   "_utimensat", referenced from:
+    # >       _set_attribs in rdsquashfs-restore_fstree.o
+    # > ld: symbol(s) not found for architecture x86_64
     broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/filesystems/squashfuse/default.nix b/pkgs/tools/filesystems/squashfuse/default.nix
index a2e930f9155..14a7f602430 100644
--- a/pkgs/tools/filesystems/squashfuse/default.nix
+++ b/pkgs/tools/filesystems/squashfuse/default.nix
@@ -8,10 +8,6 @@ stdenv.mkDerivation rec {
   pname = "squashfuse";
   version = "0.1.103";
 
-  # platforms.darwin should be supported : see PLATFORMS file in src.
-  # we could use a nix fuseProvider, and let the derivation choose the OS
-  # specific implementation.
-
   src = fetchFromGitHub {
     owner = "vasi";
     repo  = pname;
@@ -26,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "FUSE filesystem to mount squashfs archives";
     homepage = "https://github.com/vasi/squashfuse";
     maintainers = [  ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = "BSD-2-Clause";
   };
 }
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index bef4d6b5cea..a192032aa93 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -1,14 +1,26 @@
-{ lib, stdenv, fetchurl, automake, autoconf, subversion, fuse, apr, perl }:
+{ lib, stdenv, fetchurl, autoreconfHook, subversion, fuse, apr, perl }:
 
-stdenv.mkDerivation {
-  name = "svnfs-0.4";
+stdenv.mkDerivation rec {
+  pname = "svnfs";
+  version = "0.4";
 
   src = fetchurl {
-    url = "http://www.jmadden.eu/wp-content/uploads/svnfs/svnfs-0.4.tgz";
+    url = "http://www.jmadden.eu/wp-content/uploads/svnfs/svnfs-${version}.tgz";
     sha256 = "1lrzjr0812lrnkkwk60bws9k1hq2iibphm0nhqyv26axdsygkfky";
   };
 
-  buildInputs = [automake autoconf subversion fuse apr perl];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ subversion fuse apr perl ];
+
+  # autoconf's AC_CHECK_HEADERS and AC_CHECK_LIBS fail to detect libfuse on
+  # Darwin if FUSE_USE_VERSION isn't set at configure time.
+  #
+  # NOTE: Make sure the value of FUSE_USE_VERSION specified here matches the
+  # actual version used in the source code:
+  #
+  #     $ tar xf "$(nix-build -A svnfs.src)"
+  #     $ grep -R FUSE_USE_VERSION
+  configureFlags = lib.optionals stdenv.isDarwin [ "CFLAGS=-DFUSE_USE_VERSION=25" ];
 
   # why is this required?
   preConfigure=''
@@ -21,8 +33,8 @@ stdenv.mkDerivation {
   meta = {
     description = "FUSE filesystem for accessing Subversion repositories";
     homepage = "http://www.jmadden.eu/index.php/svnfs/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [lib.maintainers.marcweber];
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/tmsu/default.nix b/pkgs/tools/filesystems/tmsu/default.nix
index 1eac3e03ec9..aa3057202c7 100644
--- a/pkgs/tools/filesystems/tmsu/default.nix
+++ b/pkgs/tools/filesystems/tmsu/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub, fuse, installShellFiles }:
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "tmsu";
@@ -14,7 +14,6 @@ buildGoPackage rec {
 
   goDeps = ./deps.nix;
 
-  buildInputs = [ fuse ];
   nativeBuildInputs = [ installShellFiles ];
 
   preBuild = ''
@@ -24,7 +23,10 @@ buildGoPackage rec {
   '';
 
   postInstall = ''
-    mv $out/bin/{TMSU,tmsu}
+    # can't do "mv TMSU tmsu" on case-insensitive filesystems
+    mv $out/bin/{TMSU,tmsu.tmp}
+    mv $out/bin/{tmsu.tmp,tmsu}
+
     cp src/misc/bin/* $out/bin/
     installManPage src/misc/man/tmsu.1
     installShellCompletion --zsh src/misc/zsh/_tmsu
@@ -34,7 +36,7 @@ buildGoPackage rec {
     homepage    = "http://www.tmsu.org";
     description = "A tool for tagging your files using a virtual filesystem";
     maintainers = with maintainers; [ pSub ];
-    license     = licenses.gpl3;
-    platforms   = platforms.linux;
+    license     = licenses.gpl3Plus;
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/tmsu/deps.nix b/pkgs/tools/filesystems/tmsu/deps.nix
index 90e64b434c4..7dee6324b67 100644
--- a/pkgs/tools/filesystems/tmsu/deps.nix
+++ b/pkgs/tools/filesystems/tmsu/deps.nix
@@ -5,8 +5,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/hanwen/go-fuse";
-      rev = "730713460d4fc41afdc2533bd37ff60c94c0c586";
-      sha256 = "1y44d08fxyis99s6jxdr6dbbw5kv3wb8lkhq3xmr886i4w41lz03";
+      rev = "0f728ba15b38579efefc3dc47821882ca18ffea7";
+      sha256 = "05ymw2pp58avf19wvi0cgdzqf3d88k1jdf6ldj4hmhbkm3waqf7l";
     };
   }
   {
diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix
index 98377365738..29d8b4c2887 100644
--- a/pkgs/tools/filesystems/wdfs/default.nix
+++ b/pkgs/tools/filesystems/wdfs/default.nix
@@ -1,18 +1,27 @@
-{lib, stdenv, fetchurl, glib, neon, fuse, pkg-config}:
+{lib, stdenv, fetchurl, glib, neon, fuse, autoreconfHook, pkg-config}:
+
+stdenv.mkDerivation rec {
+  pname = "wdfs-fuse";
+  version = "1.4.2";
 
-stdenv.mkDerivation {
-  name = "wdfs-fuse-1.4.2";
   src = fetchurl {
-    url = "http://noedler.de/projekte/wdfs/wdfs-1.4.2.tar.gz";
+    url = "http://noedler.de/projekte/wdfs/wdfs-${version}.tar.gz";
     sha256 = "fcf2e1584568b07c7f3683a983a9be26fae6534b8109e09167e5dff9114ba2e5";
   };
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [fuse glib neon];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    # Fix the build on macOS with macFUSE installed. Needs autoreconfHook to
+    # take effect.
+    substituteInPlace configure.ac --replace \
+      'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' ""
+  '';
+
   meta = with lib; {
     homepage = "http://noedler.de/projekte/wdfs/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     description = "User-space filesystem that allows to mount a webdav share";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/games/ajour/default.nix b/pkgs/tools/games/ajour/default.nix
index 3bc87680c52..9cb79ceabe0 100644
--- a/pkgs/tools/games/ajour/default.nix
+++ b/pkgs/tools/games/ajour/default.nix
@@ -34,16 +34,16 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "Ajour";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "casperstorm";
     repo = "ajour";
     rev = version;
-    sha256 = "sha256-u48U4WGlrSl8T3YF7cjApyjNaUI4YyyHEy0TgJw7r/Y=";
+    sha256 = "1xzsgxkdwdqcr8xs9ajr1ykfjjz95z9k7b7l644yijg31xf1lbq6";
   };
 
-  cargoSha256 = "sha256-Hdid70AB4AKtSsQBsr6K/de4nvI3rvghEWIwM7mpRIA=";
+  cargoSha256 = "02g25wr0f2bjr7zmpll3iicc6i8wk1j9iavagg1vhbpynp6z013x";
 
   nativeBuildInputs = [
     autoPatchelfHook
diff --git a/pkgs/tools/graphics/agi/default.nix b/pkgs/tools/graphics/agi/default.nix
new file mode 100644
index 00000000000..5fb1881eff9
--- /dev/null
+++ b/pkgs/tools/graphics/agi/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchzip
+, autoPatchelfHook
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, wrapGAppsHook
+, gobject-introspection
+, gdk-pixbuf
+, jre
+, androidenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "agi";
+  version = "1.1.0-dev-20210423";
+
+  src = fetchzip {
+    url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip";
+    sha256 = "sha256-49ZKqG+CiQkdoBMLdYrN5fMnJH5TtXdUknQLQB2UG04=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+    wrapGAppsHook
+    gdk-pixbuf
+    gobject-introspection
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,lib}
+    cp ./{agi,gapis,gapir,gapit,device-info} $out/bin
+    cp lib/gapic.jar $out/lib
+    wrapProgram $out/bin/agi \
+      --add-flags "--vm ${jre}/bin/java" \
+      --add-flags "--jar $out/lib/gapic.jar" \
+      --add-flags "--adb ${androidenv.androidPkgs_9_0.platform-tools}/bin/adb"
+    for i in 16 32 48 64 96 128 256 512 1024; do
+      install -D ${src}/icon.png $out/share/icons/hicolor/''${i}x$i/apps/agi.png
+    done
+    runHook postInstall
+  '';
+
+  desktopItems = [(makeDesktopItem {
+    name = "agi";
+    desktopName = "Android GPU Inspector";
+    exec = "$out/bin/agi";
+    icon = "agi";
+    type = "Application";
+    categories = "Development;Debugger;Graphics;3DGraphics";
+    terminal = "false";
+  })];
+
+  meta = with lib; {
+    homepage = "https://github.com/google/agi/";
+    description = "Android GPU Inspector";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
new file mode 100644
index 00000000000..859d6f1eee0
--- /dev/null
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, gccStdenv
+, fetchFromGitHub
+, cmake
+, simdExtensions ? null
+}:
+
+with rec {
+  # SIMD instruction sets to compile for. If none are specified by the user,
+  # an appropriate one is selected based on the detected host system
+  isas = with gccStdenv.hostPlatform;
+    if simdExtensions != null then lib.toList simdExtensions
+    else if avx2Support then [ "AVX2" ]
+    else if sse4_1Support then [ "SSE41" ]
+    else if isx86_64 then [ "SSE2" ]
+    else if isAarch64 then [ "NEON" ]
+    else [ "NONE" ];
+
+  archFlags = lib.optionals gccStdenv.hostPlatform.isAarch64 [ "-DARCH=aarch64" ];
+
+  # CMake Build flags for the selected ISAs. For a list of flags, see
+  # https://github.com/ARM-software/astc-encoder/blob/main/Docs/Building.md
+  isaFlags = map ( isa: "-DISA_${isa}=ON" ) isas;
+
+  # The suffix of the binary to link as 'astcenc'
+  mainBinary = builtins.replaceStrings
+    [ "AVX2" "SSE41"  "SSE2" "NEON" "NONE" ]
+    [ "avx2" "sse4.1" "sse2" "neon" "none" ]
+    ( builtins.head isas );
+};
+
+gccStdenv.mkDerivation rec {
+  pname = "astc-encoder";
+  version = "2.5";
+
+  src = fetchFromGitHub {
+    owner = "ARM-software";
+    repo = "astc-encoder";
+    rev = version;
+    sha256 = "0ff5jh40w942dz7hmgvznmpa9yhr1j4i9qqj5wy6icm2jb9j4pak";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = isaFlags ++ archFlags ++ [
+    "-DCMAKE_BUILD_TYPE=Release"
+  ];
+
+  # Link binaries into environment and provide 'astcenc' link
+  postInstall = ''
+    mv $out/astcenc $out/bin
+    ln -s $out/bin/astcenc-${mainBinary} $out/bin/astcenc
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ARM-software/astc-encoder";
+    description = "An encoder for the ASTC texture compression format";
+    longDescription = ''
+      The Adaptive Scalable Texture Compression (ASTC) format is
+      widely supported by mobile and desktop graphics hardware and
+      provides better quality at a given bitrate compared to ETC2.
+
+      This program supports both compression and decompression in LDR
+      and HDR mode and can read various image formats. Run `astcenc
+      -help` to see all the options.
+    '';
+    platforms = platforms.unix;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dasisdormax ];
+  };
+}
diff --git a/pkgs/tools/graphics/exif/default.nix b/pkgs/tools/graphics/exif/default.nix
index 59c74811126..130e2d96124 100644
--- a/pkgs/tools/graphics/exif/default.nix
+++ b/pkgs/tools/graphics/exif/default.nix
@@ -1,20 +1,23 @@
-{ lib, stdenv, fetchurl, pkg-config, libexif, popt, libintl }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, libexif, popt, libintl }:
 
 stdenv.mkDerivation rec {
-  name = "exif-0.6.21";
+  pname = "exif";
+  version = "0.6.22";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/libexif/${name}.tar.bz2";
-    sha256 = "1zb9hwdl783d4vd2s2rw642hg8hd6n0mfp6lrbiqmp9jmhlq5rsr";
+  src = fetchFromGitHub {
+    owner = "libexif";
+    repo = pname;
+    rev = "${pname}-${builtins.replaceStrings ["."] ["_"] version}-release";
+    sha256 = "1xlb1gdwxm3rmw7vlrynhvjp9dkwmvw23mxisdbdmma7ah2nda3i";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ libexif popt libintl ];
 
   meta = with lib; {
     homepage = "https://libexif.github.io";
     description = "A utility to read and manipulate EXIF data in digital photographs";
     platforms = platforms.unix;
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/tools/graphics/grim/default.nix b/pkgs/tools/graphics/grim/default.nix
index 1dddd7959b0..f678b2bcae9 100644
--- a/pkgs/tools/graphics/grim/default.nix
+++ b/pkgs/tools/graphics/grim/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib";
+    sha256 = "sha256-71dmYENfPX8YHcTlR2F67EheoewicePMKm9/wPbmj9A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index ab5fd4f5401..16e57252275 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -1,31 +1,20 @@
-{ lib, stdenv, fetchurl, fetchpatch, libjpeg }:
+{ lib, stdenv, fetchFromGitHub, libjpeg }:
 
 stdenv.mkDerivation rec {
   pname = "jhead";
-  version = "3.04";
+  version = "3.06.0.1";
 
-  src = fetchurl {
-    url = "http://www.sentex.net/~mwandel/jhead/${pname}-${version}.tar.gz";
-    sha256 = "1j831bqw1qpkbchdriwcy3sgzvbagaj45wlc124fs9bc9z7vp2gg";
+  src = fetchFromGitHub {
+    owner = "Matthias-Wandel";
+    repo = "jhead";
+    rev = version;
+    sha256 = "0zgh36486cpcnf7xg6dwf7rhz2h4gpayqvdk8hmrx6y418b2pfyf";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://sources.debian.org/data/main/j/jhead/1:3.04-2/debian/patches/01_gpsinfo.c";
-      sha256 = "0r8hdbfrdxip4dwz5wqsv47a29j33cx7w5zx4jdhp5l1ihg003lz";
-    })
-  ];
-
   buildInputs = [ libjpeg ];
 
   makeFlags = [ "CPPFLAGS=" "CFLAGS=-O3" "LDFLAGS=" ];
 
-  patchPhase = ''
-    sed -i '/dpkg-buildflags/d' makefile
-    substituteInPlace jhead.c \
-      --replace "jpegtran -trim" "${libjpeg.bin}/bin/jpegtran -trim"
-  '';
-
   installPhase = ''
     mkdir -p \
       $out/bin \
@@ -43,10 +32,5 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.all;
-    # https://github.com/NixOS/nixpkgs/issues/90828
-    knownVulnerabilities = [
-      "CVE-2020-6624"
-      "CVE-2020-6625"
-    ];
   };
 }
diff --git a/pkgs/tools/graphics/pikchr/default.nix b/pkgs/tools/graphics/pikchr/default.nix
new file mode 100644
index 00000000000..9b06d062913
--- /dev/null
+++ b/pkgs/tools/graphics/pikchr/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation {
+  pname = "pikchr";
+  version = "unstable-2021-04-07";
+
+  src = fetchurl {
+    url = "https://pikchr.org/home/tarball/90b6d5b4a3834ff0/pikchr.tar.gz";
+    sha256 = "1cqpnljy12gl82rcbb7mwhgv9szcliwkbwwh67hzdv020h1scxym";
+  };
+
+  # can't open generated html files
+  postPatch = ''
+    substituteInPlace Makefile --replace open "test -f"
+  '';
+
+  installPhase = ''
+    install -Dm755 pikchr $out/bin/pikchr
+    install -Dm755 pikchr.out $out/lib/pikchr.o
+    install -Dm644 pikchr.h $out/include/pikchr.h
+  '';
+
+  doCheck = true;
+  checkTarget = "test";
+
+  meta = with lib; {
+    description = "A PIC-like markup language for diagrams in technical documentation";
+    homepage = "https://pikchr.org";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix
new file mode 100644
index 00000000000..5acbaa7ffd2
--- /dev/null
+++ b/pkgs/tools/graphics/timg/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, graphicsmagick, libjpeg
+, ffmpeg, zlib, libexif }:
+
+stdenv.mkDerivation rec {
+  pname = "timg";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "hzeller";
+    repo = "timg";
+    rev = "v${version}";
+    sha256 = "10qhjfkbazncmj07y0a6cpmi7ki0l10qzpvi2zh8369yycqqxr8y";
+  };
+
+  buildInputs = [ graphicsmagick ffmpeg libexif libjpeg zlib ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [
+    "-DTIMG_VERSION_FROM_GIT=Off"
+    "-DWITH_VIDEO_DECODING=On"
+    "-DWITH_VIDEO_DEVICE=On"
+    "-DWITH_OPENSLIDE_SUPPORT=Off" # https://openslide.org/ lib not yet in nix
+  ];
+
+  meta = with lib; {
+    homepage = "https://timg.sh/";
+    description = "A terminal image and video viewer";
+    license = licenses.gpl2Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ hzeller ];
+  };
+}
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index 333c4848db2..9319fa9b610 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -27,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.10.5";
+  version = "8.10.6";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "sha256-h21Ep6f4/y+m0kdrCA5dcULFeOOyLtMx2etAziG6f9Y=";
+    sha256 = "sha256-hdpkBC76PnPTN+rnNchLVk1CrhcClTtbaWyUcyUtuAk=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index b133d576c6c..cd7679dbbf1 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -19,13 +19,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.0.2";
+  version = "5.0.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-configtool";
     rev = version;
-    sha256 = "sha256-kw0KIbS5SVMf6kR/9xsYiChHXQBM0enSVXyh0QfiiPY=";
+    sha256 = "sha256-UO3Ob+bFQ/2Vqb8YpD9tfmfZt5YLUyoqcbtsHLaVOzE=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
index d077b0a25c5..57bb0220b31 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-mozc.nix
@@ -1,5 +1,5 @@
 { lib, clangStdenv, fetchFromGitHub, fetchurl, fetchpatch, fetchgit
-, python3Packages, mesa, ninja, pkg-config, protobuf, zinnia, qt5, fcitx5
+, python3Packages, ninja, pkg-config, protobuf, zinnia, qt5, fcitx5
 , jsoncpp, gtest, which, gtk2, unzip, abseil-cpp, breakpad }:
 let
   inherit (python3Packages) python gyp six;
@@ -31,7 +31,7 @@ in clangStdenv.mkDerivation rec {
     sha256 = "R+w0slVFpqtt7PIr1pyupJjRoQsABVZiMdZ9fKGKAqw=";
   };
 
-  nativeBuildInputs = [ gyp ninja mesa python pkg-config qt5.wrapQtAppsHook six which unzip ];
+  nativeBuildInputs = [ gyp ninja python pkg-config qt5.wrapQtAppsHook six which unzip ];
 
   buildInputs = [ protobuf zinnia qt5.qtbase fcitx5 abseil-cpp jsoncpp gtest gtk2 ];
 
diff --git a/pkgs/tools/inputmethods/kime/default.nix b/pkgs/tools/inputmethods/kime/default.nix
new file mode 100644
index 00000000000..35ed99b5a42
--- /dev/null
+++ b/pkgs/tools/inputmethods/kime/default.nix
@@ -0,0 +1,113 @@
+{ lib, stdenv, rustPlatform, rustc, cargo, fetchFromGitHub, pkg-config, cmake, extra-cmake-modules, llvmPackages
+, withWayland ? true
+, withIndicator ? true, dbus, libdbusmenu
+, withXim ? true, xorg, cairo
+, withGtk2 ? true, gtk2
+, withGtk3 ? true, gtk3
+, withQt5 ? true, qt5
+}:
+
+let
+  cmake_args = lib.optionals withGtk2 ["-DENABLE_GTK2=ON"]
+  ++ lib.optionals withGtk3 ["-DENABLE_GTK3=ON"]
+  ++ lib.optionals withQt5 ["-DENABLE_QT5=ON"];
+
+  optFlag = w: (if w then "1" else "0");
+in
+stdenv.mkDerivation rec {
+  pname = "kime";
+  version = "2.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Riey";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10zd4yrqxzxf4nj3b5bsblcmlbqssxqq9pac0misa1g61jdbszj8";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sha256 = "1bimi7020m7v287bh7via7zm9m7y13d13kqpd772xmpdbwrj8nrl";
+  };
+
+  # Replace autostart path
+  postPatch = ''
+    substituteInPlace res/kime.desktop --replace "/usr/bin/kime" "$out/bin/kime"
+  '';
+
+  dontUseCmakeConfigure = true;
+  dontWrapQtApps = true;
+  buildPhase = ''
+    runHook preBuild
+    export KIME_BUILD_CHECK=1
+    export KIME_BUILD_INDICATOR=${optFlag withIndicator}
+    export KIME_BUILD_XIM=${optFlag withXim}
+    export KIME_BUILD_WAYLAND=${optFlag withWayland}
+    export KIME_BUILD_KIME=1
+    export KIME_CARGO_ARGS="-j$NIX_BUILD_CORES --frozen"
+    export KIME_MAKE_ARGS="-j$NIX_BUILD_CORES"
+    export KIME_CMAKE_ARGS="${lib.concatStringsSep " " cmake_args}"
+    bash scripts/build.sh -r
+    runHook postBuild
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    cargo test --release --frozen
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    export KIME_BIN_DIR=bin
+    export KIME_INSTALL_HEADER=1
+    export KIME_INSTALL_DOC=1
+    export KIME_INCLUDE_DIR=include
+    export KIME_DOC_DIR=share/doc/kime
+    export KIME_ICON_DIR=share/icons
+    export KIME_LIB_DIR=lib
+    export KIME_QT5_DIR=lib/qt-${qt5.qtbase.version}
+    bash scripts/install.sh "$out"
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # Don't pipe output to head directly it will cause broken pipe error https://github.com/rust-lang/rust/issues/46016
+    kimeVersion=$(echo "$($out/bin/kime --version)" | head -n1)
+    echo "'kime --version | head -n1' returns: $kimeVersion"
+    [[ "$kimeVersion" == "kime ${version}" ]]
+    runHook postInstallCheck
+  '';
+
+  buildInputs = lib.optionals withIndicator [ dbus libdbusmenu ]
+  ++ lib.optionals withXim [ xorg.libxcb cairo ]
+  ++ lib.optionals withGtk2 [ gtk2 ]
+  ++ lib.optionals withGtk3 [ gtk3 ]
+  ++ lib.optionals withQt5 [ qt5.qtbase ];
+
+  nativeBuildInputs = [
+    pkg-config
+    llvmPackages.clang
+    llvmPackages.libclang
+    llvmPackages.bintools
+    cmake
+    extra-cmake-modules
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+  ];
+
+  RUST_BACKTRACE = 1;
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  meta = with lib; {
+    homepage = "https://github.com/Riey/kime";
+    description = "Korean IME";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.riey ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/remote-touchpad/default.nix b/pkgs/tools/inputmethods/remote-touchpad/default.nix
new file mode 100644
index 00000000000..0bd2b09aafc
--- /dev/null
+++ b/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, libX11
+, libXi
+, libXt
+, libXtst
+}:
+
+buildGoModule rec {
+  pname = "remote-touchpad";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "unrud";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zmbn4s3yhcgmijc96vja7zj2sh6q0nkybhqy0fwz6sqzk8hq02x";
+  };
+
+  buildInputs = [ libX11 libXi libXt libXtst ];
+  buildFlags = [ "-tags" "portal,x11" ];
+
+  vendorSha256 = "0q1qk5g7kqpcci5fgamvxa8989jglv69kwg5rvkphbnx1bzlivrl";
+
+  meta = with lib; {
+    description = "Control mouse and keyboard from the webbrowser of a smartphone.";
+    homepage = "https://github.com/unrud/remote-touchpad";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ schnusch ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/bat-extras/default.nix b/pkgs/tools/misc/bat-extras/default.nix
index 323099f02c6..4fb09f4d8dc 100644
--- a/pkgs/tools/misc/bat-extras/default.nix
+++ b/pkgs/tools/misc/bat-extras/default.nix
@@ -21,15 +21,13 @@ let
   # This includes the complete source so the per-script derivations can run the tests.
   core = stdenv.mkDerivation rec {
     pname   = "bat-extras";
-    # there hasn't been a release since 2020-05-01 but there are important bugfixes
-    # to the test suite so we'll pull the latest commit as of 2020-06-17.
-    version = "20200515-dev"; # latest commit was dated 2020-05-15
+    version = "2021.04.06";
 
     src = fetchFromGitHub {
       owner  = "eth-p";
       repo   = pname;
-      rev    = "3029b6749f61f7514e9eef30e035cfab0e31eb1d";
-      sha256 = "08mb94k2n182ql97c5s5j1v7np25ivynn5g0418whrx11ra41wr7";
+      rev    = "v${version}";
+      sha256 = "sha256-MphI2n+oHZrw8bPohNGeGdST5LS1c6s/rKqtpcR9cLo=";
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/tools/misc/betterdiscord-installer/default.nix b/pkgs/tools/misc/betterdiscord-installer/default.nix
index d74a914ba65..f1aefd9b758 100644
--- a/pkgs/tools/misc/betterdiscord-installer/default.nix
+++ b/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -18,7 +18,7 @@ in appimageTools.wrapType2 {
 
     install -m 444 -D ${appimageContents}/betterdiscord.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/betterdiscord.desktop \
-      --replace "Exec=AppRun" "Exec=$out/bin/${pname}"
+      --replace 'Exec=AppRun' 'Exec=${pname}'
     cp -r ${appimageContents}/usr/share/icons $out/share
   '';
 
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index a3299b42744..b89dbb2b907 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , rustPlatform
 , fetchCrate
 , installShellFiles
@@ -11,14 +12,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "1mqaynrqaas82f5957lx31x80v74zwmwmjxxlbywajb61vh00d38";
+    sha256 = "sha256-2FF/oB341PPGfSlXpLEs4mswjVk+3ty/jNsVJKu+fhs=";
   };
 
-  cargoHash = "sha256-ffFS1myFjoQ6768D4zUytN6F9paWeJJFPFugCrfh4iU=";
+  cargoHash = "sha256-+UT9cz8OPA1jpFv7HafabxJ3NmLl57K1ODydfcV1FUM";
 
   nativeBuildInputs = [
     makeWrapper
@@ -32,8 +33,6 @@ rustPlatform.buildRustPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
-
     # Fill the version stub in the man page. We can't fill the date
     # stub reproducibly.
     substitute man/page man/broot.1 \
diff --git a/pkgs/tools/misc/castty/default.nix b/pkgs/tools/misc/castty/default.nix
new file mode 100644
index 00000000000..ddda737c8b5
--- /dev/null
+++ b/pkgs/tools/misc/castty/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub, libsoundio, lame }:
+
+stdenv.mkDerivation {
+  pname = "castty";
+  version = "unstable-2020-11-10";
+
+  src = fetchFromGitHub {
+    owner = "dhobsd";
+    repo = "castty";
+    rev = "333a2bafd96d56cd0bb91577ae5ba0f7d81b3d99";
+    sha256 = "0p84ivwsp8ds4drn0hx2ax04gp0xyq6blj1iqfsmrs4slrajdmqs";
+  };
+
+  buildInputs = [ libsoundio lame ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "CLI tool to record audio-enabled screencasts of your terminal, for the web";
+    homepage = "https://github.com/dhobsd/castty";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ iblech ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index f6c6b1aecc5..cec900189c4 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.0.9";
+  version = "2.0.10";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-yDd9u9cwC+bjB0ZQW0EgEDaHmWwkUprwXIiVrOVP2nk=";
+    sha256 = "sha256-WVG4rww9Wd1H6zw5lRBErX9VwnA21dhvith9BQFYqxw=";
   };
 
-  vendorSha256 = "sha256-c6YIWpC8sQA/gbgD2vuuFvwccEE00aUrj6gcPpJsn0k=";
+  vendorSha256 = "sha256-khYcNP3xAXeQR9vaghkGq8x6KB1k5hLEcE7Zx8H+CfA=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/ckb-next/default.nix b/pkgs/tools/misc/ckb-next/default.nix
index 9c6909d445d..81e51bbbf20 100644
--- a/pkgs/tools/misc/ckb-next/default.nix
+++ b/pkgs/tools/misc/ckb-next/default.nix
@@ -1,21 +1,25 @@
 { lib, mkDerivation, fetchFromGitHub, substituteAll, udev
-, pkg-config, qtbase, cmake, zlib, kmod }:
+, pkg-config, qtbase, cmake, zlib, kmod, libXdmcp, qttools, qtx11extras, libdbusmenu }:
 
 mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.4";
   pname = "ckb-next";
 
   src = fetchFromGitHub {
     owner = "ckb-next";
     repo = "ckb-next";
     rev = "v${version}";
-    sha256 = "1mkx1psw5xnpscdfik1kpzsnfhhkn3571i7acr9gxyjr27sckplc";
+    sha256 = "1fgvh2hsrm8vqbqq9g45skhyyrhhka4d8ngmyldkldak1fgmrvb7";
   };
 
   buildInputs = [
     udev
     qtbase
     zlib
+    libXdmcp
+    qttools
+    qtx11extras
+    libdbusmenu
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/ckb-next/install-dirs.patch b/pkgs/tools/misc/ckb-next/install-dirs.patch
index 0f113d71aa3..05a661c7ffc 100644
--- a/pkgs/tools/misc/ckb-next/install-dirs.patch
+++ b/pkgs/tools/misc/ckb-next/install-dirs.patch
@@ -1,12 +1,12 @@
 diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
-index 2fc10a8..22dbd14 100644
+index a04b80c..2969b3b 100644
 --- a/src/daemon/CMakeLists.txt
 +++ b/src/daemon/CMakeLists.txt
-@@ -421,7 +421,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
+@@ -437,7 +437,7 @@ if ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "launchd")
  elseif ("${CKB_NEXT_INIT_SYSTEM}" STREQUAL "systemd")
      install(
          FILES "${CMAKE_CURRENT_BINARY_DIR}/service/ckb-next-daemon.service"
--        DESTINATION "/usr/lib/systemd/system"
+-        DESTINATION "${SYSTEMD_UNIT_INSTALL_DIR}"
 +        DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/systemd/system"
          PERMISSIONS
          OWNER_READ OWNER_WRITE
diff --git a/pkgs/tools/misc/ckb-next/modprobe.patch b/pkgs/tools/misc/ckb-next/modprobe.patch
index a2cbe262e89..257683e11f6 100644
--- a/pkgs/tools/misc/ckb-next/modprobe.patch
+++ b/pkgs/tools/misc/ckb-next/modprobe.patch
@@ -1,21 +1,21 @@
 diff --git a/src/daemon/input_linux.c b/src/daemon/input_linux.c
-index 8489f5b..b851419 100644
+index 933e628..c4f97f2 100644
 --- a/src/daemon/input_linux.c
 +++ b/src/daemon/input_linux.c
-@@ -63,7 +63,7 @@ int os_inputopen(usbdevice* kb){
+@@ -70,7 +70,7 @@ int os_inputopen(usbdevice* kb){
  
      // If not available, load the module
      if(fd < 0){
 -        if(system("modprobe uinput") != 0) {
 +        if(system("@kmod@/bin/modprobe uinput") != 0) {
-             ckb_fatal("Failed to load uinput module\n");
+             ckb_fatal("Failed to load uinput module");
              return 1;
          }
 diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
-index 1eb95bd..f7d38ba 100644
+index eeadaf8..87de71f 100644
 --- a/src/gui/mainwindow.cpp
 +++ b/src/gui/mainwindow.cpp
-@@ -284,7 +284,7 @@ void MainWindow::updateVersion(){
+@@ -309,7 +309,7 @@ void MainWindow::updateVersion(){
  #elif defined(Q_OS_LINUX)
              if(!(QFileInfo("/dev/uinput").exists() || QFileInfo("/dev/input/uinput").exists())){
                  QProcess modprobe;
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
new file mode 100644
index 00000000000..37a6dfdc9dd
--- /dev/null
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  pname = "cpufetch";
+  version = "0.94";
+
+  src = fetchFromGitHub {
+    owner  = "Dr-Noob";
+    repo   = "cpufetch";
+    rev    = "v${version}";
+    sha256 = "1gncgkhqd8bnz254qa30yyl10qm28dwx6aif0dwrj38z5ql40ck9";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    install -Dm755 cpufetch   $out/bin/cpufetch
+    install -Dm644 LICENSE    $out/share/licenses/cpufetch/LICENSE
+    installManPage cpufetch.8
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Simplistic yet fancy CPU architecture fetching tool";
+    license = licenses.mit;
+    homepage = "https://github.com/Dr-Noob/cpufetch";
+    changelog = "https://github.com/Dr-Noob/cpufetch/releases/tag/v${version}";
+    maintainers = with maintainers; [ devhell ];
+  };
+}
diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix
new file mode 100644
index 00000000000..97dfd8310da
--- /dev/null
+++ b/pkgs/tools/misc/cyclonedx-python/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "cyclonedx-python";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "CycloneDX";
+    repo = "cyclonedx-python";
+    rev = "v${version}";
+    sha256 = "BvG4aWBMsllW2L4lLsiRFUCPjgoDpHxN49fsUFdg7tQ=";
+  };
+
+  # They pin versions for exact version numbers because "A bill-of-material such
+  # as CycloneDX expects exact version numbers" -- but that's unnecessary with
+  # Nix.
+  preBuild = ''
+    sed "s@==.*'@'@" -i setup.py
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    packageurl-python
+    requests
+    xmlschema
+    setuptools
+    requirements-parser
+    packaging
+    chardet
+    jsonschema
+  ];
+
+  # the tests want access to the cyclonedx binary
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "cyclonedx"
+  ];
+
+  meta = with lib; {
+    description = "Creates CycloneDX Software Bill of Materials (SBOM) from Python projects";
+    homepage = "https://github.com/CycloneDX/cyclonedx-python";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 1717b88f194..b1a42f57703 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner  = "rockowitz";
     repo   = "ddcutil";
     rev    = "v${version}";
-    sha256 = "sha256-F/tKW81bAyYtwpxhl5XC8YyMB+6S0XmqqigwJY2WFDU=";
+    sha256 = "0wv8a8zjahzmi4qx0lc24mwyi3jklj1yxqq26fwklmfh5dv1y8yc";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/ddcutil/nixos-paths.diff b/pkgs/tools/misc/ddcutil/nixos-paths.diff
index e45eb88b519..54d17ea5bfe 100644
--- a/pkgs/tools/misc/ddcutil/nixos-paths.diff
+++ b/pkgs/tools/misc/ddcutil/nixos-paths.diff
@@ -1,32 +1,30 @@
-diff --git a/src/app_sysenv/query_sysenv_modules.c b/src/app_sysenv/query_sysenv_modules.c
-index 59df64f1..fb244dd0 100644
---- a/src/app_sysenv/query_sysenv_modules.c
-+++ b/src/app_sysenv/query_sysenv_modules.c
-@@ -50,7 +50,9 @@ bool is_module_loadable(char * module_name, int depth) {
-    g_snprintf(module_name_ko, 100, "%s.ko", module_name);
- 
-    char dirname[PATH_MAX];
--   g_snprintf(dirname, PATH_MAX, "/lib/modules/%s/kernel/drivers/i2c", utsbuf.release);
-+   g_snprintf(dirname, PATH_MAX,
-+      "/run/booted-system/kernel-modules/lib/modules/%s/kernel/drivers/i2c",
-+      utsbuf.release);
- 
-    struct dirent *dent;
-      DIR           *d;
-diff --git a/src/util/linux_util.c b/src/util/linux_util.c
-index 5eb8491c..3a129ccf 100644
 --- a/src/util/linux_util.c
 +++ b/src/util/linux_util.c
-@@ -29,8 +29,10 @@ bool is_module_builtin(char * module_name)
-    int rc = uname(&utsbuf);
-    assert(rc == 0);
+@@ -125,6 +125,7 @@
+                   "lib64",
+                   "lib32",
+                   "usr/lib",  // needed for arch?
++                  "run/booted-system/kernel-modules/lib",  // NixOS
+                   NULL};
+    int result = -1;
+    int ndx = 0;
+@@ -204,14 +205,15 @@
+    if (debug)
+       printf("(%s) machine: %s", __func__, utsbuf.machine);
  
--   char modules_builtin_fn[100];
--   snprintf(modules_builtin_fn, 100, "/lib/modules/%s/modules.builtin", utsbuf.release);
-+   char modules_builtin_fn[PATH_MAX];
-+   snprintf(modules_builtin_fn, PATH_MAX,
-+      "/run/booted-system/kernel-modules/lib/modules/%s/modules.builtin",
-+      utsbuf.release);
+-   char * libdirs[3];
++   char * libdirs[4];
+    libdirs[0] = "lib";
++   libdirs[1] = "run/booted-system/kernel-modules/lib";
+    if (streq(utsbuf.machine, "amd_64")){
+-      libdirs[1] = "lib64";
+-      libdirs[2] = NULL;
++      libdirs[2] = "lib64";
++      libdirs[3] = NULL;
+    }
+    else
+-      libdirs[1] = NULL;
++      libdirs[2] = NULL;
  
-    char ko_name[40];
-    snprintf(ko_name, 40, "%s.ko", module_name);
+    int libsndx = 0;
+    bool found = false;
diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/tools/misc/dialog/default.nix
index dca8d9666af..744f55aed10 100644
--- a/pkgs/development/tools/misc/dialog/default.nix
+++ b/pkgs/tools/misc/dialog/default.nix
@@ -12,14 +12,16 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null;
 
 stdenv.mkDerivation rec {
   pname = "dialog";
-  version = "1.3-20210306";
+  version = "1.3-20210324";
 
   src = fetchurl {
     url = "ftp://ftp.invisible-island.net/dialog/${pname}-${version}.tgz";
-    hash = "sha256-pz57YHtjX2PAICuzMTEG5wD5H+Sp9NJspwA/brK5yw8=";
+    hash = "sha256-AcLR4umvmwg+ogDKrQhP39pVF41bv05Cyf/0STUVFlM=";
   };
 
-  buildInputs = [ ncurses ];
+  buildInputs = [
+    ncurses
+  ];
 
   configureFlags = [
     "--disable-rpath-hacks"
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 086c1a2b540..27da4900285 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "171";
+  version = "172";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-8PUFKwSWf84ics4w9yrCWMYgzzNF5z1kNn7LnksfCtA=";
+    sha256 = "1j162jh5lkiixpb5ym3smyrkvjldm8m8vnx25cgwb7cxkk701w5x";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/dylibbundler/default.nix b/pkgs/tools/misc/dylibbundler/default.nix
deleted file mode 100644
index 7bf93bf88e7..00000000000
--- a/pkgs/tools/misc/dylibbundler/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, stdenv, fetchFromGitHub }:
-
-stdenv.mkDerivation {
-  name = "dylibbundler";
-
-  src  = fetchFromGitHub {
-    owner  = "auriamg";
-    repo   = "/macdylibbundler";
-    rev    = "27923fbf6d1bc4d18c18e118280c4fe51fc41a80";
-    sha256 = "1mpd43hvpfp7pskfrjnd6vcmfii9v3p97q0ws50krkdvshp0bv2h";
-  };
-
-  makeFlags = [ "PREFIX=$(out)" ];
-
-  meta = with lib; {
-    description = "Small command-line program that aims to make bundling .dylibs as easy as possible";
-    homepage    = "https://github.com/auriamg/macdylibbundler";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ alexfmpe ];
-    platforms   = with platforms; darwin ++ linux;
-  };
-}
diff --git a/pkgs/tools/misc/ethminer/default.nix b/pkgs/tools/misc/ethminer/default.nix
index 7d2cb5c7ff2..22278cb9a4d 100644
--- a/pkgs/tools/misc/ethminer/default.nix
+++ b/pkgs/tools/misc/ethminer/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   clangStdenv,
   fetchFromGitHub,
   opencl-headers,
@@ -8,6 +9,7 @@
   boost,
   makeWrapper,
   cudatoolkit,
+  cudaSupport,
   mesa,
   ethash,
   opencl-info,
@@ -15,22 +17,22 @@
   openssl,
   pkg-config,
   cli11
-}:
+}@args:
 
 # Note that this requires clang < 9.0 to build, and currently
 # clangStdenv provides clang 7.1 which satisfies the requirement.
-let stdenv = clangStdenv;
+let stdenv = if cudaSupport then clangStdenv else args.stdenv;
 
 in stdenv.mkDerivation rec {
   pname = "ethminer";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src =
     fetchFromGitHub {
       owner = "ethereum-mining";
       repo = "ethminer";
       rev = "v${version}";
-      sha256 = "10b6s35axmx8kyzn2vid6l5nnzcaf4nkk7f5f7lg3cizv6lsj707";
+      sha256 = "1kyff3vx2r4hjpqah9qk99z6dwz7nsnbnhhl6a76mdhjmgp1q646";
       fetchSubmodules = true;
     };
 
@@ -41,6 +43,8 @@ in stdenv.mkDerivation rec {
     "-DAPICORE=ON"
     "-DETHDBUS=OFF"
     "-DCMAKE_BUILD_TYPE=Release"
+  ] ++ lib.optionals (!cudaSupport) [
+    "-DETHASHCUDA=OFF" # on by default
   ];
 
   nativeBuildInputs = [
@@ -54,12 +58,13 @@ in stdenv.mkDerivation rec {
     boost
     opencl-headers
     mesa
-    cudatoolkit
     ethash
     opencl-info
     ocl-icd
     openssl
     jsoncpp
+  ] ++ lib.optionals cudaSupport [
+    cudatoolkit
   ];
 
   preConfigure = ''
@@ -71,10 +76,11 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Ethereum miner with OpenCL, CUDA and stratum support";
+    description = "Ethereum miner with OpenCL${lib.optionalString cudaSupport ", CUDA"} and stratum support";
     homepage = "https://github.com/ethereum-mining/ethminer";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ nand0p ];
-    license = licenses.gpl2;
+    maintainers = with maintainers; [ nand0p atemu ];
+    license = licenses.gpl3Only;
+    broken = cudaSupport;
   };
 }
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index 4c92a0be792..75e1084e0bd 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitLab, rustPlatform, cmake, pkg-config, openssl
-, darwin, installShellFiles
+, installShellFiles
+, CoreFoundation, CoreServices, Security, AppKit, libiconv
 
 , x11Support ? stdenv.isLinux || stdenv.hostPlatform.isBSD
 , xclip ? null, xsel ? null
@@ -7,7 +8,7 @@
 }:
 
 let
-  usesX11 = stdenv.isLinux || stdenv.hostPlatform.isBSD;
+  usesX11 = stdenv.isLinux || stdenv.isBSD;
 in
 
 assert (x11Support && usesX11) -> xclip != null || xsel != null;
@@ -16,20 +17,20 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.68";
+  version = "0.2.71";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "0ga1v4s8ks2v632mim8ljya0gi2j8bbwj98yfm3g00p0z1i526qk";
+    sha256 = "sha256-dXFnM8085XVzUwk1e3SoO+O+z9lJ40htJzHBGRQ95XY=";
   };
 
-  cargoSha256 = "1n9pf29xid6jcas5yx94k4cpmqgx0kpqq7gwf83jisjywxzygh6w";
+  cargoSha256 = "sha256-VwxIH/n1DjZsMOLAREclqanb4q7QEOZ35KWWciyrnyQ=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
   buildInputs =
-    if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security AppKit ])
+    if stdenv.isDarwin then [ libiconv CoreFoundation CoreServices Security AppKit ]
     else [ openssl ];
 
   preBuild = lib.optionalString (x11Support && usesX11) (
@@ -54,7 +55,7 @@ buildRustPackage rec {
       web browser.
     '';
     homepage = "https://gitlab.com/timvisee/ffsend";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ lilyball equirosa ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/misc/flexoptix-app/default.nix b/pkgs/tools/misc/flexoptix-app/default.nix
new file mode 100644
index 00000000000..40f30bd7ad9
--- /dev/null
+++ b/pkgs/tools/misc/flexoptix-app/default.nix
@@ -0,0 +1,47 @@
+{ lib, appimageTools, fetchurl }: let
+  pname = "flexoptix-app";
+  version = "5.9.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    name = "${name}.AppImage";
+    url = "https://flexbox.reconfigure.me/download/electron/linux/x64/FLEXOPTIX%20App.${version}.AppImage";
+    sha256 = "0gbqaj9b11mxx0knmmh2d5863kaslbb3r6c4h8rjhg8qy4cws7hj";
+  };
+
+  udevRules = fetchurl {
+    url = "https://www.flexoptix.net/skin/udev_rules/99-tprogrammer.rules";
+    sha256 = "0mr1bhgvavq1ax4206z1vr2y64s3r676w9jjl9ysziklbrsvk5rr";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = { pkgs, ... }@args: [
+    pkgs.hidapi
+  ] ++ appimageTools.defaultFhsEnvArgs.multiPkgs args;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -Dm444 ${appimageContents}/flexoptix-app.desktop -t $out/share/applications
+    install -Dm444 ${appimageContents}/flexoptix-app.png -t $out/share/pixmaps
+    substituteInPlace $out/share/applications/flexoptix-app.desktop \
+      --replace 'Exec=AppRun' "Exec=$out/bin/${pname}"
+    mkdir -p $out/lib/udev/rules.d
+    ln -s ${udevRules} $out/lib/udev/rules.d/99-tprogrammer.rules
+  '';
+
+  meta = {
+    description = "Configure FLEXOPTIX Universal Transcievers in seconds";
+    homepage = "https://www.flexoptix.net";
+    changelog = "https://www.flexoptix.net/en/flexoptix-app/?os=linux#flexapp__modal__changelog";
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ das_j ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index ffee232172c..89bd0f0491e 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, lib
+{ stdenv, fetchpatch, fetchFromGitHub, lib
 , cmake, perl, uthash, pkg-config, gettext
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
@@ -23,6 +23,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Rl/5lbXaPgIndANaD0IakaDus6T53FjiBb45FIuGrvc=";
   };
 
+  patches = [
+    # Allow installing contrib files (e.g. extras and tools).
+    # Taken from https://salsa.debian.org/fonts-team/fontforge/-/blob/master/debian/patches/0001-add-extra-cmake-install-rules.patch
+    (fetchpatch {
+      url = "https://salsa.debian.org/fonts-team/fontforge/raw/76bffe6ccf8ab20a0c81476a80a87ad245e2fd1c/debian/patches/0001-add-extra-cmake-install-rules.patch";
+      sha256 = "u3D9od2xLECNEHhZ+8dkuv9818tPkdP6y/Tvd9CADJg=";
+    })
+  ];
+
   # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps
   postPatch = ''
     find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \;
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 4a02e921f47..5ccf4b96d81 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,36 +1,27 @@
-{ lib, stdenv, fetchurl, pkg-config, ncurses, glib, libmaxminddb, fetchpatch }:
+{ lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
 
 stdenv.mkDerivation rec {
-  version = "1.4";
+  version = "1.4.6";
   pname = "goaccess";
 
   src = fetchurl {
     url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "1gkpjg39f3afdwm9128jqjsfap07p8s027czzlnxfmi5hpzvkyz8";
+    sha256 = "1l3j3i4vb7ni7i047qvi9a3hs43ym24r6hfcnqsbhgrb731jf3qx";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/allinurl/goaccess/commit/514618cdd69453497fbf67913ccb37a0a0b07391.patch";
-      sha256 = "11lp7mabfl6ibgzsd9nw10k2xvcm0hrimrwidl06r8dqn2jzjxf6";
-    })
-  ];
-
   configureFlags = [
-    "--enable-geoip=mmdb"
     "--enable-utf8"
-  ];
+    "--with-openssl"
+  ] ++ lib.optionals withGeolocation [ "--enable-geoip=mmdb" ];
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    libmaxminddb
-    ncurses
-    glib
-  ];
+  buildInputs = [ ncurses openssl ]
+    ++ lib.optionals withGeolocation [ libmaxminddb ]
+    ++ lib.optionals stdenv.isDarwin [ gettext ];
 
   meta = {
     description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems";
     homepage    = "https://goaccess.io";
+    changelog   = "https://github.com/allinurl/goaccess/raw/v${version}/ChangeLog";
     license     = lib.licenses.mit;
     platforms   = lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ ederoyd46 ];
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 8732ee66ef6..77cb54ce58d 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.162.0";
+  version = "0.164.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nhl6GATzFsfEQjKVxz65REn9QTvOH49omU00ZCfO6CY=";
+    sha256 = "sha256-DGiA9Ww/8sHNRgZ7nOx60YVZaxYBH5GJf6KqilwRKrE=";
   };
 
-  vendorSha256 = "sha256-zq/RIOK/Hs1GJ2yLE7pe0UoDuR6LGUrPQAuQzrTvuKs=";
+  vendorSha256 = "sha256-y7GesJU2kDtC5S6rnduDX9gcXakNIR8MdLuPW2m1QWs=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/pkgs/tools/misc/grit/default.nix b/pkgs/tools/misc/grit/default.nix
index f1b4b43280b..a793ed7ebed 100644
--- a/pkgs/tools/misc/grit/default.nix
+++ b/pkgs/tools/misc/grit/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grit";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "climech";
     repo = "grit";
     rev = "v${version}";
-    sha256 = "0v4i8xdf1pgkmwad5jb6n6s4rx48zk57wij0ppzg6zb725wy7r8a";
+    sha256 = "sha256-c8wBwmXFjpst6UxL5zmTxMR4bhzpHYljQHiJFKiNDms=";
   };
 
-  vendorSha256 = "0a1lqfn710fgvrvbimd92102fhjs1wa7r8i0l7s5m7jxks629hw8";
+  vendorSha256 = "sha256-iMMkjJ5dnlr0oSCifBQPWkInQBCp1bh23s+BcKzDNCg=";
 
   meta = with lib; {
     description = "A multitree-based personal task manager";
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index ad7a74e8137..29ce5b23faa 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -154,5 +154,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
 
     platforms = platforms.gnu ++ platforms.linux;
+
+    maintainers = [ maintainers.samueldr ];
   };
 })
diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix
index 1d825c866c4..baa718c1b1f 100644
--- a/pkgs/tools/misc/handlr/default.nix
+++ b/pkgs/tools/misc/handlr/default.nix
@@ -1,20 +1,23 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, shared-mime-info }:
 
 rustPlatform.buildRustPackage rec {
   pname = "handlr";
-  version = "0.5.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f4gmlqzgw1r8n0w9dr9lpsn94f2hlnak9bbq5xgf6jwgc9mwqzg";
+    sha256 = "sha256-OtU6sL2Bbbec0gHxk3bl5Inn+ZmNYiHgpSF0gjDuRSg=";
   };
 
-  cargoSha256 = "16d4dywwkgvvxw6ninrx87rqhx0whdq3yy01m27qjy4gz6z6ad8p";
+  cargoSha256 = "sha256-bX7QWV1R+pLxvghpaV10LeROv4wBVfZhHyrPCIgqETA=";
 
-  # Most tests fail (at least some due to directory permissions)
-  doCheck = false;
+  nativeBuildInputs = [ shared-mime-info ];
+
+  preCheck = ''
+    export HOME=$TEMPDIR
+  '';
 
   meta = with lib; {
     description = "Alternative to xdg-open to manage default applications with ease";
diff --git a/pkgs/tools/misc/inav-blackbox-tools/default.nix b/pkgs/tools/misc/inav-blackbox-tools/default.nix
new file mode 100644
index 00000000000..5f2fb65f9f3
--- /dev/null
+++ b/pkgs/tools/misc/inav-blackbox-tools/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "inav-blackbox-tools";
+  version = "unstable-2021-04-22";
+
+  src = fetchFromGitHub {
+    owner = "iNavFlight";
+    repo = "blackbox-tools";
+    rev = "0109e2fb9b44d593e60bca4cef4098d83c55c373";
+    sha256 = "1rdlw74dqq0hahnka2w2pgvs172vway2x6v8byxl2s773l22k4ln";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ cairo ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    cp obj/{blackbox_decode,blackbox_render,encoder_testbed} "$out/bin"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tools for working with blackbox flight logs";
+    homepage = "https://github.com/inavflight/blackbox-tools";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ expipiplus1 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/lf/default.nix b/pkgs/tools/misc/lf/default.nix
index 7ec9d0d407a..0d684b16be5 100644
--- a/pkgs/tools/misc/lf/default.nix
+++ b/pkgs/tools/misc/lf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "21";
+  version = "22";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "0j7c21lsgcc39ng9ni94y3zfcqwyf9jc52fi8mcpkp0lpcx5ava9";
+    sha256 = "10zmac9xza2v7l13zkavmc34ppcpmb82v8dxvrv4ggm261ns1abr";
   };
 
-  vendorSha256 = "15fl9v69wkzwzpq6x4xhcd5g6xyck3mlpbz1bbb61l75jjzg913m";
+  vendorSha256 = "1yjsig2x6zrxdjnds6nqqq3r3g5lq8g9dvmz60nbifqhcx112bcw";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -35,6 +35,6 @@ buildGoModule rec {
     changelog = "https://github.com/gokcehan/lf/releases/tag/r${version}";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
new file mode 100644
index 00000000000..d975e02d5ac
--- /dev/null
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "macchina";
+  version = "0.6.9";
+
+  src = fetchFromGitHub {
+    owner = "Macchina-CLI";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-y23gpYDnYoiTJcNyWKslVenPTXcCrOvxq+0N9PjQN3g=";
+  };
+
+  cargoSha256 = "sha256-jfLj8kLBG6AeeYo421JCl1bMqWwOGiwQgv7AEomtFcY=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion target/completions/*.{bash,fish}
+  '';
+
+  meta = with lib; {
+    description = "A fast, minimal and customizable system information fetcher";
+    homepage = "https://github.com/Macchina-CLI/macchina";
+    changelog = "https://github.com/Macchina-CLI/macchina/releases/tag/v${version}";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ _414owen ];
+  };
+}
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 1223432ad7d..98fb8335788 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "sha256-1nXhAYvvvUQb0RcWidsRMQOhU8eXt7ngzodsMkYvqvg=";
+    sha256 = "sha256-Hv1aefuiu7pOlSMUjZLGY6bxVy+6myFH1afZZ5gtmi0=";
   };
 
-  cargoSha256 = "sha256-P5ukE7eXBRJMrc7+T9/TMq2uGs0AuZliHTtoqiZXNZw=";
+  cargoSha256 = "sha256-CgiHluc9+5+hKwsC7UZimy1586QBUsj+TVlb2lQRXs0=";
 
   nativeBuildInputs = [ installShellFiles pkg-config zlib ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix
index 1826d6846d4..d9287003084 100644
--- a/pkgs/tools/misc/neofetch/default.nix
+++ b/pkgs/tools/misc/neofetch/default.nix
@@ -1,22 +1,28 @@
-{ lib, stdenvNoCC, fetchFromGitHub, bash }:
+{ lib, stdenvNoCC, fetchFromGitHub, bash, makeWrapper, pciutils, ueberzug }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "neofetch";
-  version = "7.1.0";
+  version = "unstable-2020-11-26";
 
   src = fetchFromGitHub {
     owner = "dylanaraps";
     repo = "neofetch";
-    rev = version;
-    sha256 = "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv";
+    rev = "6dd85d67fc0d4ede9248f2df31b2cd554cca6c2f";
+    sha256 = "sha256-PZjFF/K7bvPIjGVoGqaoR8pWE6Di/qJVKFNcIz7G8xE=";
   };
 
   strictDeps = true;
   buildInputs = [ bash ];
+  nativeBuildInputs = [ makeWrapper ];
   postPatch = ''
     patchShebangs --host neofetch
   '';
 
+  postInstall = ''
+    wrapProgram $out/bin/neofetch \
+      --prefix PATH : ${lib.makeBinPath [ pciutils ueberzug ]}
+  '';
+
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "SYSCONFDIR=${placeholder "out"}/etc"
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
index 4c03172d9af..dbc709dd41c 100644
--- a/pkgs/tools/misc/nncp/default.nix
+++ b/pkgs/tools/misc/nncp/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "6.2.0";
+  version = "6.4.0";
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "1zj0v82zqigcxhpc50mvafvi1ihs92ck35vjfrwb7wzzd7nysb17";
+    sha256 = "16xrwhr7avss238k83ih1njl0gfca57ghg360ba9ixlssrb1239x";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 53966705c2d..b5c0940910c 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -12,6 +12,8 @@
 , xz
 , e2fsprogs
 , libsoup
+, glib-networking
+, wrapGAppsHook
 , gpgme
 , which
 , makeWrapper
@@ -39,13 +41,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2020.8";
+  version = "2021.1";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "16v73v63h16ika73kgh2cvgm0v27r2d48m932mbj3xm6s295kapx";
+    sha256 = "sha256-kbS9kmSDHSD/AOxELUjt5SbbVTeb2RdgaGPAX0O4WlE=";
   };
 
   patches = [
@@ -78,6 +80,7 @@ in stdenv.mkDerivation rec {
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_42
+    wrapGAppsHook
   ];
 
   buildInputs = [
@@ -85,6 +88,7 @@ in stdenv.mkDerivation rec {
     systemd
     e2fsprogs
     libsoup
+    glib-networking
     gpgme
     fuse
     libselinux
diff --git a/pkgs/tools/misc/pcb2gcode/default.nix b/pkgs/tools/misc/pcb2gcode/default.nix
index 6d385169975..d7f6a3d8739 100644
--- a/pkgs/tools/misc/pcb2gcode/default.nix
+++ b/pkgs/tools/misc/pcb2gcode/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcb2gcode";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "pcb2gcode";
     repo = "pcb2gcode";
     rev = "v${version}";
-    sha256 = "sha256-BELugmnnedqXTnSwiQN3XbqkWKTKF27ElQAwrEWNSao=";
+    sha256 = "sha256-blbfpMBe7X3OrNbBiz8fNzKcS/bbViQUTXtdxZpXPBk=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 354075df549..ff4e15c9cc8 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-kRKU6ynZffV17GqEArkXxz6M9xoa3kn2yNqjyLRY0rc=";
+    sha256 = "sha256-RWezBNqjKybMtfpxPhDg2ysb4ksKphTPdTNTwCe4pas=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/semiphemeral/default.nix b/pkgs/tools/misc/semiphemeral/default.nix
new file mode 100644
index 00000000000..67f0f62e877
--- /dev/null
+++ b/pkgs/tools/misc/semiphemeral/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "semiphemeral";
+  version = "0.6";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "c90d73b14c826f262b1339d1f5926c5abc6431181090ea87177af821c0866fb7";
+  };
+
+  doCheck = false; # upstream has no tests
+
+  pythonImportsCheck = [ "semiphemeral" ];
+
+  propagatedBuildInputs = with python3.pkgs; [ click sqlalchemy flask tweepy colorama ];
+
+  meta = with lib; {
+    description = "Automatically delete your old tweets, except for the ones you want to keep";
+    homepage = "https://github.com/micahflee/semiphemeral";
+    license = licenses.mit;
+    maintainers = with maintainers; [ amanjeev ];
+  };
+}
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 03f24c16aab..8eeee269b07 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook, pkg-config, docbook_xsl, libxslt, docbook_xml_dtd_45
 , acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
-, lvm2, pam, python, util-linux, fetchpatch, json_c, nixosTests
+, lvm2, pam, python, util-linux, json_c, nixosTests
 , ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.15";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "1rqv1qfxr02qbkix1mpx91s4827irxryxkhby3ii0fdkm3ympsas";
+    sha256 = "1gx3ichbkdqlzl7w187vc3xpmr9prmnp7as0h6ympgigradj5c7g";
   };
 
   nativeBuildInputs = [
@@ -26,14 +26,6 @@ stdenv.mkDerivation rec {
 
   passthru.tests.snapper = nixosTests.snapper;
 
-  patches = [
-    # Don't use etc/dbus-1/system.d
-    (fetchpatch {
-      url = "https://github.com/openSUSE/snapper/commit/c51708aea22d9436da287cba84424557ad03644b.patch";
-      sha256 = "106pf7pv8z3q37c8ckmgwxs1phf2fy7l53a9g5xq5kk2rjj1cx34";
-    })
-  ];
-
   postPatch = ''
     # Hard-coded root paths, hard-coded root paths everywhere...
     for file in {client,data,pam,scripts,zypp-plugin}/Makefile.am; do
diff --git a/pkgs/tools/misc/sta/default.nix b/pkgs/tools/misc/sta/default.nix
index aa27ddf0838..809287edcf6 100644
--- a/pkgs/tools/misc/sta/default.nix
+++ b/pkgs/tools/misc/sta/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+}:
+
 stdenv.mkDerivation {
   pname = "sta";
-  version = "unstable-2016-01-25";
+  version = "unstable-2020-05-10";
 
   src = fetchFromGitHub {
     owner = "simonccarter";
     repo = "sta";
-    rev = "2aa2a6035dde88b24978b875e4c45e0e296f77ed";
-    sha256 = "05804f106nb89yvdd0csvpd5skwvnr9x4qr3maqzaw0qr055mrsk";
+    rev = "566e3a77b103aa27a5f77ada8e068edf700f26ef";
+    sha256 = "1v20di90ckl405rj5pn6lxlpxh2m2b3y9h2snjvk0k9sihk7w7d5";
   };
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   meta = with lib; {
     description = "Simple statistics from the command line interface (CLI), fast";
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index c589590abcf..1e3eae78701 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.51.0";
+  version = "0.52.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bmnwvjhw2ba7yqn9if83d57b8qbrbqgy2br8q2drz4ylk0gjirg";
+    sha256 = "sha256-BX+NUF7mgZyrloj3h9YcG2r6ZZWO20hXQYbBvaK34JQ=";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "1d4ca8yzx437x53i7z2kddv9db89zy6ywbgl6y1cwwd6wscbrxcq";
+  cargoSha256 = "sha256-8xqbPkdIVfAkeG1WZFq56N0rcF+uh2FeMKzz4FgMFYs=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 58c488f7b80..67548e305d7 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -8,13 +8,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "3.3";
+  version = "3.6";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "00pz5vv39qjsw67fdlj6942371lyvv368lc82z17nnh723ck54yy";
+    sha256 = "1hnbpj4k08356k2rmsairbfnxwfxs5lv59nxcj6hy5wf162h2hzb";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
@@ -47,6 +47,5 @@ in stdenv.mkDerivation rec {
     description = "Command-line tool to download videos from svtplay.se and other sites";
     license = licenses.mit;
     platforms = lib.platforms.unix;
-    maintainers = [ maintainers.rycee ];
   };
 }
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 534fe54bc18..629cf548c26 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , autoreconfHook
 , pkg-config
 , bison
@@ -20,7 +21,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tmux";
-  version = "3.1c";
+  version = "3.2";
 
   outputs = [ "out" "man" ];
 
@@ -28,9 +29,18 @@ stdenv.mkDerivation rec {
     owner = "tmux";
     repo = "tmux";
     rev = version;
-    sha256 = "1fqgpzfas85dn0sxlvvg6rj488jwgnxs8d3gqcm8lgs211m9qhcf";
+    sha256 = "0alq81h1rz1f0zsy8qb2dvsl47axpa86j4bplngwkph0ksqqgr3p";
   };
 
+  patches = [
+    # Fix cross-compilation
+    # https://github.com/tmux/tmux/pull/2651
+    (fetchpatch {
+      url = "https://github.com/tmux/tmux/commit/bb6242675ad0c7447daef148fffced882e5b4a61.patch";
+      sha256 = "1acr3xv3gqpq7qa2f8hw7c4f42hi444lfm1bz6wqj8f3yi320zjr";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
     autoreconfHook
@@ -71,7 +81,7 @@ stdenv.mkDerivation rec {
           * Terminal locking, manually or after a timeout.
           * A clean, easily extended, BSD-licensed codebase, under active development.
       '';
-
+    changelog = "https://github.com/tmux/tmux/raw/${version}/CHANGES";
     license = lib.licenses.bsd3;
 
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/misc/togglesg-download/default.nix b/pkgs/tools/misc/togglesg-download/default.nix
deleted file mode 100644
index 812ad7900d0..00000000000
--- a/pkgs/tools/misc/togglesg-download/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, fetchFromGitHub, pythonPackages, makeWrapper, ffmpeg_3 }:
-
-pythonPackages.buildPythonApplication {
-
-  pname = "togglesg-download-git";
-  version = "2017-12-07";
-
-  src = fetchFromGitHub {
-    owner  = "0x776b7364";
-    repo   = "toggle.sg-download";
-    rev    = "e64959f99ac48920249987a644eefceee923282f";
-    sha256 = "0j317wmyzpwfcixjkybbq2vkg52vij21bs40zg3n1bs61rgmzrn8";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  doCheck = false;
-  dontBuild = true;
-  dontStrip = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/{bin,share/doc/togglesg-download}
-    substitute $src/download_toggle_video2.py $out/bin/download_toggle_video2.py \
-      --replace "ffmpeg_download_cmd = 'ffmpeg" "ffmpeg_download_cmd = '${lib.getBin ffmpeg_3}/bin/ffmpeg"
-    chmod 0755 $out/bin/download_toggle_video2.py
-
-    cp LICENSE README.md $out/share/doc/togglesg-download
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/0x776b7364/toggle.sg-download";
-    description = "Command-line tool to download videos from toggle.sg written in Python";
-    longDescription = ''
-      toggle.sg requires SilverLight in order to view videos. This tool will
-      allow you to download the video files for viewing in your media player and
-      on your OS of choice.
-    '';
-    license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index d199fd7fda3..dcb9e056e9b 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -2,22 +2,27 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.20.12.26";
+  version = "0.21.4.18";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "15iivl9xln1bw1zr2x5zvqyb6aj7mc8hfqi6dniq6xkp5m046ib7";
+    sha256 = "16xmg2d9rfmm5l1dxj3dydijpv3kwswrqsbj1sihyyka4s915g61";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
 
   checkInputs = with python3Packages; [
-    nose
     mock
+    pytest
   ];
-  checkPhase = "nosetests";
+
+  # Run tests, skipping `test_user_specified` since its result depends on the
+  # mount path.
+  checkPhase = ''
+    pytest -k 'not test_user_specified'
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/andreafrancia/trash-cli";
@@ -25,5 +30,6 @@ python3Packages.buildPythonApplication rec {
     maintainers = [ maintainers.rycee ];
     platforms = platforms.unix;
     license = licenses.gpl2;
+    mainProgram = "trash";
   };
 }
diff --git a/pkgs/tools/misc/trash-cli/nix-paths.patch b/pkgs/tools/misc/trash-cli/nix-paths.patch
deleted file mode 100644
index d7b485eec15..00000000000
--- a/pkgs/tools/misc/trash-cli/nix-paths.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/trashcli/list_mount_points.py	2014-12-23 10:10:43.808470486 +0100
-+++ a/trashcli/list_mount_points.py	2014-12-23 10:19:04.954796457 +0100
-@@ -12,7 +12,7 @@ def mount_points_from_getmnt():
- 
- def mount_points_from_df():
-     import subprocess
--    df_output = subprocess.Popen(["df", "-P"], stdout=subprocess.PIPE).stdout
-+    df_output = subprocess.Popen(["@df@", "-P"], stdout=subprocess.PIPE).stdout
-     return list(_mount_points_from_df_output(df_output))
- 
- def _mount_points_from_df_output(df_output):
-@@ -46,13 +46,7 @@ def _mounted_filesystems_from_getmnt() :
-                     ("mnt_freq", c_int),       # Dump frequency (in days).
-                     ("mnt_passno", c_int)]     # Pass number for `fsck'.
- 
--    if sys.platform == "cygwin":
--        libc_name = "cygwin1.dll"
--    else:
--        libc_name = find_library("c")
--
--    if libc_name == None :
--        libc_name="/lib/libc.so.6" # fix for my Gentoo 4.0
-+    libc_name = "@libc@"
- 
-     libc = cdll.LoadLibrary(libc_name)
-     libc.getmntent.restype = POINTER(mntent_struct)
diff --git a/pkgs/tools/misc/tremor-rs/default.nix b/pkgs/tools/misc/tremor-rs/default.nix
index fb1268acc6f..73640de76bf 100644
--- a/pkgs/tools/misc/tremor-rs/default.nix
+++ b/pkgs/tools/misc/tremor-rs/default.nix
@@ -3,22 +3,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tremor";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "tremor-rs";
     repo = "tremor-runtime";
     rev = "v${version}";
-    sha256 = "1z1khxfdj2j0xf7dp0x2cd9kl6r4qicp7kc4p4sdky2yib66512y";
+    sha256 = "0aw6m5gklpgv1frrviv1v1ky898dwbcc1crd65d3gldcmnhvg6ap";
   };
 
-  cargoSha256 = "sha256-rN/d6BL2d0D0ichQR6v0543Bh/Y2ktz8ExMH50M8B8c=";
+  cargoSha256 = "1lks3xgnzcccv3hiqgxjpfm4v4g97an8yzfnb2kakw7jkfli6kvi";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
 
   buildInputs = [ openssl ];
 
+  # TODO export TREMOR_PATH($out/lib) variable
   postInstall = ''
+    # Copy the standard library to $out/lib
+    cp -r ${src}/tremor-script/lib/ $out
+
     installShellCompletion --cmd tremor \
       --bash <($out/bin/tremor completions bash) \
       --fish <($out/bin/tremor completions fish) \
@@ -30,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   # OPENSSL_NO_VENDOR - If set, always find OpenSSL in the system, even if the vendored feature is enabled.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoBuildFlags = [ "--all" ];
+  cargoBuildFlags = [ "-p tremor-cli" ];
 
   meta = with lib; {
     description = "Early stage event processing system for unstructured data with rich support for structural pattern matching, filtering and transformation";
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index 04eb29ca1e1..161c28054b0 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vector";
-  version = "0.12.2";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "timberio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LutCzpJo47wvEze7bAObRVraNhVuQFc9NQ79NzKA9CM=";
+    sha256 = "sha256-ige0138alZ0KAmPakPVmDVydz5qco6m0xK7AEzScyXc=";
   };
 
-  cargoSha256 = "sha256-GU5p9DB5Bk8eQc1B/WA87grbVJVcT1ELJ0WzmRYgDzc=";
+  cargoSha256 = "sha256-oK4M6zTfI0QVW9kQTgpP/vSxFt2VlRABmKvQ4aAqC74=";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl protobuf rdkafka ]
     ++ lib.optional stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix
index 5a264db2d4d..ce525dd98dd 100644
--- a/pkgs/tools/misc/watchexec/default.nix
+++ b/pkgs/tools/misc/watchexec/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1b0ds04q4g8xcgwkziwb5hsi7v73w9y0prvhxz880zzh930652n2";
+    sha256 = "1xznhfljvsvc0ykv5h1wg31n93v96lvhbxfhavxivq3b0xh5vxrw";
   };
 
-  cargoSha256 = "0jpfgyz5l4fdb5cnqmadzjzrvc6dwgray4b0mx80pghpjw8a8qfb";
+  cargoSha256 = "00dampnsnpzmchjcn0j5zslx17i0qgrv99gq772n0683m1l2lfq3";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index d5f09d9f9fa..821c059a45f 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -2,21 +2,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "vi";
-    repo = "websocat";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja";
+    sha256 = "sha256-jwoWxK4phBqhIeo3+oRnpGsfvtn9gTR1ryd4N+0Lmbw=";
   };
 
   cargoBuildFlags = [ "--features=ssl" ];
-  cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq";
+  cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin Security;
 
+  # Needed to get openssl-sys to use pkg-config.
+  OPENSSL_NO_VENDOR=1;
+
   # The wrapping is required so that the "sh-c" option of websocat works even
   # if sh is not in the PATH (as can happen, for instance, when websocat is
   # started as a systemd service).
@@ -26,8 +29,9 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    description = "Command-line client for WebSockets (like netcat/socat)";
     homepage = "https://github.com/vi/websocat";
+    description = "Command-line client for WebSockets (like netcat/socat)";
+    changelog = "https://github.com/vi/websocat/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice Br1ght0ne ];
   };
diff --git a/pkgs/tools/misc/wemux/default.nix b/pkgs/tools/misc/wemux/default.nix
new file mode 100644
index 00000000000..0eee60187f2
--- /dev/null
+++ b/pkgs/tools/misc/wemux/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, tmux, installShellFiles }:
+
+stdenv.mkDerivation rec {
+  pname = "wemux";
+  version = "unstable-2021-04-16";
+
+  src = fetchFromGitHub {
+    owner = "zolrath";
+    repo = "wemux";
+    rev = "01c6541f8deceff372711241db2a13f21c4b210c";
+    sha256 = "1y962nzvs7sf720pl3wa582l6irxc8vavd0gp4ag4243b2gs4qvm";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    runHook preInstall
+
+    substituteInPlace wemux \
+        --replace tmux ${tmux}/bin/tmux \
+        --replace "/usr/local/etc" "/etc"
+
+    substituteInPlace man/wemux.1 --replace "/usr/local/etc" "/etc"
+
+    install -Dm755 wemux -t $out/bin
+    installManPage man/wemux.1
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/zolrath/wemux";
+    description = "Multi-user tmux made easy";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ bsima ];
+  };
+}
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index 6aaee0f00b5..7f453892934 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A clock application that morphs digits when they are changed";
-    maintainers = with maintainers; [ raskin rycee ];
+    maintainers = with maintainers; [ raskin ];
     platforms = with platforms; linux ++ freebsd;
     license = licenses.free; #TODO BSD on Gentoo, looks like MIT
     downloadPage = "http://www.jwz.org/xdaliclock/";
diff --git a/pkgs/tools/misc/xdxf2slob/default.nix b/pkgs/tools/misc/xdxf2slob/default.nix
index b898aa2fc24..28c952400f1 100644
--- a/pkgs/tools/misc/xdxf2slob/default.nix
+++ b/pkgs/tools/misc/xdxf2slob/default.nix
@@ -16,7 +16,6 @@ python3Packages.buildPythonApplication {
     description = "Tool to convert XDXF dictionary files to slob format";
     homepage = "https://github.com/itkach/xdxf2slob/";
     license = licenses.gpl3;
-    maintainers = [ maintainers.rycee ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/xflux/gui.nix b/pkgs/tools/misc/xflux/gui.nix
index 16379820653..9acd4c442a7 100644
--- a/pkgs/tools/misc/xflux/gui.nix
+++ b/pkgs/tools/misc/xflux/gui.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub, buildPythonApplication, python3Packages, wrapGAppsHook
 , xflux, librsvg, gtk3, gobject-introspection, pango, gdk-pixbuf, atk
-, pexpect, pyGtkGlade, pygobject3, pyxdg, libappindicator-gtk3
+, pexpect, pygobject3, pyxdg, libappindicator-gtk3
 }:
 buildPythonApplication rec {
   pname = "xflux-gui";
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index 818ad5ec645..68218592bbb 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rtmpdump, php, wget, python3Packages, ffmpeg_3 }:
+{ lib, fetchFromGitHub, rtmpdump, php, wget, python3Packages, ffmpeg }:
 
 python3Packages.buildPythonApplication rec {
   pname = "yle-dl";
@@ -12,12 +12,12 @@ python3Packages.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python3Packages; [
-    attrs ConfigArgParse ffmpeg_3 future lxml requests
+    attrs ConfigArgParse ffmpeg future lxml requests
   ];
   pythonPath = [ rtmpdump php wget ];
 
   doCheck = false; # tests require network access
-  checkInputs = with python3Packages; [ ffmpeg_3 pytest pytestrunner ];
+  checkInputs = with python3Packages; [ ffmpeg pytest pytestrunner ];
 
   meta = with lib; {
     description = "Downloads videos from Yle (Finnish Broadcasting Company) servers";
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index fa17bea8585..3baad9f939b 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.04.07";
+  version = "2021.04.26";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "02d51l6gdjr3zhhi7ydf5kzv8dv4jzq0ygja7zb2h9k7hnl0l27m";
+    sha256 = "0jpa65jr5djn9175p6a8j9i1zgarshfwfsgmprc0vvnsl3s23ksc";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index 6129fd4b9da..ba1658f3d1d 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ytfzf";
-  version = "1.1.2";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ytfzf";
     rev = "v${version}";
-    sha256 = "09az557479d3s1my46d2w86ndkvs2xi127kaw0csag0wlq2qq10p";
+    sha256 = "sha256-zRzd+rZxT5IJoFJl9sutTdQC4eMDUCBld5bTGfQWtco=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
new file mode 100644
index 00000000000..f0b6a8ba98c
--- /dev/null
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, rustPlatform, stdenv, installShellFiles, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "zellij";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "zellij-org";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-spESDjX7scihVQrr/f6KMCI9VfdTxxPWP7FcJ965FYk=";
+  };
+
+  cargoSha256 = "0rm31sfcj2d85w1l4hhfmva3j828dfhiv5br1mnpaqaa01zzs1q1";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
+  preCheck = ''
+    HOME=$TMPDIR
+  '';
+
+  postInstall = ''
+    installShellCompletion --cmd $pname \
+      --bash <($out/bin/zellij generate-completion bash) \
+      --fish <($out/bin/zellij generate-completion fish) \
+      --zsh <($out/bin/zellij generate-completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "A terminal workspace with batteries included";
+    homepage = "https://zellij.dev/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ therealansh _0x4A6F ];
+  };
+}
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 5cad350f498..a454a73384b 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -5,13 +5,6 @@
 , withFzf ? true
 , fzf
 , libiconv
-  # checkInputs
-, fish
-, powershell
-, shellcheck
-, shfmt
-, xonsh
-, zsh
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -27,23 +20,6 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  # tests are broken on darwin
-  doCheck = !stdenv.isDarwin;
-
-  # fish needs a writable HOME for whatever reason
-  preCheck = ''
-    export HOME=$(mktemp -d)
-  '';
-
-  checkInputs = [
-    fish
-    powershell
-    shellcheck
-    shfmt
-    xonsh
-    zsh
-  ];
-
   postPatch = lib.optionalString withFzf ''
     substituteInPlace src/fzf.rs \
       --replace '"fzf"' '"${fzf}/bin/fzf"'
diff --git a/pkgs/tools/networking/anevicon/default.nix b/pkgs/tools/networking/anevicon/default.nix
new file mode 100644
index 00000000000..95a4bbe9fb8
--- /dev/null
+++ b/pkgs/tools/networking/anevicon/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "anevicon";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "rozgo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m3ci7g7nn28p6x5m85av3ljgszwlg55f1hmgjnarc6bas5bapl7";
+  };
+
+  cargoSha256 = "1g15v13ysx09fy0b8qddw5fwql2pvwzc2g2h1ndhzpxvfy7fzpr1";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoPatches = [
+    # Add Cargo.lock file, https://github.com/rozgo/anevicon/pull/1
+    (fetchpatch {
+      name = "cargo-lock-file.patch";
+      url = "https://github.com/rozgo/anevicon/commit/205440a0863aaea34394f30f4255fa0bb1704aed.patch";
+      sha256 = "02syzm7irn4slr3s5dwwhvg1qx8fdplwlhza8gfkc6ajl7vdc7ri";
+    })
+  ];
+
+  meta = with lib; {
+    description = "UDP-based load generator";
+    homepage = "https://github.com/rozgo/anevicon";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index a889821c947..5c7b26ced05 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, nixosTests }:
+{ lib, stdenv, fetchurl, fetchpatch, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "babeld";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm";
   };
 
+  patches = [
+    (fetchpatch {
+      # Skip kernel_setup_interface when `skip-kernel-setup` is enabled.
+      url = "https://github.com/jech/babeld/commit/f9698a5616842467ad08a5f9ed3d6fcfa2dd2898.patch";
+      sha256 = "00kj2jxsfq0pjk5wrkslyvkww57makxlwa4fd82g7g9hrgahpqwr";
+    })
+  ];
+
   preBuild = ''
     makeFlags="PREFIX=$out ETCDIR=$out/etc"
   '';
diff --git a/pkgs/tools/networking/bgpq4/default.nix b/pkgs/tools/networking/bgpq4/default.nix
index 4db2d933583..40c65b35a03 100644
--- a/pkgs/tools/networking/bgpq4/default.nix
+++ b/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "0.0.6";
+  version = "0.0.7";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "1n6d6xq7vafx1la0fckqv0yjr245ka9dgbcqaz9m6dcdk0fdlkks";
+    sha256 = "sha256-iEm4BYlJi56Y4OBCdEDgRQ162F65PLZyvHSEQzULFww=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index 50b3fa07782..1eb445cfd3e 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.1.8";
+  version = "0.2.0";
 
   src =
     let
@@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
       };
     in
     fetchsrc version {
-      x86_64-linux = "sha256-CZueZqN1XoSmqOsocGwUoIZ5878uSHFYW2KDURWRHhM=";
-      aarch64-linux = "sha256-/pl9MzR4GFjiefc7Sde+jTGi/QaY3U/An8J5+KQR/68=";
-      x86_64-darwin = "sha256-kkqROFXvEpxRySByGtmGtFJPBr5Dw3BOPQ+bArqLxAA=";
+      x86_64-linux = "sha256-4h1Lx+Et1AfX75Cn0YUhV4MkEtzP6ICqAHVKex3PBpg=";
+      aarch64-linux = "sha256-i7gzv8GdDgikPT1tMia4xltEYiIZ/VNRbAiGF2o8oKA=";
+      x86_64-darwin = "sha256-tleIY1loPE61n59Qc9CJeropRUvTBbcIA8xmB1SaMt8=";
     };
 
   dontConfigure = true;
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 8e9097f2f99..09edbaf7516 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.6.12";
+  version = "9.1.1";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Oad0JpeeCpIHfH9e1pTKtrnvZ+eFx3dR5GP6g6piFS0=";
+    sha256 = "sha256-MiTc8uT4FUHqEgE37kZ0pc7y1aK6u+4LqYQ8l1j2jA4=";
   };
 
-  vendorSha256 = "sha256-LYMZFaCNlJg+9Hoh2VbY6tMHv6oT7r+JHBcQYpOceRQ=";
+  vendorSha256 = "sha256-UGFFzpbBeL4YS3VSjCa31E2fiqND8j3E4FjRflg1NFc=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/croc/test-local-relay.nix b/pkgs/tools/networking/croc/test-local-relay.nix
index bde05d6deb0..4ddad86bd00 100644
--- a/pkgs/tools/networking/croc/test-local-relay.nix
+++ b/pkgs/tools/networking/croc/test-local-relay.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
           ${croc}/bin/croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
           # wait for things to settle
           sleep 1
-          # receive
-          MSG2=$(${croc}/bin/croc --relay localhost:11111 --yes correct-horse-battery-staple)
+          # receive, as of croc 9 --overwrite is required for noninteractive use
+          MSG2=$(${croc}/bin/croc --overwrite --relay localhost:11111 --yes correct-horse-battery-staple)
           # compare
           [ "$MSG" = "$MSG2" ] && touch $out
   '';
diff --git a/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch b/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch
new file mode 100644
index 00000000000..f915f298a49
--- /dev/null
+++ b/pkgs/tools/networking/curl/7.74.0-CVE-2021-22876.patch
@@ -0,0 +1,139 @@
+Based on upstream 7214288898f5625a6cc196e22a74232eada7861c, adapted by ris to

+compensate for lack of 95cbcec8f986492766c4be3922af1e7644e1e7c5

+

+---

+ lib/transfer.c          | 25 ++++++++++++++--

+ tests/data/Makefile.inc |  2 +-

+ tests/data/test2081     | 66 +++++++++++++++++++++++++++++++++++++++++

+ 3 files changed, 90 insertions(+), 3 deletions(-)

+ create mode 100644 tests/data/test2081

+

+diff --git a/lib/transfer.c b/lib/transfer.c

+index 1976bc0338bc..a68c021c84d6 100644

+--- a/lib/transfer.c

++++ b/lib/transfer.c

+@@ -1581,6 +1581,9 @@ CURLcode Curl_follow(struct Curl_easy *data,

+       data->set.followlocation++; /* count location-followers */

+ 

+       if(data->set.http_auto_referer) {

++        CURLU *u;

++        char *referer;

++

+         /* We are asked to automatically set the previous URL as the referer

+            when we get the next URL. We pick the ->url field, which may or may

+            not be 100% correct */

+@@ -1590,9 +1593,27 @@ CURLcode Curl_follow(struct Curl_easy *data,

+           data->change.referer_alloc = FALSE;

+         }

+ 

+-        data->change.referer = strdup(data->change.url);

+-        if(!data->change.referer)

++        /* Make a copy of the URL without crenditals and fragment */

++        u = curl_url();

++        if(!u)

++          return CURLE_OUT_OF_MEMORY;

++

++        uc = curl_url_set(u, CURLUPART_URL, data->change.url, 0);

++        if(!uc)

++          uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0);

++        if(!uc)

++          uc = curl_url_set(u, CURLUPART_USER, NULL, 0);

++        if(!uc)

++          uc = curl_url_set(u, CURLUPART_PASSWORD, NULL, 0);

++        if(!uc)

++          uc = curl_url_get(u, CURLUPART_URL, &referer, 0);

++

++        curl_url_cleanup(u);

++

++        if(uc || referer == NULL)

+           return CURLE_OUT_OF_MEMORY;

++

++        data->change.referer = referer;

+         data->change.referer_alloc = TRUE; /* yes, free this later */

+       }

+     }

+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc

+index 2c7a0ca89fd8..ea52683d2254 100644

+--- a/tests/data/Makefile.inc

++++ b/tests/data/Makefile.inc

+@@ -225,7 +225,7 @@ test2064 test2065 test2066 test2067 test2068 test2069 \

+ test2064 test2065 test2066 test2067 test2068 test2069 test2070 \

+          test2071 test2072 test2073 test2074 test2075 test2076 test2077 \

+ test2078 \

+-test2080 \

++test2080 test2081 \

+ test2100 \

+ \

+ test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 \

+diff --git a/tests/data/test2081 b/tests/data/test2081

+new file mode 100644

+index 000000000000..a6733e737beb

+--- /dev/null

++++ b/tests/data/test2081

+@@ -0,0 +1,66 @@

++<testcase>

++<info>

++<keywords>

++HTTP

++HTTP GET

++referer

++followlocation

++--write-out

++</keywords>

++</info>

++

++# Server-side

++<reply>

++<data nocheck="yes">

++HTTP/1.1 301 This is a weirdo text message swsclose

++Location: data/%TESTNUMBER0002.txt?coolsite=yes

++Content-Length: 62

++Connection: close

++

++This server reply is for testing a simple Location: following

++</data>

++</reply>

++

++# Client-side

++<client>

++<server>

++http

++</server>

++ <name>

++Automatic referrer credential and anchor stripping check

++ </name>

++ <command>

++http://user:pass@%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER#anchor --location --referer ';auto' --write-out '%{referer}\n'

++</command>

++</client>

++

++# Verify data after the test has been "shot"

++<verify>

++<errorcode>

++52

++</errorcode>

++<protocol>

++GET /we/want/our/%TESTNUMBER HTTP/1.1

++Host: %HOSTIP:%HTTPPORT

++Authorization: Basic dXNlcjpwYXNz

++User-Agent: curl/%VERSION

++Accept: */*

++

++GET /we/want/our/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1

++Host: %HOSTIP:%HTTPPORT

++Authorization: Basic dXNlcjpwYXNz

++User-Agent: curl/%VERSION

++Accept: */*

++Referer: http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER

++

++</protocol>

++<stdout>

++HTTP/1.1 301 This is a weirdo text message swsclose

++Location: data/%TESTNUMBER0002.txt?coolsite=yes

++Content-Length: 62

++Connection: close

++

++http://%HOSTIP:%HTTPPORT/we/want/our/%TESTNUMBER

++</stdout>

++</verify>

++</testcase>

diff --git a/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch b/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch
new file mode 100644
index 00000000000..06cc3842e32
--- /dev/null
+++ b/pkgs/tools/networking/curl/7.74.0-CVE-2021-22890.patch
@@ -0,0 +1,473 @@
+Based on upstream b09c8ee15771c614c4bf3ddac893cdb12187c844, adapted by ris mostly to
+compensate for lack of bbe3aa9f881fa27fe828e3c9a36d6831f254a3ee
+
+diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
+index 36c32d8d55be..39fc1a29209c 100644
+--- a/lib/vtls/bearssl.c
++++ b/lib/vtls/bearssl.c
+@@ -375,7 +375,8 @@ static CURLcode bearssl_connect_step1(struct Curl_easy *data,
+     void *session;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &session, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
++                              &session, NULL, sockindex)) {
+       br_ssl_engine_set_session_parameters(&backend->ctx.eng, session);
+       infof(data, "BearSSL: re-using session ID\n");
+     }
+@@ -571,9 +572,13 @@ static CURLcode bearssl_connect_step3(struct Curl_easy *data,
+     br_ssl_engine_get_session_parameters(&backend->ctx.eng, session);
+     Curl_ssl_sessionid_lock(conn);
+-    incache = !(Curl_ssl_getsessionid(conn, &oldsession, NULL, sockindex));
++    incache = !(Curl_ssl_getsessionid(conn,
++                                      SSL_IS_PROXY() ? TRUE : FALSE,
++                                      &oldsession, NULL, sockindex));
+     if(incache)
+       Curl_ssl_delsessionid(conn, oldsession);
+-    ret = Curl_ssl_addsessionid(conn, session, 0, sockindex);
++    ret = Curl_ssl_addsessionid(conn,
++                                SSL_IS_PROXY() ? TRUE : FALSE,
++                                session, 0, sockindex);
+     Curl_ssl_sessionid_unlock(conn);
+     if(ret) {
+       free(session);
+diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
+index a75937b4646c..3b0d940a60e1 100644
+--- a/lib/vtls/gtls.c
++++ b/lib/vtls/gtls.c
+@@ -727,5 +727,7 @@ gtls_connect_step1(struct Curl_easy *data,
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, &ssl_idsize, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn,
++                              SSL_IS_PROXY() ? TRUE : FALSE,
++                              &ssl_sessionid, &ssl_idsize, sockindex)) {
+       /* we got a session id, use it! */
+       gnutls_session_set_data(session, ssl_sessionid, ssl_idsize);
+@@ -1286,8 +1287,9 @@ gtls_connect_step3(struct Curl_easy *data,
+       gnutls_session_get_data(session, connect_sessionid, &connect_idsize);
+ 
+       Curl_ssl_sessionid_lock(conn);
+-      incache = !(Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL,
+-                                        sockindex));
++      incache = !(Curl_ssl_getsessionid(conn,
++                                        SSL_IS_PROXY() ? TRUE : FALSE,
++                                        &ssl_sessionid, NULL, sockindex));
+       if(incache) {
+         /* there was one before in the cache, so instead of risking that the
+            previous one was rejected, we just kill that and store the new */
+@@ -1295,8 +1297,10 @@ gtls_connect_step3(struct Curl_easy *data,
+       }
+ 
+       /* store this session id */
+-      result = Curl_ssl_addsessionid(conn, connect_sessionid, connect_idsize,
+-                                     sockindex);
++      result = Curl_ssl_addsessionid(conn,
++                                     SSL_IS_PROXY() ? TRUE : FALSE,
++                                     connect_sessionid, connect_idsize,
++                                     sockindex);
+       Curl_ssl_sessionid_unlock(conn);
+       if(result) {
+         free(connect_sessionid);
+diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
+index 95cd4d99b665..93a7ac1fd87d 100644
+--- a/lib/vtls/mbedtls.c
++++ b/lib/vtls/mbedtls.c
+@@ -463,7 +463,9 @@ mbed_connect_step1(struct Curl_easy *data, struct connectdata *conn,
+     void *old_session = NULL;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &old_session, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn,
++                              SSL_IS_PROXY() ? TRUE : FALSE,
++                              &old_session, NULL, sockindex)) {
+       ret = mbedtls_ssl_set_session(&backend->ssl, old_session);
+       if(ret) {
+         Curl_ssl_sessionid_unlock(conn);
+@@ -724,6 +726,7 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+     int ret;
+     mbedtls_ssl_session *our_ssl_sessionid;
+     void *old_ssl_sessionid = NULL;
++    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
+ 
+     our_ssl_sessionid = malloc(sizeof(mbedtls_ssl_session));
+     if(!our_ssl_sessionid)
+@@ -742,10 +745,12 @@ mbed_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+ 
+     /* If there's already a matching session in the cache, delete it */
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex))
++    if(!Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
++                              sockindex))
+       Curl_ssl_delsessionid(conn, old_ssl_sessionid);
+ 
+-    retcode = Curl_ssl_addsessionid(conn, our_ssl_sessionid, 0, sockindex);
++    retcode = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
++                                    0, sockindex);
+     Curl_ssl_sessionid_unlock(conn);
+     if(retcode) {
+       mbedtls_ssl_session_free(our_ssl_sessionid);
+diff --git a/lib/vtls/mesalink.c b/lib/vtls/mesalink.c
+index 4f1ab8627f49..5d6a1495d790 100644
+--- a/lib/vtls/mesalink.c
++++ b/lib/vtls/mesalink.c
+@@ -261,7 +261,9 @@ mesalink_connect_step1(struct Curl_easy *data,
+     void *ssl_sessionid = NULL;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn,
++                              SSL_IS_PROXY() ? TRUE : FALSE,
++                              &ssl_sessionid, NULL, sockindex)) {
+       /* we got a session id, use it! */
+       if(!SSL_set_session(BACKEND->handle, ssl_sessionid)) {
+         Curl_ssl_sessionid_unlock(conn);
+@@ -345,12 +347,14 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
+     bool incache;
+     SSL_SESSION *our_ssl_sessionid;
+     void *old_ssl_sessionid = NULL;
++    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
+ 
+     our_ssl_sessionid = SSL_get_session(BACKEND->handle);
+ 
+     Curl_ssl_sessionid_lock(conn);
+     incache =
+-      !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL, sockindex));
++      !(Curl_ssl_getsessionid(conn, isproxy, &old_ssl_sessionid, NULL,
++                              sockindex));
+     if(incache) {
+       if(old_ssl_sessionid != our_ssl_sessionid) {
+         infof(data, "old SSL session ID is stale, removing\n");
+@@ -361,8 +364,9 @@ mesalink_connect_step3(struct connectdata *conn, int sockindex)
+     }
+ 
+     if(!incache) {
+-      result = Curl_ssl_addsessionid(
+-        conn, our_ssl_sessionid, 0 /* unknown size */, sockindex);
++      result =
++        Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid, 0,
++                              sockindex);
+       if(result) {
+         Curl_ssl_sessionid_unlock(conn);
+         failf(data, "failed to store ssl session");
+diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
+index 498f8b9d1d08..68b98984b460 100644
+--- a/lib/vtls/openssl.c
++++ b/lib/vtls/openssl.c
+@@ -393,12 +393,23 @@ static int ossl_get_ssl_conn_index(void)
+  */
+ static int ossl_get_ssl_sockindex_index(void)
+ {
+-  static int ssl_ex_data_sockindex_index = -1;
+-  if(ssl_ex_data_sockindex_index < 0) {
+-    ssl_ex_data_sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL,
+-        NULL);
++  static int sockindex_index = -1;
++  if(sockindex_index < 0) {
++    sockindex_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
+   }
+-  return ssl_ex_data_sockindex_index;
++  return sockindex_index;
++}
++
++/* Return an extra data index for proxy boolean.
++ * This index can be used with SSL_get_ex_data() and SSL_set_ex_data().
++ */
++static int ossl_get_proxy_index(void)
++{
++  static int proxy_index = -1;
++  if(proxy_index < 0) {
++    proxy_index = SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL);
++  }
++  return proxy_index;
+ }
+ 
+ static int passwd_callback(char *buf, int num, int encrypting,
+@@ -1174,6 +1185,7 @@ static int ossl_init(void)
+ 
+   /* Initialize the extra data indexes */
+-  if(ossl_get_ssl_conn_index() < 0 || ossl_get_ssl_sockindex_index() < 0)
++  if(ossl_get_ssl_conn_index() < 0 ||
++     ossl_get_ssl_sockindex_index() < 0 || ossl_get_proxy_index() < 0)
+     return 0;
+ 
+   return 1;
+@@ -2432,8 +2443,10 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
+   curl_socket_t *sockindex_ptr;
+   int connectdata_idx = ossl_get_ssl_conn_index();
+   int sockindex_idx = ossl_get_ssl_sockindex_index();
++  int proxy_idx = ossl_get_proxy_index();
++  bool isproxy;
+ 
+-  if(connectdata_idx < 0 || sockindex_idx < 0)
++  if(connectdata_idx < 0 || sockindex_idx < 0 || proxy_idx < 0)
+     return 0;
+ 
+   conn = (struct connectdata*) SSL_get_ex_data(ssl, connectdata_idx);
+@@ -2446,13 +2459,18 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
+   sockindex_ptr = (curl_socket_t*) SSL_get_ex_data(ssl, sockindex_idx);
+   sockindex = (int)(sockindex_ptr - conn->sock);
+ 
++  isproxy = SSL_get_ex_data(ssl, proxy_idx) ? TRUE : FALSE;
++
+   if(SSL_SET_OPTION(primary.sessionid)) {
+     bool incache;
+     void *old_ssl_sessionid = NULL;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
+-                                      sockindex));
++    if(isproxy)
++      incache = FALSE;
++    else
++      incache = !(Curl_ssl_getsessionid(conn, isproxy,
++                                        &old_ssl_sessionid, NULL, sockindex));
+     if(incache) {
+       if(old_ssl_sessionid != ssl_sessionid) {
+         infof(data, "old SSL session ID is stale, removing\n");
+@@ -2462,8 +2480,8 @@ static int ossl_new_session_cb(SSL *ssl, SSL_SESSION *ssl_sessionid)
+     }
+ 
+     if(!incache) {
+-      if(!Curl_ssl_addsessionid(conn, ssl_sessionid,
+-                                      0 /* unknown size */, sockindex)) {
++      if(!Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid,
++                                0 /* unknown size */, sockindex)) {
+         /* the session has been put into the session cache */
+         res = 1;
+       }
+@@ -3193,16 +3211,26 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
+     void *ssl_sessionid = NULL;
+     int connectdata_idx = ossl_get_ssl_conn_index();
+     int sockindex_idx = ossl_get_ssl_sockindex_index();
++    int proxy_idx = ossl_get_proxy_index();
+ 
+-    if(connectdata_idx >= 0 && sockindex_idx >= 0) {
++    if(connectdata_idx >= 0 && sockindex_idx >= 0 &&
++       proxy_idx >= 0) {
+       /* Store the data needed for the "new session" callback.
+        * The sockindex is stored as a pointer to an array element. */
+       SSL_set_ex_data(backend->handle, connectdata_idx, conn);
+       SSL_set_ex_data(backend->handle, sockindex_idx, conn->sock + sockindex);
++#ifndef CURL_DISABLE_PROXY
++      SSL_set_ex_data(backend->handle, proxy_idx, SSL_IS_PROXY() ? (void *) 1:
++                      NULL);
++#else
++      SSL_set_ex_data(backend->handle, proxy_idx, NULL);
++#endif
++
+     }
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn, SSL_IS_PROXY() ? TRUE : FALSE,
++                              &ssl_sessionid, NULL, sockindex)) {
+       /* we got a session id, use it! */
+       if(!SSL_set_session(backend->handle, ssl_sessionid)) {
+         Curl_ssl_sessionid_unlock(conn);
+diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
+index d7b89d43f892..931bd853eb8e 100644
+--- a/lib/vtls/schannel.c
++++ b/lib/vtls/schannel.c
+@@ -496,5 +496,7 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
+   if(SSL_SET_OPTION(primary.sessionid)) {
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn,
++                              SSL_IS_PROXY() ? TRUE : FALSE,
++                              (void **)&old_cred, NULL, sockindex)) {
+       BACKEND->cred = old_cred;
+       DEBUGF(infof(data, "schannel: re-using existing credential handle\n"));
+@@ -1337,8 +1338,9 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+   struct ssl_connect_data *connssl = &conn->ssl[sockindex];
+   SECURITY_STATUS sspi_status = SEC_E_OK;
+   CERT_CONTEXT *ccert_context = NULL;
++  bool isproxy = SSL_IS_PROXY();
+ #ifdef DEBUGBUILD
+-  const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
++  const char * const hostname = isproxy ? conn->http_proxy.host.name :
+     conn->host.name;
+ #endif
+ #ifdef HAS_ALPN
+@@ -1414,8 +1416,8 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+     struct Curl_schannel_cred *old_cred = NULL;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    incache = !(Curl_ssl_getsessionid(conn, (void **)&old_cred, NULL,
+-                                      sockindex));
++    incache = !(Curl_ssl_getsessionid(conn, isproxy, (void **)&old_cred,
++                                      NULL, sockindex));
+     if(incache) {
+       if(old_cred != BACKEND->cred) {
+         DEBUGF(infof(data,
+@@ -1426,7 +1428,7 @@ schannel_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+       }
+     }
+     if(!incache) {
+-      result = Curl_ssl_addsessionid(conn, (void *)BACKEND->cred,
++      result = Curl_ssl_addsessionid(conn, isproxy, BACKEND->cred,
+                                      sizeof(struct Curl_schannel_cred),
+                                      sockindex);
+       if(result) {
+diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c
+index 05b57dfaad91..e69b99b72cd6 100644
+--- a/lib/vtls/sectransp.c
++++ b/lib/vtls/sectransp.c
+@@ -1400,10 +1400,12 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
+   char * const ssl_cert = SSL_SET_OPTION(primary.clientcert);
+   const struct curl_blob *ssl_cert_blob = SSL_SET_OPTION(primary.cert_blob);
+ #ifndef CURL_DISABLE_PROXY
+-  const char * const hostname = SSL_IS_PROXY() ? conn->http_proxy.host.name :
++  bool isproxy = SSL_IS_PROXY();
++  const char * const hostname = isproxy ? conn->http_proxy.host.name :
+     conn->host.name;
+   const long int port = SSL_IS_PROXY() ? conn->port : conn->remote_port;
+ #else
++  const isproxy = FALSE;
+   const char * const hostname = conn->host.name;
+   const long int port = conn->remote_port;
+ #endif
+@@ -1613,7 +1615,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
+ #ifdef USE_NGHTTP2
+       if(data->state.httpversion >= CURL_HTTP_VERSION_2
+ #ifndef CURL_DISABLE_PROXY
+-         && (!SSL_IS_PROXY() || !conn->bits.tunnel_proxy)
++         && (!isproxy || !conn->bits.tunnel_proxy)
+ #endif
+         ) {
+         CFArrayAppendValue(alpnArr, CFSTR(NGHTTP2_PROTO_VERSION_ID));
+@@ -1953,7 +1955,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
+     size_t ssl_sessionid_len;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, (void **)&ssl_sessionid,
++    if(!Curl_ssl_getsessionid(conn, isproxy, (void **)&ssl_sessionid,
+                               &ssl_sessionid_len, sockindex)) {
+       /* we got a session id, use it! */
+       err = SSLSetPeerID(backend->ssl_ctx, ssl_sessionid, ssl_sessionid_len);
+@@ -1981,7 +1983,7 @@ static CURLcode sectransp_connect_step1(struct Curl_easy *data,
+         return CURLE_SSL_CONNECT_ERROR;
+       }
+ 
+-      result = Curl_ssl_addsessionid(conn, ssl_sessionid, ssl_sessionid_len,
++      result = Curl_ssl_addsessionid(conn, isproxy, ssl_sessionid, ssl_sessionid_len,
+                                      sockindex);
+       Curl_ssl_sessionid_unlock(conn);
+       if(result) {
+diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
+index 6a0069237fdb..95fd6356285f 100644
+--- a/lib/vtls/vtls.c
++++ b/lib/vtls/vtls.c
+@@ -367,5 +367,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data)
+  */
+ bool Curl_ssl_getsessionid(struct connectdata *conn,
++                           const bool isProxy,
+                            void **ssl_sessionid,
+                            size_t *idsize, /* set 0 if unknown */
+                            int sockindex)
+@@ -377,7 +378,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
+   bool no_match = TRUE;
+ 
+ #ifndef CURL_DISABLE_PROXY
+-  const bool isProxy = CONNECT_PROXY_SSL();
+   struct ssl_primary_config * const ssl_config = isProxy ?
+     &conn->proxy_ssl_config :
+     &conn->ssl_config;
+@@ -389,10 +389,15 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
+   struct ssl_primary_config * const ssl_config = &conn->ssl_config;
+   const char * const name = conn->host.name;
+   int port = conn->remote_port;
+-  (void)sockindex;
+ #endif
++  (void)sockindex;
+   *ssl_sessionid = NULL;
+ 
++#ifdef CURL_DISABLE_PROXY
++  if(isProxy)
++    return TRUE;
++#endif
++
+   DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
+ 
+   if(!SSL_SET_OPTION(primary.sessionid))
+@@ -480,5 +485,6 @@ void Curl_ssl_delsessionid(struct Curl_easy *data, void *ssl_sessionid)
+  */
+ CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
++                               bool isProxy,
+                                void *ssl_sessionid,
+                                size_t idsize,
+                                int sockindex)
+@@ -492,7 +498,6 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
+   int conn_to_port;
+   long *general_age;
+ #ifndef CURL_DISABLE_PROXY
+-  const bool isProxy = CONNECT_PROXY_SSL();
+   struct ssl_primary_config * const ssl_config = isProxy ?
+     &conn->proxy_ssl_config :
+     &conn->ssl_config;
+@@ -505,6 +510,7 @@ CURLcode Curl_ssl_addsessionid(struct Curl_easy *data,
+   const char *hostname = conn->host.name;
+   (void)sockindex;
+ #endif
++  (void)sockindex;
+   DEBUGASSERT(SSL_SET_OPTION(primary.sessionid));
+ 
+   clone_host = strdup(hostname);
+diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
+index 273184f1894a..2b43e7744b19 100644
+--- a/lib/vtls/vtls.h
++++ b/lib/vtls/vtls.h
+@@ -235,5 +235,6 @@ void Curl_ssl_sessionid_unlock(struct Curl_easy *data);
+  */
+ bool Curl_ssl_getsessionid(struct connectdata *conn,
++                           const bool isproxy,
+                            void **ssl_sessionid,
+                            size_t *idsize, /* set 0 if unknown */
+                            int sockindex);
+@@ -245,5 +246,6 @@ bool Curl_ssl_getsessionid(struct Curl_easy *data,
+  */
+ CURLcode Curl_ssl_addsessionid(struct connectdata *conn,
++                               const bool isProxy,
+                                void *ssl_sessionid,
+                                size_t idsize,
+                                int sockindex);
+diff --git a/lib/vtls/wolfssl.c b/lib/vtls/wolfssl.c
+index 7159ac9d5e64..8fb2ea7acf31 100644
+--- a/lib/vtls/wolfssl.c
++++ b/lib/vtls/wolfssl.c
+@@ -516,7 +516,9 @@ wolfssl_connect_step1(struct Curl_easy *data, struct connectdata *conn,
+     void *ssl_sessionid = NULL;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    if(!Curl_ssl_getsessionid(conn, &ssl_sessionid, NULL, sockindex)) {
++    if(!Curl_ssl_getsessionid(conn,
++                              SSL_IS_PROXY() ? TRUE : FALSE,
++                              &ssl_sessionid, NULL, sockindex)) {
+       /* we got a session id, use it! */
+       if(!SSL_set_session(backend->handle, ssl_sessionid)) {
+         char error_buffer[WOLFSSL_MAX_ERROR_SZ];
+@@ -772,10 +774,11 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+     void *old_ssl_sessionid = NULL;
+ 
+     our_ssl_sessionid = SSL_get_session(backend->handle);
++    bool isproxy = SSL_IS_PROXY() ? TRUE : FALSE;
+ 
+     Curl_ssl_sessionid_lock(conn);
+-    incache = !(Curl_ssl_getsessionid(conn, &old_ssl_sessionid, NULL,
+-                                      sockindex));
++    incache = !(Curl_ssl_getsessionid(conn, isproxy,
++                                      &old_ssl_sessionid, NULL, sockindex));
+     if(incache) {
+       if(old_ssl_sessionid != our_ssl_sessionid) {
+         infof(data, "old SSL session ID is stale, removing\n");
+@@ -786,8 +789,8 @@ wolfssl_connect_step3(struct Curl_easy *data, struct connectdata *conn,
+     }
+ 
+     if(!incache) {
+-      result = Curl_ssl_addsessionid(conn, our_ssl_sessionid,
+-                                     0 /* unknown size */, sockindex);
++      result = Curl_ssl_addsessionid(conn, isproxy, our_ssl_sessionid,
++                                     0, sockindex);
+       if(result) {
+         Curl_ssl_sessionid_unlock(conn);
+         failf(data, "failed to store ssl session");
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 89f44e8bb7b..7c24be7aea7 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -45,6 +45,11 @@ stdenv.mkDerivation rec {
     sha256 = "19bp3d91xq9vqwlbzq261j23mk9lz4lyka4gr2fm6dhnd3k66k8g";
   };
 
+  patches = [
+    ./7.74.0-CVE-2021-22876.patch
+    ./7.74.0-CVE-2021-22890.patch
+  ];
+
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
   separateDebugInfo = stdenv.isLinux;
 
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index 20256aa006b..a6e767c6bf6 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.37.0";
+  version = "0.37.2";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3zsEEq6pVo5yHY4v5TXhZo4jo6htjCYypzxMMv8zQGE=";
+    sha256 = "sha256-pzE0nhL6Dqa9AfB2EGxETOo+BnTzzPnu8ANfbu1vfyI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/dnstwist/default.nix b/pkgs/tools/networking/dnstwist/default.nix
new file mode 100644
index 00000000000..e19b4dabd78
--- /dev/null
+++ b/pkgs/tools/networking/dnstwist/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "dnstwist";
+  version = "20201228";
+  disabled = python3.pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "elceef";
+    repo = pname;
+    rev = version;
+    sha256 = "0bxshi1p0va2f449v6vsm8bav5caa3r3pyknj3zf4n5rvk6say70";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    dnspython
+    GeoIP
+    ppdeep
+    requests
+    tld
+    whois
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "dnstwist" ];
+
+  meta = with lib; {
+    description = "Domain name permutation engine for detecting homograph phishing attacks";
+    homepage = "https://github.com/elceef/dnstwist";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index 78884a23cbb..01dbc32eb8d 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -3,27 +3,38 @@
 , cmake
 , gflags
 , libsodium
+, openssl
 , protobuf
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.0.13";
+  version = "6.1.7";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "et-v${version}";
-    sha256 = "0sb1hypg2276y8c2a5vivrkcxp70swddvhnd9h273if3kv6j879r";
+    sha256 = "0jpm1ilr1qfz55y4mqp75v4q433qla5jhi1b8nsmx48srs7f0j2q";
   };
 
+  cmakeFlags= [
+    "-DDISABLE_VCPKG=TRUE"
+    "-DDISABLE_SENTRY=TRUE"
+    "-DDISABLE_CRASH_LOG=TRUE"
+  ];
+
+  CXXFLAGS = lib.optional stdenv.cc.isClang "-std=c++17";
+  LDFLAGS = lib.optional stdenv.cc.isClang "-lc++fs";
+
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ gflags libsodium protobuf ];
+  buildInputs = [ gflags openssl zlib libsodium protobuf ];
 
   meta = with lib; {
     description = "Remote shell that automatically reconnects without interrupting the session";
     license = licenses.asl20;
-    homepage = "https://mistertea.github.io/EternalTerminal/";
+    homepage = "https://eternalterminal.dev/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ dezgeg pingiun ];
   };
diff --git a/pkgs/tools/networking/fastd/default.nix b/pkgs/tools/networking/fastd/default.nix
index ed7bb0b01d3..af75641a5b9 100644
--- a/pkgs/tools/networking/fastd/default.nix
+++ b/pkgs/tools/networking/fastd/default.nix
@@ -1,5 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, bison, meson, ninja, pkg-config
-, libuecc, libsodium, libcap, json_c, openssl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, bison
+, meson
+, ninja
+, pkg-config
+, libuecc
+, libsodium
+, libcap
+, json_c
+, openssl
+}:
 
 stdenv.mkDerivation rec {
   pname = "fastd";
@@ -12,8 +23,27 @@ stdenv.mkDerivation rec {
     sha256 = "1p4k50dk8byrghbr0fwmgwps8df6rlkgcd603r14i71m5g27z5gw";
   };
 
-  nativeBuildInputs = [ pkg-config bison meson ninja ];
-  buildInputs = [ libuecc libsodium libcap json_c openssl ];
+  nativeBuildInputs = [
+    bison
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    json_c
+    libcap
+    libsodium
+    libuecc
+    openssl
+  ];
+
+  # some options are only available on x86
+  mesonFlags = lib.optionals (!stdenv.isx86_64 && !stdenv.isi686) [
+    "-Dcipher_salsa20_xmm=disabled"
+    "-Dcipher_salsa2012_xmm=disabled"
+    "-Dmac_ghash_pclmulqdq=disabled"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/networking/gmrender-resurrect/default.nix b/pkgs/tools/networking/gmrender-resurrect/default.nix
index acaeb3bc4cc..d4fc1b22e8f 100644
--- a/pkgs/tools/networking/gmrender-resurrect/default.nix
+++ b/pkgs/tools/networking/gmrender-resurrect/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, makeWrapper, gstreamer
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, makeWrapper, gstreamer
 , gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, gst-libav, libupnp }:
 
 let
-  version = "0.0.8";
+  version = "0.0.9";
 
   makePluginPath = plugins: builtins.concatStringsSep ":" (map (p: p + "/lib/gstreamer-1.0") plugins);
 
@@ -16,17 +16,9 @@ in
       owner = "hzeller";
       repo = "gmrender-resurrect";
       rev = "v${version}";
-      sha256 = "14i5jrry6qiap5l2x2jqj7arymllajl3wgnk29ccvr8d45zp4jn1";
+      sha256 = "0byxd28hnhkhf3lqsad43n6czfajvc1ksg9zikxb95wwk4ljqv1q";
     };
 
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/hzeller/gmrender-resurrect/commit/dc8c4d4dc234311b3099e7f1efadf5d9733c81e9.patch";
-        sha256 = "0fqi58viaq9jg5h5j1725qrach4c3wmfmh0q43q4r8az2pn7dszw";
-        name = "libupnp.patch";
-      })
-    ];
-
     buildInputs = [ gstreamer libupnp ];
     nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
 
@@ -39,8 +31,8 @@ in
     meta = with lib; {
       description = "Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer";
       homepage = "https://github.com/hzeller/gmrender-resurrect";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       platforms = platforms.linux;
-      maintainers = with maintainers; [ koral ashkitten ];
+      maintainers = with maintainers; [ koral hzeller ];
     };
   }
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 41f55e19abf..eefa49acb93 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.3.7";
+  version = "2.3.10";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Mbp6zQ14NnxxtW5Kh8nxHNI1/FYCvFuEaQd5Eg4KMFs=";
+    sha256 = "sha256-mUbgz8g/KQcrNDHjckYiHPnUqdKKFYwHVxTTRSZvTzU=";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
new file mode 100644
index 00000000000..af003396838
--- /dev/null
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, llvmPackages, sqlite, installShellFiles, Security, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "innernet";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "tonarino";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Z4F5RYPVgFiiDBg6lxILjAh/a/rL7IJBqHIJ/tQyLnE=";
+  };
+  cargoSha256 = "sha256-WSkN5aXMgfqZJAV1b3elF7kwf2f5OpcntKSf8620YcY=";
+
+  nativeBuildInputs = with llvmPackages; [
+    llvm
+    clang
+    installShellFiles
+  ];
+  buildInputs = [ sqlite ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  postInstall = ''
+    installManPage doc/innernet-server.8.gz
+    installManPage doc/innernet.8.gz
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$("$out/bin/${pname}"-server --version)" == "${pname}-server ${version}" ]]; then
+      echo '${pname}-server smoke check passed'
+    else
+      echo '${pname}-server smoke check failed'
+      return 1
+    fi
+    if [[ "$("$out/bin/${pname}" --version)" == "${pname} ${version}" ]]; then
+      echo '${pname} smoke check passed'
+    else
+      echo '${pname} smoke check failed'
+      return 1
+    fi
+  '';
+
+  meta = with lib; {
+    description = "A private network system that uses WireGuard under the hood";
+    homepage = "https://github.com/tonarino/innernet";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tomberek _0x4A6F ];
+  };
+}
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index ba1be39aebf..ac8c515642f 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -12,18 +12,17 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.9.5";
+  version = "1.9.6";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-MkoG9IhkW+5YfkmkXUkbUl9TQXxWshnxyzdGH979nZE=";
+    sha256 = "sha256-sEFE5OfYt1mcAnGZCWqYFzIepzKNZZcd2rVhdxv/3sw=";
   };
 
   patches = [ ./dont-create-var.patch ];
 
   postPatch = ''
     substituteInPlace ./src/bin/keactrl/Makefile.am --replace '@sysconfdir@' "$out/etc"
-    substituteInPlace ./src/bin/keactrl/Makefile.am --replace '@(sysconfdir)@' "$out/etc"
   '';
 
   configureFlags = [
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 40353ea278c..72f5b6f57fd 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lychee";
-  version = "0.5.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "lycheeverse";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "03dsp0384mwr51dkqfl25xba0m17sppabiz7slhxcig89b0ksykm";
+    rev = version;
+    sha256 = "0kpwpbv0dqb0p4bxjlcjas6x1n91rdsvy2psrc1nyr1sh6gb1q5j";
   };
 
-  cargoSha256 = "08y2wpm2qgm2jsy257b2p2anxy4q3bj2kfdr5cnb6wnaz9g4ypq2";
+  cargoSha256 = "1b915zkg41n3azk4hhg6fgc83n7iq8p7drvdyil2m2a4qdjvp9r3";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix
index df194ccaaaa..c14b8c68479 100644
--- a/pkgs/tools/networking/minidlna/default.nix
+++ b/pkgs/tools/networking/minidlna/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ffmpeg_3, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
+{ lib, stdenv, fetchurl, ffmpeg, flac, libvorbis, libogg, libid3tag, libexif, libjpeg, sqlite, gettext }:
 
 let version = "1.3.0"; in
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
     export makeFlags="INSTALLPREFIX=$out"
   '';
 
-  buildInputs = [ ffmpeg_3 flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
+  buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite gettext ];
 
   postInstall = ''
     mkdir -p $out/share/man/man{5,8}
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index 28144104932..8c62e3b0d64 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
       url = "https://www.eecis.udel.edu/~mills/ntp/html/copyright.html";
     };
     maintainers = with maintainers; [ eelco thoughtpolice ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/nxdomain/default.nix b/pkgs/tools/networking/nxdomain/default.nix
index 073ac48b8d3..4e7a708125a 100644
--- a/pkgs/tools/networking/nxdomain/default.nix
+++ b/pkgs/tools/networking/nxdomain/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "nxdomain";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z9iffggqq2kw6kpnj30shi98cg0bkvkwpglmhnkgwac6g55n2zn";
+    sha256 = "0va7nkbdjgzrf7fnbxkh1140pbc62wyj86rdrrh5wmg3phiziqkb";
   };
 
   propagatedBuildInputs = [ dnspython ];
@@ -23,7 +23,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/zopieux/nxdomain";
     description = "A domain (ad) block list creator";
     platforms = platforms.all;
-    license = licenses.gpl3Plus;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ zopieux ];
   };
 }
diff --git a/pkgs/tools/networking/qrcp/default.nix b/pkgs/tools/networking/qrcp/default.nix
index bf3b3936edd..fd6b79ecb21 100644
--- a/pkgs/tools/networking/qrcp/default.nix
+++ b/pkgs/tools/networking/qrcp/default.nix
@@ -1,23 +1,34 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, installShellFiles
 }:
 
 buildGoModule rec {
   pname = "qrcp";
-  version = "0.7.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "claudiodangelis";
     repo = "qrcp";
     rev = version;
-    sha256 = "0rx0pzy7p3dklayr2lkmyfdc00x9v4pd5xnzydbjx12hncnkpw4l";
+    sha256 = "001w15hj5xb7p9gpvw1216lp26g5018qdi8mq6i84akb7zfd2q01";
   };
 
-  vendorSha256 = "0iffy43x3njcahrxl99a71v8p7im102nzv8iqbvd5c6m14rsckqa";
+  vendorSha256 = "1hn8c72fvih6ws1y2c4963pww3ld64m0yh3pmx62hwcy83bhb0v4";
 
   subPackages = [ "." ];
 
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  postInstall = ''
+    installShellCompletion --bash --cmd qrcp <($out/bin/qrcp completion bash)
+    installShellCompletion --fish --cmd qrcp <($out/bin/qrcp completion fish)
+    installShellCompletion --zsh  --cmd qrcp <($out/bin/qrcp completion zsh)
+  '';
+
   meta = with lib; {
     homepage = "https://claudiodangelis.com/qrcp/";
     description = "Transfer files over wifi by scanning a QR code from your terminal";
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 5b5d8ee1545..97157071733 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.10.5";
+  version = "1.10.7";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "0nagn7792qniczzv0912h89bn8rm8hyikdiw7cqwknx0hw8dwz1z";
+    sha256 = "08k5j469750bhlq49qc5nwc2jjgmy9qsm58nf2jfwhxlpflv12sc";
   };
 
-  cargoSha256 = "0arqc0wnvfkmk8xzsdc6fvd1adazrw950ld8xyh7r588pyphjmhn";
+  cargoSha256 = "1r8w5cdygd26m95q9qpqa85aixx25jr510hpjlllbpfvm7zjpbqk";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
index 92e46b451b8..beddd11e903 100644
--- a/pkgs/tools/networking/siege/default.nix
+++ b/pkgs/tools/networking/siege/default.nix
@@ -1,16 +1,25 @@
-{ lib, stdenv, fetchurl, openssl, zlib }:
+{ lib
+, stdenv
+, fetchurl
+, openssl
+, zlib
+}:
 
 stdenv.mkDerivation rec {
-  name = "siege-4.0.7";
+  pname = "siege";
+  version = "4.0.8";
 
   src = fetchurl {
-    url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "1y3dnl1ziw0c0d4nw30aj0sdmjvarn4xfxgfkswffwnkm8z5p9xz";
+    url = "http://download.joedog.org/siege/${pname}-${version}.tar.gz";
+    sha256 = "01qhw52kyqwidp5bckw4xmz4ldqdwkjci7k421qm68kk0mx9l48g";
   };
 
   NIX_LDFLAGS = lib.optionalString stdenv.isLinux "-lgcc_s";
 
-  buildInputs = [ openssl zlib ];
+  buildInputs = [
+    openssl
+    zlib
+  ];
 
   prePatch = ''
     sed -i -e 's/u_int32_t/uint32_t/g' -e '1i#include <stdint.h>' src/hash.c
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
new file mode 100644
index 00000000000..181582f5452
--- /dev/null
+++ b/pkgs/tools/networking/sish/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "sish";
+  version = "1.1.5";
+
+  src = fetchFromGitHub {
+    owner = "antoniomika";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "06ckgxhnijs7yrj0hhwh1vk2fvapwn6wb44w3g6qs6n6fmqh92mb";
+  };
+
+  vendorSha256 = "0vfazbaiaqka5nd7imh5ls7k3asf1c17y081nzkban98svg3l3sj";
+
+  meta = with lib; {
+    description = "HTTP(S)/WS(S)/TCP Tunnels to localhost";
+    homepage = "https://github.com/antoniomika/sish";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/swagger-codegen/default.nix b/pkgs/tools/networking/swagger-codegen/default.nix
index 93fb6e1e358..f2847703bdb 100644
--- a/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/pkgs/tools/networking/swagger-codegen/default.nix
@@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
     sha256 = "04wl5k8k1ziqz7k5w0g7i6zdfn41pbh3k0m8vq434k1886inf8yn";
   };
 
-  phases = [ "installPhase" ];
+  dontUnpack = true;
 
   installPhase = ''
-    install -D "$src" "$out/share/java/${jarfilename}"
+    install -D $src $out/share/java/${jarfilename}
 
-    makeWrapper ${jre}/bin/java $out/bin/swagger-codegen \
+    makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-jar $out/share/java/${jarfilename}"
   '';
 
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
new file mode 100644
index 00000000000..8fc908a1f2c
--- /dev/null
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  version = "3.0.25";
+  pname = "swagger-codegen";
+
+  jarfilename = "${pname}-cli-${version}.jar";
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  src = fetchurl {
+    url = "https://repo1.maven.org/maven2/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
+    sha256 = "1rdz45kmmg60fs7ddnla1xq30nah6s6rd18fqbjbjxng8r92brnd";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -D $src $out/share/java/${jarfilename}
+
+    makeWrapper ${jre}/bin/java $out/bin/${pname}3 \
+      --add-flags "-jar $out/share/java/${jarfilename}"
+  '';
+
+  meta = with lib; {
+    description = "Allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an OpenAPI Spec";
+    homepage = "https://github.com/swagger-api/swagger-codegen/tree/3.0.0";
+    license = licenses.asl20;
+    maintainers = [ maintainers._1000101 ];
+  };
+}
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 5181216e1c0..b525f78c424 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.37.0";
+  version = "4.37.3";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "00bw91n7210gsnc7bw2spl6k1yl2i7d1j55w98qf4rvn80z9d59r";
+    sha256 = "0gbkjlrx4ddaxb5f21m3sxbb55ilvm5kqlrys6ckrx0xyz9hj38y";
   };
 
-  vendorSha256 = "sha256-sc001qWdmhhaUh0nmvaqwwVE2Ee8IFWYi4K8aAURWBE=";
+  vendorSha256 = "sha256-hPzIAXImAEJux1VRqCgslgn8giTf9BgZBcEZyF4Ut9Y=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202104010913";
-      geoipSha256 = "1kq6d68ii9hr2w0caxacqh5q8jran154b99aik4g7ripgx7lckpr";
+      geoipRev = "202104150006";
+      geoipSha256 = "0ppm5r4bycjm7q0vnxj62q8639kp06sfkkkrkk5gibyrwisr4vrp";
     in fetchurl {
       url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -26,8 +26,8 @@ let
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "20210403111045";
-      geositeSha256 = "1b64yci0dmvw9divfv3njpzczz2ag3cnvyr29c2mk8y85vp05ysc";
+      geositeRev = "20210415054336";
+      geositeSha256 = "0vs9fjbw45ipi7minh0r8zgh3pbwxqlrhwahpwyc6s0hyxgdi40w";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/pkgs/tools/networking/wstunnel/default.nix b/pkgs/tools/networking/wstunnel/default.nix
deleted file mode 100644
index a851dcd4ead..00000000000
--- a/pkgs/tools/networking/wstunnel/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ mkDerivation, async, base, base64-bytestring, binary, bytestring
-, classy-prelude, cmdargs, connection, hslogger, mtl, network
-, network-conduit-tls, streaming-commons, text
-, unordered-containers, websockets
-, hspec, iproute
-, lib, fetchFromGitHub, fetchpatch
-}:
-
-mkDerivation rec {
-  pname = "wstunnel";
-  version = "unstable-2020-07-12";
-
-  src = fetchFromGitHub {
-    owner = "erebe";
-    repo = pname;
-    rev = "093a01fa3a34eee5efd8f827900e64eab9d16c05";
-    sha256 = "17p9kq0ssz05qzl6fyi5a5fjbpn4bxkkwibb9si3fhzrxc508b59";
-  };
-
-  isLibrary = false;
-  isExecutable = true;
-
-  libraryHaskellDepends = [
-    async base base64-bytestring binary bytestring classy-prelude
-    connection hslogger mtl network network-conduit-tls
-    streaming-commons text unordered-containers websockets
-    iproute
-  ];
-
-  executableHaskellDepends = [
-    base bytestring classy-prelude cmdargs hslogger text
-  ];
-
-  testHaskellDepends = [ base text hspec ];
-
-  homepage = "https://github.com/erebe/wstunnel";
-  description = "UDP and TCP tunnelling over WebSocket";
-  maintainers = with lib.maintainers; [ gebner ];
-  license = lib.licenses.bsd3;
-
-}
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 60da9b3abcb..4a44843e947 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -2,22 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "zerotierone";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "06b6k1rzqkd7cdl7n0gz5ky48fs2nhn0q2qxx1rww38vbfc7lpmf";
+    sha256 = "0dlnrb59vnxa3pjkgfqd5jil9kl6axh23v0bffi4kx8jwzpdwas8";
   };
 
   preConfigure = ''
-      patchShebangs ./doc/build.sh
-      substituteInPlace ./doc/build.sh \
-        --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
+    patchShebangs ./doc/build.sh
+    substituteInPlace ./doc/build.sh \
+      --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
 
-      substituteInPlace ./make-linux.mk \
-        --replace 'armv5' 'armv6'
+    substituteInPlace ./make-linux.mk \
+      --replace 'armv5' 'armv6'
   '';
 
 
diff --git a/pkgs/tools/nix/manix/default.nix b/pkgs/tools/nix/manix/default.nix
index 6c9f02f0e4f..768a283ebd2 100644
--- a/pkgs/tools/nix/manix/default.nix
+++ b/pkgs/tools/nix/manix/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "manix";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "mlvzk";
     repo  = pname;
     rev = "v${version}";
-    sha256 = "0fv3sgzwjsgq2h1177r8r1cl5zrfja4ll801sd0bzj3nzmkyww7p";
+    sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs";
   };
 
-  buildInputs = lib.optional stdenv.isDarwin [ darwin.Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0f2q3bj1cmpbma0fjhc2lc92j4al78fhrx3yc37kmbgzaza0yan5";
+  cargoSha256 = "1yivx9vzk2fvncvlkwq5v11hb9llr1zlcmy69y12q6xnd9rd8x1b";
 
   meta = with lib; {
     description = "A Fast Documentation Searcher for Nix";
diff --git a/pkgs/tools/nix/rnix-hashes/default.nix b/pkgs/tools/nix/rnix-hashes/default.nix
index 607884b8ac9..acdf230749c 100644
--- a/pkgs/tools/nix/rnix-hashes/default.nix
+++ b/pkgs/tools/nix/rnix-hashes/default.nix
@@ -1,4 +1,5 @@
 { lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+
 rustPlatform.buildRustPackage rec {
   pname = "rnix-hashes";
   version = "0.2.0";
@@ -10,12 +11,20 @@ rustPlatform.buildRustPackage rec {
     sha256 = "SzHyG5cEjaaPjTkn8puht6snjHMl8DtorOGDjxakJfA=";
   };
 
+  patches = [
+    # fix test failure
+    (fetchpatch {
+      url = "https://github.com/numtide/rnix-hashes/commit/62ab96cfd1efeade7d98efd9829eae8677bac9cc.patch";
+      sha256 = "sha256-oE2fBt20FmO2cEUGivu2mKo3z6rbhVLXSF8SRvhibFs=";
+    })
+  ];
+
   cargoSha256 = "vaG+0t+XAckV9F4iIgcTkbIUurxdQsTCfOnRnrOKoRc=";
 
   meta = with lib; {
     description = "Nix Hash Converter";
     homepage = "https://github.com/numtide/rnix-hashes";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rizary ];
+    maintainers = with maintainers; [ rizary SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/package-management/cargo-audit/default.nix b/pkgs/tools/package-management/cargo-audit/default.nix
index d5be54b71b0..6fa0dd38127 100644
--- a/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/pkgs/tools/package-management/cargo-audit/default.nix
@@ -1,16 +1,16 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkg-config, Security, libiconv }:
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "cargo-audit";
     rev = "v${version}";
-    sha256 = "sha256-w3wKUAAp9z4iQbx16z5chpKHYxCDLZzJesnIct2Qy4g=";
+    sha256 = "sha256-apIhTgS7xzDGq2OE1o46bEQxGwkV7bTmzSxy85wHwyo=";
   };
 
-  cargoSha256 = "sha256-ychF3qbwEjumLyqc+xDI8bbKzvdoRYF/X/idlk+JxDE=";
+  cargoSha256 = "sha256-b4x5IxoT5KZnY6Pw3VEs/DuCPen6MlgQ2lSIxRDU+5U=";
 
   buildInputs = [ openssl libiconv ] ++ lib.optionals stdenv.isDarwin [ Security ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/tools/package-management/cargo-outdated/default.nix
index 80c69d74abf..fe8f743c71c 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-80H0yblEcxP6TTil0dJPZhvMivDLuyvoV0Rmcrykgjs=";
+    sha256 = "sha256-Cd0QWFeAAHSkeCVQvb+Fsg5nBoutV1k1kQpMkWpci2E=";
   };
 
-  cargoSha256 = "sha256-RACdzaCWfm5rrIX0wrvKSmhLQt1a+2MQqrjTx+etpGo=";
+  cargoSha256 = "sha256-VngJMDVKIV8+ODHia2U2gKKPKskyKiuKhSnO6NJsJHI=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/package-management/libdnf/darwin.patch b/pkgs/tools/package-management/libdnf/darwin.patch
deleted file mode 100644
index 53f2c04f9ef..00000000000
--- a/pkgs/tools/package-management/libdnf/darwin.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git src/libdnf/config.h src/libdnf/config.h
-index 16121f6f..737d0bc4 100644
---- src/libdnf/config.h
-+++ src/libdnf/config.h
-@@ -18,7 +18,12 @@
-  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-  */
- 
-+
-+#ifdef __APPLE__
-+#include <stdint.h>
-+#else
- #include <bits/wordsize.h>
-+#endif
-
- 
- #if __WORDSIZE == 32
- #include "config-32.h"
-diff --git src/libdnf/hy-iutil.cpp src/libdnf/hy-iutil.cpp
-index 497c560d..5de077fa 100644
---- src/libdnf/hy-iutil.cpp
-+++ src/libdnf/hy-iutil.cpp
-@@ -22,7 +22,7 @@
- #include <errno.h>
- #include <dirent.h>
- #include <fcntl.h>
--#include <linux/limits.h>
-+#include <limits.h>
- #include <pwd.h>
- #include <unistd.h>
- #include <stdio.h>
-diff --git src/libdnf/hy-util.cpp src/libdnf/hy-util.cpp
-index 295fdc1b..9d584b8a 100644
---- src/libdnf/hy-util.cpp
-+++ src/libdnf/hy-util.cpp
-@@ -24,7 +24,20 @@
- #include <ctype.h>
- #include <sys/utsname.h>
- #include <sys/stat.h>
--#include <sys/auxv.h>
-+
-+// Darwin compatibility hacks
-+typedef int auxv_t;
-+#ifndef AT_HWCAP2
-+#define AT_HWCAP2 26
-+#endif
-+#ifndef AT_HWCAP
-+#define AT_HWCAP 16
-+#endif
-+static unsigned long getauxval(unsigned long type)
-+{
-+  unsigned long ret = 0;
-+  return ret;
-+}
- 
- // hawkey
- #include "dnf-types.h"
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 5d4a0716cc7..446761cca1d 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -3,17 +3,15 @@
 
 gcc9Stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.60.0";
+  version = "0.61.1";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "sha256-cZlUhzmfplj2XEpWWwPfT/fiH2cj3lIc44UVrFHcl3s=";
+    sha256 = "sha256-ad0Q/8FEaSqsuA6tVC5SB4bTrGJY/8Xb8S8zrsDIyVc=";
   };
 
-  patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
-
   nativeBuildInputs = [
     cmake
     gettext
diff --git a/pkgs/tools/package-management/nix-update/default.nix b/pkgs/tools/package-management/nix-update/default.nix
index 3c420a55652..296f3be49cc 100644
--- a/pkgs/tools/package-management/nix-update/default.nix
+++ b/pkgs/tools/package-management/nix-update/default.nix
@@ -3,21 +3,23 @@
 , fetchFromGitHub
 , nixFlakes
 , nix-prefetch
+, nixpkgs-fmt
+, nixpkgs-review
 }:
 
 buildPythonApplication rec {
   pname = "nix-update";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = pname;
     rev = version;
-    sha256 = "1ykxr0yah7zl06igm7wiji9zx3y0xpjc37hbfhn6gnir6ssa0kqp";
+    sha256 = "sha256-n3YuNypKFaBtO5Fhf7Z3Wgh0+WH5bQWR0W0uHCYKtuY=";
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ nixFlakes nix-prefetch ])
+    "--prefix" "PATH" ":" (lib.makeBinPath [ nixFlakes nix-prefetch nixpkgs-fmt nixpkgs-review ])
   ];
 
   checkPhase = ''
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index d3fcac6277f..2229e0c6a1d 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -7,19 +7,21 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "1k4i54j5if86qf9dmwm8ybfc4j7ap40y82f03hxfxb7lzq5cqmcv";
+    sha256 = "sha256-096oSvc9DidURGKE0FNEBOQz82+RGg6aJo8o9HhaSp0=";
   };
 
   makeWrapperArgs = [
     "--prefix" "PATH" ":" (lib.makeBinPath [ nixFlakes git ])
   ];
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Review pull-requests on https://github.com/NixOS/nixpkgs";
     homepage = "https://github.com/Mic92/nixpkgs-review";
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index ec5017c54c7..bc161f38f28 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , setuptools_scm
 , vdf
+, bash
 , steam-run
 , winetricks
 , zenity
@@ -11,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.4.4";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "0i7p0jj7avmq3b2qlcpwcflipndrnwsvwvhc5aal7rm95aa7xhja";
+    hash = "sha256-IHgoi5VUN3ORbufkruPb6wR7pTekJFQHhhDrnjOWzWM=";
   };
 
   patches = [
@@ -34,6 +35,7 @@ buildPythonApplication rec {
 
   makeWrapperArgs = [
     "--prefix PATH : ${lib.makeBinPath [
+      bash
       steam-run
       (winetricks.override {
         # Remove default build of wine to reduce closure size.
@@ -45,15 +47,7 @@ buildPythonApplication rec {
   ];
 
   checkInputs = [ pytestCheckHook ];
-  disabledTests = [
-    # Steam runtime is hard-coded with steam-run.patch and can't be configured
-    "test_run_steam_runtime_not_found"
-    "test_unknown_steam_runtime_detected"
-
-    # Steam runtime 2 currently isn't supported
-    # See https://github.com/NixOS/nixpkgs/issues/100655
-    "test_run_winetricks_steam_runtime_v2"
-  ];
+  pythonImportsCheck = [ "protontricks" ];
 
   meta = with lib; {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch
index 619d80bd8a7..5e91de58dbe 100644
--- a/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,16 +1,18 @@
 diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
-index fec0563..d158b96 100755
+index 9641970..6a2b268 100755
 --- a/src/protontricks/cli.py
 +++ b/src/protontricks/cli.py
-@@ -14,7 +14,7 @@ import os
- import logging
+@@ -15,8 +15,8 @@ import sys
  
  from . import __version__
--from .steam import (find_proton_app, find_steam_path, find_steam_runtime_path,
-+from .steam import (find_proton_app, find_steam_path,
-                     get_steam_apps, get_steam_lib_paths)
- from .winetricks import get_winetricks_path
  from .gui import select_steam_app_with_gui
+-from .steam import (find_legacy_steam_runtime_path, find_proton_app,
+-                    find_steam_path, get_steam_apps, get_steam_lib_paths)
++from .steam import (find_proton_app, find_steam_path, get_steam_apps,
++                    get_steam_lib_paths)
+ from .util import run_command
+ from .winetricks import get_winetricks_path
+ 
 @@ -75,8 +75,7 @@ def main(args=None):
              "WINE: path to a custom 'wine' executable\n"
              "WINESERVER: path to a custom 'wineserver' executable\n"
@@ -21,70 +23,73 @@ index fec0563..d158b96 100755
          ),
          formatter_class=argparse.RawTextHelpFormatter
      )
-@@ -133,14 +132,10 @@ def main(args=None):
+@@ -138,18 +137,9 @@ def main(args=None):
+         )
          sys.exit(-1)
  
-     # 2. Find Steam Runtime if enabled
--    steam_runtime_path = None
-+    steam_runtime = False
- 
+-    # 2. Find the pre-installed legacy Steam Runtime if enabled
+-    legacy_steam_runtime_path = None
+-    use_steam_runtime = True
+-
++    # 2. Use Steam Runtime if enabled
      if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime:
--        steam_runtime_path = find_steam_runtime_path(steam_root=steam_root)
+-        legacy_steam_runtime_path = find_legacy_steam_runtime_path(
+-            steam_root=steam_root
+-        )
 -
--        if not steam_runtime_path:
+-        if not legacy_steam_runtime_path:
 -            print("Steam Runtime was enabled but couldn't be found!")
 -            sys.exit(-1)
-+        steam_runtime = True
++        use_steam_runtime = True
      else:
+         use_steam_runtime = False
          logger.info("Steam Runtime disabled.")
- 
-@@ -201,7 +196,7 @@ def main(args=None):
-             winetricks_path=winetricks_path,
+@@ -212,7 +202,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
-             command=[winetricks_path, "--gui"]
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             command=[winetricks_path, "--gui"],
+             use_bwrap=use_bwrap
          )
- 
-@@ -269,7 +264,7 @@ def main(args=None):
-             winetricks_path=winetricks_path,
+@@ -282,7 +271,6 @@ def main(args=None):
              proton_app=proton_app,
              steam_app=steam_app,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             use_bwrap=use_bwrap,
              command=[winetricks_path] + args.winetricks_command)
      elif args.command:
-         run_command(
-@@ -277,7 +272,7 @@ def main(args=None):
-             proton_app=proton_app,
+@@ -292,7 +280,6 @@ def main(args=None):
              steam_app=steam_app,
              command=args.command,
--            steam_runtime_path=steam_runtime_path,
-+            steam_runtime=steam_runtime,
+             use_steam_runtime=use_steam_runtime,
+-            legacy_steam_runtime_path=legacy_steam_runtime_path,
+             use_bwrap=use_bwrap,
              # Pass the command directly into the shell *without*
              # escaping it
-             cwd=steam_app.install_path,
 diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py
-index fa5772d..4f30cd3 100644
+index 8554e24..509afb6 100644
 --- a/src/protontricks/steam.py
 +++ b/src/protontricks/steam.py
-@@ -11,7 +11,7 @@ from .util import lower_dict
- 
+@@ -13,8 +13,8 @@ from .util import lower_dict
  __all__ = (
      "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path",
--    "find_steam_proton_app", "find_proton_app", "find_steam_runtime_path",
-+    "find_steam_proton_app", "find_proton_app",
-     "find_appid_proton_prefix", "get_steam_lib_paths", "get_steam_apps",
-     "get_custom_proton_installations"
+     "find_steam_proton_app", "find_proton_app",
+-    "find_legacy_steam_runtime_path", "find_appid_proton_prefix",
+-    "get_steam_lib_paths", "get_steam_apps", "get_custom_proton_installations"
++    "find_appid_proton_prefix", "get_steam_lib_paths",
++    "get_steam_apps", "get_custom_proton_installations"
  )
-@@ -254,37 +254,6 @@ def find_steam_path():
+ 
+ COMMON_STEAM_DIRS = [
+@@ -283,37 +283,6 @@ def find_steam_path():
      return None, None
  
  
--def find_steam_runtime_path(steam_root):
+-def find_legacy_steam_runtime_path(steam_root):
 -    """
--    Find the Steam Runtime either using the STEAM_RUNTIME env or
+-    Find the legacy Steam Runtime either using the STEAM_RUNTIME env or
 -    steam_root
 -    """
 -    env_steam_runtime = os.environ.get("STEAM_RUNTIME", "")
@@ -117,162 +122,149 @@ index fa5772d..4f30cd3 100644
  APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
  
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index d513b46..c48e41f 100644
+index 40fa752..9da5509 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
-@@ -6,7 +6,7 @@ import stat
- from pathlib import Path
- from subprocess import check_output, run, PIPE
- 
--__all__ = ("get_runtime_library_paths", "create_wine_bin_dir", "run_command")
-+__all__ = ("create_wine_bin_dir", "run_command")
- 
- logger = logging.getLogger("protontricks")
- 
-@@ -25,93 +25,10 @@ def lower_dict(d):
+@@ -25,24 +25,6 @@ def lower_dict(d):
      return {k.lower(): v for k, v in d.items()}
  
  
--def get_host_library_paths():
+-def get_legacy_runtime_library_paths(legacy_steam_runtime_path, proton_app):
 -    """
--    Get host library paths to use when creating the LD_LIBRARY_PATH environment
--    variable for use with newer Steam Runtime installations
+-    Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
 -    """
--    # The traditional Steam Runtime does the following when running the
--    # `run.sh --print-steam-runtime-library-paths` command.
--    # Since that command is unavailable with newer Steam Runtime releases,
--    # do it ourselves here.
--    result = run(
--        ["/sbin/ldconfig", "-XNv"],
--        check=True, stdout=PIPE, stderr=PIPE
--    )
--    lines = result.stdout.decode("utf-8").split("\n")
--    paths = [
--        line.split(":")[0] for line in lines
--        if line.startswith("/") and ":" in line
--    ]
--
--    return ":".join(paths)
--
--
--RUNTIME_ROOT_GLOB_PATTERNS = (
--    "var/*/files/",
--    "*/files/"
--)
--
--
--def get_runtime_library_paths(steam_runtime_path, proton_app):
--    """
--    Get LD_LIBRARY_PATH value to run a command using Steam Runtime
--    """
--    def find_runtime_app_root(runtime_app):
--        """
--        Find the runtime root (the directory containing the root fileystem
--        used for the container) for separately installed Steam Runtime app
--        """
--        for pattern in RUNTIME_ROOT_GLOB_PATTERNS:
--            try:
--                return next(
--                    runtime_app.install_path.glob(pattern)
--                )
--            except StopIteration:
--                pass
--
--        raise RuntimeError(
--            "Could not find Steam Runtime runtime root for {}".format(
--                runtime_app.name
--            )
--        )
--
--    if proton_app.required_tool_appid:
--        # bwrap based Steam Runtime is used for Proton installations that
--        # use separate Steam runtimes
--        # TODO: Try to run the Wine binaries inside an user namespace somehow.
--        # Newer Steam Runtime environments may rely on a newer glibc than what
--        # is available on the host system, which may cause potential problems
--        # otherwise.
--        runtime_root = find_runtime_app_root(proton_app.required_tool_app)
--        return "".join([
--            str(proton_app.install_path / "dist" / "lib"), os.pathsep,
--            str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
--            get_host_library_paths(), os.pathsep,
--            str(runtime_root / "lib" / "i386-linux-gnu"), os.pathsep,
--            str(runtime_root / "lib" / "x86_64-linux-gnu")
--        ])
--
--    # Traditional LD_LIBRARY_PATH based Steam Runtime is used otherwise
 -    steam_runtime_paths = check_output([
--        str(steam_runtime_path / "run.sh"),
+-        str(legacy_steam_runtime_path / "run.sh"),
 -        "--print-steam-runtime-library-paths"
 -    ])
 -    steam_runtime_paths = str(steam_runtime_paths, "utf-8")
 -    # Add Proton installation directory first into LD_LIBRARY_PATH
 -    # so that libwine.so.1 is picked up correctly (see issue #3)
 -    return "".join([
--        str(proton_app.install_path / "dist" / "lib"), os.pathsep,
--        str(proton_app.install_path / "dist" / "lib64"), os.pathsep,
+-        str(proton_app.proton_dist_path / "lib"), os.pathsep,
+-        str(proton_app.proton_dist_path / "lib64"), os.pathsep,
 -        steam_runtime_paths
 -    ])
 -
 -
- WINE_SCRIPT_TEMPLATE = (
--    "#!/bin/bash\n"
-+    "#!/bin/sh\n"
-     "# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n"
--    "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n"
--    "exec \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
-+    "exec steam-run \"$PROTON_PATH\"/dist/bin/{name} \"$@\""
+ def get_host_library_paths():
+     """
+     Get host library paths to use when creating the LD_LIBRARY_PATH environment
+@@ -54,7 +36,7 @@ def get_host_library_paths():
+     # Since that command is unavailable with newer Steam Runtime releases,
+     # do it ourselves here.
+     result = run(
+-        ["/sbin/ldconfig", "-XNv"],
++        ["steam-run", "ldconfig", "-XNv"],
+         check=True, stdout=PIPE, stderr=PIPE
+     )
+     lines = result.stdout.decode("utf-8").split("\n")
+@@ -72,7 +54,7 @@ RUNTIME_ROOT_GLOB_PATTERNS = (
  )
  
  
-@@ -172,7 +89,7 @@ def create_wine_bin_dir(proton_app):
+-def get_runtime_library_paths(proton_app, use_bwrap=True):
++def get_runtime_library_paths(proton_app, proton_app_only=True):
+     """
+     Get LD_LIBRARY_PATH value to use when running a command using Steam Runtime
+     """
+@@ -95,7 +77,7 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+             )
+         )
+ 
+-    if use_bwrap:
++    if proton_app_only:
+         return "".join([
+             str(proton_app.proton_dist_path / "lib"), os.pathsep,
+             str(proton_app.proton_dist_path / "lib64"), os.pathsep
+@@ -111,14 +93,19 @@ def get_runtime_library_paths(proton_app, use_bwrap=True):
+     ])
  
+ 
+-WINE_SCRIPT_RUNTIME_V1_TEMPLATE = (
+-    "#!/bin/bash\n"
+-    "# Helper script created by Protontricks to run Wine binaries using Steam Runtime\n"
+-    "export LD_LIBRARY_PATH=\"$PROTON_LD_LIBRARY_PATH\"\n"
+-    "exec \"$PROTON_DIST_PATH\"/bin/{name} \"$@\""
+-)
++# Add Proton installation directory first into LD_LIBRARY_PATH
++# so that libwine.so.1 is picked up correctly (see issue #3)
++WINE_SCRIPT_RUNTIME_V1_TEMPLATE = """#!/usr/bin/env -S steam-run bash
++# Helper script created by Protontricks to run Wine binaries using Steam Runtime
++export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH":"$LD_LIBRARY_PATH"
++exec "$PROTON_DIST_PATH"/bin/{name} "$@"
++"""
+ 
+-WINE_SCRIPT_RUNTIME_V2_TEMPLATE = """#!/bin/bash
++# The run script calls pressure-vessel-unruntime which will unset
++# LD_LIBRARY_PATH defined by steam-run. This will cause Pressure
++# Vessel to segfault, so just call pressure-vessel-wrap directly
++# instead.
++WINE_SCRIPT_RUNTIME_V2_TEMPLATE = """#!/usr/bin/env bash
+ # Helper script created by Protontricks to run Wine binaries using Steam Runtime
+ PROTONTRICKS_PROXY_SCRIPT_PATH="{script_path}"
+ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
+@@ -127,9 +114,13 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" ]]; then
+   export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH"
+   "$PROTON_DIST_PATH"/bin/{name} "$@"
+ else
+-  exec "$STEAM_RUNTIME_PATH"/run --share-pid --batch --filesystem=/mnt \
+-  --filesystem=/tmp --filesystem=/run/media --filesystem=/etc \
+-  --filesystem=/opt --filesystem=/home --filesystem=/usr -- \
++  exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \
++  --runtime-archive=$(echo "$STEAM_RUNTIME_PATH"/*runtime.tar.gz) \
++  --variable-dir="${{PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}}" \
++  --share-pid --batch \
++  --filesystem=/mnt --filesystem=/tmp --filesystem=/run/media \
++  --filesystem=/etc --filesystem=/opt --filesystem=/home \
++  --filesystem=/usr -- \
+   env PROTONTRICKS_INSIDE_STEAM_RUNTIME=1 \
+   "$PROTONTRICKS_PROXY_SCRIPT_PATH" "$@"
+ fi
+@@ -194,7 +185,6 @@ def create_wine_bin_dir(proton_app, use_bwrap=True):
  def run_command(
          winetricks_path, proton_app, steam_app, command,
--        steam_runtime_path=None,
-+        steam_runtime=False,
+         use_steam_runtime=False,
+-        legacy_steam_runtime_path=None,
+         use_bwrap=True,
          **kwargs):
      """Run an arbitrary command with the correct environment variables
-     for the given Proton app
-@@ -180,13 +97,13 @@ def run_command(
-     The environment variables are set for the duration of the call
-     and restored afterwards
- 
--    If 'steam_runtime_path' is provided, run the command using Steam Runtime
-+    If 'steam_runtime' is provided, run the command using Steam Runtime
-     """
-     # Check for incomplete Steam Runtime installation
-     runtime_install_incomplete = \
-         proton_app.required_tool_appid and not proton_app.required_tool_app
- 
--    if steam_runtime_path and runtime_install_incomplete:
-+    if steam_runtime and runtime_install_incomplete:
-         raise RuntimeError(
-             "{} is missing the required Steam Runtime. You may need to launch "
-             "a Steam app using this Proton version to finish the "
-@@ -234,7 +151,7 @@ def run_command(
-     os.environ.pop("WINEARCH", "")
+@@ -271,7 +261,7 @@ def run_command(
+             os.environ["STEAM_RUNTIME_PATH"] = \
+                 str(proton_app.required_tool_app.install_path)
+             os.environ["PROTON_LD_LIBRARY_PATH"] = \
+-                get_runtime_library_paths(proton_app, use_bwrap=use_bwrap)
++                get_runtime_library_paths(proton_app, proton_app_only=use_bwrap)
  
-     wine_bin_dir = None
--    if steam_runtime_path:
-+    if steam_runtime:
-         if proton_app.required_tool_app:
              runtime_name = proton_app.required_tool_app.name
              logger.info(
-@@ -251,8 +168,6 @@ def run_command(
+@@ -294,11 +284,8 @@ def run_command(
+                     "Current Steam Runtime not recognized by Protontricks."
+                 )
+         else:
+-            # Legacy Steam Runtime requires a different LD_LIBRARY_PATH
+             os.environ["PROTON_LD_LIBRARY_PATH"] = \
+-                get_legacy_runtime_library_paths(
+-                    legacy_steam_runtime_path, proton_app
+-                )
++                get_runtime_library_paths(proton_app, proton_app_only=True)
+ 
+         # When Steam Runtime is enabled, create a set of helper scripts
          # that load the underlying Proton Wine executables with Steam Runtime
-         # and Proton libraries instead of system libraries
-         wine_bin_dir = create_wine_bin_dir(proton_app=proton_app)
--        os.environ["PROTON_LD_LIBRARY_PATH"] = \
--            get_runtime_library_paths(steam_runtime_path, proton_app)
+@@ -306,8 +293,6 @@ def run_command(
+         wine_bin_dir = create_wine_bin_dir(
+             proton_app=proton_app, use_bwrap=use_bwrap
+         )
+-        os.environ["LEGACY_STEAM_RUNTIME_PATH"] = \
+-            str(legacy_steam_runtime_path)
+ 
          os.environ["PATH"] = "".join([
              str(wine_bin_dir), os.pathsep, os.environ["PATH"]
-         ])
 diff --git a/tests/test_cli.py b/tests/test_cli.py
-index b612dfa..c4d1de0 100644
+index 1955d81..1de44b3 100644
 --- a/tests/test_cli.py
 +++ b/tests/test_cli.py
-@@ -115,9 +115,6 @@ class TestCLIRun:
+@@ -117,15 +117,10 @@ class TestCLIRun:
          assert str(command.args[0]).endswith(".local/bin/winetricks")
          assert command.args[1] == "winecfg"
          assert command.env["PATH"].startswith(str(wine_bin_dir))
@@ -282,3 +274,61 @@ index b612dfa..c4d1de0 100644
          assert command.env["WINE"] == str(wine_bin_dir / "wine")
          assert command.env["WINELOADER"] == str(wine_bin_dir / "wine")
          assert command.env["WINESERVER"] == str(wine_bin_dir / "wineserver")
+ 
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
+         assert "STEAM_RUNTIME_PATH" not in command.env
+ 
+         for name in ("wine", "wineserver"):
+@@ -166,16 +161,14 @@ class TestCLIRun:
+         assert command.env["PATH"].startswith(str(wine_bin_dir))
+ 
+         # Compared to the traditional Steam Runtime, PROTON_LD_LIBRARY_PATH
+-        # will be different
++        # will be the same (it would be different without steam-run.patch)
+         proton_install_path = Path(proton_app.install_path)
+         assert command.env["PROTON_LD_LIBRARY_PATH"] == "".join([
+             str(proton_install_path / "dist" / "lib"), os.pathsep,
+             str(proton_install_path / "dist" / "lib64"), os.pathsep
+         ])
+ 
+-        # Environment variables for both legacy and new Steam Runtime exist
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
++        # Environment variable for new Steam Runtime exists
+         assert command.env["STEAM_RUNTIME_PATH"] == \
+             str(steam_runtime_soldier.install_path)
+ 
+@@ -238,10 +231,7 @@ class TestCLIRun:
+             str(runtime_root / "lib" / "i386-linux-gnu"), os.pathsep,
+             str(runtime_root / "lib" / "x86_64-linux-gnu")
+         ]))
+-
+-        # Environment variables for both legacy and new Steam Runtime exist
+-        assert command.env["LEGACY_STEAM_RUNTIME_PATH"] == \
+-            str(steam_runtime_dir / "steam-runtime")
++        # Environment variable for new Steam Runtime exists
+         assert command.env["STEAM_RUNTIME_PATH"] == \
+             str(steam_runtime_soldier.install_path)
+ 
+@@ -324,20 +314,6 @@ class TestCLIRun:
+ 
+         assert "Zenity is not installed" in result
+ 
+-    def test_run_steam_runtime_not_found(
+-            self, cli, steam_dir, steam_app_factory):
+-        """
+-        Try performing a command with Steam Runtime enabled but no
+-        available Steam Runtime installation
+-        """
+-        steam_app_factory(name="Fake game 1", appid=10)
+-        result = cli(
+-            ["10", "winecfg"], env={"STEAM_RUNTIME": "invalid/path"},
+-            expect_exit=True
+-        )
+-
+-        assert "Steam Runtime was enabled but couldn't be found" in result
+-
+     def test_run_proton_not_found(self, cli, steam_dir, steam_app_factory):
+         steam_app_factory(name="Fake game 1", appid=10)
+         result = cli(["10", "winecfg"], expect_exit=True)
diff --git a/pkgs/tools/security/badtouch/default.nix b/pkgs/tools/security/badtouch/default.nix
new file mode 100644
index 00000000000..ea74bbb4fc3
--- /dev/null
+++ b/pkgs/tools/security/badtouch/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+, libcap
+, openssl
+, pkg-config
+, rustPlatform
+, Security
+, zlib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "badtouch";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "kpcyrd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "05dzwx9y8zh0y9zd4mibp02255qphc6iqy916fkm3ahaw0rg84h3";
+  };
+
+  cargoSha256 = "0mmglgz037dk3g7qagf1dyss5hvvsdy0m5m1h6c3rk5bp5kjzg87";
+
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
+
+  buildInputs = [
+    libcap
+    zlib
+    openssl
+  ] ++ lib.optional stdenv.isDarwin Security;
+
+  postInstall = ''
+    installManPage docs/${pname}.1
+  '';
+
+  # Tests requires access to httpin.org
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Scriptable network authentication cracker";
+    homepage = "https://github.com/kpcyrd/badtouch";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/bettercap/default.nix b/pkgs/tools/security/bettercap/default.nix
index 1383de79feb..e50de9fcfcd 100644
--- a/pkgs/tools/security/bettercap/default.nix
+++ b/pkgs/tools/security/bettercap/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "bettercap";
-  version = "2.30.2";
+  version = "2.31.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5CAWMW0u/8BUn/8JJBApyHGH+/Tz8hzAmSChoT2gFr8=";
+    sha256 = "sha256-PmS4ox1ZaHrBGJAdNByott61rEvfmR1ZJ12ut0MGtrc=";
   };
 
-  vendorSha256 = "sha256-fApxHxdzEEc+M+U5f0271VgrkXTGkUD75BpDXpVYd5k=";
+  vendorSha256 = "sha256-3j64Z4BQhAbUtoHJ6IT1SCsKxSeYZRxSO3K2Nx9Vv4w=";
 
   doCheck = false;
 
@@ -30,10 +30,12 @@ buildGoModule rec {
   meta = with lib; {
     description = "A man in the middle tool";
     longDescription = ''
-      BetterCAP is a powerful, flexible and portable tool created to perform various types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic in realtime, sniff for credentials and much more.
+      BetterCAP is a powerful, flexible and portable tool created to perform various
+      types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic
+      in realtime, sniff for credentials and much more.
     '';
     homepage = "https://www.bettercap.org/";
-    license = with licenses; gpl3;
+    license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ y0no ];
   };
 }
diff --git a/pkgs/tools/security/cosign/default.nix b/pkgs/tools/security/cosign/default.nix
index c0ef3b7400a..eb33d7dbb5f 100644
--- a/pkgs/tools/security/cosign/default.nix
+++ b/pkgs/tools/security/cosign/default.nix
@@ -1,25 +1,35 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, PCSC }:
 
 buildGoModule rec {
   pname = "cosign";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zwb2q62ngb2zh1hasvq7r7pmrjlpgfhs5raibbhkxbk5kayvmii";
+    sha256 = "1gfzard6bh78xxgjk14c9zmdplppkcjqxhvfazcbv8qppjl2pbbd";
   };
 
-  vendorSha256 = "0nwbjaps4z5fhiknbj9pybxb6kgwb1vf2qhy0mzpycprf04q6g0v";
+  buildInputs =
+    lib.optional stdenv.isLinux (lib.getDev pcsclite)
+    ++ lib.optionals stdenv.isDarwin [ PCSC ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  vendorSha256 = "15163v484rv08rn439y38r9spyqn3lf4q4ly8xr18nnf4bs3h6y2";
 
   subPackages = [ "cmd/cosign" ];
 
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/sigstore/cosign/cmd/cosign/cli.gitVersion=v${version}")
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/sigstore/cosign";
     changelog = "https://github.com/sigstore/cosign/releases/tag/v${version}";
     description = "Container Signing CLI with support for ephemeral keys and Sigstore signing";
     license = licenses.asl20;
-    maintainers = with maintainers; [ lesuisse ];
+    maintainers = with maintainers; [ lesuisse jk ];
   };
 }
diff --git a/pkgs/tools/security/cryptomator/default.nix b/pkgs/tools/security/cryptomator/default.nix
index c866a527768..ec18a5ed10c 100644
--- a/pkgs/tools/security/cryptomator/default.nix
+++ b/pkgs/tools/security/cryptomator/default.nix
@@ -6,20 +6,20 @@
 
 let
   pname = "cryptomator";
-  version = "1.5.13";
+  version = "1.5.15";
 
   src = fetchFromGitHub {
     owner = "cryptomator";
     repo = "cryptomator";
     rev = version;
-    sha256 = "1s9jl3nl6yfjzmilz9b8azk8592nd39xflzfdf38v6s4iiq86r8j";
+    sha256 = "06n7wda7gfalvsg1rlcm51ss73nlbhh95z6zq18yvn040clkzkij";
   };
 
   icons = fetchFromGitHub {
     owner = "cryptomator";
     repo = "cryptomator-linux";
     rev = version;
-    sha256 = "1x6h6wp6yxnj576874xj3d2jm8jmb7918wprqvlz4sryxhlcssa7";
+    sha256 = "1sqbx858zglv0xkpjya0cpbkxf2hkj1xvxhnir3176y2xyjv6aib";
   };
 
   # perform fake build to make a fixed-output derivation out of the files downloaded from maven central (120MB)
@@ -44,7 +44,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "06q8bqdz3c4i84wxl9z5861zwdsw8jzcvsbgxqrnh8rwi7500sa7";
+    outputHash = "195ysv9l861y9d1lvmvi7wmk172ynlba9n233blpaigq88cjn208";
   };
 
 in stdenv.mkDerivation rec {
@@ -75,7 +75,7 @@ in stdenv.mkDerivation rec {
       --set JAVA_HOME "${jre.home}"
 
     # install desktop entry and icons
-    cp -r ${icons}/resources/appimage/AppDir/usr $out/
+    cp -r ${icons}/resources/appimage/AppDir/usr/* $out/
   '';
 
   nativeBuildInputs = [ autoPatchelfHook maven makeWrapper wrapGAppsHook jdk ];
diff --git a/pkgs/tools/security/dnsx/default.nix b/pkgs/tools/security/dnsx/default.nix
index 9b1457554fc..b294bb6281b 100644
--- a/pkgs/tools/security/dnsx/default.nix
+++ b/pkgs/tools/security/dnsx/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dnsx";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "dnsx";
     rev = "v${version}";
-    sha256 = "sha256-CjWFXYU34PE4I9xihQbPxVcxLyiMCYueuaB/LaXhHQg=";
+    sha256 = "sha256-k71Pw6XdOFMUf7w7QAAxqQkmkCINl+3KApkIPRyAQLM=";
   };
 
-  vendorSha256 = "sha256-vTXvlpXpFf78Cwxq/y6ysSeXM3g71kHBn9zd6c4mxlk=";
+  vendorSha256 = "sha256-YA0XZSXmpAcNEFutrBbQE8DN7v5hcva0fscemEMLewU=";
 
   meta = with lib; {
     description = "Fast and multi-purpose DNS toolkit";
diff --git a/pkgs/tools/security/earlybird/default.nix b/pkgs/tools/security/earlybird/default.nix
new file mode 100644
index 00000000000..30916acda72
--- /dev/null
+++ b/pkgs/tools/security/earlybird/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+buildGoModule {
+  pname = "earlybird";
+  version = "1.25.0";
+
+  src = fetchFromGitHub {
+    owner = "americanexpress";
+    repo = "earlybird";
+    # According to the GitHub repo, the latest version *is* 1.25.0, but they
+    # tagged it as "refs/heads/main-2"
+    rev = "4f365f1c02972dc0a68a196a262912d9c4325b21";
+    sha256 = "UZXHYBwBmb9J1HrE/htPZcKvZ+7mc+oXnUtzgBmBgN4=";
+  };
+
+  vendorSha256 = "oSHBR1EvK/1+cXqGNCE9tWn6Kd/BwNY3m5XrKCAijhA=";
+
+  meta = with lib; {
+    description = "A sensitive data detection tool capable of scanning source code repositories for passwords, key files, and more";
+    homepage = "https://github.com/americanexpress/earlybird";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/security/ffuf/default.nix b/pkgs/tools/security/ffuf/default.nix
index 6af8b6fcba9..076fd78d713 100644
--- a/pkgs/tools/security/ffuf/default.nix
+++ b/pkgs/tools/security/ffuf/default.nix
@@ -1,25 +1,21 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "ffuf";
-  version = "1.2.1";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XSdFLfSYDdKI7BYo9emYanvZeSFGxiNLYxuw5QKAyRc=";
+    sha256 = "sha256-NkRf36wFmzqFv13P0DxpzEOGyBGbSXMLjWE7URzRXGY=";
   };
 
   vendorSha256 = "sha256-szT08rIozAuliOmge5RFX4NeVrJ2pCVyfotrHuvc0UU=";
 
-  # tests don't pass due to an issue with the memory addresses
-  # https://github.com/ffuf/ffuf/issues/367
-  doCheck = false;
-
   meta = with lib; {
     description = "Fast web fuzzer written in Go";
     longDescription = ''
diff --git a/pkgs/tools/security/flare-floss/default.nix b/pkgs/tools/security/flare-floss/default.nix
new file mode 100644
index 00000000000..954dd07d6ab
--- /dev/null
+++ b/pkgs/tools/security/flare-floss/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, python2
+, fetchFromGitHub
+}:
+python2.pkgs.buildPythonPackage rec {
+  pname = "flare-floss";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "fireeye";
+    repo = "flare-floss";
+    rev = "v${version}";
+    sha256 = "GMOA1+qM2A/Qw33kOTIINEvjsfqjWQWBXHNemh3IK8w=";
+  };
+
+  propagatedBuildInputs = with python2.pkgs; [
+    pyyaml
+    simplejson
+    tabulate
+    vivisect
+    plugnplay
+    viv-utils
+    enum34
+  ];
+
+  checkInputs = [
+    python2.pkgs.pytestCheckHook
+  ];
+
+  disabledTests = [
+    # test data is in a submodule
+    "test_main"
+  ];
+
+  pythonImportsCheck = [
+    "floss"
+    "floss.plugins"
+  ];
+
+  meta = with lib; {
+    description = "Automatically extract obfuscated strings from malware";
+    homepage = "https://github.com/fireeye/flare-floss";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index 66112332663..140ced9ff4b 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -23,14 +23,13 @@ let
   };
 
 in stdenv.mkDerivation rec {
-
   pname = "ghidra";
-  version = "9.2.2";
-  versiondate = "20201229";
+  version = "9.2.3";
+  versiondate = "20210325";
 
   src = fetchzip {
     url = "https://www.ghidra-sre.org/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "1xahkwiqdcwxssah16hhgrmyam49cb341xp5ysycj1h0kkm8p53s";
+    sha256 = "sha256-/rQ3JeOR/D+HxzkJ+nV+pd/7V81+tCyTOndwpXI05hg=";
   };
 
   nativeBuildInputs = [
@@ -72,7 +71,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://ghidra-sre.org/";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     license = licenses.asl20;
-    maintainers = with maintainers; [ ck3d govanify ];
+    maintainers = with maintainers; [ ck3d govanify mic92 ];
   };
 
 }
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index 685280ab4ad..c47afcd8e0f 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.4.0";
+  version = "7.4.1";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AY9pOARFAqIOimhcwEyau2MwJCFsWu8I36P7Z0xyJH0=";
+    sha256 = "sha256-GoHntsyxrMzLHlyKC3JxCkLoquIjOtidcG7hTNTYGuI=";
   };
 
   vendorSha256 = "sha256-Cc4DJPpOMHxDcH22S7znYo7QHNRXv8jOJhznu09kaE4=";
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index 13bbdbb99d4..7323d092472 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-X67TEHKmKKuTFGo55ZVkYVNw4f/d8aU2b/FQsq1OIJg=";
+    sha256 = "sha256-E1tJ9hEJ4GaL+S4dz6aGq3nJPpdtx0/Tfb1RzgJSe8M=";
   };
 
-  vendorSha256 = "sha256-SGO8RKSOK0PHqSIJfTdcuAmqMtFuo9MBdiEylDUpOFo=";
+  vendorSha256 = "sha256-LUyrX/rm01tCPT6Ua6hphhf+4ycNn4tLONRyH3iTrZ4=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/pkgs/tools/security/hfinger/default.nix b/pkgs/tools/security/hfinger/default.nix
index 9e053276ecf..8116c222d07 100644
--- a/pkgs/tools/security/hfinger/default.nix
+++ b/pkgs/tools/security/hfinger/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "hfinger";
-  version = "0.2.0";
+  version = "0.2.1";
   disabled = python3.pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vz8mf572qyng684fvb9gdwaaiybk7mjmikbymvjvy24d10raak1";
+    sha256 = "sha256-QKnrprDDBq+D8N1brkqgcfK4E+6ssvgPtRaSxkF0C84=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/honeytrap/default.nix b/pkgs/tools/security/honeytrap/default.nix
new file mode 100644
index 00000000000..735d5d69bd8
--- /dev/null
+++ b/pkgs/tools/security/honeytrap/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+buildGoModule {
+  pname = "honeytrap";
+  version = "unstable-2020-12-10";
+
+  src = fetchFromGitHub {
+    owner = "honeytrap";
+    repo = "honeytrap";
+    rev = "affd7b21a5aa1b57f086e6871753cb98ce088d76";
+    sha256 = "y1SWlBFgX3bFoSRGJ45DdC1DoIK5BfO9Vpi2h57wWtU=";
+  };
+
+  # Otherwise, will try to install a "scripts" binary; it's only used in
+  # dockerize.sh, which we don't care about.
+  subPackages = [ "." ];
+
+  vendorSha256 = "W8w66weYzCpZ+hmFyK2F6wdFz6aAZ9UxMhccNy1X1R8=";
+
+  meta = with lib; {
+    description = "Advanced Honeypot framework";
+    homepage = "https://github.com/honeytrap/honeytrap";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index 129395912f9..e8ddf6bb0bc 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "v${version}";
-    sha256 = "sha256-w5CNvtlhvm1SyAKaoA7Fw8ZSY9Z78MentrSNS4mpr1Q=";
+    sha256 = "sha256-E7HGE+ZVUF6AK+4qVsO2t+/B8hRMd14/bZW2WXA6p6E=";
   };
 
   vendorSha256 = "sha256-VBxGapvC2QE/0slsAiCBzmwOSMeGepZU0pYVDepSrwg=";
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index cfc282c303c..8894a77a86a 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, alsaLib, atk, cairo, cups, udev
+{ stdenv, lib, fetchurl, alsaLib, atk, cairo, cups, udev, libdrm, mesa
 , dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libappindicator-gtk3
 , libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook
 , runtimeShell, gsettings-desktop-schemas }:
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     xorg.libXrender
     xorg.libXtst
     xorg.libxcb
+    libdrm
+    mesa.out
   ];
 
   runtimeDependencies = [
diff --git a/pkgs/tools/security/kubei/default.nix b/pkgs/tools/security/kubei/default.nix
new file mode 100644
index 00000000000..1b1a8003b09
--- /dev/null
+++ b/pkgs/tools/security/kubei/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubei";
+  version = "1.0.11";
+
+  src = fetchFromGitHub {
+    owner = "Portshift";
+    repo = pname;
+    rev = version;
+    sha256 = "0n9kzlw7wlzkc3yhq68jgjhnvig817kz0q81ydkjxp4snwc1kvw8";
+  };
+
+  vendorSha256 = "0q0vkajn5n1aqb8wwdkvg8jv6j98l70g4hb399ickamhnirk69g4";
+
+  meta = with lib; {
+    description = "Kubernetes runtime scanner";
+    longDescription = ''
+      Kubei is a vulnerabilities scanning and CIS Docker benchmark tool that
+      allows users to get an accurate and immediate risk assessment of their
+      kubernetes clusters. Kubei scans all images that are being used in a
+      Kubernetes cluster, including images of application pods and system pods.
+    '';
+    homepage = "https://github.com/Portshift/kubei";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/kubesec/default.nix b/pkgs/tools/security/kubesec/default.nix
new file mode 100644
index 00000000000..3059ba9af9f
--- /dev/null
+++ b/pkgs/tools/security/kubesec/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubesec";
+  version = "2.11.0";
+
+  src = fetchFromGitHub {
+    owner = "controlplaneio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0rv5qywh8107rqdly1x7wkb6dljalyn9abrkm12bxa7cqscp9b4z";
+  };
+
+  vendorSha256 = "0xngnx67giwp0g7c19xhb6kmc9m3bjlwk2wwp9bn9vwkmss3ysyp";
+
+  # Tests wants to download additional files
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Security risk analysis tool for Kubernetes resources";
+    homepage = "https://github.com/controlplaneio/kubesec";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/ldeep/default.nix b/pkgs/tools/security/ldeep/default.nix
index db4d14ba3ed..82d0456a05b 100644
--- a/pkgs/tools/security/ldeep/default.nix
+++ b/pkgs/tools/security/ldeep/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonApplication rec {
   pname = "ldeep";
-  version = "1.0.10";
+  version = "1.0.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/7mcmAj69NmuiK+xlQijAk39sMLDX8kHatmSI6XYbwE=";
+    sha256 = "sha256-MYVC8fxLW85n8uZVMhb2Zml1lQ8vW9gw/eRLcmemQx4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/security/libmodsecurity/default.nix b/pkgs/tools/security/libmodsecurity/default.nix
index 2222316a742..03aed8c50e0 100644
--- a/pkgs/tools/security/libmodsecurity/default.nix
+++ b/pkgs/tools/security/libmodsecurity/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libmodsecurity";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "SpiderLabs";
     repo = "ModSecurity";
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "00g2407g2679zv73q67zd50z0f1g1ij734ssv2pp77z4chn5dzib";
+    sha256 = "07vry10cdll94sp652hwapn0ppjv3mb7n2s781yhy7hssap6f2vp";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 247e2b66904..72917bfd0ef 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.39"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.0.42"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 97e7b9962ab..a28b4f76688 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 5cba6ecd3c745f45290400f0705400f26913852e
-  ref: refs/tags/6.0.39
+  revision: 57fda58cdde0909e975394b34a8daa39c97f7e1c
+  ref: refs/tags/6.0.42
   specs:
-    metasploit-framework (6.0.39)
+    metasploit-framework (6.0.42)
       actionpack (~> 5.2.2)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
@@ -30,9 +30,9 @@ GIT
       metasploit-concern (~> 3.0.0)
       metasploit-credential (~> 4.0.0)
       metasploit-model (~> 3.1.0)
-      metasploit-payloads (= 2.0.41)
+      metasploit-payloads (= 2.0.44)
       metasploit_data_models (~> 4.1.0)
-      metasploit_payloads-mettle (= 1.0.8)
+      metasploit_payloads-mettle (= 1.0.9)
       mqtt
       msgpack
       nessus_rest
@@ -123,13 +123,13 @@ GEM
     arel-helpers (2.12.0)
       activerecord (>= 3.1.0, < 7)
     aws-eventstream (1.1.1)
-    aws-partitions (1.443.0)
-    aws-sdk-core (3.113.1)
+    aws-partitions (1.449.0)
+    aws-sdk-core (3.114.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.234.0)
+    aws-sdk-ec2 (1.235.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-iam (1.52.0)
@@ -138,7 +138,7 @@ GEM
     aws-sdk-kms (1.43.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.93.0)
+    aws-sdk-s3 (1.94.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
@@ -146,7 +146,7 @@ GEM
       aws-eventstream (~> 1, >= 1.0.2)
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.1.0)
-    bindata (2.4.8)
+    bindata (2.4.9)
     bson (4.12.0)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
@@ -168,11 +168,15 @@ GEM
     eventmachine (1.2.7)
     faker (2.17.0)
       i18n (>= 1.6, < 2)
-    faraday (1.3.0)
+    faraday (1.4.1)
+      faraday-excon (~> 1.1)
       faraday-net_http (~> 1.0)
+      faraday-net_http_persistent (~> 1.1)
       multipart-post (>= 1.2, < 3)
-      ruby2_keywords
+      ruby2_keywords (>= 0.0.4)
+    faraday-excon (1.1.0)
     faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.1.0)
     faye-websocket (0.11.0)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
@@ -194,11 +198,11 @@ GEM
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.4)
-    metasploit-concern (3.0.1)
+    metasploit-concern (3.0.2)
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-credential (4.0.3)
+    metasploit-credential (4.0.5)
       metasploit-concern
       metasploit-model
       metasploit_data_models (>= 3.0.0)
@@ -208,12 +212,12 @@ GEM
       rex-socket
       rubyntlm
       rubyzip
-    metasploit-model (3.1.3)
+    metasploit-model (3.1.4)
       activemodel (~> 5.2.2)
       activesupport (~> 5.2.2)
       railties (~> 5.2.2)
-    metasploit-payloads (2.0.41)
-    metasploit_data_models (4.1.3)
+    metasploit-payloads (2.0.44)
+    metasploit_data_models (4.1.4)
       activerecord (~> 5.2.2)
       activesupport (~> 5.2.2)
       arel-helpers
@@ -223,9 +227,9 @@ GEM
       railties (~> 5.2.2)
       recog (~> 2.0)
       webrick
-    metasploit_payloads-mettle (1.0.8)
+    metasploit_payloads-mettle (1.0.9)
     method_source (1.0.0)
-    mini_portile2 (2.5.0)
+    mini_portile2 (2.5.1)
     minitest (5.14.4)
     mqtt (0.5.0)
     msgpack (1.4.2)
@@ -241,7 +245,7 @@ GEM
     nokogiri (1.11.3)
       mini_portile2 (~> 2.5.0)
       racc (~> 1.4)
-    octokit (4.20.0)
+    octokit (4.21.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
     openssl-ccm (1.2.2)
@@ -312,7 +316,7 @@ GEM
       rex-arch
     rex-ole (0.1.7)
       rex-text
-    rex-powershell (0.1.89)
+    rex-powershell (0.1.90)
       rex-random_identifier
       rex-text
       ruby-rc4
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 6232c85a2f2..fcd37ad4bb2 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -8,13 +8,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.0.39";
+  version = "6.0.42";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-9uoxxcuEJudJGRQfkVBUWDHoZ1sxaIb+Hjf/sEpcqik=";
+    sha256 = "sha256-L4P6QUERoH0JnaTpzrA0UWUYqRepBS97fSexKa8JZQU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 3e195ffcc10..2aa5d4fa836 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -114,30 +114,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vvav3449v3m0nyflcw07sbxlpgqf4pwa2fmirgjvc9r9asssi79";
+      sha256 = "18d990l9mraf8j1akfn1f4l3y6n7shhnr9x5naj6pzv5z3y3dzf4";
       type = "gem";
     };
-    version = "1.443.0";
+    version = "1.449.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i3x8p9gymc9977dcdkz5ca6mrmh7ym6p2mrscbh49nfd9gi5zg0";
+      sha256 = "09asbdcg96l165kq4hrks0hsk4hwr16h1qx22az4m7ld0ylvz3jc";
       type = "gem";
     };
-    version = "3.113.1";
+    version = "3.114.0";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rlq8vifcmz24v1aw8vj2czqj4dnf00smm5ndfpaxz5k6550lbz4";
+      sha256 = "1kcnfr5rw80d46hwp185jniqvbrxcdjy7srh24x7gjm2gpxmm234";
       type = "gem";
     };
-    version = "1.234.0";
+    version = "1.235.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
@@ -164,10 +164,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
+      sha256 = "119f1nf2q1k7xg7h2agm7g8i87abfdkad0l78hhk6y4f3v02niv9";
       type = "gem";
     };
-    version = "1.93.0";
+    version = "1.94.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -204,10 +204,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bmlqjb5h1ry6wm2d903d6yxibpqzzxwqczvlicsqv0vilaca5ic";
+      sha256 = "16z30ca74h1mr452jnj1csv6yfnmdxsz0m1xpjf3svwybrx25rng";
       type = "gem";
     };
-    version = "2.4.8";
+    version = "2.4.9";
   };
   bson = {
     groups = ["default"];
@@ -344,10 +344,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.1";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -359,6 +369,16 @@
     };
     version = "1.0.1";
   };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
   faye-websocket = {
     groups = ["default"];
     platforms = [];
@@ -494,72 +514,72 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19cz0g463wl35gpdy1630n88a9m7fhhlcylspvvwc0m01sipc33g";
+      sha256 = "0zbcnhji80cyj19jkdp8wpi1msg9xfm0lacpm8ggm8fca56234zv";
       type = "gem";
     };
-    version = "3.0.1";
+    version = "3.0.2";
   };
   metasploit-credential = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f6cjvk68yypciycp8vdvhc5hrwmc8qi4y06s1cd77zj4m2skkmn";
+      sha256 = "0wflb4r5mz2g29bzjpwc004h6vca9kd0z02v27wc378jgg6q0gna";
       type = "gem";
     };
-    version = "4.0.3";
+    version = "4.0.5";
   };
   metasploit-framework = {
     groups = ["default"];
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "5cba6ecd3c745f45290400f0705400f26913852e";
-      sha256 = "0adabi5b1zrp3vz8cs1ibdkyhcaqai8927ql354yf9l4rg2k3spn";
+      rev = "57fda58cdde0909e975394b34a8daa39c97f7e1c";
+      sha256 = "01b516pjkc97gmxjy1d92ylihrai6jqcxsd4kl4pv80i850zm0rg";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.0.39";
+    version = "6.0.42";
   };
   metasploit-model = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gmh23c3hc4my244m5lpd4kiysrsprag4rn6kvnnphxiflxvi4f7";
+      sha256 = "10ndgv4c30rq211f5lyngfcp87lxzgc9h8a7jx40wih43dj6faxq";
       type = "gem";
     };
-    version = "3.1.3";
+    version = "3.1.4";
   };
   metasploit-payloads = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nnb6kidfm39qyhv694m7skbvmsp5sjw52633v89zq0ym4y5wld5";
+      sha256 = "0z0cgg4fghcpj3pvjyqnnzll5zvhwpv68dvpz2y0zgij14cvfg7y";
       type = "gem";
     };
-    version = "2.0.41";
+    version = "2.0.44";
   };
   metasploit_data_models = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0li8lphplsmv9x1f14c22w95gjx2lscas3x5py7x7kc05pfv33bg";
+      sha256 = "1gzfvfqs9mf50dcnirc1944a25920s1swjd9g97d1x340651xmmr";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.1.4";
   };
   metasploit_payloads-mettle = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nq6wxsaghj0yqwn988z71d9f0qwglcrliwkgqr9f16vbbv33p36";
+      sha256 = "07l2ahb4c5ay6s5vbcfmipmya2qdj8i29blxk9vdmvs27yzkc8jk";
       type = "gem";
     };
-    version = "1.0.8";
+    version = "1.0.9";
   };
   method_source = {
     groups = ["default"];
@@ -576,10 +596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.5.1";
   };
   minitest = {
     groups = ["default"];
@@ -706,10 +726,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fl517ld5vj0llyshp3f9kb7xyl9iqy28cbz3k999fkbwcxzhlyq";
+      sha256 = "0ak64rb48d8z98nw6q70r6i0i3ivv61iqla40ss5l79491qfnn27";
       type = "gem";
     };
-    version = "4.20.0";
+    version = "4.21.0";
   };
   openssl-ccm = {
     groups = ["default"];
@@ -1026,10 +1046,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wza4g3kkscc17kaw44hnq8qs2nmvppb9awaf27lp4v1c1kdxixs";
+      sha256 = "08a9s82y4bv2bis0szasrrqvz6imwx94ckg259f7w39ng1fbc7b1";
       type = "gem";
     };
-    version = "0.1.89";
+    version = "0.1.90";
   };
   rex-random_identifier = {
     groups = ["default"];
diff --git a/pkgs/tools/security/nbtscanner/default.nix b/pkgs/tools/security/nbtscanner/default.nix
new file mode 100644
index 00000000000..6ad9fdd4770
--- /dev/null
+++ b/pkgs/tools/security/nbtscanner/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nbtscanner";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "jonkgrimes";
+    repo = pname;
+    rev = version;
+    sha256 = "06507a8y41v42cmvjpzimyrzdp972w15fjpc6c6750n1wa2wdl6c";
+  };
+
+  cargoSha256 = "0cis54zmr2x0f4z664lmhk9dzx00hvds6jh3x417308sz7ak11gd";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "NetBIOS scanner written in Rust";
+    homepage = "https://github.com/jonkgrimes/nbtscanner";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/nsjail/001-fix-bison-link-error.patch b/pkgs/tools/security/nsjail/001-fix-bison-link-error.patch
new file mode 100644
index 00000000000..427cea5b02b
--- /dev/null
+++ b/pkgs/tools/security/nsjail/001-fix-bison-link-error.patch
@@ -0,0 +1,30 @@
+From 8e309a0af0851ab54ca7c6d51b6f3d19ee42c8ee Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Wed, 17 Mar 2021 16:36:40 +0200
+Subject: [PATCH] Replace YYUSE call with void cast in src/parser.y
+
+The YYUSE macro was renamed to YY_USE in bison 3.7.5; we might as well
+avoid using it altogether and cast the unused variable to void instead.
+
+Fixes the following linker error:
+
+/usr/bin/ld: kafel/libkafel.a(libkafel.o): in function `kafel_yyerror':
+arm_syscalls.c:(.text+0x6984): undefined reference to `YYUSE'
+---
+ src/parser.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/parser.y b/src/parser.y
+index e0f109c..0e01373 100644
+--- a/kafel/src/parser.y
++++ b/kafel/src/parser.y
+@@ -420,8 +420,8 @@ const_def
+ 
+ void yyerror(YYLTYPE * loc, struct kafel_ctxt* ctxt, yyscan_t scanner,
+              const char *msg) {
++  (void)scanner; /* suppress unused-parameter warning */
+   if (!ctxt->lexical_error) {
+-    YYUSE(scanner);
+     if (loc->filename != NULL) {
+       append_error(ctxt, "%s:%d:%d: %s", loc->filename, loc->first_line, loc->first_column, msg);
+     } else {
diff --git a/pkgs/tools/security/nsjail/default.nix b/pkgs/tools/security/nsjail/default.nix
index d48564ce95b..568113368a0 100644
--- a/pkgs/tools/security/nsjail/default.nix
+++ b/pkgs/tools/security/nsjail/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nsjail";
-  version = "3.0";
+  version = "3.0"; # Bumping? Remove the bison patch.
 
   src = fetchFromGitHub {
     owner           = "google";
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ libnl protobuf protobufc ];
   enableParallelBuilding = true;
 
+  patches = [
+    # To remove after bumping 3.0
+    ./001-fix-bison-link-error.patch
+  ];
+
   preBuild = ''
     makeFlagsArray+=(USER_DEFINES='-DNEWUIDMAP_PATH=${shadow}/bin/newuidmap -DNEWGIDMAP_PATH=${shadow}/bin/newgidmap')
   '';
diff --git a/pkgs/tools/security/ntlmrecon/default.nix b/pkgs/tools/security/ntlmrecon/default.nix
new file mode 100644
index 00000000000..d24d4ed4d68
--- /dev/null
+++ b/pkgs/tools/security/ntlmrecon/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ntlmrecon";
+  version = "0.4";
+  disabled = python3.pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "pwnfoo";
+    repo = "NTLMRecon";
+    rev = "v-${version}";
+    sha256 = "0rrx49li2l9xlcax84qxjf60nbzp3fgq77c36yqmsp0pc9i89ah6";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    colorama
+    iptools
+    requests
+    termcolor
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ntlmrecon" ];
+
+  meta = with lib; {
+    description = "Information enumerator for NTLM authentication enabled web endpoints";
+    homepage = "https://github.com/pwnfoo/NTLMRecon";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/nwipe/default.nix b/pkgs/tools/security/nwipe/default.nix
index d87be0c2974..81ed9849bef 100644
--- a/pkgs/tools/security/nwipe/default.nix
+++ b/pkgs/tools/security/nwipe/default.nix
@@ -1,22 +1,42 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, parted, automake, autoconf, pkg-config }:
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, ncurses
+, parted
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-  version = "0.28";
   pname = "nwipe";
+  version = "0.30";
+
   src = fetchFromGitHub {
     owner = "martijnvanbrummelen";
     repo = "nwipe";
     rev = "v${version}";
-    sha256 = "1aw905lmn1vm6klqn3q7445dwmwbjhcmwnkygpq9rddacgig1gdx";
+    sha256 = "sha256-cNZMFnk4L95jKTyGEUN3DlAChUNZlIjDdZqkkwPjehE=";
   };
-  nativeBuildInputs = [ automake autoconf pkg-config ];
-  buildInputs = [ ncurses parted ];
-  preConfigure = "sh init.sh || :";
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    ncurses
+    parted
+  ];
+
+  preConfigure = ''
+    sh init.sh || :
+  '';
+
   meta = with lib; {
     description = "Securely erase disks";
     homepage = "https://github.com/martijnvanbrummelen/nwipe";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.woffs ];
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ woffs ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/oath-toolkit/default.nix b/pkgs/tools/security/oath-toolkit/default.nix
index ba49da102fb..b1a493f3091 100644
--- a/pkgs/tools/security/oath-toolkit/default.nix
+++ b/pkgs/tools/security/oath-toolkit/default.nix
@@ -1,48 +1,25 @@
-{ lib, stdenv, fetchFromGitLab, fetchpatch, pam, xmlsec, autoreconfHook, pkg-config, libxml2, gtk-doc, perl, gengetopt, bison, help2man }:
+{ lib, stdenv, fetchurl, pam, xmlsec }:
 
 let
   securityDependency =
     if stdenv.isDarwin then xmlsec
     else pam;
 
-in stdenv.mkDerivation {
-  name = "oath-toolkit-2.6.2";
+in stdenv.mkDerivation rec {
+  pname = "oath-toolkit";
+  version = "2.6.6";
 
-  src = fetchFromGitLab {
-    owner = "oath-toolkit";
-    repo = "oath-toolkit";
-    rev = "0dffdec9c5af5c89a5af43add29d8275eefe7414";
-    sha256 = "0n2sl444723f1k0sjmc0mzdwslx51yxac39c2cx2bl3ykacgfv74";
+  src = fetchurl {
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "0v4lrgip08b8xlivsfn3mwql3nv8hmcpzrn6pi3xp88vqwav6s7x";
   };
 
-  patches = [
-    # fix for glibc>=2.28
-    (fetchpatch {
-      name   = "new_glibc_check.patch";
-      url    = "https://sources.debian.org/data/main/o/oath-toolkit/2.6.1-1.3/debian/patches/new-glibc-check.patch";
-      sha256 = "0h75xyy3xsl485v7w27yqkks6z9sgsjmrv6wiswy15fdj5wyciv3";
-    })
-  ];
-
-  buildInputs = [ securityDependency libxml2 perl gengetopt bison ];
-
-  nativeBuildInputs = [ autoreconfHook gtk-doc help2man pkg-config ];
-
-  # man file generation fails when true
-  enableParallelBuilding = false;
-
-  configureFlags = [ "--disable-pskc" ];
-
-  # Replicate the steps from cfg.mk
-  preAutoreconf = ''
-    printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > liboath/man/Makefile.gdoc
-    printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > libpskc/man/Makefile.gdoc
-    touch ChangeLog
-  '';
+  buildInputs = [ securityDependency ];
 
   meta = with lib; {
     description = "Components for building one-time password authentication systems";
     homepage = "https://www.nongnu.org/oath-toolkit/";
+    maintainers = with maintainers; [ schnusch ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/security/passphrase2pgp/default.nix b/pkgs/tools/security/passphrase2pgp/default.nix
index a53e03c3c1e..55e19b94813 100644
--- a/pkgs/tools/security/passphrase2pgp/default.nix
+++ b/pkgs/tools/security/passphrase2pgp/default.nix
@@ -1,14 +1,14 @@
-{ lib, pandoc, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "passphrase2pgp";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "skeeto";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Nje77tn55CKRU6igEA/6IquDhXVVQAdiez6nmN49di4";
+    hash = "sha256-VNOoYYnHsSgiSbVxlBwYUq0JsLa4BwZQSvMVSiyB6rg=";
   };
 
   vendorSha256 = "sha256-7q5nwkj4TP7VgHmV9YBbCB11yTPL7tK4gD+uN4Vw3Cs";
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index 2a75c409305..71bd13c4a72 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchurl, pkg-config, udev, dbus, perl, python3, IOKit }:
+{ stdenv
+, lib
+, fetchurl
+, autoreconfHook
+, pkg-config
+, perl
+, python3
+, dbus
+, polkit
+, systemd
+, IOKit
+}:
 
 stdenv.mkDerivation rec {
   pname = "pcsclite";
@@ -13,14 +24,23 @@ stdenv.mkDerivation rec {
 
   patches = [ ./no-dropdir-literals.patch ];
 
+  postPatch = ''
+    sed -i configure.ac \
+      -e "s@polkit_policy_dir=.*@polkit_policy_dir=$bin/share/polkit-1/actions@"
+  '';
+
   configureFlags = [
+    "--enable-confdir=/etc"
     # The OS should care on preparing the drivers into this location
     "--enable-usbdropdir=/var/lib/pcsc/drivers"
-    "--enable-confdir=/etc"
-  ] ++ lib.optional stdenv.isLinux
-    "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
-  ++ lib.optional (!stdenv.isLinux)
-    "--disable-libsystemd";
+  ]
+  ++ (if stdenv.isLinux then [
+    "--enable-ipcdir=/run/pcscd"
+    "--enable-polkit"
+    "--with-systemdsystemunitdir=${placeholder "bin"}/lib/systemd/system"
+  ] else [
+    "--disable-libsystemd"
+  ]);
 
   postConfigure = ''
     sed -i -re '/^#define *PCSCLITE_HP_DROPDIR */ {
@@ -33,10 +53,12 @@ stdenv.mkDerivation rec {
     moveToOutput bin/pcsc-spy "$dev"
   '';
 
-  nativeBuildInputs = [ pkg-config perl ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoreconfHook pkg-config perl ];
 
   buildInputs = [ python3 ]
-    ++ lib.optionals stdenv.isLinux [ udev dbus ]
+    ++ lib.optionals stdenv.isLinux [ dbus polkit systemd ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   meta = with lib; {
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
index 613388fc6a3..51813526de1 100644
--- a/pkgs/tools/security/pcsctools/default.nix
+++ b/pkgs/tools/security/pcsctools/default.nix
@@ -1,18 +1,33 @@
-{ stdenv, lib, fetchurl, makeWrapper, pkg-config, udev, dbus, pcsclite
-, wget, coreutils, perlPackages
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, pkg-config
+, systemd
+, dbus
+, pcsclite
+, wget
+, coreutils
+, perlPackages
 }:
 
-let deps = lib.makeBinPath [ wget coreutils ];
-
-in stdenv.mkDerivation rec {
-  name = "pcsc-tools-1.5.7";
+stdenv.mkDerivation rec {
+  pname = "pcsc-tools";
+  version = "1.5.7";
 
   src = fetchurl {
-    url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${name}.tar.bz2";
+    url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${pname}-${version}.tar.bz2";
     sha256 = "17b9jxvcxmn007lavan20l25v4jvm6dqc4x9dlqzbg6mjs28zsp0";
   };
 
-  buildInputs = [ udev dbus perlPackages.perl pcsclite ];
+  postPatch = ''
+    substituteInPlace ATR_analysis \
+      --replace /usr/local/pcsc /etc/pcsc \
+      --replace /usr/share/pcsc $out/share/pcsc
+  '';
+
+  buildInputs = [ dbus perlPackages.perl pcsclite ]
+    ++ lib.optional stdenv.isLinux systemd;
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
 
@@ -24,14 +39,16 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/ATR_analysis \
       --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
     wrapProgram $out/bin/pcsc_scan \
-      --set PATH "$out/bin:${deps}"
+      --prefix PATH : "$out/bin:${lib.makeBinPath [ coreutils wget ]}"
+
+    install -Dm444 -t $out/share/pcsc smartcard_list.txt
   '';
 
   meta = with lib; {
     description = "Tools used to test a PC/SC driver, card or reader";
     homepage = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/plasma-pass/default.nix b/pkgs/tools/security/plasma-pass/default.nix
new file mode 100644
index 00000000000..20f64b725f1
--- /dev/null
+++ b/pkgs/tools/security/plasma-pass/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchFromGitLab, cmake, extra-cmake-modules
+, ki18n
+, kitemmodels
+, oathToolkit
+, qgpgme
+, plasma-framework
+, qt5 }:
+
+mkDerivation rec {
+  pname = "plasma-pass";
+  version = "1.2.0";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "plasma";
+    repo = "plasma-pass";
+    rev = "v${version}";
+    sha256 = "1w2mzxyrh17x7da62b6sg1n85vnh1q77wlrfxwfb1pk77y59rlf1";
+  };
+
+  buildInputs  = [
+    ki18n
+    kitemmodels
+    oathToolkit
+    qgpgme
+    plasma-framework
+    qt5.qtbase
+    qt5.qtdeclarative
+  ];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  meta = with lib; {
+    description = "A Plasma applet to access passwords from pass, the standard UNIX password manager";
+    homepage = "https://invent.kde.org/plasma/plasma-pass";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix
index 2d96c89970e..42332e40cc3 100644
--- a/pkgs/tools/security/prs/default.nix
+++ b/pkgs/tools/security/prs/default.nix
@@ -1,6 +1,7 @@
 { lib
 , rustPlatform
 , fetchFromGitLab
+, installShellFiles
 , pkg-config
 , python3
 , dbus
@@ -12,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prs";
-  version = "0.2.7";
+  version = "0.2.10";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "prs";
     rev = "v${version}";
-    sha256 = "sha256-1Jrgf5UW6k0x3q6kQIB6Q7moOhConEnUU9r+21W5Uu8=";
+    sha256 = "sha256-czGyBdy4emw7bUV6Nn+k+fJm+JqR6o0TEEUuIbEsml4=";
   };
 
-  cargoSha256 = "sha256-N3pLW/OGeurrl+AlwdfbZ3T7WzEOAuyUMdIR164Xp7k=";
+  cargoSha256 = "sha256-jnBYuk7uvnbvT2OQ35DJk6WIUSqJiZCvsmpSIxw9X1U=";
 
   postPatch = ''
     # The GPGME backend is recommended
@@ -31,10 +32,16 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  nativeBuildInputs = [ gpgme pkg-config python3 ];
+  nativeBuildInputs = [ gpgme installShellFiles pkg-config python3 ];
 
   buildInputs = [ dbus glib gpgme gtk3 libxcb ];
 
+  postInstall = ''
+    for shell in bash fish zsh; do
+      installShellCompletion --cmd prs --$shell <($out/bin/prs internal completions $shell --stdout)
+    done
+  '';
+
   meta = with lib; {
     description = "Secure, fast & convenient password manager CLI using GPG and git to sync";
     homepage = "https://gitlab.com/timvisee/prs";
diff --git a/pkgs/tools/security/rbw/bump-security-framework-crate.patch b/pkgs/tools/security/rbw/bump-security-framework-crate.patch
deleted file mode 100644
index 9074dd925b8..00000000000
--- a/pkgs/tools/security/rbw/bump-security-framework-crate.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Bump security-framework from 2.1.1 to 2.1.2
-
-security-framework=2.1.1 doesn't build on Darwin 10.12.
-https://github.com/kornelski/rust-security-framework/issues/124
-
---- i/Cargo.lock
-+++ w/Cargo.lock
-@@ -1361,9 +1361,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
- 
- [[package]]
- name = "security-framework"
--version = "2.1.1"
-+version = "2.1.2"
- source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166"
-+checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d"
- dependencies = [
-  "bitflags",
-  "core-foundation",
diff --git a/pkgs/tools/security/rbw/default.nix b/pkgs/tools/security/rbw/default.nix
index c1f99719d76..96616987510 100644
--- a/pkgs/tools/security/rbw/default.nix
+++ b/pkgs/tools/security/rbw/default.nix
@@ -5,6 +5,7 @@
 , openssl
 , pkg-config
 , makeWrapper
+, installShellFiles
 , Security
 , libiconv
 
@@ -20,21 +21,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "1xihjx4f8kgyablxsy8vgn4w6i92p2xm5ncacdk39npa5g8wadlx";
+    sha256 = "14cnqc5cf6qm2g9ypv2pbqbvymawyrqn3fc778labgqg24khqcyq";
   };
 
-  cargoSha256 = "0fvs06wd05a90dggi7n46d5gl9flnciqzg9j3ijmz3z5bb6aky1b";
-
-  cargoPatches = [ ./bump-security-framework-crate.patch ];
+  cargoSha256 = "0izn5bcvk1rx69sjwyfc49nmvw7k0jysqb0bpdpwdliaa06ggl86";
 
   nativeBuildInputs = [
     pkg-config
     makeWrapper
+    installShellFiles
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
@@ -60,7 +60,12 @@ rustPlatform.buildRustPackage rec {
     export OPENSSL_LIB_DIR="${openssl.out}/lib"
   '';
 
-  postInstall = lib.optionalString withFzf ''
+  postInstall = ''
+    for shell in bash zsh fish; do
+      $out/bin/rbw gen-completions $shell > rbw.$shell
+      installShellCompletion rbw.$shell
+    done
+  '' + lib.optionalString withFzf ''
     cp bin/rbw-fzf $out/bin
   '' + lib.optionalString withRofi ''
     cp bin/rbw-rofi $out/bin
diff --git a/pkgs/tools/security/tboot/default.nix b/pkgs/tools/security/tboot/default.nix
index bf13fe7822e..9c5d44c6d60 100644
--- a/pkgs/tools/security/tboot/default.nix
+++ b/pkgs/tools/security/tboot/default.nix
@@ -1,27 +1,23 @@
-{ lib, stdenv, fetchurl, trousers, openssl, zlib }:
+{ lib, stdenv, fetchurl, openssl, perl, trousers, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "tboot";
-  version = "1.9.8";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/tboot/${pname}-${version}.tar.gz";
-    sha256 = "06f0ggl6vrb5ghklblvh2ixgmmjv31rkp1vfj9qm497iqwq9ac00";
+    sha256 = "18bnkwnlk16cc20nysqfcjx006idi7jmmhahk8vk09w458bhaajg";
   };
 
-  patches = [ ./tboot-add-well-known-secret-option-to-lcp_writepol.patch ];
-
-  buildInputs = [ trousers openssl zlib ];
+  buildInputs = [ openssl trousers zlib ];
 
   enableParallelBuilding = true;
 
-  hardeningDisable = [ "pic" "stackprotector" ];
-
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=address-of-packed-member" ];
+  preConfigure = ''
+    substituteInPlace tboot/Makefile --replace /usr/bin/perl ${perl}/bin/perl
 
-  configurePhase = ''
-    for a in lcptools utils tb_polgen; do
-      substituteInPlace $a/Makefile --replace /usr/sbin /sbin
+    for a in lcptools-v2 tb_polgen utils; do
+      substituteInPlace "$a/Makefile" --replace /usr/sbin /sbin
     done
     substituteInPlace docs/Makefile --replace /usr/share /share
   '';
@@ -31,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM";
     homepage    = "https://sourceforge.net/projects/tboot/";
+    changelog   = "https://sourceforge.net/p/tboot/code/ci/v${version}/tree/CHANGELOG";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ak ];
     platforms   = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch b/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch
deleted file mode 100644
index a16ba9f4fba..00000000000
--- a/pkgs/tools/security/tboot/tboot-add-well-known-secret-option-to-lcp_writepol.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff -urp tboot-1.8.0.orig/lcptools/writepol.c tboot-1.8.0/lcptools/writepol.c
---- tboot-1.8.0.orig/lcptools/writepol.c	2014-01-30 10:34:57.000000000 +0100
-+++ tboot-1.8.0/lcptools/writepol.c	2014-02-12 01:48:51.523581057 +0100
-@@ -40,6 +40,7 @@
- #include <getopt.h>
- #include <trousers/tss.h>
- #include <trousers/trousers.h>
-+#include <tss/tss_defines.h>
- 
- #define PRINT   printf
- #include "../include/uuid.h"
-@@ -51,14 +52,15 @@ static uint32_t index_value = 0;
- static char *file_arg=NULL;
- static uint32_t fLeng;
- static unsigned char *policy_data = NULL;
--static char *password = NULL;
-+static const char *password = NULL;
- static uint32_t passwd_length = 0;
-+static const char well_known_secret[] = TSS_WELL_KNOWN_SECRET;
- static int help_input = 0;
- static unsigned char empty_pol_data[] = {0};
- 
--static const char *short_option = "ehi:f:p:";
-+static const char *short_option = "ehi:f:p:Z";
- static const char *usage_string = "lcp_writepol -i index_value "
--                                  "[-f policy_file] [-e] [-p passwd] [-h]";
-+                                  "[-f policy_file] [-e] [-p passwd|-Z] [-h]";
- 
- static const char *option_strings[] = {
-     "-i index value: uint32/string.\n"
-@@ -67,6 +69,7 @@ static const char *option_strings[] = {
-     "\tINDEX_AUX:0x50000002 or \"aux\"\n",
-     "-f file_name: string. File name of the policy data is stored. \n",
-     "-p password: string. \n",
-+    "-Z use well known secret as password. \n",
-     "-e write 0 length data to the index.\n"
-     "\tIt will be used for some special index.\n"
-     "\tFor example, the index with permission WRITEDEFINE.\n",
-@@ -119,6 +122,11 @@ parse_cmdline(int argc, const char * arg
-                 fLeng = 0;
-                 break;
- 
-+            case 'Z':
-+                password = well_known_secret;
-+                passwd_length = sizeof(well_known_secret);
-+                break;
-+
-             case 'h':
-                 help_input = 1;
-                 break;
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 0291d7bb3aa..2e1e1ae2a67 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.5.6";
+  version = "0.4.5.7";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0cz78pjw2bc3kl3ziip1nhhbq89crv315rf1my3zmmgd9xws7jr2";
+    sha256 = "0x7hhl0svfc4yh9xvq7kkzgmwjcw1ak9i0794wjg4biy2fmclzs4";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/pkgs/tools/security/tpm2-tools/default.nix b/pkgs/tools/security/tpm2-tools/default.nix
index 73368f40476..52964b620dd 100644
--- a/pkgs/tools/security/tpm2-tools/default.nix
+++ b/pkgs/tools/security/tpm2-tools/default.nix
@@ -21,10 +21,8 @@ stdenv.mkDerivation rec {
       tpm2-tss
     ] ++ (lib.optional abrmdSupport tpm2-abrmd));
   in ''
-    for bin in $out/bin/*; do
-      wrapProgram $bin \
-        --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
-    done
+    wrapProgram $out/bin/tpm2 --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
+    wrapProgram $out/bin/tss2 --suffix LD_LIBRARY_PATH : "${ldLibraryPath}"
   '';
 
 
diff --git a/pkgs/tools/security/traitor/default.nix b/pkgs/tools/security/traitor/default.nix
new file mode 100644
index 00000000000..8718c92cd3d
--- /dev/null
+++ b/pkgs/tools/security/traitor/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "traitor";
+  version = "0.0.3";
+
+  src = fetchFromGitHub {
+    owner = "liamg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mffh4k87ybl0mpglgi2yfwksygrh62mcmkcmfcbszlh5pagsch1";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "Automatic Linux privilege escalation";
+    longDescription = ''
+      Automatically exploit low-hanging fruit to pop a root shell. Traitor packages
+      up a bunch of methods to exploit local misconfigurations and vulnerabilities
+      (including most of GTFOBins) in order to pop a root shell.
+    '';
+    homepage = "https://github.com/liamg/traitor";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/trousers/allow-non-tss-config-file-owner.patch b/pkgs/tools/security/trousers/allow-non-tss-config-file-owner.patch
index 774a14f72ba..391eb1ad589 100644
--- a/pkgs/tools/security/trousers/allow-non-tss-config-file-owner.patch
+++ b/pkgs/tools/security/trousers/allow-non-tss-config-file-owner.patch
@@ -7,10 +7,10 @@ diff -ur trousers-0.3.11.2.orig/src/tcsd/tcsd_conf.c trousers-0.3.11.2/src/tcsd/
  
 +#ifndef ALLOW_NON_TSS_CONFIG_FILE
  	/* make sure user/group TSS owns the conf file */
- 	if (pw->pw_uid != stat_buf.st_uid || grp->gr_gid != stat_buf.st_gid) {
+ 	if (stat_buf.st_uid != 0 || grp->gr_gid != stat_buf.st_gid) {
  		LogError("TCSD config file (%s) must be user/group %s/%s", tcsd_config_file,
 @@ -775,6 +776,7 @@
- 		LogError("TCSD config file (%s) must be mode 0600", tcsd_config_file);
+ 		LogError("TCSD config file (%s) must be mode 0640", tcsd_config_file);
  		return TCSERR(TSS_E_INTERNAL_ERROR);
  	}
 +#endif
diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix
index c7a11e16f39..16536409b5e 100644
--- a/pkgs/tools/security/trousers/default.nix
+++ b/pkgs/tools/security/trousers/default.nix
@@ -1,17 +1,15 @@
-{ lib, stdenv, fetchurl, openssl, pkg-config }:
+{ lib, stdenv, fetchurl, openssl, pkg-config, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "trousers";
-  version = "0.3.14";
+  version = "0.3.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/trousers/trousers/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0iwgsbrbb7nfqgl61x8aailwxm8akxh9gkcwxhsvf50x4qx72l6f";
+    sha256 = "0zy7r9cnr2gvwr2fb1q4fc5xnvx405ymcbrdv7qsqwl3a4zfjnqy";
   };
 
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config autoreconfHook ];
   buildInputs = [ openssl ];
 
   patches = [ ./allow-non-tss-config-file-owner.patch ];
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index f8e831ef2c3..e04ab9df08c 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.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "1lsz8fyjcxamvs9n3m974q2jxhv828fb5p6qx8wlqdaahqgrc8qg";
+    sha256 = "0ncy99gw2pp5v2qbbgvri7qlirjj8qsvgjmjqyx3gddlpzpyiz3q";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index fc8b2865f25..40ce05331f9 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,26 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  version = "1.7.0";
+  version = "1.7.1";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "0d8wqxqilv1jdf4dl7w2jp3lfh0w0rawidmhjlj3ykpg6l3gblma";
+      sha256 = "021qa8jcqwy27q83lvamvv5zqnkwk5y0jsb8al5yxpgzxqnmsyb1";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "128r0phm5i1cpayz0ia8qsmnk1ia3qylidy9f8iwk3l8r834s4yd";
+      sha256 = "02hhxpa8craa91nfgvwziswisfdnqw4gbwrxyxr753v1y00y1sz8";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "01vxjv95his8jqin2cwcw691wdwn6p876rp021bmvr6diw6clkrp";
+      sha256 = "141zzfwrjdjv8ymrdc4mxs2f4cphdir4xjaa40s571ri38in33zh";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "0ahdv14fz7ybl11b61z7j13nbjd6hp6fcpc5bk6y8lh4qj8x0pzg";
+      sha256 = "1plrmmy86zb2ij49dk2mwn364i2n83ch4gjz5pln2d4wjx21gpaq";
     };
   };
 
diff --git a/pkgs/tools/security/wprecon/default.nix b/pkgs/tools/security/wprecon/default.nix
new file mode 100644
index 00000000000..401692bdf67
--- /dev/null
+++ b/pkgs/tools/security/wprecon/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "wprecon";
+  version = "1.6.3a";
+
+  src = fetchFromGitHub {
+    owner = "blackbinn";
+    repo = pname;
+    rev = version;
+    sha256 = "0gqi4799ha3mf8r7ini0wj4ilkfsh80vnnxijfv9a343r6z5w0dn";
+  };
+
+  vendorSha256 = "1sab58shspll96rqy1rp659s0yikqdcx59z9b88d6p4w8a98ns87";
+
+  meta = with lib; {
+    description = "WordPress vulnerability recognition tool";
+    homepage = "https://github.com/blackbinn/wprecon";
+    # License Zero Noncommercial Public License 2.0.1
+    # https://github.com/blackbinn/wprecon/blob/master/LICENSE
+    license = with licenses; [ unfree ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/xorex/default.nix b/pkgs/tools/security/xorex/default.nix
new file mode 100644
index 00000000000..84919f54826
--- /dev/null
+++ b/pkgs/tools/security/xorex/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "xorex";
+  version = "0.3.0";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "Neo23x0";
+    repo = "xorex";
+    rev = version;
+    sha256 = "rBsOSXWnHRhpLmq20XBuGx8gGBM8ouMyOISkbzUcvE4=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    chmod +x xorex.py
+    mv xorex.py $out/bin/xorex
+
+    runHook postInstall
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    colorama
+    pefile
+  ];
+
+  meta = with lib; {
+    description = "XOR Key Extractor";
+    homepage = "https://github.com/Neo23x0/xorex";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/security/yarGen/default.nix b/pkgs/tools/security/yarGen/default.nix
new file mode 100644
index 00000000000..8a2d51b8e19
--- /dev/null
+++ b/pkgs/tools/security/yarGen/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, python3
+, fetchFromGitHub
+, fetchpatch
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "yarGen";
+  version = "0.23.4";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "Neo23x0";
+    repo = "yarGen";
+    rev = version;
+    sha256 = "6PJNAeeLAyUlZcIi0g57sO1Ex6atn7JhbK9kDbNrZ6A=";
+  };
+
+  patches = [
+    # https://github.com/Neo23x0/yarGen/pull/33
+    (fetchpatch {
+      name = "use-built-in-scandir.patch";
+      url = "https://github.com/Neo23x0/yarGen/commit/cae14ac8efeb5536885792cae99d1d0f7fb6fde3.patch";
+      sha256 = "0z6925r7n1iysld5c8li5nkm1dbxg8j7pn0626a4vic525vf8ndl";
+    })
+    # https://github.com/Neo23x0/yarGen/pull/34
+    (fetchpatch {
+      name = "use-cwd-for-abspath.patch";
+      url = "https://github.com/Neo23x0/yarGen/commit/441dafb702149f5728c2c6736fc08741a46deb26.patch";
+      sha256 = "lNp3oC2BM7tBzN4AetvPr+xJLz6KkZxQmsldeZaxJQU=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace yarGen.py \
+      --replace "./3rdparty/strings.xml" "$out/share/yarGen/3rdparty/strings.xml"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dt "$out/bin" yarGen.py
+    install -Dt "$out/share/yarGen/3rdparty" 3rdparty/strings.xml
+
+    runHook postInstall
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pefile
+    lxml
+  ];
+
+  meta = with lib; {
+    description = "A generator for YARA rules";
+    homepage = "https://github.com/Neo23x0/yarGen";
+    license = licenses.bsd3;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/security/yubikey-agent/default.nix b/pkgs/tools/security/yubikey-agent/default.nix
index d4f3e1567ca..305f5a4fe79 100644
--- a/pkgs/tools/security/yubikey-agent/default.nix
+++ b/pkgs/tools/security/yubikey-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "yubikey-agent";
-  version = "0.1.3";
+  version = "unstable-2021-02-18";
 
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "07gix5wrakn4z846zhvl66lzwx58djrfnn6m8v7vc69l9jr3kihr";
+    rev = "8cadc13d107757f8084d9d2b93ea64ff0c1748e8";
+    sha256 = "1lklgq9qkqil5s0g56wbhs0vpr9c1bd4ir7bkrjwqj75ygxim8ml";
   };
 
   buildInputs =
@@ -25,7 +25,7 @@ buildGoModule rec {
     substituteInPlace main.go --replace 'notify-send' ${libnotify}/bin/notify-send
   '';
 
-  vendorSha256 = "128mlsagj3im6h0p0ndhzk29ya47g19im9dldx3nmddf2jlccj2h";
+  vendorSha256 = "1zx1w2is61471v4dlmr4wf714zqsc8sppik671p7s4fis5vccsca";
 
   doCheck = false;
 
@@ -42,7 +42,7 @@ buildGoModule rec {
   # See https://github.com/FiloSottile/yubikey-agent/pull/43
   + lib.optionalString stdenv.isLinux ''
     mkdir -p $out/lib/systemd/user
-    substitute ${./yubikey-agent.service} $out/lib/systemd/user/yubikey-agent.service \
+    substitute contrib/systemd/user/yubikey-agent.service $out/lib/systemd/user/yubikey-agent.service \
       --replace 'ExecStart=yubikey-agent' "ExecStart=$out/bin/yubikey-agent"
   '';
 
diff --git a/pkgs/tools/security/yubikey-agent/yubikey-agent.service b/pkgs/tools/security/yubikey-agent/yubikey-agent.service
deleted file mode 100644
index 7a91f902544..00000000000
--- a/pkgs/tools/security/yubikey-agent/yubikey-agent.service
+++ /dev/null
@@ -1,35 +0,0 @@
-[Unit]
-Description=Seamless ssh-agent for YubiKeys
-Documentation=https://filippo.io/yubikey-agent
-
-[Service]
-ExecStart=yubikey-agent -l %t/yubikey-agent/yubikey-agent.sock
-ExecReload=/bin/kill -HUP $MAINPID
-ProtectSystem=strict
-ProtectKernelLogs=yes
-ProtectKernelModules=yes
-ProtectKernelTunables=yes
-ProtectControlGroups=yes
-ProtectClock=yes
-ProtectHostname=yes
-PrivateTmp=yes
-PrivateDevices=yes
-PrivateUsers=yes
-IPAddressDeny=any
-RestrictAddressFamilies=AF_UNIX
-RestrictNamespaces=yes
-RestrictRealtime=yes
-RestrictSUIDSGID=yes
-LockPersonality=yes
-CapabilityBoundingSet=
-SystemCallFilter=@system-service
-SystemCallFilter=~@privileged @resources
-SystemCallErrorNumber=EPERM
-SystemCallArchitectures=native
-NoNewPrivileges=yes
-KeyringMode=private
-UMask=0177
-RuntimeDirectory=yubikey-agent
-
-[Install]
-WantedBy=default.target
diff --git a/pkgs/tools/system/awstats/default.nix b/pkgs/tools/system/awstats/default.nix
index 88162780cb7..e0fb92b519f 100644
--- a/pkgs/tools/system/awstats/default.nix
+++ b/pkgs/tools/system/awstats/default.nix
@@ -2,11 +2,11 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "awstats";
-  version = "7.7";
+  version = "7.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/awstats/${pname}-${version}.tar.gz";
-    sha256 = "0z3p77jnpjilajs9yv87r8xla2x1gjqlvrhpbgbh5ih73386v3j2";
+    sha256 = "1f6l0hd01jmz7hpg0py8qixxiq50n8gl37iypayskxmy05z8craa";
   };
 
   postPatch = ''
@@ -54,7 +54,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     description = "Real-time logfile analyzer to get advanced statistics";
-    homepage = "http://awstats.org";
+    homepage = "https://awstats.org";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/system/bpytop/default.nix b/pkgs/tools/system/bpytop/default.nix
index f10c3f628b8..ca53a1956e0 100644
--- a/pkgs/tools/system/bpytop/default.nix
+++ b/pkgs/tools/system/bpytop/default.nix
@@ -1,17 +1,23 @@
-{ lib, stdenv, python3Packages, fetchFromGitHub, makeWrapper, substituteAll }:
+{ lib
+, stdenv
+, python3Packages
+, fetchFromGitHub
+, makeWrapper
+}:
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.63";
+  version = "1.0.64";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5KTqiPqYBDI1KFQ+2WN7QZFL/YSb+MPPWbKzJTUa8Zw=";
+    sha256 = "sha256-BwpMBPTWSrfmz7SHYa1+SZ79V2YZdIkZcOTLtlVlgr8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
+
   propagatedBuildInputs = with python3Packages; [ python psutil ];
 
   dontBuild = true;
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index c9479dca906..03d52c100a8 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
@@ -7,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "4.10.0";
+  version = "4.11.1";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qYxWjvXGaygoe88muQmQWlDJfM04wqxHy8+l7KO688U=";
+    sha256 = "sha256-e9TYArmNWnK8XXcniAQCegrfWAUfTKKuClgdSTQep0U=";
   };
 
   vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias=";
@@ -35,7 +34,14 @@ buildGoModule rec {
     installManPage gdu.1
   '';
 
-  doCheck = !(stdenv.isAarch64 || stdenv.isDarwin);
+  # tests fail with:
+  #  dir_test.go:76:
+  #              Error Trace:    dir_test.go:76
+  #              Error:          Not equal:
+  #                              expected: 0
+  #                              actual  : 512
+  #              Test:           TestFlags
+  doCheck = false;
 
   meta = with lib; {
     description = "Disk usage analyzer with console interface";
diff --git a/pkgs/tools/system/gptman/default.nix b/pkgs/tools/system/gptman/default.nix
new file mode 100644
index 00000000000..5209856edeb
--- /dev/null
+++ b/pkgs/tools/system/gptman/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gptman";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "cecton";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11zyjrw4f8gi5s4sd2kl3sdiz0avq7clr8zqnwl04y61b3fpg7y1";
+  };
+
+  cargoSha256 = "1cp8cyrd7ab8r2j28b69c2p3ysix5b9hpsqk07cmzgqwwml0qj12";
+
+  meta = with lib; {
+    description = "A CLI tool for Linux to copy a partition from one disk to another and more.";
+    homepage = "https://github.com/cecton/gptman";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ akshgpt7 ];
+  };
+}
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index 9048aa966f7..503df3a31f9 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.72";
+  version = "21.73";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "sha256-T/netiZqox+qa19wH+h8cbsGbiM+9VrSEIjccrPYqws=";
+    sha256 = "sha256-u5EXU+BrTMeDbZAv8WyBTyFcZHdBIUMpJSLTYgf3Mo8=";
   };
 
-  patchPhase = ''
+  postPatch = ''
     # VERSION and changelog are usually generated using Git
     # unless HWINFO_VERSION is defined (see Makefile)
     export HWINFO_VERSION="${version}"
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Hardware detection tool from openSUSE";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "https://github.com/openSUSE/hwinfo";
     maintainers = with maintainers; [ bobvanderlinden ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index d529e9cf025..b03a7c14a7d 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -22,13 +22,13 @@ let
     ++ recommendedDisplayInformationPrograms;
 in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.3.03-1";
+  version = "3.3.04-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "sha256-OFjhMlBR1QUYUvpuFATCWZWZp2dop30Iz8qVCIK2UN0=";
+    sha256 = "sha256-/EutIHQGLiRcRD/r8LJYG7oJBb7EAhR5cn6QiC7zMOc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -57,6 +57,6 @@ in stdenv.mkDerivation rec {
     changelog = "https://github.com/smxi/inxi/blob/${version}/inxi.changelog";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/text/amber/default.nix b/pkgs/tools/text/amber/default.nix
index 632a318e862..1cd9e74f194 100644
--- a/pkgs/tools/text/amber/default.nix
+++ b/pkgs/tools/text/amber/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, rustPlatform
-, Security
+, libiconv, Security
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-opRinhTmhZxpAwHNiVOLXL8boQf09Y1NXrWQ6HWQYQ0=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with lib; {
     description = "A code search-and-replace tool";
diff --git a/pkgs/tools/text/chroma/default.nix b/pkgs/tools/text/chroma/default.nix
index 390793ffaf1..388d9b92273 100644
--- a/pkgs/tools/text/chroma/default.nix
+++ b/pkgs/tools/text/chroma/default.nix
@@ -2,15 +2,14 @@
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner  = "alecthomas";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0vzxd0jvjaakwjvkkkjppakjb00z44k7gb5ng1i4924agh24n5ka";
+    sha256 = "0zzk4wcjgxa9lsx8kwpmxvcw67f2fr7ai37jxmdahnws0ai2c2f7";
     leaveDotGit = true;
-    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ git ];
@@ -27,7 +26,7 @@ buildGoModule rec {
       --replace 'date    = "?"' "date = \"$date\""
   '';
 
-  vendorSha256 = "16cnc4scgkx8jan81ymha2q1kidm6hzsnip5mmgbxpqcc2h7hv9m";
+  vendorSha256 = "0y8mp08zccn9qxrsj9j7vambz8dwzsxbbgrlppzam53rg8rpxhrg";
 
   subPackages = [ "cmd/chroma" ];
 
diff --git a/pkgs/tools/text/dcs/default.nix b/pkgs/tools/text/dcs/default.nix
new file mode 100644
index 00000000000..610b494439c
--- /dev/null
+++ b/pkgs/tools/text/dcs/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, python3Packages
+, perl
+, zopfli
+, stdenv
+}:
+buildGoModule {
+  pname = "dcs";
+  version = "unstable-2021-04-07";
+
+  src = fetchFromGitHub {
+    owner = "Debian";
+    repo = "dcs";
+    rev = "da46accc4d55e9bfde1a6852ac5a9e730fcbbb2c";
+    sha256 = "N+6BXlKn1YTlh0ZdPNWa0nuJNcQtlUIc9TocM8cbzQk=";
+  };
+
+  vendorSha256 = "l2mziuisx0HzuP88rS5M+Wha6lu8P036wJYZlmzjWfs=";
+
+  # Depends on dcs binaries
+  doCheck = false;
+
+  nativeBuildInputs = [
+    python3Packages.slimit
+    (perl.withPackages (p: [ p.CSSMinifier ]))
+    zopfli
+  ];
+
+  postBuild = ''
+    make -C static -j$NIX_BUILD_CORES
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/dcs
+    cp -r cmd/dcs-web/templates $out/share/dcs
+    cp -r static $out/share/dcs
+  '';
+
+  meta = with lib; {
+    description = "Debian Code Search";
+    homepage = "https://github.com/Debian/dcs";
+    license = licenses.bsd3;
+    maintainers = teams.determinatesystems.members;
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/pkgs/tools/text/fastmod/default.nix b/pkgs/tools/text/fastmod/default.nix
index ba2bedd5eac..e838e2931c7 100644
--- a/pkgs/tools/text/fastmod/default.nix
+++ b/pkgs/tools/text/fastmod/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fastmod";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nrh6h5imbpl7i0sqqm16x9ggazww5739vng1ay1v6sgbbs0a095";
+    sha256 = "sha256-Lv8hARD/aVWiWpJQmPWPeACpX15+3NogoUl5yh63E7A=";
   };
 
-  cargoSha256 = "18bspi59vfnqijxgipmv2h6h5iy7qynpk1ph46yhjsnndjlxxcba";
+  cargoSha256 = "sha256-L1MKoVacVKcpEG2IfS+eENxFZNiSaTDTxfFbFlvzYl8=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/text/frangipanni/default.nix b/pkgs/tools/text/frangipanni/default.nix
index def134af505..58da1a4be4d 100644
--- a/pkgs/tools/text/frangipanni/default.nix
+++ b/pkgs/tools/text/frangipanni/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "frangipanni";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "birchb1024";
     repo = "frangipanni";
     rev = "v${version}";
-    sha256 = "sha256-RzXfsaT/CUyWCpB5JGgl511gxgvzerqgwjpORgzyPCQ=";
+    sha256 = "sha256-jIXyqwZWfCBSDTTodHTct4V5rjYv7h4Vcw7cXOFk17w=";
   };
 
   vendorSha256 = "sha256-TSN5M/UCTtfoTf1hDCfrJMCFdSwL/NVXssgt4aefom8=";
diff --git a/pkgs/tools/text/highlight/default.nix b/pkgs/tools/text/highlight/default.nix
index 56d0a234527..657dc548f86 100644
--- a/pkgs/tools/text/highlight/default.nix
+++ b/pkgs/tools/text/highlight/default.nix
@@ -5,13 +5,13 @@ with lib;
 let
   self = stdenv.mkDerivation rec {
     pname = "highlight";
-    version = "3.60";
+    version = "4.0";
 
     src = fetchFromGitLab {
       owner = "saalen";
       repo = "highlight";
       rev = "v${version}";
-      sha256 = "sha256-1EBdtORd9P5DJUmbZa9KjR3UUoHOKLbjqbxpFi5WFvQ=";
+      sha256 = "sha256-WWbT0CfrbHgpU5HQycRhU7Ymey1LKd/ruoF91F3mHdE=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 90ddd5b6929..810e3feaa22 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "5.2";
+  version = "5.3";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "1fz3rxqg5z2jxbalraz8lwkzj0jh69zzfmf3vpwywilvl7xlhdrd";
+    sha256 = "1km20ajqb65vkhkrf94zy5srcss66ix8padp7ng59pa8pj11wmi2";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share
     mv -- * $out/share/
 
@@ -22,6 +24,8 @@ stdenv.mkDerivation rec {
 
     makeWrapper ${jre}/bin/java $out/bin/languagetool-http-server \
       --add-flags "-cp $out/share/languagetool-server.jar org.languagetool.server.HTTPServer"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/text/mdbook-mermaid/default.nix b/pkgs/tools/text/mdbook-mermaid/default.nix
new file mode 100644
index 00000000000..b29fbbd6e0d
--- /dev/null
+++ b/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -0,0 +1,24 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mdbook-mermaid";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "badboy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-UMYWRQeSQwWVJla/+RPlAXPMuFVnxqDtYDxLKmbMw4g=";
+  };
+
+  cargoSha256 = "sha256-nhJS2QZUyGeNRMS9D+P+QPMDHK2PqVK/H2AKaP7EECw=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
+  meta = with lib; {
+    description = "A preprocessor for mdbook to add mermaid.js support";
+    homepage = "https://github.com/badboy/mdbook-mermaid";
+    license = [ licenses.mpl20 ];
+    maintainers = with maintainers; [ xrelkd ];
+  };
+}
diff --git a/pkgs/tools/text/ocrmypdf/default.nix b/pkgs/tools/text/ocrmypdf/default.nix
index 6843e945fd9..99e2bf06508 100644
--- a/pkgs/tools/text/ocrmypdf/default.nix
+++ b/pkgs/tools/text/ocrmypdf/default.nix
@@ -30,14 +30,14 @@ let
 in
 buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "11.6.0";
+  version = "11.7.3";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "0inmmpam0vcm5n4sm6lh9p5swk44clknvm1cdwk9cax01mdqljza";
+    sha256 = "0gs2w9kl5wwrs0hx2sivq3pdvpf3lkaifblwfbz5g31yl770blji";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -85,5 +85,6 @@ buildPythonApplication rec {
     license = with licenses; [ mpl20 mit ];
     platforms = platforms.linux;
     maintainers = [ maintainers.kiwi ];
+    changelog  = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst";
   };
 }
diff --git a/pkgs/tools/text/ripgrep-all/default.nix b/pkgs/tools/text/ripgrep-all/default.nix
index 5d6a74327d4..0b324a0a772 100644
--- a/pkgs/tools/text/ripgrep-all/default.nix
+++ b/pkgs/tools/text/ripgrep-all/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg_3
+{ stdenv, lib, fetchFromGitHub, rustPlatform, makeWrapper, ffmpeg
 , pandoc, poppler_utils, ripgrep, Security, imagemagick, tesseract
 }:
 
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     wrapProgram $out/bin/rga \
-      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg_3 pandoc poppler_utils ripgrep imagemagick tesseract ]}"
+      --prefix PATH ":" "${lib.makeBinPath [ ffmpeg pandoc poppler_utils ripgrep imagemagick tesseract ]}"
   '';
 
   # Use upstream's example data to run a couple of queries to ensure the dependencies
@@ -58,5 +58,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/phiresky/ripgrep-all";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ zaninime ma27 ];
+    mainProgram = "rga";
   };
 }
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 8c9eef9cc3d..6417fb0f93b 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -51,5 +51,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ tailhook globin ma27 zowoq ];
+    mainProgram = "rg";
   };
 }
diff --git a/pkgs/tools/text/zoekt/default.nix b/pkgs/tools/text/zoekt/default.nix
new file mode 100644
index 00000000000..cb270f69ad1
--- /dev/null
+++ b/pkgs/tools/text/zoekt/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+buildGoModule {
+  pname = "zoekt";
+  version = "unstable-2021-03-17";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "zoekt";
+    rev = "d92b3b80e582e735b2459413ee7d9dbbf294d629";
+    sha256 = "JdORh6bRdHsAYwsmdKY0OUavXfu3HsPQFkQjRBkcMBo=";
+  };
+
+  vendorSha256 = "d+Xvl6fleMO0frP9qr5tZgkzsnH5lPELwmEQEspD22M=";
+
+  checkInputs = [
+    git
+  ];
+
+  meta = with lib; {
+    description = "Fast trigram based code search";
+    homepage = "https://github.com/google/zoekt";
+    license = licenses.asl20;
+    maintainers = teams.determinatesystems.members;
+  };
+}
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index 124839ca45d..740d16c73df 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -1,29 +1,23 @@
-{ lib, stdenv, fetchurl
-
-, SystemConfiguration ? null, Foundation ? null
-}:
-
-assert stdenv.isDarwin -> SystemConfiguration != null
-                       && Foundation != null;
+{ lib, stdenv, fetchFromGitHub, zlib, libpng, SystemConfiguration, Foundation }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.29";
   pname = "htmldoc";
-  src = fetchurl {
-    url = "https://github.com/michaelrsweet/htmldoc/releases/download"
-      + "/release-${version}/htmldoc-${version}-source.tar.gz";
-    sha256 = "15x0xdf487j4i4gfap5yr83airxnbp2v4lxaz79a4s3iirrq39p0";
+  version = "1.9.11";
+  src = fetchFromGitHub {
+    owner = "michaelrsweet";
+    repo = "htmldoc";
+    rev = "v${version}";
+    sha256 = "0660829zjfdm6vzx14z7gvsfipsb7h0z74gbkyp2ncg3g2432s4n";
   };
-  buildInputs = with stdenv;
-       lib.optional isDarwin SystemConfiguration
-    ++ lib.optional isDarwin Foundation;
+  buildInputs = [ zlib libpng ]
+    ++ lib.optionals stdenv.isDarwin [ Foundation SystemConfiguration ];
 
   meta = with lib; {
     description = "Converts HTML files to PostScript and PDF";
     homepage    = "https://michaelrsweet.github.io/htmldoc";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Only;
     maintainers = with maintainers; [ shanemikel ];
-    platforms   = with platforms; linux ++ darwin;
+    platforms   = platforms.unix;
 
     longDescription = ''
       HTMLDOC is a program that reads HTML source files or web pages and
diff --git a/pkgs/tools/typesetting/pdftk/default.nix b/pkgs/tools/typesetting/pdftk/default.nix
index f90d1d4a7ed..c1f04616729 100644
--- a/pkgs/tools/typesetting/pdftk/default.nix
+++ b/pkgs/tools/typesetting/pdftk/default.nix
@@ -91,6 +91,5 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin averelld ];
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/virtualization/govc/default.nix b/pkgs/tools/virtualization/govc/default.nix
index 3727d1ac1da..00330f7d1a4 100644
--- a/pkgs/tools/virtualization/govc/default.nix
+++ b/pkgs/tools/virtualization/govc/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "govc";
-  version = "0.24.1";
+  version = "0.25.0";
 
   goPackagePath = "github.com/vmware/govmomi";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "sha256-D2UrYdjstOxx9EAdBtAC44khp8hRf6W3+6kzytUVnOo=";
+    sha256 = "sha256-Ri8snbmgcAZmdumKzBl3P6gf/eZgwdgg7V+ijyeZjks=";
   };
 
   meta = {
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index ba343fe657b..155daf41a7f 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -7,6 +7,7 @@
 , requests
 , pyyaml
 , setuptools
+, installShellFiles
 }:
 
 let
@@ -48,14 +49,21 @@ buildPythonApplication rec {
     cp data-3 linodecli/
   '';
 
-  # requires linode access token for unit tests, and running executable
-  doCheck = false;
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/linode-cli --skip-config --version | grep ${version} > /dev/null
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd linode-cli --bash <($out/bin/linode-cli --skip-config completion bash)
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/linode/linode-cli";
     description = "The Linode Command Line Interface";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ryantm ];
+    maintainers = with maintainers; [ ryantm superherointj ];
   };
 
 }
diff --git a/pkgs/tools/wayland/slurp/default.nix b/pkgs/tools/wayland/slurp/default.nix
index 107ef68da56..1105813550f 100644
--- a/pkgs/tools/wayland/slurp/default.nix
+++ b/pkgs/tools/wayland/slurp/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slurp";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = "slurp";
     rev = "v${version}";
-    sha256 = "1fby2v2ylcadgclds05wpkl9xi2r9dfz49dqyqpn20rjv1wnz3jv";
+    sha256 = "sha256-5ZB34rqLyZmfjT/clxNRDmF0qgITFZ5xt/gIEXQzvQE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/wayland/wdomirror/default.nix b/pkgs/tools/wayland/wdomirror/default.nix
new file mode 100644
index 00000000000..8fddf51f539
--- /dev/null
+++ b/pkgs/tools/wayland/wdomirror/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, wayland
+, wayland-protocols
+}:
+
+stdenv.mkDerivation {
+  pname = "wdomirror";
+  version = "unstable-2021-01-08";
+
+  src = fetchFromGitHub {
+    owner = "progandy";
+    repo = "wdomirror";
+    rev = "e4a4934e6f739909fbf346cbc001c72690b5c906";
+    sha256 = "1fz0sajhdjqas3l6mpik8w1k15wbv65hgh9r9vdgfqvw5l6cx7jv";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ];
+
+  buildInputs = [ wayland ];
+
+  installPhase = ''
+    runHook preInstall
+    install -m755 -D wdomirror $out/bin/wdomirror
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mirrors an output of a wlroots compositor to a window";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ jpas ];
+  };
+}
diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix
index 931f394d689..3572f63f57e 100644
--- a/pkgs/tools/wayland/wlsunset/default.nix
+++ b/pkgs/tools/wayland/wlsunset/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
+{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland, scdoc
 , wayland-protocols
 }:
 
 stdenv.mkDerivation rec {
   pname = "wlsunset";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6";
+    sha256 = "0hhsddh3rs066rbsjksr8kcwg8lvglbvs67dq0r5wx5c1xcwb51w";
   };
 
-  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  nativeBuildInputs = [ meson pkg-config ninja wayland scdoc ];
   buildInputs = [ wayland wayland-protocols ];
 
   meta = with lib; {
diff --git a/pkgs/tools/wayland/ydotool/default.nix b/pkgs/tools/wayland/ydotool/default.nix
index 76ebd225006..4a75eac8c57 100644
--- a/pkgs/tools/wayland/ydotool/default.nix
+++ b/pkgs/tools/wayland/ydotool/default.nix
@@ -1,26 +1,34 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus, iodash, cxxopts}:
 
 stdenv.mkDerivation rec {
   pname = "ydotool";
-  version = "0.1.8";
+  version = "unstable-2021-01-20";
 
   src = fetchFromGitHub {
     owner = "ReimuNotMoe";
     repo = "ydotool";
-    rev = "v${version}";
-    sha256 = "0mx3636p0f8pznmwm4rlbwq7wrmjb2ygkf8b3a6ps96a7j1fw39l";
+    rev = "b1d041f52f7bac364d6539b1251d29c3b77c0f37";
+    sha256 = "1gzdbx6fv0dbcyia3yyzhv93az2gf90aszb9kcj5cnxywfpv9w9g";
   };
 
-  # disable static linking
+  # upstream decided to use a cpp package manager called cpm.
+  # we need to disable that because it wants networking, furthermore,
+  # it does some system folder creating which also needs to be disabled.
+  # Both changes are to respect the sandbox.
+  patches = [ ./fixup-cmakelists.patch ];
+
+
+  # cxxopts is a header only library.
+  # See pull request: https://github.com/ReimuNotMoe/ydotool/pull/105
   postPatch = ''
     substituteInPlace CMakeLists.txt --replace \
-      "-static" \
-      ""
+      "PUBLIC cxxopts" \
+      "PUBLIC"
   '';
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    boost libevdevplus libuinputplus
+    boost libevdevplus libuinputplus iodash cxxopts
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch b/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
new file mode 100644
index 00000000000..965d5c38d83
--- /dev/null
+++ b/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch
@@ -0,0 +1,58 @@
+From bb8bc44d22060cd1215712117cf30eae09f4f6ba Mon Sep 17 00:00:00 2001
+From: Jappie Klooster <jappieklooster@hotmail.com>
+Date: Fri, 2 Apr 2021 14:04:14 -0400
+Subject: [PATCH] Fixup cmaklists
+
+We remove cpm, which is a package manager for c++,
+which requires networking, so it's better just deleted.
+
+Furthermore we delete the adddirectory statements.
+These want to modify directories outside of the sandbox.
+---
+ CMakeLists.txt | 26 --------------------------
+ 1 file changed, 26 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b5e8789..b797538 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,30 +13,6 @@ endif()
+ 
+ include(${CPM_DOWNLOAD_LOCATION})
+ 
+-CPMAddPackage(
+-        NAME IODash
+-        GITHUB_REPOSITORY YukiWorkshop/IODash
+-        VERSION 0.1.0
+-)
+-
+-CPMAddPackage(
+-        NAME libevdevPlus
+-        GITHUB_REPOSITORY YukiWorkshop/libevdevPlus
+-        VERSION 0.2.1
+-)
+-
+-CPMAddPackage(
+-        NAME libuInputPlus
+-        GITHUB_REPOSITORY YukiWorkshop/libuInputPlus
+-        VERSION 0.2.1
+-)
+-
+-CPMAddPackage(
+-        NAME cxxopts
+-        GITHUB_REPOSITORY jarro2783/cxxopts
+-        VERSION 3.0.0
+-        GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3
+-)
+ 
+ set(SOURCE_FILES_LIBRARY
+         CommonIncludes.hpp
+@@ -74,5 +50,3 @@ add_executable(ydotool ${SOURCE_FILES_CLIENT})
+ target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus)
+ install(TARGETS ydotool DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+-add_subdirectory(Daemon)
+-add_subdirectory(manpage)
+-- 
+2.29.2
+
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index d05c81dcaa9..eadd95870ca 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -130,10 +130,18 @@ mapAliases ({
   cudatoolkit_7 = throw "cudatoolkit_7 has been removed in favor of newer versions"; # added 2021-02-14
   cudatoolkit_7_5 = throw "cudatoolkit_7_5 has been removed in favor of newer versions"; # added 2021-02-14
   cudatoolkit_8 = throw "cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
+  cudatoolkit_9 = throw "cudatoolkit_9 has been removed in favor of newer versions"; # added 2021-04-18
+  cudatoolkit_9_0 = throw "cudatoolkit_9_0 has been removed in favor of newer versions"; # added 2021-04-18
+  cudatoolkit_9_1 = throw "cudatoolkit_9_1 has been removed in favor of newer versions"; # added 2021-04-18
+  cudatoolkit_9_2 = throw "cudatoolkit_9_2 has been removed in favor of newer versions"; # added 2021-04-18
   cudnn_cudatoolkit_7 = throw "cudnn_cudatoolkit_7 has been removed in favor of newer versions"; # added 2021-02-14
   cudnn_cudatoolkit_7_5 = throw "cudnn_cudatoolkit_7_5 has been removed in favor of newer versions"; # added 2021-02-14
   cudnn6_cudatoolkit_8 = throw "cudnn6_cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
   cudnn_cudatoolkit_8 = throw "cudnn_cudatoolkit_8 has been removed in favor of newer versions"; # added 2021-02-14
+  cudnn_cudatoolkit_9 = throw "cudnn_cudatoolkit_9 has been removed in favor of newer versions"; # added 2021-04-18
+  cudnn_cudatoolkit_9_0 = throw "cudnn_cudatoolkit_9_0 has been removed in favor of newer versions"; # added 2021-04-18
+  cudnn_cudatoolkit_9_1 = throw "cudnn_cudatoolkit_9_1 has been removed in favor of newer versions"; # added 2021-04-18
+  cudnn_cudatoolkit_9_2 = throw "cudnn_cudatoolkit_9_2 has been removed in favor of newer versions"; # added 2021-04-18
   cupsBjnp = cups-bjnp; # added 2016-01-02
   cups_filters = cups-filters; # added 2016-08
   cups-googlecloudprint = throw "Google Cloudprint is officially discontinued since Jan 2021, more info https://support.google.com/chrome/a/answer/9633006";
@@ -168,6 +176,7 @@ mapAliases ({
   dvb_apps = throw "dvb_apps has been removed."; # added 2020-11-03
   dwarf_fortress = dwarf-fortress; # added 2016-01-23
   dwm-git = throw "dwm-git has been removed from nixpkgs, as it had no updates for 2 years not serving it's purpose."; # added 2021-02-07
+  dylibbundler = macdylibbundler; # added 2021-04-24
   elasticmq = throw "elasticmq has been removed in favour of elasticmq-server-bin"; # added 2021-01-17
   emacsPackagesGen = emacsPackagesFor; # added 2018-08-18
   emacsPackagesNgGen = emacsPackagesFor; # added 2018-08-18
@@ -185,6 +194,7 @@ mapAliases ({
   exfat-utils = exfat;                  # 2015-09-11
   facette = throw "facette has been removed."; # added 2020-01-06
   fast-neural-doodle = throw "fast-neural-doodle has been removed, as the upstream project has been abandoned"; # added 2020-03-28
+  fedora-coreos-config-transpiler = throw "fedora-coreos-config-transpiler has been renamed to 'butane'."; # added 2021-04-13
   fetchFromGithub = throw "You meant fetchFromGitHub, with a capital H.";
   ffadoFull = ffado; # added 2018-05-01
   firefox-esr-68 = throw "Firefox 68 ESR reached end of life with its final release 68.12esr on 2020-08-25 and was therefore removed from nixpkgs";
@@ -326,8 +336,11 @@ mapAliases ({
   kodiGBM = kodi-gbm;
   kodiPlain = kodi;
   kodiPlainWayland = kodi-wayland;
-  julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15
-  julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15
+  jellyfin_10_5 = throw "Jellyfin 10.5 is no longer supported and contains a security vulnerability. Please upgrade to a newer version."; # added 2021-04-26
+  julia_07 = throw "julia_07 has been deprecated in favor of the latest LTS version"; # added 2020-09-15
+  julia_1 = throw "julia_1 has been deprecated in favor of julia_10 as it was ambiguous"; # added 2021-03-13
+  julia_11 = throw "julia_11 has been deprecated in favor of the latest stable version"; # added 2020-09-15
+  julia_13 = throw "julia_13 has been deprecated in favor of the latest stable version"; # added 2021-03-13
   kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
@@ -392,6 +405,12 @@ mapAliases ({
   linuxPackages_testing_hardened = throw "linuxPackages_testing_hardened has been removed, please use linuxPackages_latest_hardened";
   linux_testing_hardened = throw "linux_testing_hardened has been removed, please use linux_latest_hardened";
 
+  # added 2021-04-04
+  linuxPackages_xen_dom0 = linuxPackages;
+  linuxPackages_latest_xen_dom0 = linuxPackages_latest;
+  linuxPackages_xen_dom0_hardened = linuxPackages_hardened;
+  linuxPackages_latest_xen_dom0_hardened = linuxPackages_latest_hardened;
+
   linux-steam-integration = throw "linux-steam-integration has been removed, as the upstream project has been abandoned"; # added 2020-05-22
   loadcaffe = throw "loadcaffe has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   lprof = throw "lprof has been removed as it's unmaintained upstream and broken in nixpkgs since a while ago"; # added 2021-02-15
@@ -445,6 +464,7 @@ mapAliases ({
   mpv-with-scripts = self.wrapMpv self.mpv-unwrapped { }; # added 2020-05-22
   multipath_tools = multipath-tools;  # added 2016-01-21
   mupen64plus1_5 = mupen64plus; # added 2016-02-12
+  mxisd = throw "mxisd has been removed from nixpkgs as it has reached end of life, see https://github.com/kamax-matrix/mxisd/blob/535e0a5b96ab63cb0ddef90f6f42c5866407df95/EOL.md#end-of-life-notice . ma1sd may be a suitable alternative."; # added 2021-04-15
   mysqlWorkbench = mysql-workbench; # added 2017-01-19
   nagiosPluginsOfficial = monitoring-plugins;
   ncat = nmap;  # added 2016-01-26
@@ -465,6 +485,7 @@ mapAliases ({
   nologin = shadow; # added 2018-04-25
   nxproxy = nx-libs; # added 2019-02-15
   nylas-mail-bin = throw "nylas-mail-bin was deprecated on 2019-09-11: abandoned by upstream";
+  oauth2_proxy = oauth2-proxy; # added 2021-04-18
   opencascade_oce = opencascade; # added 2018-04-25
   oblogout = throw "oblogout has been removed from nixpkgs, as it's archived upstream."; # added 2019-12-10
   opencl-icd = ocl-icd; # added 2017-01-20
@@ -552,7 +573,6 @@ mapAliases ({
   pmtools = acpica-tools; # added 2018-11-01
   polarssl = mbedtls; # added 2018-04-25
   poppler_qt5 = libsForQt5.poppler;  # added 2015-12-19
-  postgresql95 = postgresql_9_5;
   postgresql96 = postgresql_9_6;
   postgresql100 = throw "postgresql100 was deprecated on 2018-10-21: use postgresql_10 instead";
   # postgresql plugins
@@ -592,6 +612,7 @@ mapAliases ({
   phonon = throw "phonon: Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
   pynagsystemd = throw "pynagsystemd was removed as it was unmaintained and incompatible with recent systemd versions. Instead use its fork check_systemd."; # added 2020-10-24
   python2nix = throw "python2nix has been removed as it is outdated. Use e.g. nixpkgs-pytools instead."; # added 2021-03-08
+  quagga = throw "quagga is no longer maintained upstream"; # added 2021-04-22
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   qcsxcad = libsForQt5.qcsxcad;  # added 2020-11-05
   qmk_firmware = throw "qmk_firmware has been removed because it was broken"; # added 2021-04-02
@@ -639,9 +660,11 @@ mapAliases ({
   rubyPackages_2_5 = throw "rubyPackages_2_5 was deprecated in 2021-02: use a newer version of rubyPackages instead";
   rubygems = throw "rubygems was deprecated on 2016-03-02: rubygems is now bundled with ruby";
   rubyMinimal = throw "rubyMinimal was removed due to being unused";
+  runwayml = throw "runwayml is now a webapp"; # added 2021-04-17
   rxvt_unicode-with-plugins = rxvt-unicode; # added 2020-02-02
   rxvt_unicode = rxvt-unicode-unwrapped; # added 2020-02-02
   subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # added 2021-03-31
+  togglesg-download = throw "togglesg-download was removed 2021-04-30 as it's unmaintained";
   urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # added 2020-02-02
   urxvt_perl = rxvt-unicode-plugins.perl; # added 2020-02-02
   urxvt_perls = rxvt-unicode-plugins.perls; # added 2020-02-02
@@ -939,6 +962,8 @@ mapAliases ({
 
   zplugin = zinit; # Added 2021-01-30
 
+  posix_man_pages = man-pages-posix; # Added 2021-04-15
+
   /* If these are in the scope of all-packages.nix, they cause collisions
   between mixed versions of qt. See:
   https://github.com/NixOS/nixpkgs/pull/101369 */
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6dd393492c8..ecf7c8177ab 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -265,6 +265,8 @@ in
 
   protoc-gen-go = callPackage ../development/tools/protoc-gen-go { };
 
+  protoc-gen-go-grpc = callPackage ../development/tools/protoc-gen-go-grpc { };
+
   protoc-gen-twirp = callPackage ../development/tools/protoc-gen-twirp { };
 
   protoc-gen-twirp_php = callPackage ../development/tools/protoc-gen-twirp_php { };
@@ -375,7 +377,10 @@ in
 
   fetchbzr = callPackage ../build-support/fetchbzr { };
 
-  fetchcvs = callPackage ../build-support/fetchcvs { };
+  fetchcvs = if stdenv.buildPlatform != stdenv.hostPlatform
+    # hack around splicing being crummy with things that (correctly) don't eval.
+    then buildPackages.fetchcvs
+    else callPackage ../build-support/fetchcvs { };
 
   fetchdarcs = callPackage ../build-support/fetchdarcs { };
 
@@ -401,6 +406,8 @@ in
 
   find-cursor = callPackage ../tools/X11/find-cursor { };
 
+  flare-floss = callPackage ../tools/security/flare-floss { };
+
   prefer-remote-fetch = import ../build-support/prefer-remote-fetch;
 
   global-platform-pro = callPackage ../development/tools/global-platform-pro/default.nix { };
@@ -427,7 +434,10 @@ in
 
   fetchs3 = callPackage ../build-support/fetchs3 { };
 
-  fetchsvn = callPackage ../build-support/fetchsvn { };
+  fetchsvn = if stdenv.buildPlatform != stdenv.hostPlatform
+    # hack around splicing being crummy with things that (correctly) don't eval.
+    then buildPackages.fetchsvn
+    else callPackage ../build-support/fetchsvn { };
 
   fetchsvnrevision = import ../build-support/fetchsvnrevision runCommand subversion;
 
@@ -455,16 +465,18 @@ in
       perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; };
       openssl = buildPackages.openssl.override {
         fetchurl = stdenv.fetchurlBoot;
-        coreutils = buildPackages.coreutils.override {
-          fetchurl = stdenv.fetchurlBoot;
+        buildPackages = {
+          coreutils = buildPackages.coreutils.override {
+            fetchurl = stdenv.fetchurlBoot;
+            inherit perl;
+            xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
+            gmp = null;
+            aclSupport = false;
+            attrSupport = false;
+          };
           inherit perl;
-          xz = buildPackages.xz.override { fetchurl = stdenv.fetchurlBoot; };
-          gmp = null;
-          aclSupport = false;
-          attrSupport = false;
         };
         inherit perl;
-        buildPackages = { inherit perl; };
       };
       libssh2 = buildPackages.libssh2.override {
         fetchurl = stdenv.fetchurlBoot;
@@ -751,6 +763,8 @@ in
 
   agda-pkg = callPackage ../development/tools/agda-pkg { };
 
+  agi = callPackage ../tools/graphics/agi { };
+
   agrep = callPackage ../tools/text/agrep { };
 
   aha = callPackage ../tools/text/aha { };
@@ -864,6 +878,8 @@ in
 
   nimmm = callPackage ../applications/terminal-emulators/nimmm { };
 
+  pikchr = callPackage ../tools/graphics/pikchr { };
+
   roxterm = callPackage ../applications/terminal-emulators/roxterm { };
 
   rxvt = callPackage ../applications/terminal-emulators/rxvt { };
@@ -900,6 +916,8 @@ in
     inherit (haskellPackages) ghcWithPackages;
   };
 
+  termsyn = callPackage ../data/fonts/termsyn { };
+
   tilda = callPackage ../applications/terminal-emulators/tilda {
     gtk = gtk3;
   };
@@ -1040,6 +1058,8 @@ in
 
   asls = callPackage ../development/tools/misc/asls { };
 
+  astc-encoder = callPackage ../tools/graphics/astc-encoder { };
+
   asymptote = callPackage ../tools/graphics/asymptote {
     texLive = texlive.combine { inherit (texlive) scheme-small epsf cm-super texinfo; };
     gsl = gsl_1;
@@ -1217,6 +1237,8 @@ in
 
   inherit (nodePackages) castnow;
 
+  castty = callPackage ../tools/misc/castty { };
+
   certigo = callPackage ../tools/admin/certigo { };
 
   catcli = python3Packages.callPackage ../tools/filesystems/catcli { };
@@ -1240,8 +1262,6 @@ in
 
   fedora-backgrounds = callPackage ../data/misc/fedora-backgrounds { };
 
-  fedora-coreos-config-transpiler = callPackage ../development/tools/fedora-coreos-config-transpiler { };
-
   ccextractor = callPackage ../applications/video/ccextractor { };
 
   cconv = callPackage ../tools/text/cconv { };
@@ -1266,7 +1286,9 @@ in
 
   corsmisc = callPackage ../tools/security/corsmisc { };
 
-  cosign = callPackage ../tools/security/cosign { };
+  cosign = callPackage ../tools/security/cosign {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
 
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
 
@@ -1288,6 +1310,8 @@ in
 
   cyclone-scheme = callPackage ../development/interpreters/cyclone { };
 
+  cyclonedx-python = callPackage ../tools/misc/cyclonedx-python { };
+
   deltachat-electron = callPackage
     ../applications/networking/instant-messengers/deltachat-electron { };
 
@@ -1335,6 +1359,8 @@ in
 
   enpass = callPackage ../tools/security/enpass { };
 
+  esbuild = callPackage ../development/tools/esbuild { };
+
   essentia-extractor = callPackage ../tools/audio/essentia-extractor { };
 
   esh = callPackage ../tools/text/esh { };
@@ -1455,6 +1481,8 @@ in
 
   ili2c = callPackage ../tools/misc/ili2c { };
 
+  imagelol = callPackage ../tools/compression/imagelol { };
+
   imageworsener = callPackage ../tools/graphics/imageworsener { };
 
   imgpatchtools = callPackage ../development/mobile/imgpatchtools { };
@@ -1549,6 +1577,10 @@ in
 
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
+  gomobile = callPackage ../development/mobile/gomobile {
+    buildGoModule = buildGo115Module;
+  };
+
   ssh-agents = callPackage ../tools/networking/ssh-agents { };
 
   ssh-import-id = python3Packages.callPackage ../tools/admin/ssh-import-id { };
@@ -1586,6 +1618,10 @@ in
     novacomd = callPackage ../development/mobile/webos/novacomd.nix { };
   };
 
+  anevicon = callPackage ../tools/networking/anevicon {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   apprise = with python3Packages; toPythonApplication apprise;
 
   aria2 = callPackage ../tools/networking/aria2 {
@@ -1654,6 +1690,10 @@ in
 
   backblaze-b2 = callPackage ../development/tools/backblaze-b2 { };
 
+  badtouch = callPackage ../tools/security/badtouch {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   bandwhich = callPackage ../tools/networking/bandwhich {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -1688,6 +1728,10 @@ in
 
   bat-extras = recurseIntoAttrs (callPackages ../tools/misc/bat-extras { });
 
+  beauty-line-icon-theme = callPackage ../data/icons/beauty-line-icon-theme {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
   bc = callPackage ../tools/misc/bc { };
 
   bdf2psf = callPackage ../tools/misc/bdf2psf { };
@@ -1732,6 +1776,8 @@ in
 
   bindfs = callPackage ../tools/filesystems/bindfs { };
 
+  binwalk = with python3Packages; toPythonApplication binwalk;
+
   birdtray = libsForQt5.callPackage ../applications/misc/birdtray { };
 
   bitbucket-cli = python2Packages.bitbucket-cli;
@@ -1748,6 +1794,8 @@ in
 
   blur-effect = callPackage ../tools/graphics/blur-effect { };
 
+  butane = callPackage ../development/tools/butane { };
+
   charles = charles4;
   inherit (callPackage ../applications/networking/charles {})
     charles3
@@ -2007,6 +2055,8 @@ in
 
   clasp = callPackage ../tools/misc/clasp { };
 
+  clevercsv = with python3Packages; toPythonApplication clevercsv;
+
   clevis = callPackage ../tools/security/clevis {
     asciidoc = asciidoc-full;
   };
@@ -2093,6 +2143,8 @@ in
 
   wev = callPackage ../tools/wayland/wev { };
 
+  wdomirror = callPackage ../tools/wayland/wdomirror { };
+
   wl-clipboard = callPackage ../tools/wayland/wl-clipboard { };
 
   wlogout = callPackage ../tools/wayland/wlogout { };
@@ -2230,7 +2282,7 @@ in
     inherit (haskellPackages) ghcWithPackages diagrams-builder;
   };
 
-  dialog = callPackage ../development/tools/misc/dialog { };
+  dialog = callPackage ../tools/misc/dialog { };
 
   dibbler = callPackage ../tools/networking/dibbler { };
 
@@ -2321,7 +2373,8 @@ in
 
   duf = callPackage ../tools/misc/duf { };
 
-  inherit (ocamlPackages) dune_1 dune_2 dune-release;
+  inherit (ocaml-ng.ocamlPackages_4_10) dune_1;
+  inherit (ocamlPackages) dune_2 dune-release;
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
 
@@ -2334,14 +2387,14 @@ in
     enableSSH = true;
   };
 
-  dylibbundler = callPackage ../tools/misc/dylibbundler { };
-
   dynamic-colors = callPackage ../tools/misc/dynamic-colors { };
 
   dyncall = callPackage ../development/libraries/dyncall { };
 
   dyndnsc = callPackage ../applications/networking/dyndns/dyndnsc { };
 
+  earlybird = callPackage ../tools/security/earlybird { };
+
   earlyoom = callPackage ../os-specific/linux/earlyoom { };
 
   EBTKS = callPackage ../development/libraries/science/biology/EBTKS { };
@@ -2530,6 +2583,8 @@ in
 
   gif-for-cli = callPackage ../tools/misc/gif-for-cli { };
 
+  giph = callPackage ../applications/video/giph { };
+
   gir-rs = callPackage ../development/tools/gir { };
 
   gist = callPackage ../tools/text/gist { };
@@ -2647,10 +2702,14 @@ in
 
   jellyfin = callPackage ../servers/jellyfin { };
 
-  jellyfin_10_5 = callPackage ../servers/jellyfin/10.5.x.nix { };
+  jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa CoreAudio MediaPlayer;
+  };
 
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
+  jiten = callPackage ../applications/misc/jiten { };
+
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
 
   joycond = callPackage ../os-specific/linux/joycond { };
@@ -2681,7 +2740,9 @@ in
 
   lexicon = callPackage ../tools/admin/lexicon { };
 
-  lief = callPackage ../development/libraries/lief {};
+  lief = callPackage ../development/libraries/lief {
+    python = python3;
+  };
 
   libnbd = callPackage ../development/libraries/libnbd { };
 
@@ -2743,6 +2804,8 @@ in
 
   meritous = callPackage ../games/meritous { };
 
+  oh-my-git = callPackage ../games/oh-my-git { };
+
   opendune = callPackage ../games/opendune { };
 
   merriweather = callPackage ../data/fonts/merriweather { };
@@ -2833,10 +2896,14 @@ in
 
   nwipe = callPackage ../tools/security/nwipe { };
 
+  nx2elf = callPackage ../tools/compression/nx2elf { };
+
   nx-libs = callPackage ../tools/X11/nx-libs { };
 
   nyx = callPackage ../tools/networking/nyx { };
 
+  oci-cli = callPackage ../tools/admin/oci-cli { };
+
   ocrmypdf = callPackage ../tools/text/ocrmypdf { };
 
   ocrfeeder = callPackage ../applications/graphics/ocrfeeder { };
@@ -2914,6 +2981,8 @@ in
 
   psrecord = python3Packages.callPackage ../tools/misc/psrecord {};
 
+  river = callPackage ../applications/window-managers/river { };
+
   rmapi = callPackage ../applications/misc/remarkable/rmapi { };
 
   rmview = libsForQt5.callPackage ../applications/misc/remarkable/rmview { };
@@ -3293,7 +3362,8 @@ in
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost172.override { enablePython = true; python = python38; };
+    boost = boost17x.override { enablePython = true; python = python3; };
+    lua = lua5_4;
   })
     ceph
     ceph-client;
@@ -3327,6 +3397,7 @@ in
   };
 
   cjdns = callPackage ../tools/networking/cjdns { };
+  cjdns-tools = callPackage ../tools/admin/cjdns-tools { };
 
   cjson = callPackage ../development/libraries/cjson { };
 
@@ -3415,7 +3486,9 @@ in
 
   ethash = callPackage ../development/libraries/ethash { };
 
-  ethminer = callPackage ../tools/misc/ethminer { };
+  ethminer = callPackage ../tools/misc/ethminer { cudaSupport = config.cudaSupport or true; };
+  ethminer-cuda = ethminer.override { cudaSupport = true; };
+  ethminer-free = ethminer.override { cudaSupport = false; };
 
   cuetools = callPackage ../tools/cd-dvd/cuetools { };
 
@@ -3423,6 +3496,8 @@ in
 
   unifdef = callPackage ../development/tools/misc/unifdef { };
 
+  unify = with python3Packages; toPythonApplication unify;
+
   unionfs-fuse = callPackage ../tools/filesystems/unionfs-fuse { };
 
   usb-modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
@@ -3442,6 +3517,8 @@ in
 
   gebaar-libinput = callPackage ../tools/inputmethods/gebaar-libinput { };
 
+  kime = callPackage ../tools/inputmethods/kime { };
+
   libpinyin = callPackage ../development/libraries/libpinyin { };
 
   libskk = callPackage ../development/libraries/libskk {
@@ -3606,6 +3683,8 @@ in
 
   cpio = callPackage ../tools/archivers/cpio { };
 
+  cpufetch = callPackage ../tools/misc/cpufetch { };
+
   crackxls = callPackage ../tools/security/crackxls { };
 
   create-cycle-app = nodePackages.create-cycle-app;
@@ -3620,10 +3699,6 @@ in
 
   cudaPackages = recurseIntoAttrs (callPackage ../development/compilers/cudatoolkit {});
   inherit (cudaPackages)
-    cudatoolkit_9
-    cudatoolkit_9_0
-    cudatoolkit_9_1
-    cudatoolkit_9_2
     cudatoolkit_10
     cudatoolkit_10_0
     cudatoolkit_10_1
@@ -3637,10 +3712,6 @@ in
 
   cudnnPackages = callPackages ../development/libraries/science/math/cudnn { };
   inherit (cudnnPackages)
-    cudnn_cudatoolkit_9
-    cudnn_cudatoolkit_9_0
-    cudnn_cudatoolkit_9_1
-    cudnn_cudatoolkit_9_2
     cudnn_cudatoolkit_10
     cudnn_cudatoolkit_10_0
     cudnn_cudatoolkit_10_1
@@ -3729,6 +3800,8 @@ in
 
   dcraw = callPackage ../tools/graphics/dcraw { };
 
+  dcs = callPackage ../tools/text/dcs { };
+
   dcfldd = callPackage ../tools/system/dcfldd { };
 
   debianutils = callPackage ../tools/misc/debianutils { };
@@ -4128,6 +4201,8 @@ in
 
   zeek = callPackage ../applications/networking/ids/zeek { };
 
+  zoekt = callPackage ../tools/text/zoekt { };
+
   zoxide = callPackage ../tools/misc/zoxide { };
 
   zzuf = callPackage ../tools/security/zzuf { };
@@ -4384,7 +4459,9 @@ in
 
   ferm = callPackage ../tools/networking/ferm { };
 
-  ffsend = callPackage ../tools/misc/ffsend { };
+  ffsend = callPackage ../tools/misc/ffsend {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security AppKit;
+  };
 
   fgallery = callPackage ../tools/graphics/fgallery { };
 
@@ -4452,6 +4529,8 @@ in
 
   flent = python3Packages.callPackage ../applications/networking/flent { };
 
+  flexoptix-app = callPackage ../tools/misc/flexoptix-app { };
+
   flpsed = callPackage ../applications/editors/flpsed { };
 
   fluentd = callPackage ../tools/misc/fluentd { };
@@ -4492,6 +4571,8 @@ in
 
   flawfinder = callPackage ../development/tools/flawfinder { };
 
+  flip-link = callPackage ../development/tools/flip-link { };
+
   flips = callPackage ../tools/compression/flips { };
 
   fmbt = callPackage ../development/tools/fmbt {
@@ -4582,7 +4663,7 @@ in
   frostwire-bin = callPackage ../applications/networking/p2p/frostwire/frostwire-bin.nix { };
 
   ftgl = callPackage ../development/libraries/ftgl {
-    inherit (darwin.apple_sdk.frameworks) OpenGL;
+    inherit (darwin.apple_sdk.frameworks) OpenGL GLUT;
   };
 
   ftop = callPackage ../os-specific/linux/ftop { };
@@ -5030,6 +5111,8 @@ in
 
   godot = callPackage ../development/tools/godot {};
 
+  godot-export-templates = callPackage ../development/tools/godot/export-templates.nix { };
+
   godot-headless = callPackage ../development/tools/godot/headless.nix { };
 
   godot-server = callPackage ../development/tools/godot/server.nix { };
@@ -5086,6 +5169,8 @@ in
 
   gpt2tc = callPackage ../tools/text/gpt2tc { };
 
+  gptman = callPackage ../tools/system/gptman { };
+
   ldmtool = callPackage ../tools/misc/ldmtool { };
 
   gphotos-sync = callPackage ../tools/backup/gphotos-sync { };
@@ -5516,6 +5601,8 @@ in
       irods
       irods-icommands;
 
+  ignite = callPackage ../applications/virtualization/ignite { };
+
   igmpproxy = callPackage ../tools/networking/igmpproxy { };
 
   ihaskell = callPackage ../development/tools/haskell/ihaskell/wrapper.nix {
@@ -5556,6 +5643,10 @@ in
 
   infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
 
+  innernet = callPackage ../tools/networking/innernet {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   innoextract = callPackage ../tools/archivers/innoextract { };
 
   input-utils = callPackage ../os-specific/linux/input-utils { };
@@ -5723,6 +5814,8 @@ in
 
   jq = callPackage ../development/tools/jq { };
 
+  jql = callPackage ../development/tools/jql { };
+
   jo = callPackage ../development/tools/jo { };
 
   jrnl = python3Packages.callPackage ../applications/misc/jrnl { };
@@ -5878,17 +5971,15 @@ in
 
   lalezar-fonts = callPackage ../data/fonts/lalezar-fonts { };
 
+  last-resort = callPackage ../data/fonts/last-resort {};
+
   ldc = callPackage ../development/compilers/ldc { };
 
   ldgallery = callPackage ../tools/graphics/ldgallery { };
 
   lbreakout2 = callPackage ../games/lbreakout2 { };
 
-  lefthook = callPackage ../applications/version-management/git-and-tools/lefthook {
-    # Please use empty attrset once upstream bugs have been fixed
-    # https://github.com/Arkweid/lefthook/issues/151
-    buildGoModule = buildGo114Module;
-  };
+  lefthook = callPackage ../applications/version-management/git-and-tools/lefthook { };
 
   lego = callPackage ../tools/admin/lego { };
 
@@ -6022,6 +6113,8 @@ in
 
   matrix-corporal = callPackage ../servers/matrix-corporal { };
 
+  mautrix-signal = recurseIntoAttrs (callPackage ../servers/mautrix-signal { });
+
   mautrix-telegram = recurseIntoAttrs (callPackage ../servers/mautrix-telegram { });
 
   mautrix-whatsapp = callPackage ../servers/mautrix-whatsapp { };
@@ -6030,10 +6123,16 @@ in
 
   m2r = python3Packages.callPackage ../tools/text/m2r { };
 
+  md2gemini = with python3.pkgs; toPythonApplication md2gemini;
+
   mdbook = callPackage ../tools/text/mdbook {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  mdbook-mermaid = callPackage ../tools/text/mdbook-mermaid {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   mdcat = callPackage ../tools/text/mdcat {
     inherit (darwin.apple_sdk.frameworks) Security;
     inherit (python3Packages) ansi2html;
@@ -6083,8 +6182,6 @@ in
 
   mxt-app = callPackage ../misc/mxt-app { };
 
-  mxisd = callPackage ../servers/mxisd { };
-
   naabu = callPackage ../tools/security/naabu { };
 
   nagstamon = callPackage ../tools/misc/nagstamon {
@@ -6097,6 +6194,10 @@ in
 
   nbench = callPackage ../tools/misc/nbench { };
 
+  nbtscanner = callPackage ../tools/security/nbtscanner {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   ncrack = callPackage ../tools/security/ncrack { };
 
   nerdctl = callPackage ../applications/networking/cluster/nerdctl { };
@@ -6148,9 +6249,13 @@ in
   nodejs-slim-15_x = callPackage ../development/web/nodejs/v15.nix {
     enableNpm = false;
   };
+  nodejs-16_x = callPackage ../development/web/nodejs/v16.nix { };
+  nodejs-slim-16_x = callPackage ../development/web/nodejs/v16.nix {
+    enableNpm = false;
+  };
   # Update this when adding the newest nodejs major version!
-  nodejs_latest = nodejs-15_x;
-  nodejs-slim_latest = nodejs-slim-15_x;
+  nodejs_latest = nodejs-16_x;
+  nodejs-slim_latest = nodejs-slim-16_x;
 
   nodePackages_latest = dontRecurseIntoAttrs (callPackage ../development/node-packages/default.nix {
     nodejs = pkgs.nodejs_latest;
@@ -6176,6 +6281,7 @@ in
 
   ispell = callPackage ../tools/text/ispell {};
 
+  iodash = callPackage ../development/libraries/iodash { };
   jumanpp = callPackage ../tools/text/jumanpp {};
 
   jump = callPackage ../tools/system/jump {};
@@ -6410,6 +6516,8 @@ in
 
   macchanger = callPackage ../os-specific/linux/macchanger { };
 
+  macchina = callPackage ../tools/misc/macchina { };
+
   madlang = haskell.lib.justStaticExecutables haskellPackages.madlang;
 
   maeparser = callPackage ../development/libraries/maeparser { };
@@ -6458,7 +6566,9 @@ in
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
-  manix = callPackage ../tools/nix/manix {};
+  manix = callPackage ../tools/nix/manix {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   marktext = callPackage ../applications/misc/marktext { };
 
@@ -6868,6 +6978,8 @@ in
 
   notable = callPackage ../applications/misc/notable { };
 
+  ntlmrecon = callPackage ../tools/security/ntlmrecon { };
+
   nvchecker = with python3Packages; toPythonApplication nvchecker;
 
   miller = callPackage ../tools/text/miller { };
@@ -6934,6 +7046,7 @@ in
 
   nnn = callPackage ../applications/misc/nnn { };
 
+  shfm = callPackage ../applications/misc/shfm { };
 
   noise-repellent = callPackage ../applications/audio/noise-repellent { };
 
@@ -7073,6 +7186,8 @@ in
   openbazaar = callPackage ../applications/networking/openbazaar { };
   openbazaar-client = callPackage ../applications/networking/openbazaar/client.nix { };
 
+  openboard = libsForQt5.callPackage ../applications/graphics/openboard { };
+
   opencc = callPackage ../tools/text/opencc { };
 
   opencl-info = callPackage ../tools/system/opencl-info { };
@@ -7120,6 +7235,8 @@ in
 
   openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
 
+  openrussian-cli = callPackage ../misc/openrussian-cli { };
+
   opensc = callPackage ../tools/security/opensc {
     inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
   };
@@ -7402,6 +7519,8 @@ in
 
   pgmetrics = callPackage ../tools/misc/pgmetrics { };
 
+  pgsync = callPackage ../development/tools/database/pgsync { };
+
   pdsh = callPackage ../tools/networking/pdsh {
     rsh = true;          # enable internal rsh implementation
     ssh = openssh;
@@ -7475,6 +7594,8 @@ in
 
   tab = callPackage ../tools/text/tab { };
 
+  tabview = with python3Packages; toPythonApplication tabview;
+
   tautulli = python3Packages.callPackage ../servers/tautulli { };
 
   pleroma-otp = callPackage ../servers/pleroma-otp { };
@@ -7882,6 +8003,8 @@ in
 
   reftools = callPackage ../development/tools/reftools { };
 
+  remote-touchpad = callPackage ../tools/inputmethods/remote-touchpad { };
+
   reposurgeon = callPackage ../applications/version-management/reposurgeon { };
 
   reptyr = callPackage ../os-specific/linux/reptyr {};
@@ -8078,9 +8201,7 @@ in
 
   scmpuff = callPackage ../applications/version-management/git-and-tools/scmpuff { };
 
-  scream-receivers = callPackage ../misc/scream-receivers {
-    pulseSupport = config.pulseaudio or false;
-  };
+  scream = callPackage ../applications/audio/scream { };
 
   scimark = callPackage ../misc/scimark { };
 
@@ -8216,6 +8337,8 @@ in
 
   sigil = libsForQt5.callPackage ../applications/editors/sigil { };
 
+  signald = callPackage ../applications/networking/instant-messengers/signald { };
+
   signal-cli = callPackage ../applications/networking/instant-messengers/signal-cli { };
 
   signal-desktop = callPackage ../applications/networking/instant-messengers/signal-desktop { };
@@ -8423,6 +8546,8 @@ in
 
   srcml = callPackage ../applications/version-management/srcml { };
 
+  srt-live-server = callPackage ../applications/video/srt-live-server { };
+
   srt-to-vtt-cl = callPackage ../tools/cd-dvd/srt-to-vtt-cl { };
 
   sourcehut = callPackage ../applications/version-management/sourcehut { };
@@ -8538,6 +8663,8 @@ in
 
   swagger-codegen = callPackage ../tools/networking/swagger-codegen { };
 
+  swagger-codegen3 = callPackage ../tools/networking/swagger-codegen3 { };
+
   swapview = callPackage ../os-specific/linux/swapview/default.nix { };
 
   swec = callPackage ../tools/networking/swec { };
@@ -8637,6 +8764,8 @@ in
 
   tea = callPackage ../tools/misc/tea { };
 
+  inherit (nodePackages) teck-programmer;
+
   ted = callPackage ../tools/typesetting/ted { };
 
   teamviewer = libsForQt514.callPackage ../applications/networking/remote/teamviewer { };
@@ -8759,6 +8888,8 @@ in
 
   tmpwatch = callPackage ../tools/misc/tmpwatch  { };
 
+  tmpmail = callPackage ../applications/networking/tmpmail { };
+
   tmux = callPackage ../tools/misc/tmux { };
 
   tmux-cssh = callPackage ../tools/misc/tmux-cssh { };
@@ -9015,9 +9146,7 @@ in
 
   uwsgi = callPackage ../servers/uwsgi { };
 
-  v2ray = callPackage ../tools/networking/v2ray {
-    buildGoModule = buildGo115Module;
-  };
+  v2ray = callPackage ../tools/networking/v2ray { };
 
   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
 
@@ -9185,6 +9314,8 @@ in
 
   welkin = callPackage ../tools/graphics/welkin {};
 
+  wemux = callPackage ../tools/misc/wemux { };
+
   wf-recorder = callPackage ../applications/video/wf-recorder { };
 
   whipper = callPackage ../applications/audio/whipper { };
@@ -9217,8 +9348,7 @@ in
 
   wsmancli = callPackage ../tools/system/wsmancli {};
 
-  wstunnel = haskell.lib.justStaticExecutables
-    (haskellPackages.callPackage ../tools/networking/wstunnel {});
+  wstunnel = haskell.lib.justStaticExecutables haskellPackages.wstunnel;
 
   wolfebin = callPackage ../tools/networking/wolfebin {
     python = python2;
@@ -9230,6 +9360,8 @@ in
 
   xe = callPackage ../tools/system/xe { };
 
+  xplr = callPackage ../applications/misc/xplr {};
+
   testdisk = libsForQt5.callPackage ../tools/system/testdisk { };
 
   testdisk-qt = testdisk.override { enableQt = true; };
@@ -9279,6 +9411,8 @@ in
 
   tradcpp = callPackage ../development/tools/tradcpp { };
 
+  traitor = callPackage ../tools/security/traitor { };
+
   tre = callPackage ../development/libraries/tre { };
 
   tremor-rs = callPackage ../tools/misc/tremor-rs { };
@@ -9657,6 +9791,8 @@ in
 
   zdelta = callPackage ../tools/compression/zdelta { };
 
+  zellij = callPackage ../tools/misc/zellij { };
+
   zenith = callPackage ../tools/system/zenith {
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
@@ -10178,6 +10314,7 @@ in
   gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8;
   gcc9Stdenv = overrideCC gccStdenv buildPackages.gcc9;
   gcc10Stdenv = overrideCC gccStdenv buildPackages.gcc10;
+  gcc11Stdenv = overrideCC gccStdenv buildPackages.gcc11;
 
   wrapCCMulti = cc:
     if stdenv.targetPlatform.system == "x86_64-linux" then let
@@ -10364,7 +10501,21 @@ in
     isl = if !stdenv.isDarwin then isl_0_20 else null;
   }));
 
-  gcc_latest = gcc10;
+  gcc11 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/11 {
+    inherit noSysDirs;
+
+    reproducibleBuild = true;
+    profiledCompiler = false;
+
+    enableLTO = !stdenv.isi686;
+
+    libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
+    threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
+
+    isl = if !stdenv.isDarwin then isl_0_20 else null;
+  }));
+
+  gcc_latest = gcc11;
 
   gfortran = gfortran9;
 
@@ -10574,8 +10725,12 @@ in
       graphviz = graphviz-nox;
     });
 
-  inherit (callPackage ../development/compilers/haxe { })
+  inherit (callPackage ../development/compilers/haxe {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  })
     haxe_4_2
+    haxe_4_1
+    haxe_4_0
     haxe_3_4
     haxe_3_2
     ;
@@ -10720,27 +10875,33 @@ in
     else
       openjdk11.override { headless = true; };
 
-  openjdk15-bootstrap =
-    if adoptopenjdk-hotspot-bin-14.meta.available then
-      adoptopenjdk-hotspot-bin-14
+  openjdk16-bootstrap =
+    if adoptopenjdk-hotspot-bin-15.meta.available then
+      adoptopenjdk-hotspot-bin-15
     else
       /* adoptopenjdk not available for i686, so fall back to our old builds of 12, 13, & 14 for bootstrapping */
-      callPackage ../development/compilers/openjdk/14.nix {
+      callPackage ../development/compilers/openjdk/15.nix {
         openjfx = openjfx11; /* need this despite next line :-( */
         enableJavaFX = false;
         headless = true;
         inherit (gnome2) GConf gnome_vfs;
-        openjdk14-bootstrap = callPackage ../development/compilers/openjdk/13.nix {
+        openjdk15-bootstrap = callPackage ../development/compilers/openjdk/14.nix {
           openjfx = openjfx11; /* need this despite next line :-( */
           enableJavaFX = false;
           headless = true;
           inherit (gnome2) GConf gnome_vfs;
-          openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
-            stdenv = gcc8Stdenv; /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+          openjdk14-bootstrap = callPackage ../development/compilers/openjdk/13.nix {
             openjfx = openjfx11; /* need this despite next line :-( */
             enableJavaFX = false;
             headless = true;
             inherit (gnome2) GConf gnome_vfs;
+            openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
+              stdenv = gcc8Stdenv; /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+              openjfx = openjfx11; /* need this despite next line :-( */
+              enableJavaFX = false;
+              headless = true;
+              inherit (gnome2) GConf gnome_vfs;
+            };
           };
         };
       };
@@ -10749,27 +10910,27 @@ in
   jdk11_headless = openjdk11_headless;
 
   /* Latest JDK */
-  openjdk15 =
+  openjdk16 =
     if stdenv.isDarwin then
       callPackage ../development/compilers/openjdk/darwin { }
     else
-      callPackage ../development/compilers/openjdk {
+      callPackage ../development/compilers/openjdk/16.nix {
         openjfx = openjfx15;
         inherit (gnome2) GConf gnome_vfs;
       };
 
-  openjdk15_headless =
+  openjdk16_headless =
     if stdenv.isDarwin then
-      openjdk15
+      openjdk16
     else
-      openjdk15.override { headless = true; };
+      openjdk16.override { headless = true; };
 
-  jdk15 = openjdk15;
-  jdk15_headless = openjdk15_headless;
+  jdk16 = openjdk16;
+  jdk16_headless = openjdk16_headless;
 
   /* default JDK */
 
-  jdk = jdk15;
+  jdk = jdk16;
 
   # Since the introduction of the Java Platform Module System in Java 9, Java
   # no longer ships a separate JRE package.
@@ -10778,13 +10939,13 @@ in
   # 'jre_minimal' to build a bespoke JRE containing only the modules you need.
   #
   # For a general-purpose system, 'jre' defaults to the full JDK:
-  jre = jdk15;
-  jre_headless = jdk15_headless;
+  jre = jdk16;
+  jre_headless = jdk16_headless;
 
   jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { };
 
-  openjdk = openjdk15;
-  openjdk_headless = openjdk15_headless;
+  openjdk = openjdk16;
+  openjdk_headless = openjdk16_headless;
 
   inherit (callPackages ../development/compilers/graalvm {
     gcc = if stdenv.targetPlatform.isDarwin then gcc8 else gcc;
@@ -10842,21 +11003,17 @@ in
 
   julia_10 = callPackage ../development/compilers/julia/1.0.nix {
     gmp = gmp6;
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
     libgit2 = libgit2_0_27;
   };
 
-  julia_13 = callPackage ../development/compilers/julia/1.3.nix {
-    gmp = gmp6;
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
-  };
-
   julia_15 = callPackage ../development/compilers/julia/1.5.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices;
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
-  julia_1 = julia_10;
-  julia = julia_15;
+  julia-lts = julia_10;
+  julia-stable = julia_15;
+  julia = julia-lts;
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
@@ -10878,7 +11035,7 @@ in
 
   knightos-z80e = callPackage ../development/tools/knightos/z80e { };
 
-  koka = haskellPackages.callPackage ../development/compilers/koka { };
+  koka = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../development/compilers/koka { });
 
   kotlin = callPackage ../development/compilers/kotlin { };
 
@@ -11213,6 +11370,10 @@ in
   };
   rust = rust_1_51;
 
+  mrustc = callPackage ../development/compilers/mrustc { };
+  mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
+  mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix { };
+
   rustPackages_1_45 = rust_1_45.packages.stable;
   rustPackages_1_51 = rust_1_51.packages.stable;
   rustPackages = rustPackages_1_51;
@@ -11364,6 +11525,8 @@ in
   sbcl_2_1_2 = callPackage ../development/compilers/sbcl/2.1.2.nix {};
   sbcl = sbcl_2_1_2;
 
+  roswell = callPackage ../development/tools/roswell/default.nix { };
+
   scala_2_10 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.10"; jre = jdk8; };
   scala_2_11 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.11"; jre = jdk8; };
   scala_2_12 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.12"; jre = jdk8; };
@@ -11617,7 +11780,8 @@ in
   inherit (beam.interpreters)
     erlang erlangR23 erlangR22 erlangR21 erlangR20 erlangR19 erlangR18
     erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
-    elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7;
+    elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7
+    elixir_ls;
 
   erlang_nox = beam_nox.interpreters.erlang;
 
@@ -11632,15 +11796,6 @@ in
 
   groovy = callPackage ../development/interpreters/groovy { };
 
-  guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
-
-  # Needed for autogen
-  guile_2_0 = callPackage ../development/interpreters/guile/2.0.nix { };
-
-  guile_2_2 = callPackage ../development/interpreters/guile { };
-
-  guile = guile_2_2;
-
   inherit (callPackages ../applications/networking/cluster/hadoop {
     jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   })
@@ -11892,6 +12047,8 @@ in
   pypy27Packages = pypy27.pkgs;
   pypy3Packages = pypy3.pkgs;
 
+  py3c = callPackage ../development/libraries/py3c { };
+
   pythonManylinuxPackages = callPackage ./../development/interpreters/python/manylinux { };
 
   update-python-libraries = callPackage ../development/interpreters/python/update-python-libraries { };
@@ -11966,7 +12123,10 @@ in
   dust = callPackage ../development/interpreters/pixie/dust.nix { };
 
   buildRubyGem = callPackage ../development/ruby-modules/gem { };
-  defaultGemConfig = callPackage ../development/ruby-modules/gem-config { };
+  defaultGemConfig = callPackage ../development/ruby-modules/gem-config {
+    inherit (darwin) DarwinTools cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
   bundix = callPackage ../development/ruby-modules/bundix { };
   bundler = callPackage ../development/ruby-modules/bundler { };
   bundlerEnv = callPackage ../development/ruby-modules/bundler-env { };
@@ -12062,8 +12222,19 @@ in
 
   gImageReader = callPackage ../applications/misc/gImageReader { };
 
+  guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
+
+  # Needed for autogen
+  guile_2_0 = callPackage ../development/interpreters/guile/2.0.nix { };
+
+  guile_2_2 = callPackage ../development/interpreters/guile { };
+
+  guile = guile_2_2;
+
   guile-cairo = callPackage ../development/guile-modules/guile-cairo { };
 
+  guile-commonmark = callPackage ../development/guile-modules/guile-commonmark { };
+
   guile-fibers = callPackage ../development/guile-modules/guile-fibers { };
 
   guile-gnome = callPackage ../development/guile-modules/guile-gnome {
@@ -12093,6 +12264,8 @@ in
     binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils;
   };
 
+  inav-blackbox-tools = callPackage ../tools/misc/inav-blackbox-tools { };
+
   msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { };
 
   msp430Newlib      = callPackage ../development/misc/msp430/newlib.nix { };
@@ -12355,9 +12528,7 @@ in
     wxGTK = wxGTK30;
   };
 
-  buck = callPackage ../development/tools/build-managers/buck {
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  buck = callPackage ../development/tools/build-managers/buck { };
 
   buildkite-agent = buildkite-agent3;
   buildkite-agent2 = throw "pkgs.buildkite-agent2 has been discontinued. Please use pkgs.buildkite-agent (v3.x)";
@@ -12541,6 +12712,8 @@ in
 
   csslint = callPackage ../development/web/csslint { };
 
+  css-html-js-minify = with python3Packages; toPythonApplication css-html-js-minify;
+
   cvise = python3Packages.callPackage ../development/tools/misc/cvise {
     inherit (llvmPackages_11) llvm clang-unwrapped;
   };
@@ -12945,8 +13118,12 @@ in
 
   kube-prompt = callPackage ../development/tools/kube-prompt { };
 
+  kubei = callPackage ../tools/security/kubei { };
+
   kubeprompt = callPackage ../development/tools/kubeprompt { };
 
+  kubesec = callPackage ../tools/security/kubesec { };
+
   kubespy = callPackage ../applications/networking/cluster/kubespy { };
 
   kubicorn = callPackage ../development/tools/kubicorn {  };
@@ -13580,6 +13757,8 @@ in
 
   ytt = callPackage ../development/tools/ytt {};
 
+  zls = callPackage ../development/tools/zls { };
+
   zydis = callPackage ../development/libraries/zydis { };
 
   winpdb = callPackage ../development/tools/winpdb { };
@@ -13932,6 +14111,8 @@ in
 
   cog = callPackage ../development/web/cog { };
 
+  cosmopolitan = callPackage ../development/libraries/cosmopolitan { };
+
   ctl = callPackage ../development/libraries/ctl { };
 
   ctpp2 = callPackage ../development/libraries/ctpp2 { };
@@ -14366,7 +14547,7 @@ in
   givaro_3 = callPackage ../development/libraries/givaro/3.nix {};
   givaro_3_7 = callPackage ../development/libraries/givaro/3.7.nix {};
 
-  ghp-import = callPackage ../development/tools/ghp-import { };
+  ghp-import = with python3Packages; toPythonApplication ghp-import;
 
   ghcid = haskellPackages.ghcid.bin;
 
@@ -14832,6 +15013,10 @@ in
 
   hunspellWithDicts = dicts: callPackage ../development/libraries/hunspell/wrapper.nix { inherit dicts; };
 
+  hunter = callPackage ../applications/misc/hunter {
+    inherit (darwin.apple_sdk.frameworks) CoreServices IOKit Security;
+  };
+
   hwloc = callPackage ../development/libraries/hwloc {};
 
   inherit (callPackage ../development/tools/misc/hydra { })
@@ -14937,7 +15122,6 @@ in
   indicator-application-gtk3 = callPackage ../development/libraries/indicator-application/gtk3.nix { };
 
   indilib = callPackage ../development/libraries/science/astronomy/indilib { };
-  indi-3rdparty = callPackage ../development/libraries/science/astronomy/indilib/indi-3rdparty.nix { };
   indi-full = callPackage ../development/libraries/science/astronomy/indilib/indi-full.nix { };
 
   inih = callPackage ../development/libraries/inih { };
@@ -15038,6 +15222,8 @@ in
   krb5Full = krb5;
   libkrb5 = krb5.override { type = "lib"; };
 
+  kronosnet = callPackage ../development/libraries/kronosnet { };
+
   l-smash = callPackage ../development/libraries/l-smash {
     stdenv = gccStdenv;
   };
@@ -15505,6 +15691,8 @@ in
 
   libexosip = callPackage ../development/libraries/exosip {};
 
+  libexsid = callPackage ../development/libraries/libexsid { };
+
   libextractor = callPackage ../development/libraries/libextractor {
     libmpeg2 = mpeg2dec;
   };
@@ -15840,7 +16028,9 @@ in
 
   libmilter = callPackage ../development/libraries/libmilter { };
 
-  libminc = callPackage ../development/libraries/libminc { };
+  libminc = callPackage ../development/libraries/libminc {
+    hdf5 = hdf5_1_10;
+  };
 
   libmirage = callPackage ../misc/emulators/cdemu/libmirage.nix { };
 
@@ -16249,6 +16439,8 @@ in
 
   libxls = callPackage ../development/libraries/libxls { };
 
+  libxlsxwriter = callPackage ../development/libraries/libxlsxwriter { };
+
   libxmi = callPackage ../development/libraries/libxmi { };
 
   libxml2 = callPackage ../development/libraries/libxml2 {
@@ -16449,6 +16641,10 @@ in
 
   mono-addins = callPackage ../development/libraries/mono-addins { };
 
+  movine = callPackage ../development/tools/database/movine {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   movit = callPackage ../development/libraries/movit { };
 
   mosquitto = callPackage ../servers/mqtt/mosquitto { };
@@ -16751,10 +16947,7 @@ in
 
   wolfssl = callPackage ../development/libraries/wolfssl { };
 
-  openssl =
-    if stdenv.hostPlatform.isMinGW # Work around broken cross build
-    then openssl_1_0_2
-    else openssl_1_1;
+  openssl = openssl_1_1;
 
   inherit (callPackages ../development/libraries/openssl { })
     openssl_1_0_2
@@ -17391,6 +17584,10 @@ in
     fftw = fftwFloat;
   };
 
+  sphinx = with python3Packages; toPythonApplication sphinx;
+
+  sphinx-serve = with python3Packages; toPythonApplication sphinx-serve;
+
   sphinxbase = callPackage ../development/libraries/sphinxbase { };
 
   sphinxsearch = callPackage ../servers/search/sphinxsearch { };
@@ -17431,6 +17628,8 @@ in
 
   sqlar = callPackage ../development/libraries/sqlite/sqlar.nix { };
 
+  sqlitecpp = callPackage ../development/libraries/sqlitecpp { };
+
   sqlite-interactive = appendToName "interactive" (sqlite.override { interactive = true; }).bin;
 
   sqlite-jdbc = callPackage ../servers/sql/sqlite/jdbc { };
@@ -17473,7 +17672,7 @@ in
 
   stlport = callPackage ../development/libraries/stlport { };
 
-  streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
+  streamlink = callPackage ../applications/video/streamlink { };
   streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix {};
 
   sub-batch = callPackage ../applications/video/sub-batch { };
@@ -17771,6 +17970,7 @@ in
   wavpack = callPackage ../development/libraries/wavpack { };
 
   wayland = callPackage ../development/libraries/wayland { };
+  wayland-scanner = wayland.bin;
 
   wayland-protocols = callPackage ../development/libraries/wayland/protocols.nix { };
 
@@ -18319,6 +18519,8 @@ in
     inherit (llvmPackages_10) clang-unwrapped lld lldClang llvm;
   };
 
+  clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
+
   couchdb = callPackage ../servers/http/couchdb {
     sphinx = python27Packages.sphinx;
     erlang = erlangR19;
@@ -18387,6 +18589,8 @@ in
 
   hyp = callPackage ../servers/http/hyp { };
 
+  podgrab = callPackage ../servers/misc/podgrab { };
+
   prosody = callPackage ../servers/xmpp/prosody {
     # _compat can probably be removed on next minor version after 0.10.0
     lua5 = lua5_2_compat;
@@ -18549,6 +18753,11 @@ in
     nodejs-slim = nodejs-slim-12_x;
   };
 
+  materialize = callPackage ../servers/sql/materialize {
+    inherit (buildPackages.darwin) bootstrap_cmds;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
   mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
   matterbridge = callPackage ../servers/matterbridge { };
@@ -18624,7 +18833,18 @@ in
 
   nginx = nginxStable;
 
+  nginxQuic = callPackage ../servers/http/nginx/quic.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
+    withPerl = false;
+    # We don't use `with` statement here on purpose!
+    # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
+    modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
+    # Use latest boringssl to allow http3 support
+    openssl = boringssl;
+  };
+
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
@@ -18632,6 +18852,7 @@ in
   };
 
   nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
+    zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
@@ -18659,7 +18880,7 @@ in
 
   nsq = callPackage ../servers/nsq { };
 
-  oauth2_proxy = callPackage ../servers/oauth2_proxy {
+  oauth2-proxy = callPackage ../servers/oauth2-proxy {
     buildGoModule = buildGo115Module;
   };
 
@@ -18927,7 +19148,6 @@ in
   timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { };
 
   inherit (import ../servers/sql/postgresql pkgs)
-    postgresql_9_5
     postgresql_9_6
     postgresql_10
     postgresql_11
@@ -18992,6 +19212,7 @@ in
   prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
   prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
   prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
+  prometheus-unbound-exporter = callPackage ../servers/monitoring/prometheus/unbound-exporter.nix { };
   prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
   prometheus-varnish-exporter = callPackage ../servers/monitoring/prometheus/varnish-exporter.nix { };
   prometheus-jmx-httpserver = callPackage ../servers/monitoring/prometheus/jmx-httpserver.nix {  };
@@ -19019,8 +19240,6 @@ in
 
   qremotecontrol-server = callPackage ../servers/misc/qremotecontrol-server { };
 
-  quagga = callPackage ../servers/quagga { };
-
   rabbitmq-server = callPackage ../servers/amqp/rabbitmq-server {
     inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
     elixir = beam_nox.interpreters.elixir_1_8;
@@ -19873,7 +20092,7 @@ in
     inherit (kernel) stdenv; # in particular, use the same compiler by default
 
     # to help determine module compatibility
-    inherit (kernel) isXen isZen isHardened isLibre;
+    inherit (kernel) isZen isHardened isLibre;
     inherit (kernel) kernelOlder kernelAtLeast;
 
     # Obsolete aliases (these packages do not depend on the kernel).
@@ -20135,11 +20354,6 @@ in
   # Build a kernel with bcachefs module
   linuxPackages_testing_bcachefs = recurseIntoAttrs (linuxPackagesFor pkgs.linux_testing_bcachefs);
 
-  # Build a kernel for Xen dom0
-  linuxPackages_xen_dom0 = recurseIntoAttrs (linuxPackagesFor (pkgs.linux.override { features.xen_dom0=true; }));
-
-  linuxPackages_latest_xen_dom0 = recurseIntoAttrs (linuxPackagesFor (pkgs.linux_latest.override { features.xen_dom0=true; }));
-
   # Hardened Linux
   hardenedLinuxPackagesFor = kernel': overrides:
     let # Note: We use this hack since the hardened patches can lag behind and we don't want to delay updates:
@@ -20163,10 +20377,6 @@ in
   linuxPackages_latest_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest { });
   linux_latest_hardened = linuxPackages_latest_hardened.kernel;
 
-  linuxPackages_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux { features.xen_dom0=true; });
-
-  linuxPackages_latest_xen_dom0_hardened = recurseIntoAttrs (hardenedLinuxPackagesFor pkgs.linux_latest { features.xen_dom0=true; });
-
   # Hardkernel (Odroid) kernels.
   linuxPackages_hardkernel_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_hardkernel_4_14);
   linuxPackages_hardkernel_latest = linuxPackages_hardkernel_4_14;
@@ -20702,6 +20912,8 @@ in
   # FIXME: `tcp-wrapper' is actually not OS-specific.
   tcp_wrappers = callPackage ../os-specific/linux/tcp-wrappers { };
 
+  teck-udev-rules = callPackage ../os-specific/linux/teck-udev-rules { };
+
   tiptop = callPackage ../os-specific/linux/tiptop { };
 
   tpacpi-bat = callPackage ../os-specific/linux/tpacpi-bat { };
@@ -20957,6 +21169,8 @@ in
 
   corefonts = callPackage ../data/fonts/corefonts { };
 
+  courier-prime = callPackage ../data/fonts/courier-prime { };
+
   cozette = callPackage ../data/fonts/cozette { };
 
   culmus = callPackage ../data/fonts/culmus { };
@@ -21089,6 +21303,7 @@ in
   flat-remix-icon-theme = callPackage ../data/icons/flat-remix-icon-theme {
     inherit (plasma5Packages) breeze-icons;
   };
+  flat-remix-gtk = callPackage ../data/themes/flat-remix-gtk { };
 
   font-awesome_4 = (callPackage ../data/fonts/font-awesome-5 { }).v4;
   font-awesome_5 = (callPackage ../data/fonts/font-awesome-5 { }).v5;
@@ -21274,6 +21489,8 @@ in
 
   man-pages = callPackage ../data/documentation/man-pages { };
 
+  man-pages-posix = callPackage ../data/documentation/man-pages-posix { };
+
   manrope = callPackage ../data/fonts/manrope { };
 
   marwaita = callPackage ../data/themes/marwaita { };
@@ -21447,8 +21664,6 @@ in
     inherit (plasma5Packages) breeze-icons;
   };
 
-  posix_man_pages = callPackage ../data/documentation/man-pages-posix { };
-
   powerline-fonts = callPackage ../data/fonts/powerline-fonts { };
 
   powerline-symbols = callPackage ../data/fonts/powerline-symbols { };
@@ -21621,6 +21836,8 @@ in
 
   theano = callPackage ../data/fonts/theano { };
 
+  tela-icon-theme = callPackage ../data/icons/tela-icon-theme { };
+
   template-glib = callPackage ../development/libraries/template-glib { };
 
   tempora_lgc = callPackage ../data/fonts/tempora-lgc { };
@@ -21768,7 +21985,7 @@ in
   acd-cli = callPackage ../applications/networking/sync/acd_cli {
     inherit (python3Packages)
       buildPythonApplication appdirs colorama dateutil
-      requests requests_toolbelt sqlalchemy fusepy;
+      requests requests_toolbelt setuptools sqlalchemy fusepy;
   };
 
   adobe-reader = pkgsi686Linux.callPackage ../applications/misc/adobe-reader { };
@@ -22483,6 +22700,8 @@ in
 
   dwm = callPackage ../applications/window-managers/dwm { };
 
+  dwmblocks = callPackage ../applications/misc/dwmblocks { };
+
   dwm-status = callPackage ../applications/window-managers/dwm/dwm-status.nix { };
 
   dynamips = callPackage ../applications/virtualization/dynamips { };
@@ -22505,6 +22724,8 @@ in
     jdk = jdk11;
   });
 
+  ecpdap = callPackage ../development/tools/ecpdap { };
+
   ecs-agent = callPackage ../applications/virtualization/ecs-agent { };
 
   ed = callPackage ../applications/editors/ed { };
@@ -22626,6 +22847,8 @@ in
 
   gspeech = callPackage ../applications/audio/gspeech { };
 
+  haruna = libsForQt5.callPackage ../applications/video/haruna { };
+
   icesl = callPackage ../applications/misc/icesl { };
 
   keepassx = callPackage ../applications/misc/keepassx { };
@@ -22871,7 +23094,7 @@ in
 
   gomuks = callPackage ../applications/networking/instant-messengers/gomuks { };
 
-  inherit (ocamlPackages) google-drive-ocamlfuse;
+  inherit (ocaml-ng.ocamlPackages_4_10) google-drive-ocamlfuse;
 
   googler = callPackage ../applications/misc/googler {
     python = python3;
@@ -23035,6 +23258,10 @@ in
     inherit buildPythonApplication;
   };
 
+  foxotron = callPackage ../applications/graphics/foxotron {
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL;
+  };
+
   foxtrotgps = callPackage ../applications/misc/foxtrotgps { };
 
   fractal = callPackage ../applications/networking/instant-messengers/fractal { };
@@ -23327,6 +23554,8 @@ in
 
   googleearth = callPackage ../applications/misc/googleearth { };
 
+  googleearth-pro = callPackage ../applications/misc/googleearth-pro { };
+
   google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; };
 
   google-chrome-beta = google-chrome.override { chromium = chromiumBeta; channel = "beta"; };
@@ -23383,6 +23612,8 @@ in
 
   gxplugins-lv2 = callPackage ../applications/audio/gxplugins-lv2 { };
 
+  hachoir = with python3Packages; toPythonApplication hachoir;
+
   hackrf = callPackage ../applications/radio/hackrf { };
 
   hacksaw = callPackage ../tools/misc/hacksaw {};
@@ -23429,6 +23660,10 @@ in
 
   hexedit = callPackage ../applications/editors/hexedit { };
 
+  himalaya = callPackage ../applications/networking/mailreaders/himalaya {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   hipchat = callPackage ../applications/networking/instant-messengers/hipchat { };
 
   hivelytracker = callPackage ../applications/audio/hivelytracker { };
@@ -23475,6 +23710,8 @@ in
     wxGTK = wxGTK30;
   };
 
+  haunt = callPackage ../applications/misc/haunt { };
+
   hugo = callPackage ../applications/misc/hugo { };
 
   go-org = callPackage ../applications/misc/go-org { };
@@ -23525,6 +23762,8 @@ in
       '' + (drv.postInstall or "");
     });
 
+  pixelnuke = callPackage ../applications/graphics/pixelnuke { };
+
   slack = callPackage ../applications/networking/instant-messengers/slack { };
 
   slack-cli = callPackage ../tools/networking/slack-cli { };
@@ -23551,7 +23790,7 @@ in
     withPortAudio = stdenv.isDarwin;
   };
 
-  super-productivity = callPackage ../applications/networking/super-productivity { };
+  super-productivity = callPackage ../applications/office/super-productivity { };
 
   wlroots = callPackage ../development/libraries/wlroots {
     inherit (xorg) xcbutilrenderutil;
@@ -23579,9 +23818,7 @@ in
 
   wbg = callPackage ../applications/misc/wbg { };
 
-  hikari = callPackage ../applications/window-managers/hikari {
-    wlroots = wlroots_0_12;
-  };
+  hikari = callPackage ../applications/window-managers/hikari { };
 
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
@@ -23647,6 +23884,8 @@ in
     wlroots = wlroots_0_12;
   };
 
+  workstyle = callPackage ../applications/window-managers/i3/workstyle.nix { };
+
   windowchef = callPackage ../applications/window-managers/windowchef/default.nix { };
 
   wmfocus = callPackage ../applications/window-managers/i3/wmfocus.nix { };
@@ -23909,6 +24148,10 @@ in
 
   kexi = libsForQt514.callPackage ../applications/office/kexi { };
 
+  kgt = callPackage ../development/tools/kgt {
+    inherit (skawarePackages) cleanPackaging;
+  };
+
   khronos = callPackage ../applications/office/khronos { };
 
   keyfinder = libsForQt5.callPackage ../applications/audio/keyfinder { };
@@ -23950,7 +24193,7 @@ in
 
   kooha = callPackage ../applications/video/kooha { };
 
-  kotatogram-desktop = libsForQt514.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop { };
+  kotatogram-desktop = libsForQt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop { };
 
   kpt = callPackage ../applications/networking/cluster/kpt { };
 
@@ -24010,6 +24253,8 @@ in
 
   linkerd = callPackage ../applications/networking/cluster/linkerd { };
 
+  kile-wl = callPackage ../applications/misc/kile-wl { };
+
   kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
 
   wrapHelm = callPackage ../applications/networking/cluster/helm/wrapper.nix { };
@@ -24054,6 +24299,8 @@ in
 
   lbdb = callPackage ../tools/misc/lbdb { abook = null; gnupg = null; goobook = null; khard = null; mu = null; };
 
+  lbry = callPackage ../applications/video/lbry { };
+
   lbzip2 = callPackage ../tools/compression/lbzip2 { };
 
   lci = callPackage ../applications/science/logic/lci {};
@@ -24171,6 +24418,8 @@ in
     portaudio = null;
   };
 
+  losslesscut-bin = callPackage ../applications/video/losslesscut-bin { };
+
   loxodo = callPackage ../applications/misc/loxodo { };
 
   lsd2dsl = libsForQt5.callPackage ../applications/misc/lsd2dsl { };
@@ -24284,6 +24533,8 @@ in
       canonicaljson;
   };
 
+  matrix-commander = callPackage ../applications/networking/instant-messengers/matrix-commander { };
+
   matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { };
 
   matrix-recorder = callPackage ../applications/networking/instant-messengers/matrix-recorder {};
@@ -24384,7 +24635,7 @@ in
   mjpg-streamer = callPackage ../applications/video/mjpg-streamer { };
 
   mldonkey = callPackage ../applications/networking/p2p/mldonkey {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_05;
+    ocamlPackages = ocaml-ng.ocamlPackages_4_08;
   };
 
   MMA = callPackage ../applications/audio/MMA { };
@@ -24465,6 +24716,8 @@ in
 
   motif = callPackage ../development/libraries/motif { };
 
+  mousai = callPackage ../applications/audio/mousai { };
+
   mozjpeg = callPackage ../applications/graphics/mozjpeg { };
 
   easytag = callPackage ../applications/audio/easytag { };
@@ -24505,6 +24758,8 @@ in
 
   rofi-file-browser = callPackage ../applications/misc/rofi-file-browser { };
 
+  rofi-power-menu = callPackage ../applications/misc/rofi-power-menu { };
+
   ympd = callPackage ../applications/audio/ympd { };
 
   # a somewhat more maintained fork of ympd
@@ -24541,6 +24796,7 @@ in
     autoload = callPackage ../applications/video/mpv/scripts/autoload.nix {};
     convert = callPackage ../applications/video/mpv/scripts/convert.nix {};
     mpris = callPackage ../applications/video/mpv/scripts/mpris.nix {};
+    mpv-playlistmanager = callPackage ../applications/video/mpv/scripts/mpv-playlistmanager.nix {};
     mpvacious = callPackage ../applications/video/mpv/scripts/mpvacious.nix {};
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
     sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
@@ -25018,10 +25274,7 @@ in
 
   osmscout-server = libsForQt5.callPackage ../applications/misc/osmscout-server { };
 
-  palemoon = callPackage ../applications/networking/browsers/palemoon {
-    # https://developer.palemoon.org/build/linux/
-    stdenv = gcc8Stdenv;
-  };
+  palemoon = callPackage ../applications/networking/browsers/palemoon { };
 
   webbrowser = callPackage ../applications/networking/browsers/webbrowser {};
 
@@ -25029,6 +25282,8 @@ in
 
   pamixer = callPackage ../applications/audio/pamixer { };
 
+  myxer = callPackage ../applications/audio/myxer { };
+
   ncpamixer = callPackage ../applications/audio/ncpamixer { };
 
   pan = callPackage ../applications/networking/newsreaders/pan { };
@@ -25562,7 +25817,9 @@ in
 
   rtl-ais = callPackage ../applications/radio/rtl-ais { };
 
+  # librtlsdr is a friendly fork with additional features
   rtl-sdr = callPackage ../applications/radio/rtl-sdr { };
+  librtlsdr = callPackage ../development/libraries/librtlsdr { };
 
   rtv = callPackage ../applications/misc/rtv { };
 
@@ -25602,6 +25859,8 @@ in
 
   secretscanner = callPackage ../tools/security/secretscanner { };
 
+  semiphemeral = callPackage ../tools/misc/semiphemeral { };
+
   sent = callPackage ../applications/misc/sent { };
 
   seq24 = callPackage ../applications/audio/seq24 { };
@@ -25630,6 +25889,8 @@ in
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
+  sish = callPackage ../tools/networking/sish { };
+
   skypeforlinux = callPackage ../applications/networking/instant-messengers/skypeforlinux { };
 
   skype4pidgin = callPackage ../applications/networking/instant-messengers/pidgin-plugins/skype4pidgin { };
@@ -26087,6 +26348,8 @@ in
 
   timewarrior = callPackage ../applications/misc/timewarrior { };
 
+  timg = callPackage ../tools/graphics/timg { };
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tint2 = callPackage ../applications/misc/tint2 { };
@@ -26119,6 +26382,8 @@ in
 
   todo-txt-cli = callPackage ../applications/office/todo.txt-cli { };
 
+  todofi-sh = callPackage ../applications/office/todofi.sh { };
+
   todoman = callPackage ../applications/office/todoman { };
 
   toggldesktop = libsForQt514.callPackage ../applications/misc/toggldesktop { };
@@ -26149,6 +26414,11 @@ in
   transcode = callPackage ../applications/audio/transcode { };
 
   transmission = callPackage ../applications/networking/p2p/transmission { };
+  libtransmission = transmission.override {
+    installLib = true;
+    enableDaemon = false;
+    enableCli = false;
+  };
   transmission-gtk = transmission.override { enableGTK3 = true; };
   transmission-qt = transmission.override { enableQt = true; };
 
@@ -26273,6 +26543,8 @@ in
 
   vimiv = callPackage ../applications/graphics/vimiv { };
 
+  vimiv-qt = callPackage ../applications/graphics/vimiv-qt { };
+
   macvim = callPackage ../applications/editors/vim/macvim-configurable.nix { stdenv = clangStdenv; };
 
   vimHugeX = vim_configurable;
@@ -26524,8 +26796,7 @@ in
   wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]);
   inherit (wayfireApplications) wayfire wcm;
   wayfireApplications-unwrapped = recurseIntoAttrs (
-    (callPackage ../applications/window-managers/wayfire/applications.nix { }).
-    extend (_: _: { wlroots = wlroots_0_12; })
+    callPackage ../applications/window-managers/wayfire/applications.nix { }
   );
   wayfirePlugins = recurseIntoAttrs (
     callPackage ../applications/window-managers/wayfire/plugins.nix {
@@ -26703,6 +26974,7 @@ in
       ++ optional (cfg.enableStella or false) stella
       ++ optional (cfg.enableStella2014 or false) stella2014
       ++ optional (cfg.enableTGBDual or false) tgbdual
+      ++ optional (cfg.enableThePowderToy or false) the-powder-toy
       ++ optional (cfg.enableTIC80 or false) tic80
       ++ optional (cfg.enableVbaNext or false) vba-next
       ++ optional (cfg.enableVbaM or false) vba-m
@@ -26778,13 +27050,17 @@ in
 
   kodiPackages = recurseIntoAttrs (kodi.packages);
 
-  kodi = callPackage ../applications/video/kodi { };
+  kodi = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
+  };
 
   kodi-wayland = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
     waylandSupport = true;
   };
 
   kodi-gbm = callPackage ../applications/video/kodi {
+    jre_headless = jdk11_headless;
     gbmSupport = true;
   };
 
@@ -27631,7 +27907,9 @@ in
 
   ivan = callPackage ../games/ivan { };
 
-  ja2-stracciatella = callPackage ../games/ja2-stracciatella { };
+  ja2-stracciatella = callPackage ../games/ja2-stracciatella {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
+  };
 
   katago = callPackage ../games/katago { };
 
@@ -27936,7 +28214,10 @@ in
     tk = tk-8_6;
   };
 
-  scummvm = callPackage ../games/scummvm { };
+  scummvm = callPackage ../games/scummvm {
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) Cocoa AudioToolbox Carbon CoreMIDI AudioUnit;
+  };
 
   inherit (callPackage ../games/scummvm/games.nix { })
     beneath-a-steel-sky
@@ -28363,6 +28644,8 @@ in
 
   plasma-applet-volumewin7mixer = libsForQt5.callPackage ../applications/misc/plasma-applet-volumewin7mixer { };
 
+  plasma-pass = libsForQt5.callPackage ../tools/security/plasma-pass { };
+
   inherit (callPackages ../applications/misc/redshift {
     inherit (python3Packages) python pygobject3 pyxdg wrapPython;
     inherit (darwin.apple_sdk.frameworks) CoreLocation ApplicationServices Foundation Cocoa;
@@ -28492,6 +28775,8 @@ in
 
   dcm2niix = callPackage ../applications/science/biology/dcm2niix { };
 
+  deepdiff = with python3Packages; toPythonApplication deepdiff;
+
   deepsea = callPackage ../tools/security/deepsea { };
 
   deeptools = callPackage ../applications/science/biology/deeptools { python = python3; };
@@ -28540,6 +28825,8 @@ in
 
   macse = callPackage ../applications/science/biology/macse { };
 
+  MACS2 = callPackage ../applications/science/biology/MACS2 { };
+
   migrate = callPackage ../applications/science/biology/migrate { };
 
   minia = callPackage ../applications/science/biology/minia {
@@ -28756,6 +29043,7 @@ in
   osi = callPackage ../development/libraries/science/math/osi { };
 
   or-tools = callPackage ../development/libraries/science/math/or-tools {
+    python = python3;
     abseil-cpp = abseil-cpp.override { static = true; };
   };
 
@@ -28877,9 +29165,7 @@ in
 
   aspino = callPackage ../applications/science/logic/aspino {};
 
-  beluga = callPackage ../applications/science/logic/beluga {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
-  };
+  beluga = callPackage ../applications/science/logic/beluga {};
 
   boogie = dotnetPackages.Boogie;
 
@@ -28948,6 +29234,8 @@ in
 
   hologram = callPackage ../tools/security/hologram { };
 
+  honeytrap = callPackage ../tools/security/honeytrap { };
+
   tini = callPackage ../applications/virtualization/tini {};
 
   ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
@@ -29668,6 +29956,8 @@ in
 
   image_optim = callPackage ../applications/graphics/image_optim { inherit (nodePackages) svgo; };
 
+  infnoise = callPackage ../misc/drivers/infnoise { };
+
   # using the new configuration style proposal which is unstable
   jack1 = callPackage ../misc/jackaudio/jack1.nix { };
 
@@ -29715,6 +30005,8 @@ in
 
   loop = callPackage ../tools/misc/loop { };
 
+  maiko = callPackage ../misc/emulators/maiko { inherit (xorg) libX11; };
+
   mailcore2 = callPackage ../development/libraries/mailcore2 {
     icu = icu58;
   };
@@ -30083,6 +30375,8 @@ in
 
   protocol = python3Packages.callPackage ../applications/networking/protocol { };
 
+  punes = libsForQt5.callPackage ../misc/emulators/punes { };
+
   pykms = callPackage ../tools/networking/pykms { };
 
   pyupgrade = with python3Packages; toPythonApplication pyupgrade;
@@ -30140,7 +30434,9 @@ in
 
   rmount = callPackage ../tools/filesystems/rmount {};
 
-  romdirfs = callPackage ../tools/filesystems/romdirfs {};
+  romdirfs = callPackage ../tools/filesystems/romdirfs {
+    stdenv = gccStdenv;
+  };
 
   rss-glx = callPackage ../misc/screensavers/rss-glx { };
 
@@ -30289,6 +30585,7 @@ in
     terraform_0_12
     terraform_0_13
     terraform_0_14
+    terraform_0_15
     terraform_plugins_test
     ;
 
@@ -30483,6 +30780,8 @@ in
 
   wordpress = callPackage ../servers/web-apps/wordpress { };
 
+  wprecon = callPackage ../tools/security/wprecon { };
+
   wraith = callPackage ../applications/networking/irc/wraith {
     openssl = openssl_1_0_2;
   };
@@ -30509,6 +30808,8 @@ in
 
   xortool = python3Packages.callPackage ../tools/security/xortool { };
 
+  xorex = callPackage ../tools/security/xorex { };
+
   xow = callPackage ../misc/drivers/xow { };
 
   xbps = callPackage ../tools/package-management/xbps { };
@@ -30577,6 +30878,8 @@ in
 
   yara = callPackage ../tools/security/yara { };
 
+  yarGen = callPackage ../tools/security/yarGen { };
+
   yaxg = callPackage ../tools/graphics/yaxg {};
 
   yuzu-mainline = import ../misc/emulators/yuzu {
@@ -30653,8 +30956,6 @@ in
 
   mpvc = callPackage ../applications/misc/mpvc { };
 
-  togglesg-download = callPackage ../tools/misc/togglesg-download { };
-
   discord = import ../applications/networking/instant-messengers/discord {
     branch = "stable";
     inherit pkgs;
@@ -30767,6 +31068,8 @@ in
     inherit (darwin) libresolv;
   };
 
+  dnstwist = callPackage ../tools/networking/dnstwist {};
+
   dsniff = callPackage ../tools/networking/dsniff {};
 
   wal-g = callPackage ../tools/backup/wal-g { };
@@ -30777,6 +31080,8 @@ in
 
   simplehttp2server = callPackage ../servers/simplehttp2server { };
 
+  simple-http-server = callPackage ../servers/simple-http-server { };
+
   diceware = with python3Packages; toPythonApplication diceware;
 
   xml2rfc = with python3Packages; toPythonApplication xml2rfc;
@@ -30849,8 +31154,6 @@ in
 
   zrepl = callPackage ../tools/backup/zrepl { };
 
-  runwayml = callPackage ../applications/graphics/runwayml {};
-
   uhubctl = callPackage ../tools/misc/uhubctl {};
 
   kodelife = callPackage ../applications/graphics/kodelife {};
@@ -30919,6 +31222,8 @@ in
 
   fac-build = callPackage ../development/tools/build-managers/fac {};
 
+  treefmt = callPackage ../development/tools/treefmt { };
+
   bottom = callPackage ../tools/system/bottom {};
 
   cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index aae127fd04e..ac9d4ab524e 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -111,7 +111,7 @@ rec {
     # access for example elixir built with different version of Erlang, use
     # `beam.packages.erlangR23.elixir`.
     inherit (packages.erlang)
-      elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7;
+      elixir elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls;
 
     inherit (packages.erlang) lfe lfe_1_2 lfe_1_3;
   };
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 44d7301c7b9..e533d5aace1 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -42,6 +42,7 @@ let
       interval = callPackage ../development/coq-modules/interval {};
       InfSeqExt = callPackage ../development/coq-modules/InfSeqExt {};
       iris = callPackage ../development/coq-modules/iris {};
+      ITree = callPackage ../development/coq-modules/ITree { };
       ltac2 = callPackage ../development/coq-modules/ltac2 {};
       math-classes = callPackage ../development/coq-modules/math-classes { };
       mathcomp = callPackage ../development/coq-modules/mathcomp {};
diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix
index fbdf45d4202..f9bf8dc8706 100644
--- a/pkgs/top-level/kodi-packages.nix
+++ b/pkgs/top-level/kodi-packages.nix
@@ -94,6 +94,8 @@ let self = rec {
 
   vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { };
 
+  youtube = callPackage ../applications/video/kodi-packages/youtube { };
+
   # addon packages (dependencies)
 
   certifi = callPackage ../applications/video/kodi-packages/certifi { };
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 5aa7482fdc6..6ae5f43a63c 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -236,6 +236,8 @@ let
 
     ctypes = callPackage ../development/ocaml-modules/ctypes { };
 
+    dap =  callPackage ../development/ocaml-modules/dap { };
+
     decompress =  callPackage ../development/ocaml-modules/decompress { };
 
     diet =  callPackage ../development/ocaml-modules/diet { };
@@ -399,6 +401,8 @@ let
       inherit (pkgs) gsl;
     };
 
+    h2 = callPackage ../development/ocaml-modules/h2 { };
+
     hacl_x25519 = callPackage ../development/ocaml-modules/hacl_x25519 { };
 
     herelib = callPackage ../development/ocaml-modules/herelib { };
@@ -411,6 +415,8 @@ let
 
     hmap = callPackage ../development/ocaml-modules/hmap { };
 
+    hpack = callPackage ../development/ocaml-modules/hpack { };
+
     hxd = callPackage ../development/ocaml-modules/hxd { };
 
     imagelib = callPackage ../development/ocaml-modules/imagelib { };
@@ -574,6 +580,8 @@ let
 
     lens = callPackage ../development/ocaml-modules/lens { };
 
+    letsencrypt = callPackage ../development/ocaml-modules/letsencrypt { };
+
     linenoise = callPackage ../development/ocaml-modules/linenoise { };
 
     llvm = callPackage ../development/ocaml-modules/llvm {
@@ -673,6 +681,8 @@ let
 
     mirage-bootvar-unix = callPackage ../development/ocaml-modules/mirage-bootvar-unix { };
 
+    mirage-bootvar-xen = callPackage ../development/ocaml-modules/mirage-bootvar-xen { };
+
     mirage-channel = callPackage ../development/ocaml-modules/mirage-channel { };
 
     mirage-clock = callPackage ../development/ocaml-modules/mirage-clock { };
@@ -715,6 +725,8 @@ let
 
     mirage-net = callPackage ../development/ocaml-modules/mirage-net { };
 
+    mirage-net-xen = callPackage ../development/ocaml-modules/mirage-net-xen { };
+
     mirage-profile = callPackage ../development/ocaml-modules/mirage-profile { };
 
     mirage-protocols = callPackage ../development/ocaml-modules/mirage-protocols { };
@@ -737,6 +749,8 @@ let
 
     mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
 
+    mirage-xen = callPackage ../development/ocaml-modules/mirage-xen { };
+
     mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { };
 
     mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
@@ -751,6 +765,8 @@ let
 
     mustache =  callPackage ../development/ocaml-modules/mustache { };
 
+    netchannel = callPackage ../development/ocaml-modules/netchannel { };
+
     nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
     nonstd =  callPackage ../development/ocaml-modules/nonstd { };
@@ -928,8 +944,12 @@ let
 
     ounit2 = callPackage ../development/ocaml-modules/ounit2 { };
 
+    paf = callPackage ../development/ocaml-modules/paf { };
+
     parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
 
+    path_glob = callPackage ../development/ocaml-modules/path_glob { };
+
     pbkdf = callPackage ../development/ocaml-modules/pbkdf { };
 
     pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
@@ -1018,7 +1038,11 @@ let
 
     ocaml-protoc = callPackage ../development/ocaml-modules/ocaml-protoc { };
 
-    ocaml_extlib = callPackage ../development/ocaml-modules/extlib { };
+    ocaml_extlib = ocaml_extlib-1-7-8;
+
+    ocaml_extlib-1-7-8 = callPackage ../development/ocaml-modules/extlib { };
+
+    ocaml_extlib-1-7-7 = callPackage ../development/ocaml-modules/extlib/1.7.7.nix { };
 
     ocb-stubblr = callPackage ../development/ocaml-modules/ocb-stubblr { };
 
@@ -1130,6 +1154,10 @@ let
 
     sha = callPackage ../development/ocaml-modules/sha { };
 
+    shared-memory-ring = callPackage ../development/ocaml-modules/shared-memory-ring { };
+
+    shared-memory-ring-lwt = callPackage ../development/ocaml-modules/shared-memory-ring/lwt.nix { };
+
     sodium = callPackage ../development/ocaml-modules/sodium { };
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
@@ -1195,6 +1223,8 @@ let
 
     wasm = callPackage ../development/ocaml-modules/wasm { };
 
+    wayland = callPackage ../development/ocaml-modules/wayland { };
+
     webbrowser = callPackage ../development/ocaml-modules/webbrowser { };
 
     webmachine = callPackage ../development/ocaml-modules/webmachine { };
@@ -1254,7 +1284,7 @@ let
     if lib.versionOlder "4.08" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.14.nix {
       inherit self;
-      inherit (pkgs) openssl zstd;
+      inherit (pkgs) lib openssl zstd;
     }
     else if lib.versionOlder "4.07" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.12.nix {
@@ -1472,5 +1502,5 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_latest = ocamlPackages_4_12;
 
-  ocamlPackages = ocamlPackages_4_10;
+  ocamlPackages = ocamlPackages_4_12;
 }
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 00d5342d62e..9db246eae43 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -4481,6 +4481,20 @@ let
     propagatedBuildInputs = [ Clone ];
   };
 
+  CSSMinifier = buildPerlPackage {
+    pname = "CSS-Minifier";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PM/PMICHAUX/CSS-Minifier-0.01.tar.gz";
+      sha256 = "0Kk0m46LfoOrcM+IVM+7Qv8pwfbHyCmPIlfdIaoMf+8=";
+    };
+    meta = with lib; {
+      description = "Perl extension for minifying CSS";
+      license = licenses.artistic1;
+      maintainers = teams.determinatesystems.members;
+    };
+  };
+
   CSSMinifierXS = buildPerlModule {
     pname = "CSS-Minifier-XS";
     version = "0.09";
@@ -10884,10 +10898,10 @@ let
 
   JSONValidator = buildPerlPackage {
     pname = "JSON-Validator";
-    version = "4.14";
+    version = "4.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.14.tar.gz";
-      sha256 = "16zaaw7p94nz7yclz30b9xph0riy5ailqg5rjkvi1yps2hr9ba7z";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.16.tar.gz";
+      sha256 = "0mhdczx2pxzi4lrrzkxl2a3r0s2b79ffsrar6g2l01idfpri6gi2";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DataValidateDomain DataValidateIP Mojolicious NetIDNEncode YAMLLibYAML ];
@@ -11259,10 +11273,10 @@ let
 
   LinkEmbedder = buildPerlPackage {
     pname = "LinkEmbedder";
-    version = "1.17";
+    version = "1.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.17.tar.gz";
-      sha256 = "10r1q2xfba59w818li5xaj6jlph9qla7vb99ir1ampq5n8g0s5i6";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.18.tar.gz";
+      sha256 = "17gnixbawzr0r1k37dry7axb7ry6sj2xiahki28m8qbk1l69dfjz";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ Mojolicious ];
@@ -13524,10 +13538,10 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "9.10";
+    version = "9.17";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.10.tar.gz";
-      sha256 = "0y4ccy85vh7nily2y1c457f687qc8rwi4mnx13619hslkagw4rqw";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.17.tar.gz";
+      sha256 = "13dxjhr03dhh1f5bbxbb3jiwdv7jby96qqb97l3arf5x043yd9hd";
     };
     meta = {
       homepage = "https://mojolicious.org";
@@ -13586,10 +13600,10 @@ let
 
   MojoliciousPluginOpenAPI = buildPerlPackage {
     pname = "Mojolicious-Plugin-OpenAPI";
-    version = "4.00";
+    version = "4.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-4.00.tar.gz";
-      sha256 = "1npnbygs12d683m5i6cgvdmw6glvppnv75f4qpp908fdz8lwcb2z";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-4.02.tar.gz";
+      sha256 = "0rkkkcd3y3gjj0kis0hrab6mz8rk1qd57nz4npy39bag6h1kpyfv";
     };
     propagatedBuildInputs = [ JSONValidator ];
     meta = {
@@ -13602,12 +13616,12 @@ let
 
   MojoliciousPluginStatus = buildPerlPackage {
     pname = "Mojolicious-Plugin-Status";
-    version = "1.12";
+    version = "1.17";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.12.tar.gz";
-      sha256 = "1hn333220ba3hxl9aks0ywx933zv6klyi3a0iw571q76z5a8r2jn";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz";
+      sha256 = "1d475ch43vbfn3h4lsmr3n6rhgxgz670xqj4rcdjd4g1wfpiyasc";
     };
-    propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious ];
+    propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ];
     meta = {
       homepage = "https://github.com/mojolicious/mojo-status";
       description = "Mojolicious server status plugin";
@@ -13618,10 +13632,10 @@ let
 
   MojoliciousPluginTextExceptions = buildPerlPackage {
     pname = "Mojolicious-Plugin-TextExceptions";
-    version = "0.01";
+    version = "0.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.01.tar.gz";
-      sha256 = "070daf284c5d3832b7fde42120eaf747aea4cc75de8ff807f77accc84fe4f22e";
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz";
+      sha256 = "0x7qkd9nmarzb7kvk4dvhka4s44mfcd026zz3ikfwk3qql2p86rs";
     };
     propagatedBuildInputs = [ Mojolicious ];
     meta = {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 70e06433e92..90f766ed459 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -96,15 +96,18 @@ let
       };
     });
 
-  disabledIf = x: drv:
-    if x then throw "${removePythonPrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}" else drv;
+  disabled = drv: throw "${removePythonPrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}";
+
+  disabledIf = x: drv: if x then disabled drv else drv;
 
 in {
 
+  inherit pkgs stdenv;
+
   inherit (python.passthru) isPy27 isPy35 isPy36 isPy37 isPy38 isPy39 isPy3k isPyPy pythonAtLeast pythonOlder;
   inherit python bootstrapped-pip buildPythonPackage buildPythonApplication;
   inherit fetchPypi;
-  inherit hasPythonModule requiredPythonModules makePythonPath disabledIf;
+  inherit hasPythonModule requiredPythonModules makePythonPath disabled disabledIf;
   inherit toPythonModule toPythonApplication;
   inherit buildSetupcfg;
 
@@ -154,10 +157,7 @@ in {
 
   recursivePthLoader = callPackage ../development/python-modules/recursive-pth-loader { };
 
-  setuptools = if isPy27 then
-    callPackage ../development/python-modules/setuptools/44.0.nix { }
-  else
-    callPackage ../development/python-modules/setuptools { };
+  setuptools = callPackage ../development/python-modules/setuptools { };
 
   aadict = callPackage ../development/python-modules/aadict { };
 
@@ -211,8 +211,6 @@ in {
 
   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 { };
@@ -249,8 +247,6 @@ in {
 
   aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
-
   aioextensions = callPackage ../development/python-modules/aioextensions { };
 
   aiofiles = callPackage ../development/python-modules/aiofiles { };
@@ -393,6 +389,10 @@ in {
 
   androguard = callPackage ../development/python-modules/androguard { };
 
+  angr = callPackage ../development/python-modules/angr { };
+
+  angrop = callPackage ../development/python-modules/angrop { };
+
   aniso8601 = callPackage ../development/python-modules/aniso8601 { };
 
   annexremote = callPackage ../development/python-modules/annexremote { };
@@ -421,10 +421,6 @@ in {
 
   ansiwrap = callPackage ../development/python-modules/ansiwrap { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime {
-    inherit (pkgs) antlr4;
-  };
-
   antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime {
     inherit (pkgs) antlr4;
   };
@@ -447,10 +443,6 @@ in {
 
   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 { };
@@ -511,10 +503,7 @@ in {
 
   asdf = callPackage ../development/python-modules/asdf { };
 
-  ase = if isPy27 then
-    callPackage ../development/python-modules/ase/3.17.nix { }
-  else
-    callPackage ../development/python-modules/ase { };
+  ase = callPackage ../development/python-modules/ase { };
 
   asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
 
@@ -534,10 +523,7 @@ in {
 
   astral = callPackage ../development/python-modules/astral { };
 
-  astroid = if isPy3k then
-    callPackage ../development/python-modules/astroid { }
-  else
-    callPackage ../development/python-modules/astroid/1.6.nix { };
+  astroid = callPackage ../development/python-modules/astroid { };
 
   astropy = callPackage ../development/python-modules/astropy { };
 
@@ -919,11 +905,9 @@ in {
 
   backports-datetime-fromisoformat = callPackage ../development/python-modules/backports-datetime-fromisoformat { };
 
-  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
-
-  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+  backports-entry-points-selectable = callPackage ../development/python-modules/backports-entry-points-selectable { };
 
-  backports_os = callPackage ../development/python-modules/backports_os { };
+  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
 
   backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
 
@@ -939,6 +923,8 @@ in {
 
   bacpypes = callPackage ../development/python-modules/bacpypes { };
 
+  banal = callPackage ../development/python-modules/banal { };
+
   bandit = callPackage ../development/python-modules/bandit { };
 
   bap = callPackage ../development/python-modules/bap {
@@ -977,10 +963,7 @@ in {
 
   bcdoc = callPackage ../development/python-modules/bcdoc { };
 
-  bcrypt = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/bcrypt/3_1.nix { }
-  else
-    callPackage ../development/python-modules/bcrypt { };
+  bcrypt = callPackage ../development/python-modules/bcrypt { };
 
   beaker = callPackage ../development/python-modules/beaker { };
 
@@ -992,6 +975,8 @@ in {
 
   beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
 
+  beautifultable = callPackage ../development/python-modules/beautifultable { };
+
   bedup = callPackage ../development/python-modules/bedup { };
 
   behave = callPackage ../development/python-modules/behave { };
@@ -1038,10 +1023,6 @@ in {
 
   bitbox02 = callPackage ../development/python-modules/bitbox02 { };
 
-  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
-
-  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
-
   bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
 
   bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
@@ -1078,8 +1059,6 @@ in {
 
   blist = callPackage ../development/python-modules/blist { };
 
-  blivet = callPackage ../development/python-modules/blivet { };
-
   blockchain = callPackage ../development/python-modules/blockchain { };
 
   blockdiag = callPackage ../development/python-modules/blockdiag { };
@@ -1121,8 +1100,6 @@ in {
 
   bottleneck = callPackage ../development/python-modules/bottleneck { };
 
-  box2d = callPackage ../development/python-modules/box2d { };
-
   bpython = callPackage ../development/python-modules/bpython { };
 
   bracex = callPackage ../development/python-modules/bracex { };
@@ -1151,8 +1128,6 @@ in {
 
   browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
-  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy { });
-
   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
   bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
@@ -1222,15 +1197,9 @@ in {
     inherit (self) python numpy boost;
   });
 
-  cairocffi = if isPy3k then
-    callPackage ../development/python-modules/cairocffi { }
-  else
-    callPackage ../development/python-modules/cairocffi/0_9.nix { };
+  cairocffi = callPackage ../development/python-modules/cairocffi { };
 
-  cairosvg = if isPy3k then
-    callPackage ../development/python-modules/cairosvg { }
-  else
-    callPackage ../development/python-modules/cairosvg/1_x.nix { };
+  cairosvg = callPackage ../development/python-modules/cairosvg { };
 
   caldav = callPackage ../development/python-modules/caldav { };
 
@@ -1278,10 +1247,6 @@ in {
 
   cchardet = callPackage ../development/python-modules/cchardet { };
 
-  CDDB = callPackage ../development/python-modules/cddb { };
-
-  cdecimal = callPackage ../development/python-modules/cdecimal { };
-
   celery = callPackage ../development/python-modules/celery { };
 
   cement = callPackage ../development/python-modules/cement { };
@@ -1348,14 +1313,9 @@ in {
 
   cheetah3 = callPackage ../development/python-modules/cheetah3 { };
 
-  cheetah = callPackage ../development/python-modules/cheetah { };
-
   cheroot = callPackage ../development/python-modules/cheroot { };
 
-  cherrypy = if isPy3k then
-    callPackage ../development/python-modules/cherrypy { }
-  else
-    callPackage ../development/python-modules/cherrypy/17.nix { };
+  cherrypy = callPackage ../development/python-modules/cherrypy { };
 
   chevron = callPackage ../development/python-modules/chevron { };
 
@@ -1373,6 +1333,8 @@ in {
 
   citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
+  cjkwrap = callPackage ../development/python-modules/cjkwrap { };
+
   cjson = callPackage ../development/python-modules/cjson { };
 
   ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
@@ -1383,11 +1345,13 @@ in {
 
   cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
 
+  cle = callPackage ../development/python-modules/cle { };
+
   cleo = callPackage ../development/python-modules/cleo { };
 
-  clf = callPackage ../development/python-modules/clf { };
+  clevercsv = callPackage ../development/python-modules/clevercsv { };
 
-  cliapp = callPackage ../development/python-modules/cliapp { };
+  clf = callPackage ../development/python-modules/clf { };
 
   click = callPackage ../development/python-modules/click { };
 
@@ -1413,6 +1377,8 @@ in {
 
   clickhouse-cityhash = callPackage ../development/python-modules/clickhouse-cityhash {};
 
+  clickhouse-cli = callPackage ../development/python-modules/clickhouse-cli { };
+
   clickhouse-driver = callPackage ../development/python-modules/clickhouse-driver {};
 
   cliff = callPackage ../development/python-modules/cliff { };
@@ -1433,8 +1399,6 @@ in {
 
   clldutils = callPackage ../development/python-modules/clldutils { };
 
-  closure-linter = callPackage ../development/python-modules/closure-linter { };
-
   cloudflare = callPackage ../development/python-modules/cloudflare { };
 
   cloudpickle = callPackage ../development/python-modules/cloudpickle { };
@@ -1451,8 +1415,6 @@ in {
 
   cmdline = callPackage ../development/python-modules/cmdline { };
 
-  cmdtest = callPackage ../development/python-modules/cmdtest { };
-
   cmigemo = callPackage ../development/python-modules/cmigemo {
     inherit (pkgs) cmigemo;
   };
@@ -1475,8 +1437,6 @@ in {
 
   cogapp = callPackage ../development/python-modules/cogapp { };
 
-  coilmq = callPackage ../development/python-modules/coilmq { };
-
   ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
   colander = callPackage ../development/python-modules/colander { };
@@ -1505,6 +1465,8 @@ in {
 
   commandparse = callPackage ../development/python-modules/commandparse { };
 
+  commoncode = callPackage ../development/python-modules/commoncode { };
+
   CommonMark = callPackage ../development/python-modules/commonmark { };
 
   compiledb = callPackage ../development/python-modules/compiledb { };
@@ -1516,10 +1478,7 @@ in {
 
   configobj = callPackage ../development/python-modules/configobj { };
 
-  configparser = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/configparser/4.nix { }
-  else
-    callPackage ../development/python-modules/configparser { };
+  configparser = callPackage ../development/python-modules/configparser { };
 
   configshell = callPackage ../development/python-modules/configshell { };
 
@@ -1533,10 +1492,7 @@ in {
 
   constantly = callPackage ../development/python-modules/constantly { };
 
-  construct = if isPy27 then
-    callPackage ../development/python-modules/construct/2.10.54.nix { }
-  else
-    callPackage ../development/python-modules/construct { };
+  construct = callPackage ../development/python-modules/construct { };
 
   consul = callPackage ../development/python-modules/consul { };
 
@@ -1546,10 +1502,7 @@ in {
 
   contextvars = callPackage ../development/python-modules/contextvars { };
 
-  convertdate = if isPy27 then
-    callPackage ../development/python-modules/convertdate/2.2.x.nix { }
-  else
-    callPackage ../development/python-modules/convertdate { };
+  convertdate = callPackage ../development/python-modules/convertdate { };
 
   cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
@@ -1605,15 +1558,9 @@ in {
 
   cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  cryptography = if isPy27 then
-    callPackage ../development/python-modules/cryptography/3.3.nix { }
-  else
-    callPackage ../development/python-modules/cryptography { };
+  cryptography = callPackage ../development/python-modules/cryptography { };
 
-  cryptography_vectors = if isPy27 then
-    callPackage ../development/python-modules/cryptography/vectors-3.3.nix { }
-  else
-    callPackage ../development/python-modules/cryptography/vectors.nix { };
+  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
 
   crytic-compile = callPackage ../development/python-modules/crytic-compile { };
 
@@ -1623,6 +1570,8 @@ in {
 
   cssmin = callPackage ../development/python-modules/cssmin { };
 
+  css-html-js-minify = callPackage ../development/python-modules/css-html-js-minify { };
+
   css-parser = callPackage ../development/python-modules/css-parser { };
 
   cssselect2 = callPackage ../development/python-modules/cssselect2 { };
@@ -1652,6 +1601,8 @@ in {
 
   curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
+  cve-bin-tool = callPackage ../development/python-modules/cve-bin-tool { };
+
   cvxopt = callPackage ../development/python-modules/cvxopt { };
 
   cvxpy = callPackage ../development/python-modules/cvxpy { };
@@ -1660,6 +1611,8 @@ in {
 
   cx_oracle = callPackage ../development/python-modules/cx_oracle { };
 
+  cxxfilt = callPackage ../development/python-modules/cxxfilt { };
+
   cycler = callPackage ../development/python-modules/cycler { };
 
   cymem = callPackage ../development/python-modules/cymem { };
@@ -1680,8 +1633,6 @@ in {
 
   daphne = callPackage ../development/python-modules/daphne { };
 
-  darcsver = callPackage ../development/python-modules/darcsver { };
-
   dash = callPackage ../development/python-modules/dash { };
 
   dash-core-components = callPackage ../development/python-modules/dash-core-components { };
@@ -1738,10 +1689,7 @@ in {
 
   datatable = callPackage ../development/python-modules/datatable { };
 
-  dateparser = if isPy27 then
-    callPackage ../development/python-modules/dateparser/0.x.nix { }
-  else
-    callPackage ../development/python-modules/dateparser { };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
   datrie = callPackage ../development/python-modules/datrie { };
 
@@ -1765,10 +1713,14 @@ in {
 
   debian = callPackage ../development/python-modules/debian { };
 
+  debian-inspector = callPackage ../development/python-modules/debian-inspector { };
+
   debts = callPackage ../development/python-modules/debts { };
 
   debugpy = callPackage ../development/python-modules/debugpy { };
 
+  debut = callPackage ../development/python-modules/debut { };
+
   decorator = callPackage ../development/python-modules/decorator { };
 
   deep_merge = callPackage ../development/python-modules/deep_merge { };
@@ -1779,6 +1731,8 @@ in {
 
   deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
+  deezer-python = callPackage ../development/python-modules/deezer-python { };
+
   defcon = callPackage ../development/python-modules/defcon { };
 
   deform = callPackage ../development/python-modules/deform { };
@@ -1805,8 +1759,6 @@ in {
 
   descartes = callPackage ../development/python-modules/descartes { };
 
-  deskcon = callPackage ../development/python-modules/deskcon { };
-
   desktop-notifier = callPackage ../development/python-modules/desktop-notifier { };
 
   detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
@@ -1907,8 +1859,6 @@ in {
 
   django_environ = callPackage ../development/python-modules/django_environ { };
 
-  django_evolution = callPackage ../development/python-modules/django_evolution { };
-
   django_extensions = callPackage ../development/python-modules/django-extensions { };
 
   django-filter = callPackage ../development/python-modules/django-filter { };
@@ -2024,10 +1974,7 @@ in {
 
   dnslib = callPackage ../development/python-modules/dnslib { };
 
-  dnspython = if isPy3k then
-    callPackage ../development/python-modules/dnspython { }
-  else
-    self.dnspython_1;
+  dnspython = callPackage ../development/python-modules/dnspython { };
 
   dnspython_1 = callPackage ../development/python-modules/dnspython/1.nix { };
 
@@ -2043,7 +1990,7 @@ in {
 
   docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py { });
+  docker-py = callPackage ../development/python-modules/docker-py { };
 
   dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
@@ -2101,7 +2048,7 @@ in {
 
   ds4drv = callPackage ../development/python-modules/ds4drv { };
 
-  dtopt = callPackage ../development/python-modules/dtopt { };
+  dsmr-parser = callPackage ../development/python-modules/dsmr-parser { };
 
   duckdb = callPackage ../development/python-modules/duckdb {
     inherit (pkgs) duckdb;
@@ -2113,10 +2060,7 @@ in {
 
   dugong = callPackage ../development/python-modules/dugong { };
 
-  dulwich = if isPy3k then
-    callPackage ../development/python-modules/dulwich { }
-  else
-    callPackage ../development/python-modules/dulwich/0_19.nix { };
+  dulwich = callPackage ../development/python-modules/dulwich { };
 
   dwdwfsapi = callPackage ../development/python-modules/dwdwfsapi { };
 
@@ -2203,8 +2147,6 @@ in {
 
   enum34 = callPackage ../development/python-modules/enum34 { };
 
-  enum = callPackage ../development/python-modules/enum { };
-
   enum-compat = callPackage ../development/python-modules/enum-compat { };
 
   envisage = callPackage ../development/python-modules/envisage { };
@@ -2247,8 +2189,6 @@ in {
 
   eventlet = callPackage ../development/python-modules/eventlet { };
 
-  eventlib = callPackage ../development/python-modules/eventlib { };
-
   events = callPackage ../development/python-modules/events { };
 
   evernote = callPackage ../development/python-modules/evernote { };
@@ -2277,6 +2217,24 @@ in {
 
   exrex = callPackage ../development/python-modules/exrex { };
 
+  extractcode = callPackage ../development/python-modules/extractcode { };
+
+  extractcode-7z = callPackage ../development/python-modules/extractcode/7z.nix {
+    inherit (pkgs) p7zip;
+  };
+
+  extractcode-libarchive = callPackage ../development/python-modules/extractcode/libarchive.nix {
+    inherit (pkgs)
+      libarchive
+      libb2
+      bzip2
+      expat
+      lz4
+      lzma
+      zlib
+      zstd;
+  };
+
   extras = callPackage ../development/python-modules/extras { };
 
   eyeD3 = callPackage ../development/python-modules/eyed3 { };
@@ -2341,17 +2299,12 @@ in {
 
   fasttext = callPackage ../development/python-modules/fasttext { };
 
-  faulthandler = if !isPy3k then
-    callPackage ../development/python-modules/faulthandler { }
-  else
-    throw "faulthandler is built into ${python.executable}";
+  faulthandler = throw "faulthandler is built into ${python.executable}";
 
   favicon = callPackage ../development/python-modules/favicon { };
 
   fb-re2 = callPackage ../development/python-modules/fb-re2 { };
 
-  fdint = callPackage ../development/python-modules/fdint { };
-
   fe25519 = callPackage ../development/python-modules/fe25519 { };
 
   feedgen = callPackage ../development/python-modules/feedgen { };
@@ -2360,10 +2313,7 @@ in {
     inherit (pkgs) glibcLocales;
   };
 
-  feedparser = if isPy3k then
-    callPackage ../development/python-modules/feedparser { }
-  else
-    callPackage ../development/python-modules/feedparser/5.nix { };
+  feedparser = callPackage ../development/python-modules/feedparser { };
 
   fenics = callPackage ../development/libraries/science/math/fenics {
     pytest = self.pytest_4;
@@ -2371,6 +2321,8 @@ in {
 
   ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
+  ffmpeg-progress-yield = callPackage ../development/python-modules/ffmpeg-progress-yield { };
+
   fido2 = callPackage ../development/python-modules/fido2 { };
 
   filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
@@ -2387,6 +2339,8 @@ in {
 
   finalfusion = callPackage ../development/python-modules/finalfusion { };
 
+  fingerprints = callPackage ../development/python-modules/fingerprints { };
+
   fints = callPackage ../development/python-modules/fints { };
 
   fiona = callPackage ../development/python-modules/fiona { };
@@ -2459,8 +2413,6 @@ in {
 
   flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
 
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
-
   flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
   flask_login = callPackage ../development/python-modules/flask-login { };
@@ -2537,8 +2489,6 @@ in {
 
   flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  flup = callPackage ../development/python-modules/flup { };
-
   flux-led = callPackage ../development/python-modules/flux-led { };
 
   fn = callPackage ../development/python-modules/fn { };
@@ -2547,10 +2497,10 @@ in {
 
   folium = callPackage ../development/python-modules/folium { };
 
-  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
+  fontforge = toPythonModule (pkgs.fontforge.override {
     withPython = true;
     inherit python;
-  }));
+  });
 
   fontmath = callPackage ../development/python-modules/fontmath { };
 
@@ -2585,10 +2535,7 @@ in {
 
   freetype-py = callPackage ../development/python-modules/freetype-py { };
 
-  freezegun = if isPy27 then
-      callPackage ../development/python-modules/freezegun/0.3.nix { }
-    else
-      callPackage ../development/python-modules/freezegun { };
+  freezegun = callPackage ../development/python-modules/freezegun { };
 
   fritzconnection = callPackage ../development/python-modules/fritzconnection { };
 
@@ -2604,8 +2551,6 @@ in {
 
   ftputil = callPackage ../development/python-modules/ftputil { };
 
-  fudge = callPackage ../development/python-modules/fudge { };
-
   funcparserlib = callPackage ../development/python-modules/funcparserlib { };
 
   funcsigs = callPackage ../development/python-modules/funcsigs { };
@@ -2626,19 +2571,12 @@ in {
 
   future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
-  futures = callPackage ../development/python-modules/futures { };
-
   fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
 
   fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
   fx2 = callPackage ../development/python-modules/fx2 { };
 
-  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
-
   galario = toPythonModule (pkgs.galario.override {
     enablePython = true;
     pythonPackages = self;
@@ -2646,32 +2584,32 @@ in {
 
   gast = callPackage ../development/python-modules/gast { };
 
-  gateone = callPackage ../development/python-modules/gateone { };
-
   gcovr = callPackage ../development/python-modules/gcovr { };
 
+  gcsfs = callPackage ../development/python-modules/gcsfs { };
+
   gdal = toPythonModule (pkgs.gdal.override { pythonPackages = self; });
 
   gdata = callPackage ../development/python-modules/gdata { };
 
-  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+  gdcm = toPythonModule (pkgs.gdcm.override {
     inherit (self) python;
     enablePython = true;
-  }));
+  });
 
   gdown = callPackage ../development/python-modules/gdown { };
 
-  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
-
   ge25519 = callPackage ../development/python-modules/ge25519 { };
 
-  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+  geant4 = toPythonModule (pkgs.geant4.override {
     enablePython = true;
     python3 = python;
-  }));
+  });
 
   geeknote = callPackage ../development/python-modules/geeknote { };
 
+  gemfileparser = callPackage ../development/python-modules/gemfileparser { };
+
   genanki = callPackage ../development/python-modules/genanki { };
 
   genome-collector = callPackage ../development/python-modules/genome-collector { };
@@ -2702,10 +2640,7 @@ in {
 
   geopandas = callPackage ../development/python-modules/geopandas { };
 
-  geopy = if isPy3k then
-    callPackage ../development/python-modules/geopy { }
-  else
-    callPackage ../development/python-modules/geopy/2.nix { };
+  geopy = callPackage ../development/python-modules/geopy { };
 
   getmac = callPackage ../development/python-modules/getmac { };
 
@@ -2723,6 +2658,8 @@ in {
 
   ghdiff = callPackage ../development/python-modules/ghdiff { };
 
+  ghp-import = callPackage ../development/python-modules/ghp-import { };
+
   gidgethub = callPackage ../development/python-modules/gidgethub { };
 
   gin-config = callPackage ../development/python-modules/gin-config { };
@@ -2770,31 +2707,16 @@ in {
 
   gnureadline = callPackage ../development/python-modules/gnureadline { };
 
-  gnutls = callPackage ../development/python-modules/gnutls { };
-
   goobook = callPackage ../development/python-modules/goobook { };
 
   goocalendar = callPackage ../development/python-modules/goocalendar { };
 
   google-api-core = callPackage ../development/python-modules/google-api-core { };
 
-  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";
-        };
-      });
+  google-api-python-client = callPackage ../development/python-modules/google-api-python-client { };
 
   googleapis-common-protos = callPackage ../development/python-modules/googleapis-common-protos { };
 
-  google-apputils = callPackage ../development/python-modules/google-apputils { };
-
   google-auth = callPackage ../development/python-modules/google-auth { };
 
   google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
@@ -2970,11 +2892,6 @@ in {
 
   gremlinpython = callPackage ../development/python-modules/gremlinpython { };
 
-  grib-api = disabledIf (!isPy27) (toPythonModule (pkgs.grib-api.override {
-    enablePython = true;
-    pythonPackages = self;
-  }));
-
   grip = callPackage ../development/python-modules/grip { };
 
   grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
@@ -2985,10 +2902,7 @@ in {
 
   grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
 
-  gsd = if isPy27 then
-    callPackage ../development/python-modules/gsd/1.7.nix { }
-  else
-    callPackage ../development/python-modules/gsd { };
+  gsd = callPackage ../development/python-modules/gsd { };
 
   gspread = callPackage ../development/python-modules/gspread { };
 
@@ -3014,10 +2928,7 @@ in {
 
   gumath = callPackage ../development/python-modules/gumath { };
 
-  gunicorn = if isPy27 then
-    callPackage ../development/python-modules/gunicorn/19.nix { }
-  else
-    callPackage ../development/python-modules/gunicorn { };
+  gunicorn = callPackage ../development/python-modules/gunicorn { };
 
   guppy3 = callPackage ../development/python-modules/guppy3 { };
 
@@ -3034,11 +2945,6 @@ in {
 
   gviz-api = callPackage ../development/python-modules/gviz-api {};
 
-  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
-    pythonSupport = true;
-    pythonPackages = self;
-  }));
-
   gym = callPackage ../development/python-modules/gym { };
 
   gyp = callPackage ../development/python-modules/gyp { };
@@ -3061,6 +2967,8 @@ in {
 
   habanero = callPackage ../development/python-modules/habanero { };
 
+  hachoir = callPackage ../development/python-modules/hachoir { };
+
   ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
   halo = callPackage ../development/python-modules/halo { };
@@ -3105,12 +3013,8 @@ in {
 
   hg-evolve = callPackage ../development/python-modules/hg-evolve { };
 
-  hg-git = callPackage ../development/python-modules/hg-git { };
-
   hglib = callPackage ../development/python-modules/hglib { };
 
-  hgsvn = callPackage ../development/python-modules/hgsvn { };
-
   hickle = callPackage ../development/python-modules/hickle { };
 
   hidapi = callPackage ../development/python-modules/hidapi {
@@ -3143,6 +3047,8 @@ in {
 
   homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
+  homeconnect = callPackage ../development/python-modules/homeconnect { };
+
   homematicip = callPackage ../development/python-modules/homematicip { };
 
   homepluscontrol = callPackage ../development/python-modules/homepluscontrol { };
@@ -3159,14 +3065,9 @@ in {
 
   hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
-  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
-
   hstspreload = callPackage ../development/python-modules/hstspreload { };
 
-  html2text = if isPy3k then
-    callPackage ../development/python-modules/html2text { }
-  else
-    callPackage ../development/python-modules/html2text/2018.nix { };
+  html2text = callPackage ../development/python-modules/html2text { };
 
   html5lib = callPackage ../development/python-modules/html5lib { };
 
@@ -3194,17 +3095,12 @@ in {
 
   http-parser = callPackage ../development/python-modules/http-parser { };
 
-  httpretty = if isPy3k then
-    callPackage ../development/python-modules/httpretty { }
-  else
-    callPackage ../development/python-modules/httpretty/0.nix { };
+  httpretty = callPackage ../development/python-modules/httpretty { };
 
   httpserver = callPackage ../development/python-modules/httpserver { };
 
   httpsig = callPackage ../development/python-modules/httpsig { };
 
-  http_signature = callPackage ../development/python-modules/http_signature { };
-
   httptools = callPackage ../development/python-modules/httptools { };
 
   httpx = callPackage ../development/python-modules/httpx { };
@@ -3237,6 +3133,8 @@ in {
 
   hyperframe = callPackage ../development/python-modules/hyperframe { };
 
+  hyperion-py = callPackage ../development/python-modules/hyperion-py { };
+
   hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
 
   hyperlink = callPackage ../development/python-modules/hyperlink { };
@@ -3248,7 +3146,7 @@ in {
 
   hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
 
-  hypothesis = if isPy3k then callPackage ../development/python-modules/hypothesis { } else self.hypothesis_4;
+  hypothesis = callPackage ../development/python-modules/hypothesis { };
 
   hypothesmith = callPackage ../development/python-modules/hypothesmith { };
 
@@ -3292,7 +3190,7 @@ in {
 
   ijson = callPackage ../development/python-modules/ijson { };
 
-  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
+  imagecodecs-lite = callPackage ../development/python-modules/imagecodecs-lite { };
 
   imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
 
@@ -3312,10 +3210,7 @@ in {
 
   imap-tools = callPackage ../development/python-modules/imap-tools { };
 
-  imbalanced-learn = if isPy27 then
-    callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
-  else
-    callPackage ../development/python-modules/imbalanced-learn { };
+  imbalanced-learn = callPackage ../development/python-modules/imbalanced-learn { };
 
   imdbpy = callPackage ../development/python-modules/imdbpy { };
 
@@ -3373,6 +3268,8 @@ in {
 
   intake = callPackage ../development/python-modules/intake { };
 
+  intbitset = callPackage ../development/python-modules/intbitset { };
+
   intelhex = callPackage ../development/python-modules/intelhex { };
 
   internetarchive = callPackage ../development/python-modules/internetarchive { };
@@ -3389,15 +3286,13 @@ in {
 
   iowait = callPackage ../development/python-modules/iowait { };
 
-  ipaddr = callPackage ../development/python-modules/ipaddr { };
-
   ipaddress = callPackage ../development/python-modules/ipaddress { };
 
   ipdb = callPackage ../development/python-modules/ipdb { };
 
   ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
 
-  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
+  ipfshttpclient = callPackage ../development/python-modules/ipfshttpclient { };
 
   iptools = callPackage ../development/python-modules/iptools { };
 
@@ -3405,10 +3300,7 @@ in {
 
   ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
 
-  ipykernel = if pythonOlder "3.4" then
-    callPackage ../development/python-modules/ipykernel/4.nix { }
-  else
-    callPackage ../development/python-modules/ipykernel { };
+  ipykernel = callPackage ../development/python-modules/ipykernel { };
 
   ipympl = callPackage ../development/python-modules/ipympl { };
 
@@ -3416,9 +3308,7 @@ in {
 
   ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
-  ipython = if isPy27 then
-    callPackage ../development/python-modules/ipython/5.nix { }
-  else if isPy36 then
+  ipython = if isPy36 then
     callPackage ../development/python-modules/ipython/7.16.nix { }
   else
     callPackage ../development/python-modules/ipython { };
@@ -3449,11 +3339,7 @@ in {
 
   isodate = callPackage ../development/python-modules/isodate { };
 
-  isort = if isPy3k then
-    callPackage ../development/python-modules/isort { }
-  else
-    callPackage ../development/python-modules/isort/4.nix {
-  };
+  isort = callPackage ../development/python-modules/isort { };
 
   isoweek = callPackage ../development/python-modules/isoweek { };
 
@@ -3477,19 +3363,13 @@ in {
 
   jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
-  jaraco_functools = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/jaraco_functools/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_functools { };
+  jaraco_functools = callPackage ../development/python-modules/jaraco_functools { };
 
   jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
 
   jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
 
-  jaraco_stream = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/jaraco_stream/2.nix { }
-  else
-    callPackage ../development/python-modules/jaraco_stream { };
+  jaraco_stream = callPackage ../development/python-modules/jaraco_stream { };
 
   jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
@@ -3591,8 +3471,6 @@ in {
 
   jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
-
   jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
 
   jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
@@ -3615,15 +3493,9 @@ in {
 
   jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
 
-  jupyter_client = if isPy3k then
-    callPackage ../development/python-modules/jupyter_client { }
-  else
-    callPackage ../development/python-modules/jupyter_client/5.nix { };
+  jupyter_client = callPackage ../development/python-modules/jupyter_client { };
 
-  jupyter_console = if pythonOlder "3.5" then
-    callPackage ../development/python-modules/jupyter_console/5.nix { }
-  else
-    callPackage ../development/python-modules/jupyter_console { };
+  jupyter_console = callPackage ../development/python-modules/jupyter_console { };
 
   jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
@@ -3647,6 +3519,8 @@ in {
 
   jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
+  jupyterlab-widgets = callPackage ../development/python-modules/jupyterlab-widgets { };
+
   jupyter-packaging = callPackage ../development/python-modules/jupyter-packaging { };
 
   jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
@@ -3683,8 +3557,16 @@ in {
 
   karton-classifier = callPackage ../development/python-modules/karton-classifier { };
 
+  karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { };
+
   karton-core = callPackage ../development/python-modules/karton-core { };
 
+  karton-dashboard = callPackage ../development/python-modules/karton-dashboard { };
+
+  karton-mwdb-reporter = callPackage ../development/python-modules/karton-mwdb-reporter { };
+
+  karton-yaramatcher = callPackage ../development/python-modules/karton-yaramatcher { };
+
   kazoo = callPackage ../development/python-modules/kazoo { };
 
   kconfiglib = callPackage ../development/python-modules/kconfiglib { };
@@ -3705,10 +3587,7 @@ in {
 
   kerberos = callPackage ../development/python-modules/kerberos { };
 
-  keyring = if isPy3k then
-    callPackage ../development/python-modules/keyring { }
-  else
-    callPackage ../development/python-modules/keyring/2.nix { };
+  keyring = callPackage ../development/python-modules/keyring { };
 
   keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
@@ -3718,9 +3597,9 @@ in {
     inherit (pkgs) keyutils;
   };
 
-  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
+  kicad = toPythonModule (pkgs.kicad.override {
     python3 = python;
-  }).src);
+  }).src;
 
   kinparse = callPackage ../development/python-modules/kinparse { };
 
@@ -3732,10 +3611,7 @@ in {
 
   kivy-garden = callPackage ../development/python-modules/kivy-garden { };
 
-  kiwisolver = if isPy3k then
-    callPackage ../development/python-modules/kiwisolver { }
-  else
-    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
+  kiwisolver = callPackage ../development/python-modules/kiwisolver { };
 
   klaus = callPackage ../development/python-modules/klaus { };
 
@@ -3750,12 +3626,8 @@ in {
 
   knack = callPackage ../development/python-modules/knack { };
 
-  koji = callPackage ../development/python-modules/koji { };
-
   kombu = callPackage ../development/python-modules/kombu { };
 
-  konfig = callPackage ../development/python-modules/konfig { };
-
   korean-lunar-calendar = callPackage ../development/python-modules/korean-lunar-calendar { };
 
   kubernetes = callPackage ../development/python-modules/kubernetes { };
@@ -3772,12 +3644,8 @@ in {
 
   langdetect = callPackage ../development/python-modules/langdetect { };
 
-  larch = callPackage ../development/python-modules/larch { };
-
   lark-parser = callPackage ../development/python-modules/lark-parser { };
 
-  Lasagne = callPackage ../development/python-modules/lasagne { };
-
   latexcodec = callPackage ../development/python-modules/latexcodec { };
 
   launchpadlib = callPackage ../development/python-modules/launchpadlib { };
@@ -3810,8 +3678,6 @@ in {
 
   leather = callPackage ../development/python-modules/leather { };
 
-  le = callPackage ../development/python-modules/le { };
-
   ledger_agent = callPackage ../development/python-modules/ledger_agent { };
 
   ledgerblue = callPackage ../development/python-modules/ledgerblue { };
@@ -3844,10 +3710,7 @@ in {
     inherit (pkgs) libasyncns;
   };
 
-  libcloud = if isPy27 then
-    callPackage ../development/python-modules/libcloud/2.nix { }
-  else
-    callPackage ../development/python-modules/libcloud { };
+  libcloud = callPackage ../development/python-modules/libcloud { };
 
   libcst = callPackage ../development/python-modules/libcst { };
 
@@ -3858,10 +3721,10 @@ in {
     pythonSupport = true;
   });
 
-  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
+  libgpiod = toPythonModule (pkgs.libgpiod.override {
     enablePython = true;
     python3 = python;
-  }));
+  });
 
   libgpuarray = callPackage ../development/python-modules/libgpuarray {
     clblas = pkgs.clblas.override { boost = self.boost; };
@@ -3875,6 +3738,10 @@ in {
 
   liblarch = callPackage ../development/python-modules/liblarch { };
 
+  liblzfse = callPackage ../development/python-modules/liblzfse {
+    inherit (pkgs) lzfse;
+  };
+
   libmodulemd = pipe pkgs.libmodulemd [
     toPythonModule
     (p:
@@ -3894,16 +3761,6 @@ in {
     inherit (pkgs) libsodium;
   };
 
-  libnl-python = disabledIf isPy3k (toPythonModule (pkgs.libnl.override {
-    pythonSupport = true;
-    inherit python;
-  })).py;
-
-  libplist = disabledIf isPy3k (toPythonModule (pkgs.libplist.override {
-    enablePython = true;
-    inherit python;
-  })).py;
-
   libpurecool = callPackage ../development/python-modules/libpurecool { };
 
   libredwg = toPythonModule (pkgs.libredwg.override {
@@ -3951,10 +3808,7 @@ in {
 
   libtmux = callPackage ../development/python-modules/libtmux { };
 
-  libtorrent-rasterbar = if isPy27 then
-    (toPythonModule (pkgs.libtorrent-rasterbar-1_2_x.override { inherit python; })).python
-  else
-    (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python;
+  libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python;
 
   libusb1 = callPackage ../development/python-modules/libusb1 {
     inherit (pkgs) libusb1;
@@ -3964,14 +3818,9 @@ in {
     inherit (pkgs) libversion;
   };
 
-  libvirt = if isPy3k then
-    (callPackage ../development/python-modules/libvirt {
+  libvirt = callPackage ../development/python-modules/libvirt {
     inherit (pkgs) libvirt;
-  })
-  else
-    (callPackage ../development/python-modules/libvirt/5.9.0.nix {
-      libvirt = pkgs.libvirt_5_9_0;
-    });
+  };
 
   libxml2 = (toPythonModule (pkgs.libxml2.override {
     pythonSupport = true;
@@ -3986,7 +3835,9 @@ in {
 
   license-expression = callPackage ../development/python-modules/license-expression { };
 
-  lightblue = callPackage ../development/python-modules/lightblue { };
+  lief = (toPythonModule (pkgs.lief.override {
+    inherit python;
+  })).py;
 
   lightgbm = callPackage ../development/python-modules/lightgbm { };
 
@@ -4014,9 +3865,9 @@ in {
 
   liquidctl = callPackage ../development/python-modules/liquidctl { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
+  lirc = toPythonModule (pkgs.lirc.override {
     python3 = python;
-  }));
+  });
 
   littleutils = callPackage ../development/python-modules/littleutils { };
 
@@ -4076,10 +3927,6 @@ in {
 
   loo-py = callPackage ../development/python-modules/loo-py { };
 
-  lpod = callPackage ../development/python-modules/lpod { };
-
-  lsi = callPackage ../development/python-modules/lsi { };
-
   lsassy = callPackage ../development/python-modules/lsassy { };
 
   ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
@@ -4088,8 +3935,6 @@ in {
 
   lupa = callPackage ../development/python-modules/lupa { };
 
-  lxc = callPackage ../development/python-modules/lxc { };
-
   lxml = callPackage ../development/python-modules/lxml {
     inherit (pkgs) libxml2 libxslt zlib;
   };
@@ -4154,6 +3999,8 @@ in {
 
   Mako = callPackage ../development/python-modules/Mako { };
 
+  malduck= callPackage ../development/python-modules/malduck { };
+
   managesieve = callPackage ../development/python-modules/managesieve { };
 
   manhole = callPackage ../development/python-modules/manhole { };
@@ -4168,24 +4015,11 @@ in {
 
   mapbox = callPackage ../development/python-modules/mapbox { };
 
-  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
-
-  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix { };
-
-  marionette-harness = callPackage ../development/python-modules/marionette-harness { };
-
-  marisa = callPackage ../development/python-modules/marisa {
-    inherit (pkgs) marisa;
-  };
-
   marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
   markdown2 = callPackage ../development/python-modules/markdown2 { };
 
-  markdown = if isPy3k then
-    callPackage ../development/python-modules/markdown { }
-  else
-    callPackage ../development/python-modules/markdown/3_1.nix { };
+  markdown = callPackage ../development/python-modules/markdown { };
 
   markdown-it-py = callPackage ../development/python-modules/markdown-it-py { };
 
@@ -4215,12 +4049,7 @@ in {
 
   mathlibtools = callPackage ../development/python-modules/mathlibtools { };
 
-  matplotlib = let
-    path = if isPy3k then
-      ../development/python-modules/matplotlib/default.nix
-    else
-      ../development/python-modules/matplotlib/2.nix;
-  in callPackage path {
+  matplotlib = callPackage ../development/python-modules/matplotlib/default.nix {
     stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
     inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
   };
@@ -4246,6 +4075,8 @@ in {
 
   mcstatus = callPackage ../development/python-modules/mcstatus { };
 
+  md2gemini = callPackage ../development/python-modules/md2gemini { };
+
   MDP = callPackage ../development/python-modules/mdp { };
 
   measurement = callPackage ../development/python-modules/measurement { };
@@ -4262,15 +4093,13 @@ in {
 
   meld3 = callPackage ../development/python-modules/meld3 { };
 
-  meliae = callPackage ../development/python-modules/meliae { };
-
   memcached = callPackage ../development/python-modules/memcached { };
 
   memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override {
+  mercurial = toPythonModule (pkgs.mercurial.override {
     python3Packages = self;
-  }));
+  });
 
   mergedeep = callPackage ../development/python-modules/mergedeep { };
 
@@ -4282,15 +4111,13 @@ in {
 
   meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
-  meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
+  meson = 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;
-    })));
+    }));
 
   mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
-  metaphone = callPackage ../development/python-modules/metaphone { };
-
   metar = callPackage ../development/python-modules/metar { };
 
   mezzanine = callPackage ../development/python-modules/mezzanine { };
@@ -4325,7 +4152,11 @@ in {
 
   mistletoe = callPackage ../development/python-modules/mistletoe { };
 
-  mistune = callPackage ../development/python-modules/mistune { };
+  inherit (import ../development/python-modules/mistune self)
+    mistune
+    mistune_0_8
+    mistune_2_0
+  ;
 
   mitmproxy = callPackage ../development/python-modules/mitmproxy { };
 
@@ -4351,15 +4182,14 @@ in {
 
   mocket = callPackage ../development/python-modules/mocket { };
 
-  mock = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/mock/2.nix { }
-  else
-    callPackage ../development/python-modules/mock { };
+  mock = callPackage ../development/python-modules/mock { };
 
   mockito = callPackage ../development/python-modules/mockito { };
 
   mock-open = callPackage ../development/python-modules/mock-open { };
 
+  mock-services = callPackage ../development/python-modules/mock-services { };
+
   modeled = callPackage ../development/python-modules/modeled { };
 
   moderngl = callPackage ../development/python-modules/moderngl { };
@@ -4370,16 +4200,13 @@ in {
 
   mohawk = callPackage ../development/python-modules/mohawk { };
 
-  # Needed here because moinmoin is loaded as a Python library.
-  moinmoin = callPackage ../development/python-modules/moinmoin { };
-
   mongodict = callPackage ../development/python-modules/mongodict { };
 
   mongoengine = callPackage ../development/python-modules/mongoengine { };
 
   monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  monosat = disabledIf (!isPy3k) (pkgs.monosat.python {
+  monosat = (pkgs.monosat.python {
     inherit buildPythonPackage;
     inherit (self) cython;
   });
@@ -4388,10 +4215,7 @@ in {
 
   monty = callPackage ../development/python-modules/monty { };
 
-  more-itertools = if isPy27 then
-    callPackage ../development/python-modules/more-itertools/2.7.nix { }
-  else
-    callPackage ../development/python-modules/more-itertools { };
+  more-itertools = callPackage ../development/python-modules/more-itertools { };
 
   moretools = callPackage ../development/python-modules/moretools { };
 
@@ -4407,38 +4231,8 @@ in {
 
   mox = callPackage ../development/python-modules/mox { };
 
-  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 { };
-
-  mozsvc = callPackage ../development/python-modules/mozsvc { };
-
-  mozterm = callPackage ../development/python-modules/mozterm { };
-
-  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
-
-  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
-
   mpd2 = callPackage ../development/python-modules/mpd2 { };
 
-  mpd = callPackage ../development/python-modules/mpd { };
-
   mpi4py = callPackage ../development/python-modules/mpi4py { };
 
   mplfinance = callPackage ../development/python-modules/mplfinance { };
@@ -4453,8 +4247,6 @@ in {
 
   mpyq = callPackage ../development/python-modules/mpyq { };
 
-  mrbob = callPackage ../development/python-modules/mrbob { };
-
   msal = callPackage ../development/python-modules/msal { };
 
   msal-extensions = callPackage ../development/python-modules/msal-extensions { };
@@ -4471,8 +4263,6 @@ in {
 
   msrest = callPackage ../development/python-modules/msrest { };
 
-  msrplib = callPackage ../development/python-modules/msrplib { };
-
   mt-940 = callPackage ../development/python-modules/mt-940 { };
 
   mullvad-api = callPackage ../development/python-modules/mullvad-api { };
@@ -4483,6 +4273,8 @@ in {
 
   multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
 
+  multimethod = callPackage ../development/python-modules/multimethod { };
+
   multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
   multiprocess = callPackage ../development/python-modules/multiprocess { };
@@ -4501,22 +4293,13 @@ in {
 
   mutag = callPackage ../development/python-modules/mutag { };
 
-  mutagen = if isPy27 then
-    callPackage ../development/python-modules/mutagen/1.43.nix { }
-  else
-    callPackage ../development/python-modules/mutagen { };
+  mutagen = callPackage ../development/python-modules/mutagen { };
 
   mutatormath = callPackage ../development/python-modules/mutatormath { };
 
-  muttils = callPackage ../development/python-modules/muttils { };
-
   mwclient = callPackage ../development/python-modules/mwclient { };
 
-  mwlib = callPackage ../development/python-modules/mwlib { };
-
-  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
-
-  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
+  mwdblib = callPackage ../development/python-modules/mwdblib { };
 
   mwoauth = callPackage ../development/python-modules/mwoauth { };
 
@@ -4544,8 +4327,6 @@ in {
 
   nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
 
-  namebench = callPackage ../development/python-modules/namebench { };
-
   namedlist = callPackage ../development/python-modules/namedlist { };
 
   nameparser = callPackage ../development/python-modules/nameparser { };
@@ -4578,10 +4359,7 @@ in {
 
   nbdime = callPackage ../development/python-modules/nbdime { };
 
-  nbformat = if isPy3k then
-    callPackage ../development/python-modules/nbformat { }
-  else
-    callPackage ../development/python-modules/nbformat/2.nix { };
+  nbformat = callPackage ../development/python-modules/nbformat { };
 
   nbmerge = callPackage ../development/python-modules/nbmerge { };
 
@@ -4595,6 +4373,8 @@ in {
 
   ncclient = callPackage ../development/python-modules/ncclient { };
 
+  nclib = callPackage ../development/python-modules/nclib { };
+
   ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
 
   ndjson = callPackage ../development/python-modules/ndjson { };
@@ -4617,10 +4397,7 @@ in {
 
   netifaces = callPackage ../development/python-modules/netifaces { };
 
-  networkx = if isPy3k then
-    callPackage ../development/python-modules/networkx { }
-  else
-    callPackage ../development/python-modules/networkx/2.2.nix { };
+  networkx = callPackage ../development/python-modules/networkx { };
 
   neuron-mpi = pkgs.neuron-mpi.override { inherit python; };
 
@@ -4664,11 +4441,6 @@ in {
     inherit (pkgs) nix;
   };
 
-  # 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 { };
-
-  nixpart = callPackage ../tools/filesystems/nixpart { };
-
   nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
   nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
@@ -4697,6 +4469,8 @@ in {
 
   noiseprotocol = callPackage ../development/python-modules/noiseprotocol { };
 
+  normality = callPackage ../development/python-modules/normality { };
+
   nose2 = callPackage ../development/python-modules/nose2 { };
 
   nose = callPackage ../development/python-modules/nose { };
@@ -4709,14 +4483,10 @@ in {
 
   nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  nose-focus = callPackage ../development/python-modules/nose-focus { };
-
   nose-timer = callPackage ../development/python-modules/nose-timer { };
 
   nosejs = callPackage ../development/python-modules/nosejs { };
 
-  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
-
   nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
 
   nose_progressive = callPackage ../development/python-modules/nose_progressive { };
@@ -4727,17 +4497,12 @@ in {
 
   nosexcover = callPackage ../development/python-modules/nosexcover { };
 
-  notebook = if isPy3k then
-    callPackage ../development/python-modules/notebook { }
-  else
-    callPackage ../development/python-modules/notebook/2.nix { };
+  notebook = callPackage ../development/python-modules/notebook { };
 
   notedown = callPackage ../development/python-modules/notedown { };
 
   notify2 = callPackage ../development/python-modules/notify2 { };
 
-  notify = callPackage ../development/python-modules/notify { };
-
   notify-py = callPackage ../development/python-modules/notify-py { };
 
   notmuch = callPackage ../development/python-modules/notmuch {
@@ -4774,10 +4539,7 @@ in {
 
   numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-  numpy = if pythonOlder "3.5" then
-    callPackage ../development/python-modules/numpy/1.16.nix { }
-  else
-    callPackage ../development/python-modules/numpy { };
+  numpy = callPackage ../development/python-modules/numpy { };
 
   numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
@@ -4787,8 +4549,6 @@ in {
 
   nwdiag = callPackage ../development/python-modules/nwdiag { };
 
-  nxt-python = callPackage ../development/python-modules/nxt-python { };
-
   oath = callPackage ../development/python-modules/oath { };
 
   oauth2 = callPackage ../development/python-modules/oauth2 { };
@@ -4799,10 +4559,7 @@ in {
 
   oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
-  oauthlib = if isPy27 then
-    callPackage ../development/python-modules/oauthlib/3.1.nix { }
-  else
-    callPackage ../development/python-modules/oauthlib { };
+  oauthlib = callPackage ../development/python-modules/oauthlib { };
 
   obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
@@ -4811,6 +4568,8 @@ in {
     graphvizPkgs = pkgs.graphviz;
   };
 
+  oci = callPackage ../development/python-modules/oci { };
+
   od = callPackage ../development/python-modules/od { };
 
   odfpy = callPackage ../development/python-modules/odfpy { };
@@ -4831,12 +4590,16 @@ in {
 
   omnilogic = callPackage ../development/python-modules/omnilogic { };
 
+  ondilo = callPackage ../development/python-modules/ondilo { };
+
   onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
   onnx = callPackage ../development/python-modules/onnx { };
 
   openant = callPackage ../development/python-modules/openant { };
 
+  openapi-schema-validator = callPackage ../development/python-modules/openapi-schema-validator { };
+
   openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
   openbabel-bindings = callPackage ../development/python-modules/openbabel-bindings {
@@ -4853,19 +4616,13 @@ in {
     pythonPackages = self;
   });
 
-  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
-    enablePython = true;
-    pythonPackages = self;
-  }));
+  openerz-api = callPackage ../development/python-modules/openerz-api { };
 
   openhomedevice = callPackage ../development/python-modules/openhomedevice { };
 
   openidc-client = callPackage ../development/python-modules/openidc-client { };
 
-  openpyxl = if pythonAtLeast "3.6" then
-    callPackage ../development/python-modules/openpyxl { }
-  else
-    callPackage ../development/python-modules/openpyxl/2.nix { };
+  openpyxl = callPackage ../development/python-modules/openpyxl { };
 
   openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
 
@@ -4875,6 +4632,8 @@ in {
 
   opensensemap-api = callPackage ../development/python-modules/opensensemap-api { };
 
+  openshift = callPackage ../development/python-modules/openshift { };
+
   opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
   opentracing = callPackage ../development/python-modules/opentracing { };
@@ -4886,14 +4645,11 @@ in {
 
   openwebifpy = callPackage ../development/python-modules/openwebifpy { };
 
-  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
+  openwrt-luci-rpc = callPackage ../development/python-modules/openwrt-luci-rpc { };
 
   openwrt-ubus-rpc = callPackage ../development/python-modules/openwrt-ubus-rpc { };
 
-  opt-einsum = if isPy27 then
-    callPackage ../development/python-modules/opt-einsum/2.nix { }
-  else
-    callPackage ../development/python-modules/opt-einsum { };
+  opt-einsum = callPackage ../development/python-modules/opt-einsum { };
 
   optuna = callPackage ../development/python-modules/optuna { };
 
@@ -4935,9 +4691,7 @@ in {
 
   packageurl-python = callPackage ../development/python-modules/packageurl-python { };
 
-  packaging = if isPy3k
-    then callPackage ../development/python-modules/packaging { }
-    else callPackage ../development/python-modules/packaging/2.nix { };
+  packaging = callPackage ../development/python-modules/packaging { };
 
   packet-python = callPackage ../development/python-modules/packet-python { };
 
@@ -4945,8 +4699,6 @@ in {
 
   pagelabels = callPackage ../development/python-modules/pagelabels { };
 
-  pagerduty = callPackage ../development/python-modules/pagerduty { };
-
   paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
 
   palettable = callPackage ../development/python-modules/palettable { };
@@ -4958,10 +4710,7 @@ in {
 
   pamqp = callPackage ../development/python-modules/pamqp { };
 
-  pandas = if isPy3k then
-    callPackage ../development/python-modules/pandas { }
-  else
-    callPackage ../development/python-modules/pandas/2.nix { };
+  pandas = callPackage ../development/python-modules/pandas { };
 
   pandas-datareader = callPackage ../development/python-modules/pandas-datareader { };
 
@@ -5025,8 +4774,6 @@ in {
 
   pastel = callPackage ../development/python-modules/pastel { };
 
-  pasteScript = callPackage ../development/python-modules/pastescript { };
-
   patator = callPackage ../development/python-modules/patator { };
 
   patch = callPackage ../development/python-modules/patch { };
@@ -5041,10 +4788,7 @@ in {
 
   pathos = callPackage ../development/python-modules/pathos { };
 
-  pathpy = if isPy3k then
-    callPackage ../development/python-modules/path.py { }
-  else
-    callPackage ../development/python-modules/path.py/2.nix { };
+  pathpy = callPackage ../development/python-modules/path.py { };
 
   pathspec = callPackage ../development/python-modules/pathspec { };
 
@@ -5178,16 +4922,10 @@ in {
 
   pillowfight = callPackage ../development/python-modules/pillowfight { };
 
-  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 libxcb;
-    };
+  pillow = callPackage ../development/python-modules/pillow {
+    inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+    inherit (pkgs.xorg) libX11 libxcb;
+  };
 
   pillow-simd = callPackage ../development/python-modules/pillow-simd {
       inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
@@ -5200,10 +4938,7 @@ in {
 
   pint = callPackage ../development/python-modules/pint { };
 
-  pip = if isPy3k then
-    callPackage ../development/python-modules/pip { }
-  else
-    callPackage ../development/python-modules/pip/20.nix { };
+  pip = callPackage ../development/python-modules/pip { };
 
   pipdate = callPackage ../development/python-modules/pipdate { };
 
@@ -5229,12 +4964,16 @@ in {
 
   pkuseg = callPackage ../development/python-modules/pkuseg { };
 
+  ppdeep = callPackage ../development/python-modules/ppdeep { };
+
   pynndescent = callPackage ../development/python-modules/pynndescent { };
 
   pynuki = callPackage ../development/python-modules/pynuki { };
 
   pynws = callPackage ../development/python-modules/pynws { };
 
+  pynx584 = callPackage ../development/python-modules/pynx584 { };
+
   pysbd = callPackage ../development/python-modules/pysbd { };
 
   pyshark = callPackage ../development/python-modules/pyshark { };
@@ -5275,8 +5014,12 @@ in {
 
   pluggy = callPackage ../development/python-modules/pluggy { };
 
+  plugincode = callPackage ../development/python-modules/plugincode { };
+
   pluginbase = callPackage ../development/python-modules/pluginbase { };
 
+  plugnplay = callPackage ../development/python-modules/plugnplay { };
+
   plugwise = callPackage ../development/python-modules/plugwise { };
 
   plum-py = callPackage ../development/python-modules/plum-py { };
@@ -5336,7 +5079,7 @@ in {
 
   poster3 = callPackage ../development/python-modules/poster3 { };
 
-  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
+  postorius = callPackage ../servers/mail/mailman/postorius.nix { };
 
   potr = callPackage ../development/python-modules/potr { };
 
@@ -5364,10 +5107,7 @@ in {
 
   prawcore = callPackage ../development/python-modules/prawcore { };
 
-  praw = if isPy3k then
-    callPackage ../development/python-modules/praw { }
-  else
-    callPackage ../development/python-modules/praw/6.3.nix { };
+  praw = callPackage ../development/python-modules/praw { };
 
   precis-i18n = callPackage ../development/python-modules/precis-i18n { };
 
@@ -5383,10 +5123,7 @@ in {
 
   pretend = callPackage ../development/python-modules/pretend { };
 
-  prettytable = if isPy3k then
-    callPackage ../development/python-modules/prettytable { }
-  else
-    callPackage ../development/python-modules/prettytable/1.nix { };
+  prettytable = callPackage ../development/python-modules/prettytable { };
 
   primer3 = callPackage ../development/python-modules/primer3 { };
 
@@ -5394,8 +5131,6 @@ in {
 
   prison = callPackage ../development/python-modules/prison { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
-
   privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
 
   proboscis = callPackage ../development/python-modules/proboscis { };
@@ -5404,8 +5139,6 @@ in {
 
   proglog = callPackage ../development/python-modules/proglog { };
 
-  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
-
   progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
   progressbar33 = callPackage ../development/python-modules/progressbar33 { };
@@ -5420,12 +5153,7 @@ in {
 
   promise = callPackage ../development/python-modules/promise { };
 
-  prompt_toolkit = let
-    filename = if isPy3k then
-      ../development/python-modules/prompt_toolkit
-    else
-      ../development/python-modules/prompt_toolkit/1.nix;
-  in callPackage filename { };
+  prompt_toolkit = callPackage ../development/python-modules/prompt_toolkit { };
 
   property-manager = callPackage ../development/python-modules/property-manager { };
 
@@ -5480,6 +5208,8 @@ in {
 
   pulsectl = callPackage ../development/python-modules/pulsectl { };
 
+  pur = callPackage ../development/python-modules/pur { };
+
   pure-cdb = callPackage ../development/python-modules/pure-cdb { };
 
   pure-eval = callPackage ../development/python-modules/pure-eval { };
@@ -5542,8 +5272,6 @@ in {
 
   pyalmond = callPackage ../development/python-modules/pyalmond { };
 
-  pyamf = callPackage ../development/python-modules/pyamf { };
-
   pyamg = callPackage ../development/python-modules/pyamg { };
 
   pyaml = callPackage ../development/python-modules/pyaml { };
@@ -5588,8 +5316,6 @@ in {
 
   pyblock = callPackage ../development/python-modules/pyblock { };
 
-  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
-
   pybluez = callPackage ../development/python-modules/pybluez { };
 
   pybotvac = callPackage ../development/python-modules/pybotvac { };
@@ -5610,18 +5336,14 @@ in {
 
   py = callPackage ../development/python-modules/py { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { });
+  pycangjie = callPackage ../development/python-modules/pycangjie { };
 
   pycapnp = callPackage ../development/python-modules/pycapnp { };
 
   pycaption = callPackage ../development/python-modules/pycaption { };
 
-  pycarddav = callPackage ../development/python-modules/pycarddav { };
-
   pycares = callPackage ../development/python-modules/pycares { };
 
-  pycassa = callPackage ../development/python-modules/pycassa { };
-
   pycategories = callPackage ../development/python-modules/pycategories { };
 
   pycdio = callPackage ../development/python-modules/pycdio { };
@@ -5646,6 +5368,8 @@ in {
 
   pycmarkgfm = callPackage ../development/python-modules/pycmarkgfm { };
 
+  pycocotools = callPackage ../development/python-modules/pycocotools { };
+
   pycodestyle = callPackage ../development/python-modules/pycodestyle { };
 
   pycognito = callPackage ../development/python-modules/pycognito { };
@@ -5654,6 +5378,8 @@ in {
 
   pycollada = callPackage ../development/python-modules/pycollada { };
 
+  pycomfoconnect = callPackage ../development/python-modules/pycomfoconnect { };
+
   pycontracts = callPackage ../development/python-modules/pycontracts { };
 
   pycosat = callPackage ../development/python-modules/pycosat { };
@@ -5674,8 +5400,6 @@ in {
 
   pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
-  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
-
   pyct = callPackage ../development/python-modules/pyct { };
 
   pycuda = callPackage ../development/python-modules/pycuda {
@@ -5685,8 +5409,6 @@ in {
 
   pycups = callPackage ../development/python-modules/pycups { };
 
-  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
-
   pycurl = callPackage ../development/python-modules/pycurl { };
 
   pycxx = callPackage ../development/python-modules/pycxx { };
@@ -5711,15 +5433,9 @@ in {
 
   pydispatcher = callPackage ../development/python-modules/pydispatcher { };
 
-  pydns = let
-    py3 = callPackage ../development/python-modules/py3dns { };
-    py2 = callPackage ../development/python-modules/pydns { };
-  in if isPy3k then py3 else py2;
+  pydns = callPackage ../development/python-modules/py3dns { };
 
-  pydocstyle = if isPy27 then
-    callPackage ../development/python-modules/pydocstyle/2.nix { }
-  else
-    callPackage ../development/python-modules/pydocstyle { };
+  pydocstyle = callPackage ../development/python-modules/pydocstyle { };
 
   pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
 
@@ -5729,6 +5445,8 @@ in {
 
   pydrive = callPackage ../development/python-modules/pydrive { };
 
+  pydroid-ipcam = callPackage ../development/python-modules/pydroid-ipcam  { };
+
   pydsdl = callPackage ../development/python-modules/pydsdl { };
 
   pydub = callPackage ../development/python-modules/pydub { };
@@ -5765,16 +5483,12 @@ in {
 
   pyexcel = callPackage ../development/python-modules/pyexcel { };
 
-  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
-
   pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
 
   pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
 
   pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
 
-  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 { }));
-
   pyext = callPackage ../development/python-modules/pyext { };
 
   pyezviz = callPackage ../development/python-modules/pyezviz { };
@@ -5845,10 +5559,7 @@ in {
 
   pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
 
-  pygments = if isPy3k then
-    callPackage ../development/python-modules/Pygments { }
-  else
-    callPackage ../development/python-modules/Pygments/2_5.nix { };
+  pygments = callPackage ../development/python-modules/Pygments { };
 
   pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
 
@@ -5858,14 +5569,9 @@ in {
 
   pygobject2 = callPackage ../development/python-modules/pygobject { };
 
-  pygobject3 = if isPy3k then
-    callPackage ../development/python-modules/pygobject/3.nix {
-      inherit (pkgs) meson;
-    }
-  else
-    callPackage ../development/python-modules/pygobject/3.36.nix {
-      inherit (pkgs) meson;
-    };
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
+    inherit (pkgs) meson;
+  };
 
   pygogo = callPackage ../development/python-modules/pygogo { };
 
@@ -5881,20 +5587,9 @@ in {
 
   pygtail = callPackage ../development/python-modules/pygtail { };
 
-  pygtk = callPackage ../development/python-modules/pygtk { };
-
-  pyGtkGlade = self.pygtk.override {
-    inherit (pkgs.gnome2) libglade;
-  };
-
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { };
-
   pygtrie = callPackage ../development/python-modules/pygtrie { };
 
-  pyhamcrest = if isPy3k then
-    callPackage ../development/python-modules/pyhamcrest { }
-  else
-    callPackage ../development/python-modules/pyhamcrest/1.nix { };
+  pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
 
   pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
@@ -5912,6 +5607,10 @@ in {
 
   PyICU = callPackage ../development/python-modules/pyicu { };
 
+  pyimpfuzzy = callPackage ../development/python-modules/pyimpfuzzy {
+    inherit (pkgs) ssdeep;
+  };
+
   pyinotify = callPackage ../development/python-modules/pyinotify { };
 
   pyinputevent = callPackage ../development/python-modules/pyinputevent { };
@@ -5944,8 +5643,6 @@ in {
 
   pykerberos = callPackage ../development/python-modules/pykerberos { };
 
-  pykickstart = callPackage ../development/python-modules/pykickstart { };
-
   pykira = callPackage ../development/python-modules/pykira { };
 
   pykka = callPackage ../development/python-modules/pykka { };
@@ -5968,10 +5665,7 @@ in {
 
   pylev = callPackage ../development/python-modules/pylev { };
 
-  pylibacl = if isPy3k then
-    callPackage ../development/python-modules/pylibacl { }
-  else
-    callPackage ../development/python-modules/pylibacl/0.5.nix { };
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
   pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
@@ -5993,10 +5687,7 @@ in {
 
   pylint-flask = callPackage ../development/python-modules/pylint-flask { };
 
-  pylint = if isPy3k then
-    callPackage ../development/python-modules/pylint { }
-  else
-    callPackage ../development/python-modules/pylint/1.9.nix { };
+  pylint = callPackage ../development/python-modules/pylint { };
 
   pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
@@ -6034,6 +5725,8 @@ in {
 
   pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
 
+  pymaven-patch = callPackage ../development/python-modules/pymaven-patch { };
+
   pymavlink = callPackage ../development/python-modules/pymavlink { };
 
   pymazda = callPackage ../development/python-modules/pymazda { };
@@ -6042,6 +5735,8 @@ in {
 
   pymc3 = callPackage ../development/python-modules/pymc3 { };
 
+  pymdstat = callPackage ../development/python-modules/pymdstat { };
+
   pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
   pymediaroom = callPackage ../development/python-modules/pymediaroom { };
@@ -6128,11 +5823,6 @@ in {
 
   pynzb = callPackage ../development/python-modules/pynzb { };
 
-  pyobjc = if stdenv.isDarwin then
-    callPackage ../development/python-modules/pyobjc { }
-  else
-    throw "pyobjc can only be built on Mac OS";
-
   pyocr = callPackage ../development/python-modules/pyocr {
     tesseract = pkgs.tesseract4;
   };
@@ -6190,8 +5880,6 @@ in {
 
   pypdf2 = callPackage ../development/python-modules/pypdf2 { };
 
-  pyPdf = callPackage ../development/python-modules/pypdf { };
-
   pypeg2 = callPackage ../development/python-modules/pypeg2 { };
 
   pyperclip = callPackage ../development/python-modules/pyperclip { };
@@ -6204,12 +5892,14 @@ in {
 
   pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
+  pypinyin = callPackage ../development/python-modules/pypinyin { };
+
+  pypiserver = callPackage ../development/python-modules/pypiserver { };
+
   pyplaato  = callPackage ../development/python-modules/pyplaato { };
 
   pyplatec = callPackage ../development/python-modules/pyplatec { };
 
-  pypoppler = callPackage ../development/python-modules/pypoppler { };
-
   pyppeteer = callPackage ../development/python-modules/pyppeteer { };
 
   pyprind = callPackage ../development/python-modules/pyprind { };
@@ -6300,8 +5990,6 @@ in {
 
   pyregion = callPackage ../development/python-modules/pyregion { };
 
-  pyreport = callPackage ../development/python-modules/pyreport { };
-
   pyres = callPackage ../development/python-modules/pyres { };
 
   pyrisco = callPackage ../development/python-modules/pyrisco { };
@@ -6404,6 +6092,12 @@ in {
 
   pysmappee = callPackage ../development/python-modules/pysmappee { };
 
+  pysmart-smartx = callPackage ../development/python-modules/pysmart-smartx { };
+
+  pysmartapp = callPackage ../development/python-modules/pysmartapp { };
+
+  pysmartthings = callPackage ../development/python-modules/pysmartthings { };
+
   pysmb = callPackage ../development/python-modules/pysmb { };
 
   pysmbc = callPackage ../development/python-modules/pysmbc { };
@@ -6452,8 +6146,6 @@ in {
     inherit (pkgs) sqlcipher;
   };
 
-  pysqlite = callPackage ../development/python-modules/pysqlite { };
-
   pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
 
   pysrim = callPackage ../development/python-modules/pysrim { };
@@ -6474,8 +6166,6 @@ in {
 
   py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
 
-  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
-
   pysvn = callPackage ../development/python-modules/pysvn {
     inherit (pkgs) bash subversion apr aprutil expat neon openssl;
   };
@@ -6502,8 +6192,7 @@ in {
 
   pytesseract = callPackage ../development/python-modules/pytesseract { };
 
-  # pytest>=6 is too new for most packages
-  pytest = if isPy3k then self.pytest_6 else self.pytest_4;
+  pytest = self.pytest_6;
 
   pytest_4 = callPackage
     ../development/python-modules/pytest/4.nix {
@@ -6515,24 +6204,18 @@ in {
 
   pytest_5 = callPackage
     ../development/python-modules/pytest/5.nix {
-      # hypothesis & pygments tests require pytest that causes dependency cycle
+      # hypothesis tests require pytest that causes dependency cycle
       hypothesis = self.hypothesis.override {
         doCheck = false;
       };
-      pygments = self.pygments.override {
-        doCheck = false;
-      };
     };
 
   pytest_6 =
     callPackage ../development/python-modules/pytest {
-      # hypothesis & pygments tests require pytest that causes dependency cycle
+      # hypothesis tests require pytest that causes dependency cycle
       hypothesis = self.hypothesis.override {
         doCheck = false;
       };
-      pygments = self.pygments.override {
-        doCheck = false;
-      };
     };
 
   pytest_6_1 = self.pytest_6.overridePythonAttrs (oldAttrs: rec {
@@ -6633,10 +6316,7 @@ in {
 
   pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
 
-  pytest-mock = if isPy3k then
-    callPackage ../development/python-modules/pytest-mock { }
-  else
-    callPackage ../development/python-modules/pytest-mock/2.nix { };
+  pytest-mock = callPackage ../development/python-modules/pytest-mock { };
 
   pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
@@ -6693,6 +6373,8 @@ in {
 
   pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
 
+  python-string-utils = callPackage ../development/python-modules/python-string-utils { };
+
   pytest-socket = callPackage ../development/python-modules/pytest-socket { };
 
   pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
@@ -6721,18 +6403,13 @@ in {
 
   pytest-watch = callPackage ../development/python-modules/pytest-watch { };
 
-  pytest-xdist = self.pytest_xdist; # added 2021-01-04
-  pytest_xdist = if isPy27 then
-    callPackage ../development/python-modules/pytest-xdist/1.nix { }
-  else
-    callPackage ../development/python-modules/pytest-xdist { };
+  pytest_xdist = self.pytest-xdist; # added 2021-01-04
+  pytest-xdist = callPackage ../development/python-modules/pytest-xdist { };
 
   pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
 
   pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
 
-  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
-
   python3-openid = callPackage ../development/python-modules/python3-openid { };
 
   python-awair = callPackage ../development/python-modules/python-awair { };
@@ -6811,8 +6488,6 @@ in {
     inherit (pkgs) igraph;
   };
 
-  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
-
   pythonix = callPackage ../development/python-modules/pythonix {
     meson = pkgs.meson.override { python3 = self.python; };
   };
@@ -6847,8 +6522,6 @@ in {
 
   python_magic = callPackage ../development/python-modules/python-magic { };
 
-  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
-
   python-mapnik = callPackage ../development/python-modules/python-mapnik { };
 
   python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
@@ -6890,8 +6563,6 @@ in {
 
   python_openzwave = callPackage ../development/python-modules/python_openzwave { };
 
-  python-otr = callPackage ../development/python-modules/python-otr { };
-
   python-packer = callPackage ../development/python-modules/python-packer { };
 
   python-pam = callPackage ../development/python-modules/python-pam {
@@ -6900,6 +6571,8 @@ in {
 
   python-periphery = callPackage ../development/python-modules/python-periphery { };
 
+  python-picnic-api = callPackage ../development/python-modules/python-picnic-api { };
+
   python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
   python-prctl = callPackage ../development/python-modules/python-prctl { };
@@ -6912,6 +6585,8 @@ in {
 
   python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
+  python-registry = callPackage ../development/python-modules/python-registry { };
+
   python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
 
   python-sat = callPackage ../development/python-modules/python-sat { };
@@ -6937,12 +6612,8 @@ in {
 
   python-sql = callPackage ../development/python-modules/python-sql { };
 
-  python_statsd = callPackage ../development/python-modules/python_statsd { };
-
   python-stdnum = callPackage ../development/python-modules/python-stdnum { };
 
-  python-sybase = callPackage ../development/python-modules/sybase { };
-
   python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
 
   python-toolbox = callPackage ../development/python-modules/python-toolbox { };
@@ -7052,8 +6723,6 @@ in {
     inherit (pkgs) libusb1;
   };
 
-  pyutil = callPackage ../development/python-modules/pyutil { };
-
   pyutilib = callPackage ../development/python-modules/pyutilib { };
 
   pyuv = callPackage ../development/python-modules/pyuv { };
@@ -7098,8 +6767,6 @@ in {
     inherit (pkgs) libxml2;
   };
 
-  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
-
   pywebpush = callPackage ../development/python-modules/pywebpush { };
 
   pywebview = callPackage ../development/python-modules/pywebview { };
@@ -7114,21 +6781,14 @@ in {
 
   pywizlight = callPackage ../development/python-modules/pywizlight { };
 
-  pyxattr = let
-    pyxattr' = callPackage ../development/python-modules/pyxattr { };
-    pyxattr_2 = pyxattr'.overridePythonAttrs (oldAttrs: rec {
-      version = "0.6.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
-      };
-    });
-  in if isPy3k then pyxattr' else pyxattr_2;
+  pyxattr = callPackage ../development/python-modules/pyxattr { };
 
   pyworld = callPackage ../development/python-modules/pyworld { };
 
   pyx = callPackage ../development/python-modules/pyx { };
 
+  pyxbe = callPackage ../development/python-modules/pyxbe { };
+
   pyxdg = callPackage ../development/python-modules/pyxdg { };
 
   pyxeoma = callPackage ../development/python-modules/pyxeoma { };
@@ -7137,8 +6797,6 @@ in {
 
   pyxl3 = callPackage ../development/python-modules/pyxl3 { };
 
-  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml { });
-
   pyxnat = callPackage ../development/python-modules/pyxnat { };
 
   pyyaml = callPackage ../development/python-modules/pyyaml { };
@@ -7157,6 +6815,8 @@ in {
 
   qds_sdk = callPackage ../development/python-modules/qds_sdk { };
 
+  qiling = callPackage ../development/python-modules/qiling { };
+
   qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
 
   qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
@@ -7171,8 +6831,6 @@ in {
 
   qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
 
-  qpid-python = callPackage ../development/python-modules/qpid-python { };
-
   qrcode = callPackage ../development/python-modules/qrcode { };
 
   qreactor = callPackage ../development/python-modules/qreactor { };
@@ -7185,8 +6843,6 @@ in {
 
   qscintilla = self.qscintilla-qt4;
 
-  qserve = callPackage ../development/python-modules/qserve { };
-
   qtawesome = callPackage ../development/python-modules/qtawesome { };
 
   qtconsole = callPackage ../development/python-modules/qtconsole { };
@@ -7296,8 +6952,6 @@ in {
 
   relatorio = callPackage ../development/python-modules/relatorio { };
 
-  remotecv = callPackage ../development/python-modules/remotecv { };
-
   rencode = callPackage ../development/python-modules/rencode { };
 
   repeated_test = callPackage ../development/python-modules/repeated_test { };
@@ -7348,6 +7002,8 @@ in {
 
   requirements-detector = callPackage ../development/python-modules/requirements-detector { };
 
+  requirements-parser = callPackage ../development/python-modules/requirements-parser { };
+
   resampy = callPackage ../development/python-modules/resampy { };
 
   responses = callPackage ../development/python-modules/responses { };
@@ -7372,6 +7028,8 @@ in {
 
   retworkx = callPackage ../development/python-modules/retworkx { };
 
+  rfc3339-validator = callPackage ../development/python-modules/rfc3339-validator { };
+
   rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
   rfc3987 = callPackage ../development/python-modules/rfc3987 { };
@@ -7382,8 +7040,6 @@ in {
 
   rfcat = callPackage ../development/python-modules/rfcat { };
 
-  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl { });
-
   rich = callPackage ../development/python-modules/rich { };
 
   rig = callPackage ../development/python-modules/rig { };
@@ -7396,9 +7052,9 @@ in {
 
   rising = callPackage ../development/python-modules/rising { };
 
-  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
+  rivet = toPythonModule (pkgs.rivet.override {
     python3 = python;
-  }));
+  });
 
   rjsmin = callPackage ../development/python-modules/rjsmin { };
 
@@ -7422,8 +7078,6 @@ in {
 
   robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
 
-  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
-
   robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
 
   robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
@@ -7440,6 +7094,8 @@ in {
 
   roku = callPackage ../development/python-modules/roku { };
 
+  rokuecp = callPackage ../development/python-modules/rokuecp { };
+
   roman = callPackage ../development/python-modules/roman { };
 
   roombapy = callPackage ../development/python-modules/roombapy { };
@@ -7458,29 +7114,23 @@ in {
 
   rpdb = callPackage ../development/python-modules/rpdb { };
 
-  rpkg = callPackage ../development/python-modules/rpkg { };
-
   rply = callPackage ../development/python-modules/rply { };
 
-  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override {
+  rpm = toPythonModule (pkgs.rpm.override {
     inherit python;
-  }));
+  });
+
+  rpmfile = callPackage ../development/python-modules/rpmfile { };
 
   rpmfluff = callPackage ../development/python-modules/rpmfluff { };
 
-  rpy2 = if isPy3k then
-    callPackage ../development/python-modules/rpy2 { }
-  else
-    callPackage ../development/python-modules/rpy2/2.nix { };
+  rpy2 = callPackage ../development/python-modules/rpy2 { };
 
   rpyc = callPackage ../development/python-modules/rpyc { };
 
   rq = callPackage ../development/python-modules/rq { };
 
-  rsa = if isPy3k then
-    callPackage ../development/python-modules/rsa { }
-  else
-    callPackage ../development/python-modules/rsa/4_0.nix { };
+  rsa = callPackage ../development/python-modules/rsa { };
 
   rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
@@ -7493,9 +7143,6 @@ in {
   ruamel-base = self.ruamel_base;
   ruamel_base = callPackage ../development/python-modules/ruamel_base { };
 
-  ruamel-ordereddict = self.ruamel_ordereddict;
-  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
-
   ruamel-yaml = self.ruamel_yaml;
   ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
 
@@ -7506,8 +7153,6 @@ in {
 
   ruffus = callPackage ../development/python-modules/ruffus { };
 
-  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
-
   runway-python = callPackage ../development/python-modules/runway-python { };
 
   rx = callPackage ../development/python-modules/rx { };
@@ -7540,6 +7185,8 @@ in {
     inherit (pkgs) sane-backends;
   };
 
+  saneyaml = callPackage ../development/python-modules/saneyaml { };
+
   sampledata = callPackage ../development/python-modules/sampledata { };
 
   samplerate = callPackage ../development/python-modules/samplerate { };
@@ -7548,11 +7195,22 @@ in {
 
   samsungtvws = callPackage ../development/python-modules/samsungtvws { };
 
-  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
+  sanic = callPackage ../development/python-modules/sanic {
+    # pytest-sanic is doing ok for the sole purpose of testing Sanic.
+    pytest-sanic = self.pytest-sanic.overridePythonAttrs (oldAttrs: {
+      doCheck = false;
+      meta.broken = false;
+    });
+    # Don't pass any `sanic` to avoid dependency loops.  `sanic-testing`
+    # has special logic to disable tests when this is the case.
+    sanic-testing = self.sanic-testing.override { sanic = null; };
+  };
 
   sanic-auth = callPackage ../development/python-modules/sanic-auth { };
 
-  sanic = callPackage ../development/python-modules/sanic { };
+  sanic-routing = callPackage ../development/python-modules/sanic-routing { };
+
+  sanic-testing = callPackage ../development/python-modules/sanic-testing { };
 
   sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
@@ -7562,7 +7220,7 @@ in {
 
   scales = callPackage ../development/python-modules/scales { };
 
-  scandir = callPackage ../development/python-modules/scandir { };
+  scancode-toolkit = callPackage ../development/python-modules/scancode-toolkit { };
 
   scapy = callPackage ../development/python-modules/scapy { };
 
@@ -7582,11 +7240,9 @@ in {
 
   scikitimage = callPackage ../development/python-modules/scikit-image { };
 
-  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;
+  scikitlearn = callPackage ../development/python-modules/scikitlearn {
+    inherit (pkgs) gfortran glibcLocales;
+  };
 
   scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
 
@@ -7614,16 +7270,7 @@ in {
     disabled = !isPy3k;
   });
 
-  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_;
+  scipy = callPackage ../development/python-modules/scipy { };
 
   scour = callPackage ../development/python-modules/scour { };
 
@@ -7649,10 +7296,7 @@ in {
 
   sdnotify = callPackage ../development/python-modules/sdnotify { };
 
-  seaborn = if isPy3k then
-    callPackage ../development/python-modules/seaborn { }
-  else
-    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
+  seaborn = callPackage ../development/python-modules/seaborn { };
 
   seabreeze = callPackage ../development/python-modules/seabreeze { };
 
@@ -7662,10 +7306,7 @@ in {
     inherit (pkgs) secp256k1;
   };
 
-  secretstorage = if isPy3k then
-    callPackage ../development/python-modules/secretstorage { }
-  else
-    callPackage ../development/python-modules/secretstorage/2.nix { };
+  secretstorage = callPackage ../development/python-modules/secretstorage { };
 
   secure = callPackage ../development/python-modules/secure { };
 
@@ -7679,8 +7320,6 @@ in {
 
   selenium = callPackage ../development/python-modules/selenium { };
 
-  semantic = callPackage ../development/python-modules/semantic { };
-
   semantic-version = callPackage ../development/python-modules/semantic-version { };
 
   semver = callPackage ../development/python-modules/semver { };
@@ -7701,7 +7340,9 @@ in {
 
   seqdiag = callPackage ../development/python-modules/seqdiag { };
 
-  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
+  seqeval = callPackage ../development/python-modules/seqeval { };
+
+  sequoia = disabledIf isPyPy (toPythonModule (pkgs.sequoia.override {
     pythonPackages = self;
     pythonSupport = true;
   }));
@@ -7712,13 +7353,11 @@ in {
 
   serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
 
-  serversyncstorage = callPackage ../development/python-modules/serversyncstorage { };
-
   service-identity = callPackage ../development/python-modules/service_identity { };
 
   setproctitle = callPackage ../development/python-modules/setproctitle { };
 
-  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
+  setuptools-declarative-requirements = callPackage ../development/python-modules/setuptools-declarative-requirements { };
 
   setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
@@ -7779,8 +7418,6 @@ in {
 
   simanneal = callPackage ../development/python-modules/simanneal { };
 
-  simpleai = callPackage ../development/python-modules/simpleai { };
-
   simpleaudio = callPackage ../development/python-modules/simpleaudio { };
 
   simplebayes = callPackage ../development/python-modules/simplebayes { };
@@ -7797,8 +7434,6 @@ in {
 
   simplekml = callPackage ../development/python-modules/simplekml { };
 
-  simpleparse = callPackage ../development/python-modules/simpleparse { };
-
   simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
 
   simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
@@ -7807,16 +7442,12 @@ in {
 
   simpy = callPackage ../development/python-modules/simpy { };
 
-  singledispatch = callPackage ../development/python-modules/singledispatch { };
-
   signify = callPackage ../development/python-modules/signify { };
 
   sip = callPackage ../development/python-modules/sip { };
 
   sip_5 = callPackage ../development/python-modules/sip/5.x.nix { };
 
-  sipsimple = callPackage ../development/python-modules/sipsimple { };
-
   six = callPackage ../development/python-modules/six { };
 
   skein = callPackage ../development/python-modules/skein {
@@ -7855,12 +7486,8 @@ in {
 
   slob = callPackage ../development/python-modules/slob { };
 
-  slowaes = callPackage ../development/python-modules/slowaes { };
-
   sly = callPackage ../development/python-modules/sly { };
 
-  smartdc = callPackage ../development/python-modules/smartdc { };
-
   smart_open = callPackage ../development/python-modules/smart_open { };
 
   smartypants = callPackage ../development/python-modules/smartypants { };
@@ -7869,6 +7496,8 @@ in {
 
   smdebug-rulesconfig = callPackage ../development/python-modules/smdebug-rulesconfig { };
 
+  smhi-pkg = callPackage ../development/python-modules/smhi-pkg { };
+
   smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
 
   smmap = callPackage ../development/python-modules/smmap { };
@@ -7899,8 +7528,6 @@ in {
 
   snscrape = callPackage ../development/python-modules/snscrape { };
 
-  snug = callPackage ../development/python-modules/snug { };
-
   snuggs = callPackage ../development/python-modules/snuggs { };
 
   soapysdr = toPythonModule (pkgs.soapysdr.override {
@@ -7943,10 +7570,7 @@ in {
 
   soundfile = callPackage ../development/python-modules/soundfile { };
 
-  soupsieve = if isPy3k then
-    callPackage ../development/python-modules/soupsieve { }
-  else
-    callPackage ../development/python-modules/soupsieve/1.nix { };
+  soupsieve = callPackage ../development/python-modules/soupsieve { };
 
   spacy = callPackage ../development/python-modules/spacy { };
 
@@ -7954,14 +7578,16 @@ in {
 
   spake2 = callPackage ../development/python-modules/spake2 { };
 
-  spambayes = callPackage ../development/python-modules/spambayes { };
-
   spark_parser = callPackage ../development/python-modules/spark_parser { };
 
+  sparklines = callPackage ../development/python-modules/sparklines { };
+
   SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
 
   sparse = callPackage ../development/python-modules/sparse { };
 
+  spdx-tools = callPackage ../development/python-modules/spdx-tools { };
+
   speaklater = callPackage ../development/python-modules/speaklater { };
 
   spectral-cube = callPackage ../development/python-modules/spectral-cube { };
@@ -8014,15 +7640,9 @@ in {
     texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
   };
 
-  sphinxcontrib-websupport = if isPy3k then
-    callPackage ../development/python-modules/sphinxcontrib-websupport { }
-  else
-    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
+  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport { };
 
-  sphinx = if isPy3k then
-    callPackage ../development/python-modules/sphinx { }
-  else
-    callPackage ../development/python-modules/sphinx/2.nix { };
+  sphinx = callPackage ../development/python-modules/sphinx { };
 
   sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
 
@@ -8030,12 +7650,18 @@ in {
 
   sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
+  sphinx-markdown-parser = callPackage ../development/python-modules/sphinx-markdown-parser { };
+
+  sphinx-material = callPackage ../development/python-modules/sphinx-material { };
+
   sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
 
   sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
   sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
 
+  sphinx-serve = callPackage ../development/python-modules/sphinx-serve { };
+
   sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
   spidev = callPackage ../development/python-modules/spidev { };
@@ -8066,8 +7692,6 @@ in {
 
   sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
-  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
-
   sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
   sqlite-fts4 = callPackage ../development/python-modules/sqlite-fts4 { };
@@ -8082,8 +7706,6 @@ in {
 
   sqlsoup = callPackage ../development/python-modules/sqlsoup { };
 
-  squaremap = callPackage ../development/python-modules/squaremap { };
-
   srp = callPackage ../development/python-modules/srp { };
 
   srptools = callPackage ../development/python-modules/srptools { };
@@ -8132,7 +7754,7 @@ in {
 
   stm32loader = callPackage ../development/python-modules/stm32loader { };
 
-  stompclient = callPackage ../development/python-modules/stompclient { };
+  stone = callPackage ../development/python-modules/stone { };
 
   strategies = callPackage ../development/python-modules/strategies { };
 
@@ -8168,16 +7790,10 @@ in {
 
   subdownloader = callPackage ../development/python-modules/subdownloader { };
 
-  subliminal = callPackage ../development/python-modules/subliminal { };
-
-  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
-
   subunit = callPackage ../development/python-modules/subunit {
     inherit (pkgs) subunit cppunit check;
   };
 
-  suds = callPackage ../development/python-modules/suds { };
-
   suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
   sumo = callPackage ../development/python-modules/sumo { };
@@ -8194,6 +7810,8 @@ in {
 
   surepy = callPackage ../development/python-modules/surepy { };
 
+  surt = callPackage ../development/python-modules/surt { };
+
   survey = callPackage ../development/python-modules/survey { };
 
   suseapi = callPackage ../development/python-modules/suseapi { };
@@ -8220,10 +7838,9 @@ in {
     inherit (pkgs) symengine;
   };
 
-  sympy = if isPy3k then
-    callPackage ../development/python-modules/sympy { }
-  else
-    callPackage ../development/python-modules/sympy/1_5.nix { };
+  sympy = callPackage ../development/python-modules/sympy { };
+
+  systembridge = callPackage ../development/python-modules/systembridge { };
 
   systemd = callPackage ../development/python-modules/systemd {
     inherit (pkgs) systemd;
@@ -8233,26 +7850,23 @@ in {
 
   tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
-  tables = if isPy3k then
-    callPackage ../development/python-modules/tables {
-      hdf5 = pkgs.hdf5_1_10;
-    }
-  else
-    callPackage ../development/python-modules/tables/3.5.nix {
-      hdf5 = pkgs.hdf5_1_10;
-    };
+  tables = callPackage ../development/python-modules/tables {
+    hdf5 = pkgs.hdf5_1_10;
+  };
 
   tablib = callPackage ../development/python-modules/tablib { };
 
   tabulate = callPackage ../development/python-modules/tabulate { };
 
+  tabview = callPackage ../development/python-modules/tabview { };
+
   tadasets = callPackage ../development/python-modules/tadasets { };
 
   tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
   tahoma-api = callPackage ../development/python-modules/tahoma-api { };
 
-  tarman = callPackage ../development/python-modules/tarman { };
+  tailer = callPackage ../development/python-modules/tailer { };
 
   tasklib = callPackage ../development/python-modules/tasklib { };
 
@@ -8272,6 +7886,8 @@ in {
 
   telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
 
+  telfhash = callPackage ../development/python-modules/telfhash { };
+
   tempita = callPackage ../development/python-modules/tempita { };
 
   tempora = callPackage ../development/python-modules/tempora { };
@@ -8341,6 +7957,8 @@ in {
 
   termstyle = callPackage ../development/python-modules/termstyle { };
 
+  tern = callPackage ../development/python-modules/tern { };
+
   teslajsonpy = callPackage ../development/python-modules/teslajsonpy { };
 
   tess = callPackage ../development/python-modules/tess { };
@@ -8367,6 +7985,8 @@ in {
 
   test-tube = callPackage ../development/python-modules/test-tube { };
 
+  textdistance = callPackage ../development/python-modules/textdistance { };
+
   textacy = callPackage ../development/python-modules/textacy { };
 
   texttable = callPackage ../development/python-modules/texttable { };
@@ -8405,8 +8025,6 @@ in {
 
   thrift = callPackage ../development/python-modules/thrift { };
 
-  thumbor = callPackage ../development/python-modules/thumbor { };
-
   thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
   tkinter = let
@@ -8453,28 +8071,21 @@ in {
 
   tmb = callPackage ../development/python-modules/tmb { };
 
-  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
-
   todoist = callPackage ../development/python-modules/todoist { };
 
   toggl-cli = callPackage ../development/python-modules/toggl-cli { };
 
-  tokenizers = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
+  tokenizers = toPythonModule (callPackage ../development/python-modules/tokenizers { });
 
-  tokenize-rt = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenize-rt { }));
+  tokenize-rt = toPythonModule (callPackage ../development/python-modules/tokenize-rt { });
 
   tokenlib = callPackage ../development/python-modules/tokenlib { };
 
-  tokenserver = callPackage ../development/python-modules/tokenserver { };
-
   toml = callPackage ../development/python-modules/toml { };
 
   tomlkit = callPackage ../development/python-modules/tomlkit { };
 
-  toolz = if isPy3k then
-    callPackage ../development/python-modules/toolz { }
-  else
-    callPackage ../development/python-modules/toolz/2.nix { };
+  toolz = callPackage ../development/python-modules/toolz { };
 
   toonapi = callPackage ../development/python-modules/toonapi { };
 
@@ -8486,10 +8097,7 @@ in {
 
   torchvision = callPackage ../development/python-modules/torchvision { };
 
-  tornado = if isPy3k then
-    callPackage ../development/python-modules/tornado { }
-  else
-    callPackage ../development/python-modules/tornado/5.nix { };
+  tornado = callPackage ../development/python-modules/tornado { };
 
   # Used by circus and grab-site, 2020-08-29
   tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
@@ -8513,10 +8121,7 @@ in {
 
   trackpy = callPackage ../development/python-modules/trackpy { };
 
-  traitlets = if pythonOlder "3.7" then
-    callPackage ../development/python-modules/traitlets/4.nix { }
-  else
-    callPackage ../development/python-modules/traitlets { };
+  traitlets = callPackage ../development/python-modules/traitlets { };
 
   traits = callPackage ../development/python-modules/traits { };
 
@@ -8552,20 +8157,14 @@ in {
     pytestCheckHook = self.pytestCheckHook_6_1;
   };
 
-  trollius = callPackage ../development/python-modules/trollius { };
-
   trueskill = callPackage ../development/python-modules/trueskill { };
 
   trustme = callPackage ../development/python-modules/trustme { };
 
   trytond = callPackage ../development/python-modules/trytond { };
 
-  ttystatus = callPackage ../development/python-modules/ttystatus { };
-
   tunigo = callPackage ../development/python-modules/tunigo { };
 
-  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
-
   tubeup = callPackage ../development/python-modules/tubeup { };
 
   tumpa = callPackage ../development/python-modules/tumpa { };
@@ -8626,6 +8225,12 @@ in {
 
   txtorcon = callPackage ../development/python-modules/txtorcon { };
 
+  typecode = callPackage ../development/python-modules/typecode { };
+
+  typecode-libmagic = callPackage ../development/python-modules/typecode/libmagic.nix {
+    inherit (pkgs) file zlib;
+  };
+
   typed-ast = callPackage ../development/python-modules/typed-ast { };
 
   typeguard = callPackage ../development/python-modules/typeguard { };
@@ -8636,7 +8241,7 @@ in {
 
   typesystem = callPackage ../development/python-modules/typesystem { };
 
-  typing = callPackage ../development/python-modules/typing { };
+  typing = null;
 
   typing-extensions = callPackage ../development/python-modules/typing-extensions { };
 
@@ -8664,10 +8269,7 @@ in {
 
   ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
 
-  ujson = if isPy27 then
-    callPackage ../development/python-modules/ujson/2.nix { }
-  else
-    callPackage ../development/python-modules/ujson { };
+  ujson = callPackage ../development/python-modules/ujson { };
 
   ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
@@ -8675,8 +8277,6 @@ in {
 
   umap-learn = callPackage ../development/python-modules/umap-learn { };
 
-  umemcache = callPackage ../development/python-modules/umemcache { };
-
   u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
 
   uncertainties = callPackage ../development/python-modules/uncertainties { };
@@ -8699,6 +8299,8 @@ in {
 
   unifi = callPackage ../development/python-modules/unifi { };
 
+  unify = callPackage ../development/python-modules/unify { };
+
   unifiled = callPackage ../development/python-modules/unifiled { };
 
   units = callPackage ../development/python-modules/units { };
@@ -8717,6 +8319,8 @@ in {
 
   untangle = callPackage ../development/python-modules/untangle { };
 
+  untokenize = callPackage ../development/python-modules/untokenize { };
+
   upass = callPackage ../development/python-modules/upass { };
 
   update_checker = callPackage ../development/python-modules/update_checker { };
@@ -8743,12 +8347,11 @@ in {
 
   urlgrabber = callPackage ../development/python-modules/urlgrabber { };
 
-  urllib3 = if isPy3k then
-    callPackage ../development/python-modules/urllib3 {
-      pytestCheckHook = self.pytestCheckHook_6_1;
-    }
-  else
-    callPackage ../development/python-modules/urllib3/2.nix { };
+  urllib3 = callPackage ../development/python-modules/urllib3 {
+    pytestCheckHook = self.pytestCheckHook_6_1;
+  };
+
+  urlpy = callPackage ../development/python-modules/urlpy { };
 
   urwid = callPackage ../development/python-modules/urwid { };
 
@@ -8786,10 +8389,7 @@ in {
 
   varint = callPackage ../development/python-modules/varint { };
 
-  vcrpy = if isPy27 then
-    callPackage ../development/python-modules/vcrpy/3.nix { }
-  else
-    callPackage ../development/python-modules/vcrpy { };
+  vcrpy = callPackage ../development/python-modules/vcrpy { };
 
   vcver = callPackage ../development/python-modules/vcver { };
 
@@ -8839,6 +8439,10 @@ in {
 
   vispy = callPackage ../development/python-modules/vispy { };
 
+  vivisect = callPackage ../development/python-modules/vivisect { };
+
+  viv-utils = callPackage ../development/python-modules/viv-utils { };
+
   vmprof = callPackage ../development/python-modules/vmprof { };
 
   vncdo = callPackage ../development/python-modules/vncdo { };
@@ -8987,6 +8591,10 @@ in {
 
   wled = callPackage ../development/python-modules/wled { };
 
+  woob = callPackage ../development/python-modules/woob { };
+
+  woodblock = callPackage ../development/python-modules/woodblock { };
+
   word2vec = callPackage ../development/python-modules/word2vec { };
 
   wordcloud = callPackage ../development/python-modules/wordcloud { };
@@ -8995,8 +8603,6 @@ in {
 
   worldengine = callPackage ../development/python-modules/worldengine { };
 
-  wptserve = callPackage ../development/python-modules/wptserve { };
-
   wrapio = callPackage ../development/python-modules/wrapio { };
 
   wrapt = callPackage ../development/python-modules/wrapt { };
@@ -9009,8 +8615,6 @@ in {
 
   wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
-  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
-
   wsgitools = callPackage ../development/python-modules/wsgitools { };
 
   WSME = callPackage ../development/python-modules/WSME { };
@@ -9028,10 +8632,6 @@ in {
 
   wurlitzer = callPackage ../development/python-modules/wurlitzer { };
 
-  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
-    wxGTK = pkgs.wxGTK30;
-  };
-
   wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
     inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox Carbon Cocoa CoreFoundation IOKit OpenGL;
     wxGTK = pkgs.wxGTK30.override {
@@ -9047,8 +8647,6 @@ in {
     };
   };
 
-  wxPython = self.wxPython30;
-
   x11_hash = callPackage ../development/python-modules/x11_hash { };
 
   x256 = callPackage ../development/python-modules/x256 { };
@@ -9068,8 +8666,6 @@ in {
 
   xboxapi = callPackage ../development/python-modules/xboxapi { };
 
-  xcaplib = callPackage ../development/python-modules/xcaplib { };
-
   xcffib = callPackage ../development/python-modules/xcffib { };
 
   xdg = callPackage ../development/python-modules/xdg { };
@@ -9078,7 +8674,7 @@ in {
 
   xdot = callPackage ../development/python-modules/xdot { };
 
-  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
+  xenomapper = callPackage ../applications/science/biology/xenomapper { };
 
   xgboost = callPackage ../development/python-modules/xgboost {
     inherit (pkgs) xgboost;
@@ -9178,8 +8774,6 @@ in {
 
   yeelight = callPackage ../development/python-modules/yeelight { };
 
-  yenc = callPackage ../development/python-modules/yenc { };
-
   yfinance = callPackage ../development/python-modules/yfinance { };
 
   yoda = toPythonModule (pkgs.yoda.override { inherit python; });
@@ -9197,8 +8791,6 @@ in {
     inherit (pkgs) jq;
   };
 
-  yt = callPackage ../development/python-modules/yt { };
-
   ytmusicapi = callPackage ../development/python-modules/ytmusicapi { };
 
   yubico-client = callPackage ../development/python-modules/yubico-client { };
@@ -9213,8 +8805,6 @@ in {
 
   zarr = callPackage ../development/python-modules/zarr { };
 
-  zbase32 = callPackage ../development/python-modules/zbase32 { };
-
   zc_buildout221 = callPackage ../development/python-modules/buildout { };
 
   zc_buildout = self.zc_buildout221; # A patched version of buildout, useful for buildout based development on Nix
@@ -9227,9 +8817,9 @@ in {
 
   zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  zeek = disabledIf (!isPy3k) (toPythonModule (pkgs.zeek.override {
+  zeek = toPythonModule (pkgs.zeek.override {
     python3 = python;
-  })).py;
+  }).py;
 
   zeep = callPackage ../development/python-modules/zeep { };
 
@@ -9245,8 +8835,6 @@ in {
 
   zetup = callPackage ../development/python-modules/zetup { };
 
-  zfec = callPackage ../development/python-modules/zfec { };
-
   zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
   zict = callPackage ../development/python-modules/zict { };
@@ -9267,10 +8855,7 @@ in {
 
   zipfile36 = callPackage ../development/python-modules/zipfile36 { };
 
-  zipp = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/zipp/1.nix { }
-  else
-    callPackage ../development/python-modules/zipp { };
+  zipp = callPackage ../development/python-modules/zipp { };
 
   zipstream = callPackage ../development/python-modules/zipstream { };
 
@@ -9332,5 +8917,7 @@ in {
 
   zulip = callPackage ../development/python-modules/zulip { };
 
+  zwave-js-server-python = callPackage ../development/python-modules/zwave-js-server-python { };
+
   zxcvbn = callPackage ../development/python-modules/zxcvbn { };
 }
diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix
new file mode 100644
index 00000000000..915c2edec70
--- /dev/null
+++ b/pkgs/top-level/python2-packages.nix
@@ -0,0 +1,647 @@
+# Extension with Python 2 packages that is overlayed on top
+# of the Python 3 packages set. This way, Python 2+3 compatible
+# packages can still be used.
+
+self: super:
+
+with self; with super; {
+
+  affinity = callPackage ../development/python-modules/affinity { };
+
+  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime {
+    inherit (pkgs) antlr4;
+  };
+
+  appleseed = toPythonModule (pkgs.appleseed.override { inherit (self) python; });
+
+  application = callPackage ../development/python-modules/application { };
+
+  arrow = callPackage ../development/python-modules/arrow/2.nix { };
+
+  ase = callPackage ../development/python-modules/ase/3.17.nix { };
+
+  astroid = callPackage ../development/python-modules/astroid/1.6.nix { };
+
+  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+
+  backports_os = callPackage ../development/python-modules/backports_os { };
+
+  bcrypt = callPackage ../development/python-modules/bcrypt/3_1.nix { };
+
+  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
+
+  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
+
+  blivet = callPackage ../development/python-modules/blivet { };
+
+  box2d = callPackage ../development/python-modules/box2d { };
+
+  browsermob-proxy = callPackage ../development/python-modules/browsermob-proxy { };
+
+  cairocffi = callPackage ../development/python-modules/cairocffi/0_9.nix { };
+
+  cairosvg = callPackage ../development/python-modules/cairosvg/1_x.nix { };
+
+  CDDB = callPackage ../development/python-modules/cddb { };
+
+  cdecimal = callPackage ../development/python-modules/cdecimal { };
+
+  chardet = callPackage ../development/python-modules/chardet/2.nix { };
+
+  cheetah = callPackage ../development/python-modules/cheetah { };
+
+  cherrypi = callPackage ../development/python-modules/cherrypy/17.nix { };
+
+  cjson = callPackage ../development/python-modules/cjson { };
+
+  cliapp = callPackage ../development/python-modules/cliapp { };
+
+  closure-linter = callPackage ../development/python-modules/closure-linter { };
+
+  cmdtest = callPackage ../development/python-modules/cmdtest { };
+
+  coilmq = callPackage ../development/python-modules/coilmq { };
+
+  configparser = callPackage ../development/python-modules/configparser/4.nix { };
+
+  construct = callPackage ../development/python-modules/construct/2.10.54.nix { };
+
+  convertdate = callPackage ../development/python-modules/convertdate/2.2.x.nix { };
+
+  cryptography = callPackage ../development/python-modules/cryptography/3.3.nix { };
+
+  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors-3.3.nix { };
+
+  darcsver = callPackage ../development/python-modules/darcsver { };
+
+  dateparser = callPackage ../development/python-modules/dateparser/0.x.nix { };
+
+  deskcon = callPackage ../development/python-modules/deskcon { };
+
+  django_evolution = callPackage ../development/python-modules/django_evolution { };
+
+  dnspython = super.dnspython_1;
+
+  docker-py = disabled super.docker-py;
+
+  dtopt = callPackage ../development/python-modules/dtopt { };
+
+  dulwich = callPackage ../development/python-modules/dulwich/0_19.nix { };
+
+  enum = callPackage ../development/python-modules/enum { };
+
+  eventlib = callPackage ../development/python-modules/eventlib { };
+
+  faulthandler = callPackage ../development/python-modules/faulthandler { };
+
+  fdint = callPackage ../development/python-modules/fdint { };
+
+  feedparser = callPackage ../development/python-modules/feedparser/5.nix { };
+
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
+
+  flit = disabled super.flit;
+
+  flit-core = disabled super.flit-core;
+
+  flup = callPackage ../development/python-modules/flup { };
+
+  fontforge = disabled super.fontforge;
+
+  freezegun = callPackage ../development/python-modules/freezegun/0.3.nix { };
+
+  fudge = callPackage ../development/python-modules/fudge { };
+
+  futures = callPackage ../development/python-modules/futures { };
+
+  gdcm = disabled super.gdcm;
+
+  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
+
+  geant4 = disabled super.geant4;
+
+  geopy = callPackage ../development/python-modules/geopy/2.nix { };
+
+  # Python 2.7 support was deprecated but is still needed by weboob and duplicity
+  google-api-python-client = super.google-api-python-client.overridePythonAttrs (old: rec {
+    version = "1.7.6";
+    src = old.src.override {
+      inherit version;
+      sha256 = "14w5sdrp0bk9n0r2lmpqmrbf2zclpfq6q7giyahnskkfzdkb165z";
+    };
+  });
+
+  gateone = callPackage ../development/python-modules/gateone { };
+
+  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+
+  gsd = callPackage ../development/python-modules/gsd/1.7.nix { };
+
+  gnutls = callPackage ../development/python-modules/gnutls { };
+
+  google-apputils = callPackage ../development/python-modules/google-apputils { };
+
+  grib-api = disabledIf (!isPy27) (toPythonModule (pkgs.grib-api.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
+
+  gunicorn = callPackage ../development/python-modules/gunicorn/19.nix { };
+
+  gwyddion = toPythonModule (pkgs.gwyddion.override {
+    pythonSupport = true;
+    pythonPackages = self;
+  });
+
+  hg-git = callPackage ../development/python-modules/hg-git { };
+
+  hgsvn = callPackage ../development/python-modules/hgsvn { };
+
+  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
+
+  html2text = callPackage ../development/python-modules/html2text/2018.nix { };
+
+  httpretty = callPackage ../development/python-modules/httpretty/0.nix { };
+
+  http_signature = callPackage ../development/python-modules/http_signature { };
+
+  hypothesis = super.hypothesis_4;
+
+  idna = callPackage ../development/python-modules/idna/2.nix { };
+
+  imagecodecs-lite = disabled super.imagecodecs-lite;
+
+  imbalanced-learn = callPackage ../development/python-modules/imbalanced-learn/0.4.nix { };
+
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata/2.nix { };
+
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
+
+  ipykernel = callPackage ../development/python-modules/ipykernel/4.nix { };
+
+  ipython = callPackage ../development/python-modules/ipython/5.nix { };
+
+  isort = callPackage ../development/python-modules/isort/4.nix { };
+
+  jaraco_functools = callPackage ../development/python-modules/jaraco_functools/2.nix { };
+
+  jaraco_stream = callPackage ../development/python-modules/jaraco_stream/2.nix { };
+
+  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
+
+  jupyter_client = callPackage ../development/python-modules/jupyter_client/5.nix { };
+
+  jupyter_console = callPackage ../development/python-modules/jupyter_console/5.nix { };
+
+  keyring = callPackage ../development/python-modules/keyring/2.nix { };
+
+  koji = callPackage ../development/python-modules/koji { };
+
+  konfig = callPackage ../development/python-modules/konfig { };
+
+  kicad = disabled super.kicad;
+
+  kiwisolver = callPackage ../development/python-modules/kiwisolver/1_1.nix { };
+
+  larch = callPackage ../development/python-modules/larch { };
+
+  Lasagne = callPackage ../development/python-modules/lasagne { };
+
+  le = callPackage ../development/python-modules/le { };
+
+  libcloud = callPackage ../development/python-modules/libcloud/2.nix { };
+
+  libgpiod = disabled super.libgpiod;
+
+  libnl-python = toPythonModule (pkgs.libnl.override {
+    pythonSupport = true;
+    inherit python;
+  }).py;
+
+  libplist = toPythonModule (pkgs.libplist.override {
+    enablePython = true;
+    inherit python;
+  }).py;
+
+  libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar-1_2_x.override { inherit python; })).python;
+
+  libvirt = callPackage ../development/python-modules/libvirt/5.9.0.nix {
+    libvirt = pkgs.libvirt_5_9_0;
+  };
+
+  lightblue = callPackage ../development/python-modules/lightblue { };
+
+  lirc = disabled super.lirc;
+
+  lpod = callPackage ../development/python-modules/lpod { };
+
+  lsi = callPackage ../development/python-modules/lsi { };
+
+  lxc = callPackage ../development/python-modules/lxc { };
+
+  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
+
+  marionette-harness = callPackage ../development/python-modules/marionette-harness { };
+
+  marisa = callPackage ../development/python-modules/marisa {
+    inherit (pkgs) marisa;
+  };
+
+  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix { };
+
+  markdown = callPackage ../development/python-modules/markdown/3_1.nix { };
+
+  matplotlib = callPackage ../development/python-modules/matplotlib/2.nix {
+    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  };
+
+  meliae = callPackage ../development/python-modules/meliae { };
+
+  mercurial = disabled super.mercurial;
+
+  meson = disabled super.meson;
+
+  metaphone = callPackage ../development/python-modules/metaphone { };
+
+  mock = callPackage ../development/python-modules/mock/2.nix { };
+
+  # Needed here because moinmoin is loaded as a Python library.
+  moinmoin = callPackage ../development/python-modules/moinmoin { };
+
+  monosat = disabled super.monosat;
+
+  more-itertools = callPackage ../development/python-modules/more-itertools/2.7.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 { };
+
+  mozterm = callPackage ../development/python-modules/mozterm { };
+
+  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix { };
+
+  mozsvc = callPackage ../development/python-modules/mozsvc { };
+
+  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
+
+  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
+
+  mpd = callPackage ../development/python-modules/mpd { };
+
+  mrbob = callPackage ../development/python-modules/mrbob { };
+
+  msrplib = callPackage ../development/python-modules/msrplib { };
+
+  mwlib = callPackage ../development/python-modules/mwlib { };
+
+  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
+
+  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
+
+  mutagen = callPackage ../development/python-modules/mutagen/1.43.nix { };
+
+  muttils = callPackage ../development/python-modules/muttils { };
+
+  namebench = callPackage ../development/python-modules/namebench { };
+
+  nbformat = callPackage ../development/python-modules/nbformat/2.nix { };
+
+  networkx = callPackage ../development/python-modules/networkx/2.2.nix { };
+
+  nevow = callPackage ../development/python-modules/nevow { };
+
+  # 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 { };
+
+  nixpart = callPackage ../tools/filesystems/nixpart { };
+
+  nose-focus = callPackage ../development/python-modules/nose-focus { };
+
+  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
+
+  notebook = callPackage ../development/python-modules/notebook/2.nix { };
+
+  notify = callPackage ../development/python-modules/notify { };
+
+  numpy = callPackage ../development/python-modules/numpy/1.16.nix { };
+
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
+
+  oauthlib = callPackage ../development/python-modules/oauthlib/3.1.nix { };
+
+  opencv = toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
+
+  openpyxl = callPackage ../development/python-modules/openpyxl/2.nix { };
+
+  openwrt-luci-rpc = disabled super.openwrt-luci-rpc;
+
+  opt-einsum = callPackage ../development/python-modules/opt-einsum/2.nix { };
+
+  packaging = callPackage ../development/python-modules/packaging/2.nix { };
+
+  pagerduty = callPackage ../development/python-modules/pagerduty { };
+
+  pandas = callPackage ../development/python-modules/pandas/2.nix { };
+
+  pasteScript = callPackage ../development/python-modules/pastescript { };
+
+  pathpy = callPackage ../development/python-modules/path.py/2.nix { };
+
+  pillow = callPackage ../development/python-modules/pillow/6.nix {
+    inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+    inherit (pkgs.xorg) libX11;
+  };
+
+  pip = callPackage ../development/python-modules/pip/20.nix { };
+
+  postorius = disabled super.postorius;
+
+  praw = callPackage ../development/python-modules/praw/6.3.nix { };
+
+  prettytable = callPackage ../development/python-modules/prettytable/1.nix { };
+
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+
+  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
+
+  prompt_toolkit = callPackage ../development/python-modules/prompt_toolkit/1.nix { };
+
+  pyamf = callPackage ../development/python-modules/pyamf { };
+
+  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
+
+  pycairo = callPackage ../development/python-modules/pycairo/1.18.nix {
+    inherit (pkgs) meson;
+  };
+
+  pycangjie = disabled pycangjie;
+
+  pycarddav = callPackage ../development/python-modules/pycarddav { };
+
+  pycassa = callPackage ../development/python-modules/pycassa { };
+
+  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
+
+  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
+
+  pydns = callPackage ../development/python-modules/pydns { };
+
+  pydocstyle = callPackage ../development/python-modules/pydocstyle/2.nix { };
+
+  pyechonest = callPackage ../development/python-modules/pyechonest { };
+
+  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
+
+  pyexiv2 = toPythonModule (callPackage ../development/python-modules/pyexiv2 { });
+
+  pygments = callPackage ../development/python-modules/Pygments/2_5.nix { };
+
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.36.nix {
+    inherit (pkgs) meson;
+  };
+
+  pygtk = callPackage ../development/python-modules/pygtk { };
+
+  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { };
+
+  pyGtkGlade = self.pygtk.override {
+    inherit (pkgs.gnome2) libglade;
+  };
+
+  pyhamcrest = callPackage ../development/python-modules/pyhamcrest/1.nix { };
+
+  pykickstart = callPackage ../development/python-modules/pykickstart { };
+
+  pylibacl = callPackage ../development/python-modules/pylibacl/0.5.nix { };
+
+  pylint = callPackage ../development/python-modules/pylint/1.9.nix { };
+
+  pyobjc = if stdenv.isDarwin then
+    callPackage ../development/python-modules/pyobjc { }
+  else
+    throw "pyobjc can only be built on Mac OS";
+
+  pyPdf = callPackage ../development/python-modules/pypdf { };
+
+  pypoppler = callPackage ../development/python-modules/pypoppler { };
+
+  pyreport = callPackage ../development/python-modules/pyreport { };
+
+  pyroma = callPackage ../development/python-modules/pyroma/2.nix { };
+
+  pysqlite = callPackage ../development/python-modules/pysqlite { };
+
+  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
+
+  pytest = pytest_4;
+
+  pytest-mock = callPackage ../development/python-modules/pytest-mock/2.nix { };
+
+  pytestrunner = callPackage ../development/python-modules/pytestrunner/2.nix { };
+
+  pytest_xdist = self.pytest-xdist; # added 2021-01-04
+  pytest-xdist = callPackage ../development/python-modules/pytest-xdist/1.nix { };
+
+  python-otr = callPackage ../development/python-modules/python-otr { };
+
+  python_statsd = callPackage ../development/python-modules/python_statsd { };
+
+  python-sybase = callPackage ../development/python-modules/sybase { };
+
+  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
+
+  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
+
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+
+  pyutil = callPackage ../development/python-modules/pyutil { };
+
+  pyxattr = super.pyxattr.overridePythonAttrs (oldAttrs: rec {
+    version = "0.6.1";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "b525843f6b51036198b3b87c4773a5093d6dec57d60c18a1f269dd7059aa16e3";
+    };
+  });
+
+  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+
+  pyxml = callPackage ../development/python-modules/pyxml { };
+
+  qpid-python = callPackage ../development/python-modules/qpid-python { };
+
+  qserve = callPackage ../development/python-modules/qserve { };
+
+  remotecv = callPackage ../development/python-modules/remotecv { };
+
+  rhpl = callPackage ../development/python-modules/rhpl { };
+
+  rivet = disabled super.rivet;
+
+  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
+
+  ruamel-ordereddict = self.ruamel_ordereddict;
+  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
+
+  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
+
+  rpm = disabled super.rpm;
+
+  rpkg = callPackage ../development/python-modules/rpkg { };
+
+  rpy2 = callPackage ../development/python-modules/rpy2/2.nix { };
+
+  rsa = callPackage ../development/python-modules/rsa/4_0.nix { };
+
+  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
+
+  scandir = callPackage ../development/python-modules/scandir { };
+
+  scikitlearn = callPackage ../development/python-modules/scikitlearn/0.20.nix {
+    inherit (pkgs) gfortran glibcLocales;
+  };
+
+  scipy = super.scipy.overridePythonAttrs (oldAttrs: rec {
+    version = "1.2.2";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1";
+    };
+  });
+
+  seaborn = callPackage ../development/python-modules/seaborn/0.9.1.nix { };
+
+  secretstorage = callPackage ../development/python-modules/secretstorage/2.nix { };
+
+  semantic = callPackage ../development/python-modules/semantic { };
+
+  serversyncstorage = callPackage ../development/python-modules/serversyncstorage { };
+
+  sequoia = disabled super.sequoia;
+
+  setuptools = callPackage ../development/python-modules/setuptools/44.0.nix { };
+
+  setuptools_scm = callPackage ../development/python-modules/setuptools_scm/2.nix { };
+
+  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
+
+  simpleai = callPackage ../development/python-modules/simpleai { };
+
+  simpleparse = callPackage ../development/python-modules/simpleparse { };
+
+  singledispatch = callPackage ../development/python-modules/singledispatch { };
+
+  sipsimple = callPackage ../development/python-modules/sipsimple { };
+
+  slowaes = callPackage ../development/python-modules/slowaes { };
+
+  smartdc = callPackage ../development/python-modules/smartdc { };
+
+  snug = callPackage ../development/python-modules/snug { };
+
+  soupsieve = callPackage ../development/python-modules/soupsieve/1.nix { };
+
+  spambayes = callPackage ../development/python-modules/spambayes { };
+
+  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
+
+  sphinx = callPackage ../development/python-modules/sphinx/2.nix { };
+
+  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
+
+  squaremap = callPackage ../development/python-modules/squaremap { };
+
+  stompclient = callPackage ../development/python-modules/stompclient { };
+
+  subliminal = callPackage ../development/python-modules/subliminal { };
+
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
+
+  suds = callPackage ../development/python-modules/suds { };
+
+  sympy = callPackage ../development/python-modules/sympy/1_5.nix { };
+
+  tables = callPackage ../development/python-modules/tables/3.5.nix {
+    hdf5 = pkgs.hdf5_1_10;
+  };
+
+  tarman = callPackage ../development/python-modules/tarman { };
+
+  thumbor = callPackage ../development/python-modules/thumbor { };
+
+  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
+
+  tokenizers = disabled super.tokenizers;
+
+  tokenize-rt = disabled super.tokenize-rt;
+
+  tokenserver = callPackage ../development/python-modules/tokenserver { };
+
+  toolz = callPackage ../development/python-modules/toolz/2.nix { };
+
+  tornado = callPackage ../development/python-modules/tornado/5.nix { };
+
+  traitlets = callPackage ../development/python-modules/traitlets/4.nix { };
+
+  ttystatus = callPackage ../development/python-modules/ttystatus { };
+
+  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
+
+  typing = callPackage ../development/python-modules/typing { };
+
+  ujson = callPackage ../development/python-modules/ujson/2.nix { };
+
+  umemcache = callPackage ../development/python-modules/umemcache { };
+
+  urllib3 = callPackage ../development/python-modules/urllib3/2.nix { };
+
+  wptserve = callPackage ../development/python-modules/wptserve { };
+
+  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
+
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
+    wxGTK = pkgs.wxGTK30;
+  };
+
+  wxPython = self.wxPython30;
+
+  vcrpy = callPackage ../development/python-modules/vcrpy/3.nix { };
+
+  xcaplib = callPackage ../development/python-modules/xcaplib { };
+
+  xenomapper = disabled super.xenomapper;
+
+  yenc = callPackage ../development/python-modules/yenc { };
+
+  yt = callPackage ../development/python-modules/yt { };
+
+  zeek = disabled super.zeek;
+
+  zbase32 = callPackage ../development/python-modules/zbase32 { };
+
+  zfec = callPackage ../development/python-modules/zfec { };
+
+  zipp = callPackage ../development/python-modules/zipp/1.nix { };
+
+}
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index b25f854bdd0..1d928ce05a9 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0clfsmkdqviwrjdc0fjqx3qs7xkq06bdl24f2qdyk4p2f0aszdw9";
+      sha256 = "0dr6w3h7i7xyqd04aw66x2ddm7xinvlw02pkk1sxczi8x21z16hf";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14qcia1l2yjga3azgc381mk75xrddspkpxxvswrr6rg9453i70wf";
+      sha256 = "0w3cq2m1qbmxp7yv3qs82ffn9y46vq5q04vqwxak6ln0ki0v4hn4";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17cnw2pi5gbll6wqqmp40wdxbg3v0kz1jmfdbg7kwdk8b4mkfqmw";
+      sha256 = "1wsa6kcgjx5am9hn44q2afg174m2gda4n8bfk5na17nj48s9g1ii";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbmizxyl2k6z386zqvvzg3i8b91g7ag4hfjmm7fpbc8p6j4kjmb";
+      sha256 = "0brr9kbmmc4fr2x8a7kj88yv8whfjfvalik3h82ypxlbg5b1c9iz";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19dgv0zcq7k0wps7gbaiprrardqm74ija9zjydkv93anqqfw3rwd";
+      sha256 = "04f7x7ycg73zc2v3lhvrnl072f7nl0nhp0sspfa2sqq14v4akmmb";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d68p974w96b3mg8q45cmwy2629dl615fm9in56fgb0k7vcrpazk";
+      sha256 = "0m009iki20hhwwj713bqdw57hmz650l7drfbajw32xn2qnawf294";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pkiy5jy5xjgh4diw5wyc72w1r9s07p1qp1kpwv50a5q1ca12aw0";
+      sha256 = "0zjwcfr4qyff9ln4hhjb1csbjpvr3z4pdgvg8axvhcs86h4xpy2n";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "019gwxrbki4fr3n2c6g7qyyjw94z5qxjwalh2n69hh1anpcbrd98";
+      sha256 = "118slj94hif5g1maaijlxsywrq75h7qdz20bq62303pkrzabjaxm";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -93,21 +93,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ag8wpfayzbv8n9gf9ca2k8rm9yndsxybvf7jv451j9r822mxzm8";
+      sha256 = "1jva5iqnjmj76mhhxcvx6xzda071cy80bhxn3r79f76pvgwwyymg";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   activestorage = {
-    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mimemagic"];
+    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kzslp0990fjyxvlsxb7kdysx28mc3zvay4q3zp2wbfnpl1ik41j";
+      sha256 = "1800ski0619mzyk2p2xcmy4xlym18g3lbqw8wb3ss06jhvn5dl5p";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -115,10 +115,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pflc2fch1bbgzk1rqgj21l6mgx025l92kd9arxjls98nf5am44v";
+      sha256 = "0l0khgrb7zn611xjnmygv5wdxh7wq645f613wldn5397q5w3l9lc";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -136,10 +136,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   atk = {
     dependencies = ["glib2"];
@@ -167,10 +167,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      sha256 = "0vkq6c8y2jvaw03ynds5vjzl1v9wg608cimkd3bidzxc0jvk56z9";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.9.2";
   };
   bacon = {
     groups = ["default"];
@@ -203,15 +203,15 @@
     version = "11.1.3";
   };
   cairo = {
-    dependencies = ["native-package-installer" "pkg-config"];
+    dependencies = ["native-package-installer" "pkg-config" "red-colors"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00hiy6anibkjq9w77hg0lpgnkkbcxrfbz8wxv44jfzqbab8910wb";
+      sha256 = "0vbj9szp2xbnxqan8hppip8vm9fxpcmpx745y5fvg2scdh9f0p7s";
       type = "gem";
     };
-    version = "1.16.6";
+    version = "1.17.5";
   };
   cairo-gobject = {
     dependencies = ["cairo" "glib2"];
@@ -291,10 +291,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jvpxf32l5y2ayj0jp9mv9n7vn61zingzd0s5f7490n584lwmvmg";
+      sha256 = "1y04ig8p9rparhff5dh3781pwf1xlirgq8p0fzvggjjpx761bvra";
       type = "gem";
     };
-    version = "3.4.1";
+    version = "3.4.2";
   };
   cocoapods = {
     dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored" "escape" "fourflusher" "molinillo" "nap" "xcodeproj"];
@@ -354,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b91sfsriizsr08m1vn9j4sf9sb8vgsyr6xjnw18bpy66bpwsqca";
+      sha256 = "0syya8l1kz36069y7cx4f37aihpmbm4yd5wvifs3j8qzz8bpxpfi";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.3";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "fuzzy_match" "nap"];
@@ -458,10 +458,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pwzrwp3sys5ad23lc49r3ja2ijzhzjfrq4bbrpbz1x5z7jsa77v";
+      sha256 = "0vpn0y2r91cv9kr2kh6rwh51ipi90iyjfya8ir9grxh1ngv179ck";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.2";
   };
   cocoapods-git_url_rewriter = {
     groups = ["default"];
@@ -583,10 +583,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ln4kywj4bx32qyqvr0byi3g4fk8yj026n00xch782x0147f8lka";
+      sha256 = "1z50v9y66kl0s9s84syd8vai77hhysdaymmgbdmpaq54bra6xk72";
       type = "gem";
     };
-    version = "0.0.11";
+    version = "0.2.0";
   };
   cocoapods-wholemodule = {
     groups = ["default"];
@@ -643,10 +643,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   crass = {
     groups = ["default"];
@@ -745,10 +745,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wi81lynfdvbwhrc4ws746g3j8761vian4m9gxamdj9rjwj9jhls";
+      sha256 = "1bpdrsdqwv80qqc3f4xxzpii13lx9mlx3zay4bnmmscrx8c0p63z";
       type = "gem";
     };
-    version = "1.3.4";
+    version = "1.3.5";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -808,10 +808,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+      sha256 = "1cql2cxl9bg8gbmmlzl4kvpq7y0gjldgarsnxq35vpd7ga3h54w2";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.13.0";
   };
   eventmachine = {
     groups = ["default"];
@@ -828,41 +828,61 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r";
+      sha256 = "0jn8s74nxsh0vmxv2fjrrrc3b2cgp8d267dyn206hbw5ki4pkd85";
       type = "gem";
     };
-    version = "0.78.1";
+    version = "0.80.1";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hmssd8pj4n7yq4kz834ylkla8ryyvhaap6q9nzymp93m1xq21kz";
+      sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.1";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
   };
   faraday-net_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d";
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
+      type = "gem";
+    };
+    version = "1.1.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
       type = "gem";
     };
-    version = "1.14.2";
+    version = "1.15.0";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -1143,10 +1163,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kr0bx9323fv5ys6nlhsy05kmwcbs94h6ac7ka9qqywy0vbdvrrv";
+      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
       type = "gem";
     };
-    version = "1.8.7";
+    version = "1.8.10";
   };
   iconv = {
     groups = ["default"];
@@ -1174,10 +1194,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02llgsg30jz9kpxs8jzv6rvzaylw7948xj2grp4vsfg54z20cwbm";
+      sha256 = "1vz0vp5lbp1bz2samyn8nk49vyh6zhvcqz35faq4i3kgsd4xlnhp";
       type = "gem";
     };
-    version = "2.10.1";
+    version = "2.11.2";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -1247,10 +1267,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   kramdown = {
     dependencies = ["rexml"];
@@ -1280,10 +1300,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p1iviq8q9za2hg0vqyrarrc3mqfskgp7spxp37xj0kl3g89vswq";
+      sha256 = "0h2sc2la6dd808pfnd7vh66fqwc7xg3nd2jqr4pdqymxspk9zcsq";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.4.3";
   };
   libv8 = {
     groups = ["default"];
@@ -1321,10 +1341,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06hkw6mssx39fg3jqyq57czr5acd11nqs5631k0xs50lr2y2pv8p";
+      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.5.1";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1332,10 +1352,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.1";
   };
   mab = {
     groups = ["default"];
@@ -1370,15 +1390,14 @@
     version = "2.7.1";
   };
   marcel = {
-    dependencies = ["mimemagic"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.1";
   };
   markaby = {
     dependencies = ["builder"];
@@ -1427,20 +1446,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjyfwn9nlvpcl8knq3jk4g5f12cflwdbaiqxcq1s7vwfwfxcag";
+      sha256 = "1phcq7z0zpipwd7y4fbqmlaqghv07fjjgrx99mwq3z3n0yvy7fmi";
       type = "gem";
     };
-    version = "3.2020.1104";
-  };
-  mimemagic = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
-      type = "gem";
-    };
-    version = "0.3.5";
+    version = "3.2021.0225";
   };
   mini_magick = {
     groups = ["default"];
@@ -1457,10 +1466,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -1477,10 +1486,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipjhdw8ds6q9h7bs3iw28bjrwkwp215hr4l3xf6215fsl80ky5j";
+      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
       type = "gem";
     };
-    version = "5.14.3";
+    version = "5.14.4";
   };
   molinillo = {
     groups = ["default"];
@@ -1497,10 +1506,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.2";
   };
   multi_json = {
     groups = ["default"];
@@ -1568,10 +1577,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0piclgf6pw7hr10x57x0hn675djyna4sb3xc97yb9vh66wkx1fl0";
+      sha256 = "1ww1mq41q7rda975byjmq5dk8k13v8dawvm33370pbkrymd8syp8";
       type = "gem";
     };
-    version = "1.0.9";
+    version = "1.1.1";
   };
   ncursesw = {
     groups = ["default"];
@@ -1619,10 +1628,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
       type = "gem";
     };
-    version = "2.5.4";
+    version = "2.5.7";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -1630,10 +1639,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
+      sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.11.3";
   };
   opus-ruby = {
     dependencies = ["ffi"];
@@ -1663,10 +1672,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zlk3bksiwrdvb7j0r5av7w280kigl7947wa7w4kbwqz3snaxl3m";
+      sha256 = "0m2acfd6l6k9xvqxvwivcnwji9974ac7498znydxh69z1x3rr8nm";
       type = "gem";
     };
-    version = "4.4.0";
+    version = "4.4.1";
   };
   pango = {
     dependencies = ["cairo-gobject" "gobject-introspection"];
@@ -1695,10 +1704,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml";
+      sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8";
       type = "gem";
     };
-    version = "3.0.0.0";
+    version = "3.0.1.0";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -1746,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "068sf963n2zk47kqcckj624g5pxmk68mm76h02piphfyh9x4zmi3";
+      sha256 = "1mjjy1grxr64znkffxsvprcckbrrnm40b6gbllnbm7jxslbr3gjl";
       type = "gem";
     };
-    version = "1.4.4";
+    version = "1.4.6";
   };
   polyglot = {
     groups = ["default"];
@@ -1767,10 +1776,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
+      sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.14.1";
   };
   pry-byebug = {
     dependencies = ["byebug" "pry"];
@@ -1778,10 +1787,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      sha256 = "07cv2hddswb334777pjgc9avxn0x9qhrdr191g7windvnjk3scvg";
       type = "gem";
     };
-    version = "3.9.0";
+    version = "3.8.0";
   };
   pry-doc = {
     dependencies = ["pry" "yard"];
@@ -1810,10 +1819,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13640p5fk19705ygp8j6p07lccag3d80bx8bmjgpd5zsxxsdc50b";
+      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
       type = "gem";
     };
-    version = "5.1.1";
+    version = "5.2.2";
   };
   racc = {
     groups = ["default"];
@@ -1863,10 +1872,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06r2kjl4ylfgw08gjxvlwqdy1lgmgsylwnysk1d0qr6q3nd0nvg6";
+      sha256 = "1yl6wy2gfvjkq0457plwadk7jwx5sbpqxl9aycbphskisis9g238";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -1896,10 +1905,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "179r2qymrh16ih5x563wqv3zpka9fvby5czqf47d24zm7zw1bwla";
+      sha256 = "1m3ckisji9n3li2700jpkyncsrh5b2z20zb0b4jl5x16cwsymr7b";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.3.1";
   };
   rainbow = {
     groups = ["default"];
@@ -1968,10 +1977,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400";
+      sha256 = "13za43xb5xfg1xb1vwlvwx14jlmnk7jal5dqw8q9a5g13csx41sw";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.4.0";
+  };
+  red-colors = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ar2k7zvhr1215jx5di29hkg5h1798f1gypmq6v0sy9v35w6ijca";
+      type = "gem";
+    };
+    version = "0.1.1";
   };
   redcarpet = {
     groups = ["default"];
@@ -2020,10 +2039,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
+      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
       type = "gem";
     };
-    version = "2.0.3";
+    version = "2.1.1";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -2041,20 +2060,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
       type = "gem";
     };
-    version = "3.2.4";
+    version = "3.2.5";
   };
   rmagick = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajn6aisf9hh3x5zrs7n02pg5xy3m8x38gh9cn7b3klzgp3djla5";
+      sha256 = "04ahv5gwfwdmwx6b7c0z91rrsfklvnqichgnqk1f9b9n6md3b8yw";
       type = "gem";
     };
-    version = "4.1.2";
+    version = "4.2.2";
   };
   rouge = {
     groups = ["default"];
@@ -2115,20 +2134,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x4aks5qq489iikb4ir11ppy1dg83l4dw3s34jlwvc90mj2fjrql";
+      sha256 = "1d13g6kipqqc9lmwz5b244pdwc97z15vcbnbq6n9rlf32bipdz4k";
       type = "gem";
     };
-    version = "3.10.1";
+    version = "3.10.2";
   };
   rspec-support = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lw9qdrff4dfdz62ww8cmv33rddmadr92k2lrvc042aajvk6x886";
+      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
       type = "gem";
     };
-    version = "3.10.1";
+    version = "3.10.2";
   };
   rubocop = {
     dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -2136,10 +2155,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12kkyzyzh30mi9xs52lc1pjki1al4x9acdaikj40wslhpwp1ng1l";
+      sha256 = "0cgrj670wrdw202pddiawcx2jbkcp7ja8zbc646by7nrg9ax492d";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.13.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2147,10 +2166,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qvfp567aprjgcwj757p55ynj0dx2b3c3hd76za9z3c43sphprcj";
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.4.1";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -2158,10 +2177,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01aahh54r9mwhdj7v2s6kmkdm1k1n1z27dlknlbgm281ny1aswrk";
+      sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15";
       type = "gem";
     };
-    version = "1.9.2";
+    version = "1.10.2";
   };
   ruby-graphviz = {
     dependencies = ["rexml"];
@@ -2220,20 +2239,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lk124dixshf8mmrjpsy9avnaygni3cwki25g8nm5py4d2f5fwwa";
+      sha256 = "1wy58f9qijwvkmw1j40ak2v5nsr3wcwsa1nilfw047liwyi06yad";
       type = "gem";
     };
-    version = "2.0.17";
+    version = "2.1.0";
   };
   ruby2_keywords = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
       type = "gem";
     };
-    version = "0.0.2";
+    version = "0.0.4";
   };
   RubyInline = {
     dependencies = ["ZenTest"];
@@ -2303,20 +2322,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lanqba97ncv88m9r5a3i12n938j5hnpn06q55fxhayfls4fsgdn";
+      sha256 = "13mlccf70slrjpxvpvmnk2cls39nkpgksa7sd90jlnm0s0z7lhdd";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.11.4";
   };
   sequel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ym43w8alp65fl8j7792i1l44laq9pm91zj97x0r340xkmaii9hp";
+      sha256 = "0i2zbx3zkrppvf7zmk5hpiji9kj18c0yavcr2c3i0gaqskhzvaj9";
       type = "gem";
     };
-    version = "5.40.0";
+    version = "5.43.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -2335,10 +2354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vv68r61crcnyr5i2qi3h220xbwndsfzwcfzzdr6cmhcdczyr9n2";
+      sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
       type = "gem";
     };
-    version = "0.21.1";
+    version = "0.21.2";
   };
   simplecov-html = {
     groups = ["default"];
@@ -2377,10 +2396,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nqyam74izmbczwb406bsmgdzjz5r91d4lywlvdbxx5sl4g4256a";
+      sha256 = "0516kmcypysgf2lw8zm8n9yghv6igqgphhfgmgyzgiin388xw4gj";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   slop = {
     groups = ["default"];
@@ -2439,10 +2458,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g7398sn8syybz3nbf3dqwa8q8v3s3s444i24xl5q9pzx4g4nkf1";
+      sha256 = "1nkwmlx0ja35gs4lkh7hmshlwsqk5wm1wqrc2p45icnjmrh0x5cw";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   terminal-table = {
     dependencies = ["unicode-display_width"];
@@ -2460,20 +2479,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   thrift = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08076cmdx0g51yrkd7dlxlr45nflink3jhdiq7006ljc2pc3212q";
+      sha256 = "1sfa4120a7yl3gxjcx990gyawsshfr22gfv5rvgpk72l2p9j2420";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.1";
   };
   tilt = {
     groups = ["default"];
@@ -2595,10 +2614,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ch19amq0spj5dc240mv6s8hh245w7nis2h070qr3jm15r4jb21m";
+      sha256 = "092y84kak86ds2as9kwn5a9m2yzqwqcz4wx31jk3kin32c3hwcrn";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.2";
   };
   xcodeproj = {
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index 3cddcde603d..e73eba8e142 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -83,15 +83,29 @@ self: super: let
       });
     };
 
+  llvmStaticAdapter = llvmPackages:
+    llvmPackages // {
+      stdenv = foldl (flip id) llvmPackages.stdenv staticAdapters;
+      libcxxStdenv = foldl (flip id) llvmPackages.libcxxStdenv staticAdapters;
+    };
+
 in {
   stdenv = foldl (flip id) super.stdenv staticAdapters;
+
   gcc49Stdenv = foldl (flip id) super.gcc49Stdenv staticAdapters;
   gcc6Stdenv = foldl (flip id) super.gcc6Stdenv staticAdapters;
   gcc7Stdenv = foldl (flip id) super.gcc7Stdenv staticAdapters;
   gcc8Stdenv = foldl (flip id) super.gcc8Stdenv staticAdapters;
   gcc9Stdenv = foldl (flip id) super.gcc9Stdenv staticAdapters;
-  clangStdenv = foldl (flip id) super.clangStdenv staticAdapters;
-  libcxxStdenv = foldl (flip id) super.libcxxStdenv staticAdapters;
+
+  llvmPackages_5 = llvmStaticAdapter super.llvmPackages_5;
+  llvmPackages_6 = llvmStaticAdapter super.llvmPackages_6;
+  llvmPackages_7 = llvmStaticAdapter super.llvmPackages_7;
+  llvmPackages_8 = llvmStaticAdapter super.llvmPackages_8;
+  llvmPackages_9 = llvmStaticAdapter super.llvmPackages_9;
+  llvmPackages_10 = llvmStaticAdapter super.llvmPackages_10;
+  llvmPackages_11 = llvmStaticAdapter super.llvmPackages_11;
+  llvmPackages_12 = llvmStaticAdapter super.llvmPackages_12;
 
   boost = super.boost.override {
     # Don’t use new stdenv for boost because it doesn’t like the