summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2021-02-26 10:25:13 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2021-02-26 10:25:13 +0100
commitc456a2512f7a7558cbe25328a423762033822cc0 (patch)
treed64f521751037012a1c4d05fedeb485eeee39b05
parentbabf9d6100c3e5dcdbbbe8850de99d3fe2b3cf86 (diff)
parent6d7128414cf2763ab14f31365c21c6cec3547dac (diff)
downloadnixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar.gz
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar.bz2
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar.lz
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar.xz
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.tar.zst
nixpkgs-c456a2512f7a7558cbe25328a423762033822cc0.zip
Merge master into staging-next
-rw-r--r--.github/CODEOWNERS2
-rw-r--r--doc/languages-frameworks/rust.section.md27
-rw-r--r--doc/using/configuration.xml12
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/doc/manual/release-notes/rl-2105.xml6
-rw-r--r--nixos/modules/config/console.nix13
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/profiles/hardened.nix2
-rw-r--r--nixos/modules/programs/steam.nix9
-rw-r--r--nixos/modules/rename.nix5
-rw-r--r--nixos/modules/security/hidepid.nix31
-rw-r--r--nixos/modules/security/hidepid.xml28
-rw-r--r--nixos/modules/services/backup/zrepl.nix54
-rw-r--r--nixos/modules/services/blockchain/ethereum/geth.nix178
-rw-r--r--nixos/modules/services/databases/mysql.nix15
-rw-r--r--nixos/modules/services/security/clamav.nix67
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix18
-rw-r--r--nixos/tests/all-tests.nix3
-rw-r--r--nixos/tests/geth.nix41
-rw-r--r--nixos/tests/hardened.nix11
-rw-r--r--nixos/tests/jq.nix10
-rw-r--r--nixos/tests/sbt-extras.nix16
-rw-r--r--nixos/tests/sbt.nix18
-rw-r--r--nixos/tests/unbound.nix16
-rw-r--r--pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--pkgs/applications/audio/ebumeter/default.nix33
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix1
-rw-r--r--pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--pkgs/applications/audio/picard/default.nix5
-rw-r--r--pkgs/applications/audio/pragha/default.nix4
-rw-r--r--pkgs/applications/audio/shortwave/default.nix1
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix6
-rw-r--r--pkgs/applications/audio/tuijam/default.nix1
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/go-ethereum.nix17
-rw-r--r--pkgs/applications/display-managers/lightdm-mini-greeter/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/manual-packages.nix81
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix54
-rw-r--r--pkgs/applications/editors/emacs/26.nix1
-rw-r--r--pkgs/applications/editors/emacs/27.nix1
-rw-r--r--pkgs/applications/editors/emacs/clean-env-26.patch15
-rw-r--r--pkgs/applications/editors/emacs/clean-env.patch16
-rw-r--r--pkgs/applications/editors/emacs/generic.nix6
-rw-r--r--pkgs/applications/editors/emacs/macport.nix7
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix1
-rw-r--r--pkgs/applications/editors/jupp/default.nix30
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/xed-editor/default.nix71
-rw-r--r--pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/gthumb/default.nix1
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix22
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix4
-rw-r--r--pkgs/applications/misc/9menu/default.nix32
-rw-r--r--pkgs/applications/misc/archivy/default.nix4
-rw-r--r--pkgs/applications/misc/caerbannog/default.nix58
-rw-r--r--pkgs/applications/misc/dasel/default.nix4
-rw-r--r--pkgs/applications/misc/dunst/default.nix4
-rw-r--r--pkgs/applications/misc/free42/default.nix4
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/lscolors/cargo.lock.patch159
-rw-r--r--pkgs/applications/misc/lscolors/default.nix26
-rw-r--r--pkgs/applications/misc/lutris/default.nix2
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/onboard/default.nix4
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix2
-rw-r--r--pkgs/applications/misc/playonlinux/0001-fix-locale.patch17
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix33
-rw-r--r--pkgs/applications/misc/sweethome3d/default.nix31
-rw-r--r--pkgs/applications/misc/sweethome3d/editors.nix26
-rw-r--r--pkgs/applications/misc/ticker/default.nix4
-rw-r--r--pkgs/applications/misc/tickrs/default.nix6
-rw-r--r--pkgs/applications/networking/bee/bee-clef.nix2
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix4
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/nyxt/default.nix2
-rw-r--r--pkgs/applications/networking/calls/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/hadoop/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/node-problem-detector/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix22
-rw-r--r--pkgs/applications/networking/feedreaders/rssguard/default.nix6
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix11
-rw-r--r--pkgs/applications/networking/instant-messengers/neochat/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix17
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch35
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch12
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix4
-rw-r--r--pkgs/applications/networking/mumble/default.nix47
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix14
-rw-r--r--pkgs/applications/networking/onionshare/default.nix92
-rw-r--r--pkgs/applications/networking/onionshare/fix-paths-gui.patch37
-rw-r--r--pkgs/applications/networking/onionshare/fix-paths.patch144
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix4
-rw-r--r--pkgs/applications/networking/websocketd/default.nix6
-rw-r--r--pkgs/applications/office/bookworm/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/office/zotero/default.nix62
-rw-r--r--pkgs/applications/printing/pappl/default.nix4
-rw-r--r--pkgs/applications/science/biology/star/default.nix4
-rw-r--r--pkgs/applications/science/electronics/diylc/default.nix9
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix6
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix4
-rw-r--r--pkgs/applications/science/electronics/ngspice/default.nix4
-rw-r--r--pkgs/applications/science/logic/acgtk/default.nix12
-rw-r--r--pkgs/applications/science/logic/alt-ergo/default.nix8
-rw-r--r--pkgs/applications/science/logic/hol/default.nix15
-rw-r--r--pkgs/applications/science/math/calc/default.nix4
-rw-r--r--pkgs/applications/science/math/nasc/default.nix1
-rw-r--r--pkgs/applications/system/glances/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghq/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/lab/default.nix8
-rw-r--r--pkgs/applications/version-management/meld/default.nix5
-rw-r--r--pkgs/applications/video/catt/default.nix26
-rw-r--r--pkgs/applications/video/filebot/default.nix2
-rw-r--r--pkgs/applications/video/kodi/default.nix50
-rw-r--r--pkgs/applications/video/kodi/plugins.nix70
-rw-r--r--pkgs/applications/video/pitivi/default.nix1
-rw-r--r--pkgs/applications/video/xplayer/default.nix103
-rw-r--r--pkgs/applications/video/xplayer/plparser.nix42
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker-compose/default.nix4
-rw-r--r--pkgs/applications/window-managers/dwl/default.nix12
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix58
-rw-r--r--pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix23
-rw-r--r--pkgs/build-support/emacs/wrapper.nix8
-rw-r--r--pkgs/build-support/rust/default.nix6
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix2
-rw-r--r--pkgs/data/fonts/iosevka/variants.nix46
-rw-r--r--pkgs/data/misc/nixos-artwork/icons.nix26
-rw-r--r--pkgs/data/misc/tzdata/default.nix2
-rw-r--r--pkgs/data/themes/yaru/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch64
-rw-r--r--pkgs/desktops/gnome-3/misc/geary/default.nix1
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix5
-rw-r--r--pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix4
-rw-r--r--pkgs/development/compilers/bluespec/default.nix6
-rw-r--r--pkgs/development/compilers/ocaml/4.12.nix7
-rw-r--r--pkgs/development/compilers/openjdk/darwin/11.nix4
-rw-r--r--pkgs/development/compilers/sbcl/common.nix18
-rw-r--r--pkgs/development/compilers/scala/2.x.nix24
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/go-packages/generic/default.nix6
-rw-r--r--pkgs/development/interpreters/guile/1.8.nix5
-rw-r--r--pkgs/development/interpreters/guile/CVE-2016-8605.patch59
-rw-r--r--pkgs/development/interpreters/io/default.nix28
-rw-r--r--pkgs/development/interpreters/octave/build-env.nix83
-rw-r--r--pkgs/development/interpreters/octave/build-octave-package.nix113
-rw-r--r--pkgs/development/interpreters/octave/default.nix231
-rw-r--r--pkgs/development/interpreters/octave/hooks/default.nix13
-rw-r--r--pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh17
-rw-r--r--pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh17
-rw-r--r--pkgs/development/interpreters/octave/with-packages.nix6
-rw-r--r--pkgs/development/interpreters/octave/wrap-octave.nix16
-rw-r--r--pkgs/development/interpreters/octave/wrap.sh132
-rw-r--r--pkgs/development/interpreters/scheme48/default.nix27
-rw-r--r--pkgs/development/java-modules/junit/default.nix9
-rw-r--r--pkgs/development/java-modules/maven-hello/default.nix16
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix2
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch36
-rw-r--r--pkgs/development/libraries/civetweb/default.nix11
-rw-r--r--pkgs/development/libraries/dlib/default.nix2
-rw-r--r--pkgs/development/libraries/eclib/default.nix4
-rw-r--r--pkgs/development/libraries/entt/default.nix4
-rw-r--r--pkgs/development/libraries/gexiv2/default.nix4
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix15
-rw-r--r--pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--pkgs/development/libraries/libavif/default.nix4
-rw-r--r--pkgs/development/libraries/libbap/default.nix6
-rw-r--r--pkgs/development/libraries/libfaketime/default.nix4
-rw-r--r--pkgs/development/libraries/libfprint/default.nix26
-rw-r--r--pkgs/development/libraries/libhandy/default.nix1
-rw-r--r--pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--pkgs/development/libraries/libofx/default.nix4
-rw-r--r--pkgs/development/libraries/libosmpbf/default.nix8
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libquotient/default.nix4
-rw-r--r--pkgs/development/libraries/libsigsegv/default.nix4
-rw-r--r--pkgs/development/libraries/libwnck/default.nix3
-rw-r--r--pkgs/development/libraries/lime/default.nix4
-rw-r--r--pkgs/development/libraries/log4cplus/default.nix4
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix4
-rw-r--r--pkgs/development/libraries/notcurses/default.nix8
-rw-r--r--pkgs/development/libraries/olm/default.nix19
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix4
-rw-r--r--pkgs/development/libraries/ortp/default.nix4
-rw-r--r--pkgs/development/libraries/protolock/default.nix4
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix2
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix2
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix24
-rw-r--r--pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch39
-rw-r--r--pkgs/development/libraries/vtk/generic.nix2
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/atd/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/atdgen/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/linenoise/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_bap/default.nix51
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/psmt2-frontend/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix4
-rw-r--r--pkgs/development/octave-modules/arduino/default.nix33
-rw-r--r--pkgs/development/octave-modules/audio/default.nix36
-rw-r--r--pkgs/development/octave-modules/bim/default.nix28
-rw-r--r--pkgs/development/octave-modules/bsltl/default.nix21
-rw-r--r--pkgs/development/octave-modules/cgi/default.nix21
-rw-r--r--pkgs/development/octave-modules/communications/default.nix31
-rw-r--r--pkgs/development/octave-modules/control/default.nix31
-rw-r--r--pkgs/development/octave-modules/data-smoothing/default.nix26
-rw-r--r--pkgs/development/octave-modules/database/default.nix31
-rw-r--r--pkgs/development/octave-modules/dataframe/default.nix21
-rw-r--r--pkgs/development/octave-modules/dicom/default.nix33
-rw-r--r--pkgs/development/octave-modules/divand/default.nix21
-rw-r--r--pkgs/development/octave-modules/doctest/default.nix28
-rw-r--r--pkgs/development/octave-modules/econometrics/default.nix26
-rw-r--r--pkgs/development/octave-modules/fem-fenics/default.nix35
-rw-r--r--pkgs/development/octave-modules/financial/default.nix23
-rw-r--r--pkgs/development/octave-modules/fits/default.nix41
-rw-r--r--pkgs/development/octave-modules/fpl/default.nix21
-rw-r--r--pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix21
-rw-r--r--pkgs/development/octave-modules/ga/default.nix21
-rw-r--r--pkgs/development/octave-modules/general/default.nix31
-rw-r--r--pkgs/development/octave-modules/generate_html/default.nix27
-rw-r--r--pkgs/development/octave-modules/geometry/default.nix26
-rw-r--r--pkgs/development/octave-modules/gsl/default.nix26
-rw-r--r--pkgs/development/octave-modules/image-acquisition/default.nix32
-rw-r--r--pkgs/development/octave-modules/image/default.nix27
-rw-r--r--pkgs/development/octave-modules/instrument-control/default.nix21
-rw-r--r--pkgs/development/octave-modules/interval/default.nix39
-rw-r--r--pkgs/development/octave-modules/io/default.nix32
-rw-r--r--pkgs/development/octave-modules/level-set/default.nix54
-rw-r--r--pkgs/development/octave-modules/linear-algebra/default.nix22
-rw-r--r--pkgs/development/octave-modules/lssa/default.nix27
-rw-r--r--pkgs/development/octave-modules/ltfat/default.nix54
-rw-r--r--pkgs/development/octave-modules/ltfat/syntax-error.patch15
-rw-r--r--pkgs/development/octave-modules/mapping/default.nix28
-rw-r--r--pkgs/development/octave-modules/matgeom/default.nix21
-rw-r--r--pkgs/development/octave-modules/miscellaneous/default.nix34
-rw-r--r--pkgs/development/octave-modules/msh/default.nix56
-rw-r--r--pkgs/development/octave-modules/mvn/default.nix21
-rw-r--r--pkgs/development/octave-modules/nan/default.nix26
-rw-r--r--pkgs/development/octave-modules/ncarray/default.nix31
-rw-r--r--pkgs/development/octave-modules/netcdf/default.nix26
-rw-r--r--pkgs/development/octave-modules/nurbs/default.nix30
-rw-r--r--pkgs/development/octave-modules/ocl/default.nix26
-rw-r--r--pkgs/development/octave-modules/octclip/default.nix29
-rw-r--r--pkgs/development/octave-modules/octproj/default.nix32
-rw-r--r--pkgs/development/octave-modules/optics/default.nix21
-rw-r--r--pkgs/development/octave-modules/optim/default.nix36
-rw-r--r--pkgs/development/octave-modules/optiminterp/default.nix31
-rw-r--r--pkgs/development/octave-modules/parallel/default.nix36
-rw-r--r--pkgs/development/octave-modules/quaternion/default.nix29
-rw-r--r--pkgs/development/octave-modules/queueing/default.nix32
-rw-r--r--pkgs/development/octave-modules/signal/default.nix26
-rw-r--r--pkgs/development/octave-modules/sockets/default.nix21
-rw-r--r--pkgs/development/octave-modules/sparsersb/default.nix28
-rw-r--r--pkgs/development/octave-modules/splines/default.nix21
-rw-r--r--pkgs/development/octave-modules/statistics/default.nix26
-rw-r--r--pkgs/development/octave-modules/stk/default.nix32
-rw-r--r--pkgs/development/octave-modules/strings/default.nix37
-rw-r--r--pkgs/development/octave-modules/struct/default.nix21
-rw-r--r--pkgs/development/octave-modules/symbolic/default.nix46
-rw-r--r--pkgs/development/octave-modules/tisean/default.nix33
-rw-r--r--pkgs/development/octave-modules/tsa/default.nix26
-rw-r--r--pkgs/development/octave-modules/vibes/default.nix39
-rw-r--r--pkgs/development/octave-modules/video/default.nix31
-rw-r--r--pkgs/development/octave-modules/vrml/default.nix41
-rw-r--r--pkgs/development/octave-modules/windows/default.nix21
-rw-r--r--pkgs/development/octave-modules/zeromq/default.nix26
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix4
-rw-r--r--pkgs/development/python-modules/PyRMVtransport/default.nix4
-rw-r--r--pkgs/development/python-modules/adblock/default.nix3
-rw-r--r--pkgs/development/python-modules/addic7ed-cli/default.nix8
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix3
-rw-r--r--pkgs/development/python-modules/aioguardian/default.nix1
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix6
-rw-r--r--pkgs/development/python-modules/androidtv/default.nix4
-rw-r--r--pkgs/development/python-modules/apprise/default.nix10
-rw-r--r--pkgs/development/python-modules/argon2_cffi/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncio_mqtt/default.nix4
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix13
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix8
-rw-r--r--pkgs/development/python-modules/canopen/default.nix4
-rw-r--r--pkgs/development/python-modules/chalice/default.nix3
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix14
-rw-r--r--pkgs/development/python-modules/desktop-notifier/default.nix4
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix7
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/dlib/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/fuzzyfinder/default.nix28
-rw-r--r--pkgs/development/python-modules/github3_py/default.nix4
-rw-r--r--pkgs/development/python-modules/gmusicapi/default.nix3
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix4
-rw-r--r--pkgs/development/python-modules/gpsoauth/default.nix5
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix6
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/json-rpc/default.nix24
-rw-r--r--pkgs/development/python-modules/jsonpath-ng/default.nix42
-rw-r--r--pkgs/development/python-modules/keep/default.nix4
-rw-r--r--pkgs/development/python-modules/kombu/default.nix2
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--pkgs/development/python-modules/lsassy/default.nix1
-rw-r--r--pkgs/development/python-modules/pecan/default.nix1
-rw-r--r--pkgs/development/python-modules/pivy/default.nix2
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix1
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix24
-rw-r--r--pkgs/development/python-modules/pynmea2/default.nix9
-rw-r--r--pkgs/development/python-modules/pyowm/default.nix44
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix17
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix42
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix19
-rw-r--r--pkgs/development/python-modules/python-olm/default.nix13
-rw-r--r--pkgs/development/python-modules/pyvizio/default.nix42
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix19
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/serverlessrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/shapely/default.nix25
-rw-r--r--pkgs/development/python-modules/sharkiqpy/default.nix32
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix5
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix6
-rw-r--r--pkgs/development/python-modules/termplotlib/default.nix36
-rw-r--r--pkgs/development/python-modules/tiros/default.nix20
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix41
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix43
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix34
-rw-r--r--pkgs/development/python-modules/venstarcolortouch/default.nix30
-rw-r--r--pkgs/development/python-modules/wxPython/4.0.nix3
-rw-r--r--pkgs/development/python-modules/wxPython/4.1.nix1
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix26
-rw-r--r--pkgs/development/python-modules/xmpppy/ssl.patch25
-rw-r--r--pkgs/development/tools/air/default.nix24
-rw-r--r--pkgs/development/tools/ameba/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix87
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix45
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/checkmake/default.nix49
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/dockle/default.nix16
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/dt-schema/default.nix4
-rw-r--r--pkgs/development/tools/eclipse-mat/default.nix3
-rw-r--r--pkgs/development/tools/electron/default.nix28
-rw-r--r--pkgs/development/tools/errcheck/default.nix4
-rw-r--r--pkgs/development/tools/flyway/default.nix4
-rw-r--r--pkgs/development/tools/github/github-release/default.nix47
-rw-r--r--pkgs/development/tools/gllvm/default.nix4
-rw-r--r--pkgs/development/tools/go-tools/default.nix4
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix14
-rw-r--r--pkgs/development/tools/gops/default.nix24
-rw-r--r--pkgs/development/tools/gotestsum/default.nix6
-rw-r--r--pkgs/development/tools/jq/default.nix3
-rw-r--r--pkgs/development/tools/kubectx/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/ccls/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix3
-rw-r--r--pkgs/development/tools/misc/gpuvis/default.nix42
-rw-r--r--pkgs/development/tools/misc/k2tf/default.nix24
-rw-r--r--pkgs/development/tools/misc/msitools/default.nix9
-rw-r--r--pkgs/development/tools/misc/scc/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/misc/terraformer/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/crunch/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocsigen-i18n/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/generic.nix2
-rw-r--r--pkgs/development/tools/sd-local/default.nix4
-rw-r--r--pkgs/development/tools/yq-go/default.nix4
-rw-r--r--pkgs/development/web/cog/default.nix2
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v14.nix4
-rw-r--r--pkgs/development/web/nodejs/v15.nix4
-rw-r--r--pkgs/games/flightgear/default.nix2
-rw-r--r--pkgs/games/mindustry/default.nix8
-rw-r--r--pkgs/games/minecraft/default.nix4
-rw-r--r--pkgs/games/papermc/default.nix6
-rw-r--r--pkgs/games/steam/fhsenv.nix16
-rw-r--r--pkgs/games/stockfish/default.nix3
-rw-r--r--pkgs/misc/cups/drivers/cnijfilter2/default.nix19
-rw-r--r--pkgs/misc/emulators/libdsk/default.nix4
-rw-r--r--pkgs/misc/emulators/yuzu/base.nix20
-rw-r--r--pkgs/misc/emulators/yuzu/default.nix8
-rw-r--r--pkgs/misc/uboot/default.nix27
-rw-r--r--pkgs/misc/vim-plugins/generated.nix396
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names6
-rw-r--r--pkgs/misc/vscode-extensions/default.nix52
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix4
-rw-r--r--pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch5
-rw-r--r--pkgs/os-specific/linux/ena/default.nix11
-rw-r--r--pkgs/os-specific/linux/gradm/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json24
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.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.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix6
-rw-r--r--pkgs/os-specific/linux/mcelog/default.nix4
-rw-r--r--pkgs/os-specific/linux/powerstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix7
-rw-r--r--pkgs/servers/dns/coredns/default.nix6
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix7
-rw-r--r--pkgs/servers/gemini/agate/default.nix14
-rw-r--r--pkgs/servers/gpsd/default.nix16
-rw-r--r--pkgs/servers/gpsd/sconstruct-env-fixes.patch7
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix12
-rw-r--r--pkgs/servers/home-assistant/default.nix1
-rw-r--r--pkgs/servers/http/jetty/default.nix4
-rw-r--r--pkgs/servers/jackett/default.nix4
-rw-r--r--pkgs/servers/mastodon/default.nix1
-rw-r--r--pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/mpd/default.nix4
-rw-r--r--pkgs/servers/nosql/redis/default.nix15
-rw-r--r--pkgs/servers/plex/raw.nix1
-rw-r--r--pkgs/servers/rippled/default.nix2
-rw-r--r--pkgs/servers/rtsp-simple-server/default.nix6
-rw-r--r--pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--pkgs/servers/sql/patroni/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--pkgs/servers/swego/default.nix4
-rw-r--r--pkgs/servers/tailscale/default.nix4
-rw-r--r--pkgs/servers/teleport/default.nix18
-rw-r--r--pkgs/servers/xmpp/biboumi/default.nix9
-rw-r--r--pkgs/servers/xmpp/pyIRCt/default.nix41
-rw-r--r--pkgs/servers/xmpp/pyMAILt/default.nix39
-rw-r--r--pkgs/shells/any-nix-shell/default.nix4
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/stdenv/generic/check-meta.nix40
-rw-r--r--pkgs/tools/admin/amazon-ecr-credential-helper/default.nix4
-rw-r--r--pkgs/tools/admin/aws-mfa/default.nix1
-rw-r--r--pkgs/tools/admin/awscli/default.nix12
-rw-r--r--pkgs/tools/admin/clair/default.nix4
-rw-r--r--pkgs/tools/admin/netplan/default.nix65
-rw-r--r--pkgs/tools/admin/ssh-import-id/default.nix6
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/beets/default.nix1
-rw-r--r--pkgs/tools/backup/btrbk/default.nix2
-rw-r--r--pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch25
-rw-r--r--pkgs/tools/backup/restic/default.nix11
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/s3fs/default.nix4
-rw-r--r--pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--pkgs/tools/graphics/zbar/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix1
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix4
-rw-r--r--pkgs/tools/misc/anystyle-cli/Gemfile37
-rw-r--r--pkgs/tools/misc/anystyle-cli/Gemfile.lock99
-rw-r--r--pkgs/tools/misc/anystyle-cli/anystyle.gemspec52
-rw-r--r--pkgs/tools/misc/anystyle-cli/default.nix43
-rw-r--r--pkgs/tools/misc/anystyle-cli/gemset.nix1570
-rw-r--r--pkgs/tools/misc/aspcud/default.nix4
-rw-r--r--pkgs/tools/misc/bdf2sfd/default.nix4
-rw-r--r--pkgs/tools/misc/chafa/default.nix4
-rw-r--r--pkgs/tools/misc/dijo/default.nix6
-rw-r--r--pkgs/tools/misc/dua/default.nix6
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix9
-rw-r--r--pkgs/tools/misc/gammy/default.nix4
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock10
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix24
-rw-r--r--pkgs/tools/misc/memtest86-efi/default.nix8
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--pkgs/tools/misc/mslink/default.nix30
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/screen/default.nix9
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--pkgs/tools/misc/vsh/default.nix12
-rw-r--r--pkgs/tools/misc/z-lua/default.nix4
-rw-r--r--pkgs/tools/networking/argus-clients/default.nix8
-rw-r--r--pkgs/tools/networking/cassowary/default.nix6
-rw-r--r--pkgs/tools/networking/clash/default.nix6
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/networking/findomain/default.nix6
-rw-r--r--pkgs/tools/networking/isync/default.nix4
-rw-r--r--pkgs/tools/networking/kea/default.nix4
-rw-r--r--pkgs/tools/networking/keepalived/default.nix4
-rw-r--r--pkgs/tools/networking/lldpd/default.nix4
-rw-r--r--pkgs/tools/networking/slirp4netns/default.nix4
-rw-r--r--pkgs/tools/networking/tcpflow/default.nix12
-rw-r--r--pkgs/tools/networking/tendermint/default.nix12
-rw-r--r--pkgs/tools/networking/unbound/default.nix9
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/cargo-deb/default.nix16
-rw-r--r--pkgs/tools/package-management/nix/default.nix2
-rw-r--r--pkgs/tools/security/fprintd/default.nix52
-rw-r--r--pkgs/tools/security/gitjacker/default.nix4
-rw-r--r--pkgs/tools/security/gopass/default.nix7
-rw-r--r--pkgs/tools/security/honggfuzz/default.nix4
-rw-r--r--pkgs/tools/security/kbs2/default.nix6
-rw-r--r--pkgs/tools/security/libtpms/default.nix43
-rw-r--r--pkgs/tools/security/pass/extensions/import.nix2
-rw-r--r--pkgs/tools/security/saml2aws/default.nix6
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix4
-rw-r--r--pkgs/tools/security/ssh-to-pgp/default.nix6
-rw-r--r--pkgs/tools/security/swtpm/default.nix76
-rw-r--r--pkgs/tools/security/swtpm/python-installation.patch60
-rw-r--r--pkgs/tools/security/teler/default.nix4
-rw-r--r--pkgs/tools/security/vault/default.nix6
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix10
-rw-r--r--pkgs/tools/system/bpytop/default.nix4
-rw-r--r--pkgs/tools/system/clinfo/default.nix4
-rw-r--r--pkgs/tools/system/daemon/default.nix4
-rw-r--r--pkgs/tools/system/gdu/default.nix6
-rw-r--r--pkgs/tools/system/logrotate/default.nix4
-rw-r--r--pkgs/tools/system/netdata/default.nix4
-rw-r--r--pkgs/tools/text/mark/default.nix4
-rw-r--r--pkgs/tools/text/mdbook/default.nix6
-rw-r--r--pkgs/tools/text/podiff/default.nix6
-rw-r--r--pkgs/tools/text/ugrep/default.nix4
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--pkgs/tools/video/vcsi/default.nix7
-rw-r--r--pkgs/tools/virtualization/aws/default.nix6
-rw-r--r--pkgs/tools/virtualization/shipyard/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix110
-rw-r--r--pkgs/top-level/emacs-packages.nix83
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
-rw-r--r--pkgs/top-level/octave-packages.nix224
-rw-r--r--pkgs/top-level/python-packages.nix28
579 files changed, 9790 insertions, 3050 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 7d0681a720c..048218a6d49 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -100,7 +100,7 @@
 
 # Rust
 /pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
-/pkgs/build-support/rust @andir @zowoq
+/pkgs/build-support/rust @andir @danieldk @zowoq
 
 # Darwin-related
 /pkgs/stdenv/darwin         @NixOS/darwin-maintainers
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 2290d92f7ad..94f94aaffe3 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -80,6 +80,33 @@ The fetcher will verify that the `Cargo.lock` file is in sync with the `src`
 attribute, and fail the build if not. It will also will compress the vendor
 directory into a tar.gz archive.
 
+The tarball with vendored dependencies contains a directory with the
+package's `name`, which is normally composed of `pname` and
+`version`. This means that the vendored dependencies hash
+(`cargoSha256`/`cargoHash`) is dependent on the package name and
+version. The `cargoDepsName` attribute can be used to use another name
+for the directory of vendored dependencies. For example, the hash can
+be made invariant to the version by setting `cargoDepsName` to
+`pname`:
+
+```nix
+rustPlatform.buildRustPackage rec {
+  pname = "broot";
+  version = "1.2.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1mqaynrqaas82f5957lx31x80v74zwmwmjxxlbywajb61vh00d38";
+  };
+
+  cargoHash = "sha256-JmBZcDVYJaK1cK05cxx5BrnGWp4t8ca6FLUbvIot67s=";
+  cargoDepsName = pname;
+
+  # ...
+}
+```
+
+
 ### Cross compilation
 
 By default, Rust packages are compiled for the host platform, just like any
diff --git a/doc/using/configuration.xml b/doc/using/configuration.xml
index 2cd2615f54a..8e63e0072c8 100644
--- a/doc/using/configuration.xml
+++ b/doc/using/configuration.xml
@@ -151,26 +151,26 @@
    </listitem>
    <listitem>
     <para>
-     It is also possible to whitelist and blacklist licenses that are specifically acceptable or not acceptable, using <literal>whitelistedLicenses</literal> and <literal>blacklistedLicenses</literal>, respectively.
+     It is also possible to allow and block licenses that are specifically acceptable or not acceptable, using <literal>allowlistedLicenses</literal> and <literal>blocklistedLicenses</literal>, respectively.
     </para>
     <para>
-     The following example configuration whitelists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
+     The following example configuration allowlists the licenses <literal>amd</literal> and <literal>wtfpl</literal>:
 <programlisting>
 {
-  whitelistedLicenses = with lib.licenses; [ amd wtfpl ];
+  allowlistedLicenses = with lib.licenses; [ amd wtfpl ];
 }
 </programlisting>
     </para>
     <para>
-     The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
+     The following example configuration blocklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
 <programlisting>
 {
-  blacklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
+  blocklistedLicenses = with lib.licenses; [ agpl3Only gpl3Only ];
 }
 </programlisting>
     </para>
     <para>
-      Note that <literal>whitelistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic whitelist for all types of licenses. <literal>blacklistedLicenses</literal> applies to all licenses.
+      Note that <literal>allowlistedLicenses</literal> only applies to unfree licenses unless <literal>allowUnfree</literal> is enabled. It is not a generic allowlist for all types of licenses. <literal>blocklistedLicenses</literal> applies to all licenses.
     </para>
    </listitem>
   </itemizedlist>
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 9518b1c44b3..075d87b403f 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -7203,6 +7203,12 @@
     githubId = 157610;
     name = "Piotr Bogdan";
   };
+  pborzenkov = {
+    email = "pavel@borzenkov.net";
+    github = "pborzenkov";
+    githubId = 434254;
+    name = "Pavel Borzenkov";
+  };
   pblkt = {
     email = "pebblekite@gmail.com";
     github = "pblkt";
diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml
index ca4b468e355..302a6d3f374 100644
--- a/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixos/doc/manual/release-notes/rl-2105.xml
@@ -101,6 +101,12 @@
      of the NixOS manual for an example using networkd links.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     The <option>security.hideProcessInformation</option> module has been removed.
+     It was broken since the switch to cgroups-v2.
+    </para>
+   </listitem>
     <listitem>
       <para>
         The <literal>systemConfig</literal> kernel parameter is no longer added to boot loader entries. It has been unused since September 2010, but if do have a system generation from that era, you will now be unable to boot into them.
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix
index 1339227f1e0..84ad76246fd 100644
--- a/nixos/modules/config/console.nix
+++ b/nixos/modules/config/console.nix
@@ -144,11 +144,16 @@ in
           ''}
         '';
 
-        systemd.services.systemd-vconsole-setup =
-          {
-            before = optional config.services.xserver.enable "display-manager.service";
-            after = [ "systemd-udev-settle.service" ];
+        systemd.services.reload-systemd-vconsole-setup =
+          { description = "Reset console on configuration changes";
+            wantedBy = [ "multi-user.target" ];
             restartTriggers = [ vconsoleConf consoleEnv ];
+            reloadIfChanged = true;
+            serviceConfig =
+              { RemainAfterExit = true;
+                ExecStart = "${pkgs.coreutils}/bin/true";
+                ExecReload = "/run/current-system/systemd/bin/systemctl restart systemd-vconsole-setup";
+              };
           };
       }
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 644229627b2..d8432a8ff88 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -207,7 +207,6 @@
   ./security/dhparams.nix
   ./security/duosec.nix
   ./security/google_oslogin.nix
-  ./security/hidepid.nix
   ./security/lock-kernel-modules.nix
   ./security/misc.nix
   ./security/oath.nix
@@ -257,6 +256,8 @@
   ./services/backup/tsm.nix
   ./services/backup/zfs-replication.nix
   ./services/backup/znapzend.nix
+  ./services/blockchain/ethereum/geth.nix
+  ./services/backup/zrepl.nix
   ./services/cluster/hadoop/default.nix
   ./services/cluster/k3s/default.nix
   ./services/cluster/kubernetes/addons/dns.nix
diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix
index 680fa40b911..00aafc6831b 100644
--- a/nixos/modules/profiles/hardened.nix
+++ b/nixos/modules/profiles/hardened.nix
@@ -22,8 +22,6 @@ with lib;
   environment.memoryAllocator.provider = mkDefault "scudo";
   environment.variables.SCUDO_OPTIONS = mkDefault "ZeroContents=1";
 
-  security.hideProcessInformation = mkDefault true;
-
   security.lockKernelModules = mkDefault true;
 
   security.protectKernelImage = mkDefault true;
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index 3c919c47a0c..6e9b7729ad6 100644
--- a/nixos/modules/programs/steam.nix
+++ b/nixos/modules/programs/steam.nix
@@ -4,6 +4,13 @@ with lib;
 
 let
   cfg = config.programs.steam;
+
+  steam = pkgs.steam.override {
+    extraLibraries = pkgs: with config.hardware.opengl;
+      if pkgs.hostPlatform.is64bit
+      then [ package ] ++ extraPackages
+      else [ package32 ] ++ extraPackages32;
+  };
 in {
   options.programs.steam.enable = mkEnableOption "steam";
 
@@ -18,7 +25,7 @@ in {
 
     hardware.steam-hardware.enable = true;
 
-    environment.systemPackages = [ pkgs.steam ];
+    environment.systemPackages = [ steam steam.run ];
   };
 
   meta.maintainers = with maintainers; [ mkg20001 ];
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 2d07e421efe..9f1efc46279 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -73,6 +73,11 @@ with lib;
     (mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")
 
+    (mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
+        The hidepid module was removed, since the underlying machinery
+        is broken when using cgroups-v2.
+    '')
+
     # Do NOT add any option renames here, see top of the file
   ];
 }
diff --git a/nixos/modules/security/hidepid.nix b/nixos/modules/security/hidepid.nix
deleted file mode 100644
index 4953f517e93..00000000000
--- a/nixos/modules/security/hidepid.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ config, lib, ... }:
-with lib;
-
-{
-  meta = {
-    maintainers = [ maintainers.joachifm ];
-    doc = ./hidepid.xml;
-  };
-
-  options = {
-    security.hideProcessInformation = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Restrict process information to the owning user.
-      '';
-    };
-  };
-
-  config = mkIf config.security.hideProcessInformation {
-    users.groups.proc.gid = config.ids.gids.proc;
-    users.groups.proc.members = [ "polkituser" ];
-
-    boot.specialFileSystems."/proc".options = [ "hidepid=2" "gid=${toString config.ids.gids.proc}" ];
-    systemd.services.systemd-logind.serviceConfig.SupplementaryGroups = [ "proc" ];
-
-    # Disable cgroupsv2, which doesn't work with hidepid.
-    # https://github.com/NixOS/nixpkgs/pull/104094#issuecomment-729996203
-    systemd.enableUnifiedCgroupHierarchy = false;
-  };
-}
diff --git a/nixos/modules/security/hidepid.xml b/nixos/modules/security/hidepid.xml
deleted file mode 100644
index 5a17cb1da41..00000000000
--- a/nixos/modules/security/hidepid.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-hidepid">
- <title>Hiding process information</title>
- <para>
-  Setting
-<programlisting>
-<xref linkend="opt-security.hideProcessInformation"/> = true;
-</programlisting>
-  ensures that access to process information is restricted to the owning user.
-  This implies, among other things, that command-line arguments remain private.
-  Unless your deployment relies on unprivileged users being able to inspect the
-  process information of other users, this option should be safe to enable.
- </para>
- <para>
-  Members of the <literal>proc</literal> group are exempt from process
-  information hiding.
- </para>
- <para>
-  To allow a service <replaceable>foo</replaceable> to run without process
-  information hiding, set
-<programlisting>
-<link linkend="opt-systemd.services._name_.serviceConfig">systemd.services.<replaceable>foo</replaceable>.serviceConfig</link>.SupplementaryGroups = [ "proc" ];
-</programlisting>
- </para>
-</chapter>
diff --git a/nixos/modules/services/backup/zrepl.nix b/nixos/modules/services/backup/zrepl.nix
new file mode 100644
index 00000000000..4356479b663
--- /dev/null
+++ b/nixos/modules/services/backup/zrepl.nix
@@ -0,0 +1,54 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+let
+  cfg = config.services.zrepl;
+  format = pkgs.formats.yaml { };
+  configFile = format.generate "zrepl.yml" cfg.settings;
+in
+{
+  meta.maintainers = with maintainers; [ cole-h ];
+
+  options = {
+    services.zrepl = {
+      enable = mkEnableOption "zrepl";
+
+      settings = mkOption {
+        default = { };
+        description = ''
+          Configuration for zrepl. See <link
+          xlink:href="https://zrepl.github.io/configuration.html"/>
+          for more information.
+        '';
+        type = types.submodule {
+          freeformType = format.type;
+        };
+      };
+    };
+  };
+
+  ### Implementation ###
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.zrepl ];
+
+    # zrepl looks for its config in this location by default. This
+    # allows the use of e.g. `zrepl signal wakeup <job>` without having
+    # to specify the storepath of the config.
+    environment.etc."zrepl/zrepl.yml".source = configFile;
+
+    systemd.packages = [ pkgs.zrepl ];
+    systemd.services.zrepl = {
+      requires = [ "local-fs.target" ];
+      wantedBy = [ "zfs.target" ];
+      after = [ "zfs.target" ];
+
+      path = [ config.boot.zfs.package ];
+      restartTriggers = [ configFile ];
+
+      serviceConfig = {
+        Restart = "on-failure";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/blockchain/ethereum/geth.nix b/nixos/modules/services/blockchain/ethereum/geth.nix
new file mode 100644
index 00000000000..be3f40f6bd8
--- /dev/null
+++ b/nixos/modules/services/blockchain/ethereum/geth.nix
@@ -0,0 +1,178 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  eachGeth = config.services.geth;
+
+  gethOpts = { config, lib, name, ...}: {
+
+    options = {
+
+      enable = lib.mkEnableOption "Go Ethereum Node";
+
+      port = mkOption {
+        type = types.port;
+        default = 30303;
+        description = "Port number Go Ethereum will be listening on, both TCP and UDP.";
+      };
+
+      http = {
+        enable = lib.mkEnableOption "Go Ethereum HTTP API";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum HTTP API.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8545;
+          description = "Port number of Go Ethereum HTTP API.";
+        };
+
+        apis = mkOption {
+          type = types.nullOr (types.listOf types.str);
+          default = null;
+          description = "APIs to enable over WebSocket";
+          example = ["net" "eth"];
+        };
+      };
+
+      websocket = {
+        enable = lib.mkEnableOption "Go Ethereum WebSocket API";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum WebSocket API.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8546;
+          description = "Port number of Go Ethereum WebSocket API.";
+        };
+
+        apis = mkOption {
+          type = types.nullOr (types.listOf types.str);
+          default = null;
+          description = "APIs to enable over WebSocket";
+          example = ["net" "eth"];
+        };
+      };
+
+      metrics = {
+        enable = lib.mkEnableOption "Go Ethereum prometheus metrics";
+        address = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "Listen address of Go Ethereum metrics service.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 6060;
+          description = "Port number of Go Ethereum metrics service.";
+        };
+      };
+
+      network = mkOption {
+        type = types.nullOr (types.enum [ "goerli" "rinkeby" "yolov2" "ropsten" ]);
+        default = null;
+        description = "The network to connect to. Mainnet (null) is the default ethereum network.";
+      };
+
+      syncmode = mkOption {
+        type = types.enum [ "fast" "full" "light" ];
+        default = "fast";
+        description = "Blockchain sync mode.";
+      };
+
+      gcmode = mkOption {
+        type = types.enum [ "full" "archive" ];
+        default = "full";
+        description = "Blockchain garbage collection mode.";
+      };
+
+      maxpeers = mkOption {
+        type = types.int;
+        default = 50;
+        description = "Maximum peers to connect to.";
+      };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        description = "Additional arguments passed to Go Ethereum.";
+        default = [];
+      };
+
+      package = mkOption {
+        default = pkgs.go-ethereum.geth;
+        type = types.package;
+        description = "Package to use as Go Ethereum node.";
+      };
+    };
+  };
+in
+
+{
+
+  ###### interface
+
+  options = {
+    services.geth = mkOption {
+      type = types.attrsOf (types.submodule gethOpts);
+      default = {};
+      description = "Specification of one or more geth instances.";
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf (eachGeth != {}) {
+
+    environment.systemPackages = flatten (mapAttrsToList (gethName: cfg: [
+      cfg.package
+    ]) eachGeth);
+
+    systemd.services = mapAttrs' (gethName: cfg: (
+      nameValuePair "geth-${gethName}" (mkIf cfg.enable {
+      description = "Go Ethereum node (${gethName})";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        Restart = "always";
+        StateDirectory = "goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}";
+
+        # Hardening measures
+        PrivateTmp = "true";
+        ProtectSystem = "full";
+        NoNewPrivileges = "true";
+        PrivateDevices = "true";
+        MemoryDenyWriteExecute = "true";
+      };
+
+      script = ''
+        ${cfg.package}/bin/geth \
+          --nousb \
+          --ipcdisable \
+          ${optionalString (cfg.network != null) ''--${cfg.network}''} \
+          --syncmode ${cfg.syncmode} \
+          --gcmode ${cfg.gcmode} \
+          --port ${toString cfg.port} \
+          --maxpeers ${toString cfg.maxpeers} \
+          ${if cfg.http.enable then ''--http --http.addr ${cfg.http.address} --http.port ${toString cfg.http.port}'' else ""} \
+          ${optionalString (cfg.http.apis != null) ''--http.api ${lib.concatStringsSep "," cfg.http.apis}''} \
+          ${if cfg.websocket.enable then ''--ws --ws.addr ${cfg.websocket.address} --ws.port ${toString cfg.websocket.port}'' else ""} \
+          ${optionalString (cfg.websocket.apis != null) ''--ws.api ${lib.concatStringsSep "," cfg.websocket.apis}''} \
+          ${optionalString cfg.metrics.enable ''--metrics --metrics.addr ${cfg.metrics.address} --metrics.port ${toString cfg.metrics.port}''} \
+          ${lib.escapeShellArgs cfg.extraArgs} \
+          --datadir /var/lib/goethereum/${gethName}/${if (cfg.network == null) then "mainnet" else cfg.network}
+      '';
+    }))) eachGeth;
+
+  };
+
+}
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 7d0a3f9afc4..cf105daeb04 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -375,6 +375,18 @@ in
           fi
         '';
 
+        script = ''
+          # https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/#systemd-and-galera-recovery
+          if test -n "''${_WSREP_START_POSITION}"; then
+            if test -e "${cfg.package}/bin/galera_recovery"; then
+              VAR=$(cd ${cfg.package}/bin/..; ${cfg.package}/bin/galera_recovery); [[ $? -eq 0 ]] && export _WSREP_START_POSITION=$VAR || exit 1
+            fi
+          fi
+
+          # The last two environment variables are used for starting Galera clusters
+          exec ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
+        '';
+
         postStart = let
           # The super user account to use on *first* run of MySQL server
           superUser = if isMariaDB then cfg.user else "root";
@@ -481,8 +493,7 @@ in
           Type = if hasNotify then "notify" else "simple";
           Restart = "on-abort";
           RestartSec = "5s";
-          # The last two environment variables are used for starting Galera clusters
-          ExecStart = "${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
+
           # User and group
           User = cfg.user;
           Group = cfg.group;
diff --git a/nixos/modules/services/security/clamav.nix b/nixos/modules/services/security/clamav.nix
index aaf6fb0479b..340cbbf02fb 100644
--- a/nixos/modules/services/security/clamav.nix
+++ b/nixos/modules/services/security/clamav.nix
@@ -8,30 +8,19 @@ let
   cfg = config.services.clamav;
   pkg = pkgs.clamav;
 
-  clamdConfigFile = pkgs.writeText "clamd.conf" ''
-    DatabaseDirectory ${stateDir}
-    LocalSocket ${runDir}/clamd.ctl
-    PidFile ${runDir}/clamd.pid
-    TemporaryDirectory /tmp
-    User clamav
-    Foreground yes
-
-    ${cfg.daemon.extraConfig}
-  '';
-
-  freshclamConfigFile = pkgs.writeText "freshclam.conf" ''
-    DatabaseDirectory ${stateDir}
-    Foreground yes
-    Checks ${toString cfg.updater.frequency}
-
-    ${cfg.updater.extraConfig}
-
-    DatabaseMirror database.clamav.net
-  '';
+  toKeyValue = generators.toKeyValue {
+    mkKeyValue = generators.mkKeyValueDefault {} " ";
+    listsAsDuplicateKeys = true;
+  };
+
+  clamdConfigFile = pkgs.writeText "clamd.conf" (toKeyValue cfg.daemon.settings);
+  freshclamConfigFile = pkgs.writeText "freshclam.conf" (toKeyValue cfg.updater.settings);
 in
 {
   imports = [
-    (mkRenamedOptionModule [ "services" "clamav" "updater" "config" ] [ "services" "clamav" "updater" "extraConfig" ])
+    (mkRemovedOptionModule [ "services" "clamav" "updater" "config" ] "Use services.clamav.updater.settings instead.")
+    (mkRemovedOptionModule [ "services" "clamav" "updater" "extraConfig" ] "Use services.clamav.updater.settings instead.")
+    (mkRemovedOptionModule [ "services" "clamav" "daemon" "extraConfig" ] "Use services.clamav.daemon.settings instead.")
   ];
 
   options = {
@@ -39,12 +28,12 @@ in
       daemon = {
         enable = mkEnableOption "ClamAV clamd daemon";
 
-        extraConfig = mkOption {
-          type = types.lines;
-          default = "";
+        settings = mkOption {
+          type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+          default = {};
           description = ''
-            Extra configuration for clamd. Contents will be added verbatim to the
-            configuration file.
+            ClamAV configuration. Refer to <link xlink:href="https://linux.die.net/man/5/clamd.conf"/>,
+            for details on supported values.
           '';
         };
       };
@@ -68,12 +57,12 @@ in
           '';
         };
 
-        extraConfig = mkOption {
-          type = types.lines;
-          default = "";
+        settings = mkOption {
+          type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+          default = {};
           description = ''
-            Extra configuration for freshclam. Contents will be added verbatim to the
-            configuration file.
+            freshclam configuration. Refer to <link xlink:href="https://linux.die.net/man/5/freshclam.conf"/>,
+            for details on supported values.
           '';
         };
       };
@@ -93,6 +82,22 @@ in
     users.groups.${clamavGroup} =
       { gid = config.ids.gids.clamav; };
 
+    services.clamav.daemon.settings = {
+      DatabaseDirectory = stateDir;
+      LocalSocket = "${runDir}/clamd.ctl";
+      PidFile = "${runDir}/clamd.pid";
+      TemporaryDirectory = "/tmp";
+      User = "clamav";
+      Foreground = true;
+    };
+
+    services.clamav.updater.settings = {
+      DatabaseDirectory = stateDir;
+      Foreground = true;
+      Checks = cfg.updater.frequency;
+      DatabaseMirror = [ "database.clamav.net" ];
+    };
+
     environment.etc."clamav/freshclam.conf".source = freshclamConfigFile;
     environment.etc."clamav/clamd.conf".source = clamdConfigFile;
 
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 5360cff22f3..d9935bcafb7 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -277,6 +277,18 @@ in
           '';
       };
 
+    virtualisation.msize =
+      mkOption {
+        default = null;
+        type = types.nullOr types.ints.unsigned;
+        description =
+          ''
+            msize (maximum packet size) option passed to 9p file systems, in
+            bytes. Increasing this should increase performance significantly,
+            at the cost of higher RAM usage.
+          '';
+      };
+
     virtualisation.diskSize =
       mkOption {
         default = 512;
@@ -666,7 +678,7 @@ in
         ${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} =
           { device = "store";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ];
+            options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
         "/tmp" = mkIf config.boot.tmpOnTmpfs
@@ -679,13 +691,13 @@ in
         "/tmp/xchg" =
           { device = "xchg";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" ];
+            options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
         "/tmp/shared" =
           { device = "shared";
             fsType = "9p";
-            options = [ "trans=virtio" "version=9p2000.L" ];
+            options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
             neededForBoot = true;
           };
       } // optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs)
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 89e2ee27228..bf094dbe984 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -182,7 +182,6 @@ in
   jenkins = handleTest ./jenkins.nix {};
   jirafeau = handleTest ./jirafeau.nix {};
   jitsi-meet = handleTest ./jitsi-meet.nix {};
-  jq = handleTest ./jq.nix {};
   k3s = handleTest ./k3s.nix {};
   kafka = handleTest ./kafka.nix {};
   keepalived = handleTest ./keepalived.nix {};
@@ -344,8 +343,6 @@ in
   samba = handleTest ./samba.nix {};
   samba-wsdd = handleTest ./samba-wsdd.nix {};
   sanoid = handleTest ./sanoid.nix {};
-  sbt = handleTest ./sbt.nix {};
-  sbt-extras = handleTest ./sbt-extras.nix {};
   sddm = handleTest ./sddm.nix {};
   searx = handleTest ./searx.nix {};
   service-runner = handleTest ./service-runner.nix {};
diff --git a/nixos/tests/geth.nix b/nixos/tests/geth.nix
new file mode 100644
index 00000000000..10cbd6d9038
--- /dev/null
+++ b/nixos/tests/geth.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "geth";
+  meta = with pkgs.lib; {
+    maintainers = with maintainers; [bachp ];
+  };
+
+  machine = { ... }: {
+    services.geth."mainnet" = {
+      enable = true;
+      http = {
+        enable = true;
+      };
+    };
+    services.geth."testnet" = {
+      enable = true;
+      port = 30304;
+      network = "goerli";
+      http = {
+        enable = true;
+        port = 18545;
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("geth-mainnet.service")
+    machine.wait_for_unit("geth-testnet.service")
+    machine.wait_for_open_port(8545)
+    machine.wait_for_open_port(18545)
+
+    machine.succeed(
+        'geth attach --exec "eth.chainId()" http://localhost:8545 | grep \'"0x0"\' '
+    )
+
+    machine.succeed(
+        'geth attach --exec "eth.chainId()" http://localhost:18545 | grep \'"0x5"\' '
+    )
+  '';
+})
diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix
index 0c26eaa310d..485efc0fb78 100644
--- a/nixos/tests/hardened.nix
+++ b/nixos/tests/hardened.nix
@@ -65,17 +65,6 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
           machine.succeed("grep -Fq wireguard /proc/modules")
 
 
-      # Test hidepid
-      with subtest("hidepid=2 option is applied and works"):
-          # Linux >= 5.8 shows "invisible"
-          machine.succeed(
-              "grep -Fq hidepid=2 /proc/mounts || grep -Fq hidepid=invisible /proc/mounts"
-          )
-          # cannot use pgrep -u here, it segfaults when access to process info is denied
-          machine.succeed("[ `su - sybil -c 'ps --no-headers --user root | wc -l'` = 0 ]")
-          machine.succeed("[ `su - alice -c 'ps --no-headers --user root | wc -l'` != 0 ]")
-
-
       # Test kernel module hardening
       with subtest("No more kernel modules can be loaded"):
           # note: this better a be module we normally wouldn't load ...
diff --git a/nixos/tests/jq.nix b/nixos/tests/jq.nix
deleted file mode 100644
index 075e6c43c09..00000000000
--- a/nixos/tests/jq.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }: {
-  name = "jq";
-  meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
-
-  nodes.jq = { pkgs, ... }: { environment.systemPackages = [ pkgs.jq ]; };
-
-  testScript = ''
-    assert "world" in jq.succeed('echo \'{"values":["hello","world"]}\'| jq \'.values[1]\''')
-  '';
-})
diff --git a/nixos/tests/sbt-extras.nix b/nixos/tests/sbt-extras.nix
deleted file mode 100644
index f1672bf2066..00000000000
--- a/nixos/tests/sbt-extras.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "sbt-extras";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      environment.systemPackages = [ pkgs.sbt-extras ];
-    };
-
-  testScript =
-    ''
-      machine.succeed("(sbt -h)")
-    '';
-})
diff --git a/nixos/tests/sbt.nix b/nixos/tests/sbt.nix
deleted file mode 100644
index 22541232ba6..00000000000
--- a/nixos/tests/sbt.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "sbt";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      environment.systemPackages = [ pkgs.sbt ];
-    };
-
-  testScript =
-    ''
-      machine.succeed(
-          "(sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${pkgs.sbt.version}  (this may take some time)'"
-      )
-    '';
-})
diff --git a/nixos/tests/unbound.nix b/nixos/tests/unbound.nix
index c8823163622..d4b8bb15ced 100644
--- a/nixos/tests/unbound.nix
+++ b/nixos/tests/unbound.nix
@@ -27,6 +27,9 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         # disable the root anchor update as we do not have internet access during
         # the test execution
         services.unbound.enableRootTrustAnchor = false;
+
+        # we want to test the full-variant of the package to also get DoH support
+        services.unbound.package = pkgs.unbound-full;
       };
     };
 
@@ -81,13 +84,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
         networking.firewall.allowedTCPPorts = [
           53 # regular DNS
           853 # DNS over TLS
+          443 # DNS over HTTPS
         ];
         networking.firewall.allowedUDPPorts = [ 53 ];
 
         services.unbound = {
           enable = true;
           allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ];
-          interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" ];
+          interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2"
+                         "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853"
+                         "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ];
           forwardAddresses = [
             (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address
             (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address
@@ -217,6 +223,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
                           expected,
                           ["+tcp", "+tls"] + args,
                       )
+                      query(
+                          machine,
+                          remote,
+                          query_type,
+                          zone,
+                          expected,
+                          ["+https"] + args,
+                      )
 
 
       client.start()
diff --git a/pkgs/applications/audio/bslizr/default.nix b/pkgs/applications/audio/bslizr/default.nix
index d307307fd1d..2a4e717e1bd 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.8";
+  version = "1.2.10";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = version;
-    sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0";
+    sha256 = "sha256-tEGJrVg8dN9Torybx02qIpXsGOuCgn/Wb+jemfCjiK4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/ebumeter/default.nix b/pkgs/applications/audio/ebumeter/default.nix
new file mode 100644
index 00000000000..9ebcbec001d
--- /dev/null
+++ b/pkgs/applications/audio/ebumeter/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl
+, libX11, libXft, libclthreads, libclxclient, libjack2, libpng, libsndfile, zita-resampler
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ebumeter";
+  version = "0.4.2";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
+    sha256 = "1wm9j1phmpicrp7jdsvdbc3mghdd92l61yl9qbps0brq2ljjyd5s";
+  };
+
+  buildInputs = [
+    libX11 libXft libclthreads libclxclient libjack2 libpng libsndfile zita-resampler
+  ];
+
+  preConfigure = ''
+    cd source
+  '';
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Level metering according to the EBU R-128 recommendation";
+    homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index 1733aef4177..fbd94ebd3d1 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -1,7 +1,6 @@
 { lib
 , rustPlatform
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , gettext
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index a4a32be41db..e397534d126 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -18,13 +18,13 @@ assert pcreSupport -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "ncmpc";
-  version = "0.44";
+  version = "0.45";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "ncmpc";
     rev    = "v${version}";
-    sha256 = "sha256-Qu41TL8KSKC9L25D6Z8bEbJUJQ9QI08grTGZ+0qGdUQ=";
+    sha256 = "sha256-KDSHbEZ2PJLEIlXqPvBQ2ZPWno+IoajTjkl9faAXIko=";
   };
 
   buildInputs = [ glib ncurses libmpdclient boost ]
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 200e457c568..785c334e152 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -40,11 +40,6 @@ in pythonPackages.buildPythonApplication rec {
     dateutil
   ];
 
-  prePatch = ''
-    # Pesky unicode punctuation.
-    substituteInPlace setup.cfg --replace "‘" "'"
-  '';
-
   # In order to spare double wrapping, we use:
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
diff --git a/pkgs/applications/audio/pragha/default.nix b/pkgs/applications/audio/pragha/default.nix
index bc6ef526ea7..da5a64f708e 100644
--- a/pkgs/applications/audio/pragha/default.nix
+++ b/pkgs/applications/audio/pragha/default.nix
@@ -36,13 +36,13 @@ assert withLastfm -> withCD;
 
 mkDerivation rec {
   pname = "pragha";
-  version = "1.3.4";
+  version = "1.3.99.1";
 
   src = fetchFromGitHub {
     owner = "pragha-music-player";
     repo = "pragha";
     rev = "v${version}";
-    sha256 = "sha256:0n8gx8amg5l9g4w7s4agjf8mlmpgjydgzx3vryp9lzzs9xrd5vqh";
+    sha256 = "sha256-C4zh2NHqP4bwKMi5s+3AfEtKqxRlzL66H8OyNonGzxE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index a503d3b344c..96433221e93 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -14,7 +14,6 @@
 , openssl
 , pkg-config
 , python3
-, rust
 , rustc
 , rustPlatform
 , sqlite
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index 776c9576bb4..23aae90be95 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPackages, pkg-config, openssl
+{ lib, fetchFromGitHub, rustPackages_1_45, pkg-config, openssl
 , withALSA ? true, alsaLib ? null
 , withPulseAudio ? false, libpulseaudio ? null
 , withPortAudio ? false, portaudio ? null
@@ -7,7 +7,7 @@
 , dbus ? null
 }:
 
-rustPackages.rustPlatform.buildRustPackage rec {
+rustPackages_1_45.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
   version = "0.3.0";
 
@@ -39,7 +39,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An open source Spotify client running as a UNIX daemon";
     homepage = "https://github.com/Spotifyd/spotifyd";
-    license = with licenses; [ gpl3 ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/audio/tuijam/default.nix b/pkgs/applications/audio/tuijam/default.nix
index 8a08b64508d..4a215528b7c 100644
--- a/pkgs/applications/audio/tuijam/default.nix
+++ b/pkgs/applications/audio/tuijam/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , lib
 , python3Packages
-, youtube-dl
 }:
 
 buildPythonApplication rec {
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 3c5bc5ea5ce..2599eb43b1c 100644
--- a/pkgs/applications/blockchains/ergo/default.nix
+++ b/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "3.3.6";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1zi559ixjxxsrpvvjbxa1d0g96px3h9amjvy149sfhp7b8w5hhk3";
+    sha256 = "sha256-M0kgd/txqc04WNLNZiq+imHMM9YGFd12jMWJyY2ExrY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index 776253ac9cd..dd3904b27cb 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -1,6 +1,12 @@
 { lib, stdenv, buildGoModule, fetchFromGitHub, libobjc, IOKit }:
 
-buildGoModule rec {
+let
+  # A list of binaries to put into separate outputs
+  bins = [
+    "geth"
+  ];
+
+in buildGoModule rec {
   pname = "go-ethereum";
   version = "1.9.25";
 
@@ -16,6 +22,13 @@ buildGoModule rec {
 
   doCheck = false;
 
+  outputs = [ "out" ] ++ bins;
+
+  # Move binaries to separate outputs and symlink them back to $out
+  postInstall = lib.concatStringsSep "\n" (
+    builtins.map (bin: "mkdir -p \$${bin}/bin && mv $out/bin/${bin} \$${bin}/bin/ && ln -s \$${bin}/bin/${bin} $out/bin/") bins
+  );
+
   subPackages = [
     "cmd/abidump"
     "cmd/abigen"
@@ -40,7 +53,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://geth.ethereum.org/";
     description = "Official golang implementation of the Ethereum protocol";
-    license = with licenses; [ lgpl3 gpl3 ];
+    license = with licenses; [ lgpl3Plus gpl3Plus ];
     maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
   };
 }
diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index d1cd2e7d3e4..0005fdb6339 100644
--- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lightdm-mini-greeter";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "prikhi";
     repo = "lightdm-mini-greeter";
     rev = version;
-    sha256 = "10hga7pmfyjdvj4xwm3djwrhk50brcpycj3p3c57pa0vnx4ill3s";
+    sha256 = "sha256-cVOnd3k+9hFQjROiwPpxZcCxD2NiH1eclJHF88eV6BM=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix
index d684c1ef94f..ef67cdbf61a 100644
--- a/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -1,4 +1,4 @@
-{ lib, external, pkgs }: self: with self; with lib.licenses; {
+{ lib, pkgs }: self: with self; with lib.licenses; {
 
   elisp-ffi = melpaBuild rec {
     pname = "elisp-ffi";
@@ -9,7 +9,7 @@
       rev = version;
       sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
     };
-    buildInputs = [ external.libffi ];
+    buildInputs = [ pkgs.libffi ];
     preBuild = "make";
     recipe = pkgs.writeText "recipe" ''
       (elisp-ffi
@@ -29,15 +29,15 @@
     };
   };
 
-  agda2-mode = with external; trivialBuild {
+  agda2-mode = trivialBuild {
     pname = "agda-mode";
-    version = Agda.version;
+    version = pkgs.haskellPackages.Agda.version;
 
     phases = [ "buildPhase" "installPhase" ];
 
     # already byte-compiled by Agda builder
     buildPhase = ''
-      agda=`${Agda}/bin/agda-mode locate`
+      agda=`${pkgs.haskellPackages.Agda}/bin/agda-mode locate`
       cp `dirname $agda`/*.el* .
     '';
 
@@ -47,21 +47,21 @@
         Wrapper packages that liberates init.el from `agda-mode locate` magic.
         Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
       '';
-      homepage = Agda.meta.homepage;
-      license = Agda.meta.license;
+      homepage = pkgs.haskellPackages.Agda.meta.homepage;
+      license = pkgs.haskellPackages.Agda.meta.license;
     };
   };
 
   agda-input = self.trivialBuild {
     pname = "agda-input";
 
-    inherit (external.Agda) src version;
+    inherit (pkgs.haskellPackages.Agda) src version;
 
     postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
 
     meta = {
       description = "Standalone package providing the agda-input method without building Agda.";
-      inherit (external.Agda.meta) homepage license;
+      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
     };
   };
 
@@ -74,10 +74,10 @@
 
   ghc-mod = melpaBuild {
     pname = "ghc";
-    version = external.ghc-mod.version;
-    src = external.ghc-mod.src;
+    version = pkgs.haskellPackages.ghc-mod.version;
+    src = pkgs.haskellPackages.ghc-mod.src;
     packageRequires = [ haskell-mode ];
-    propagatedUserEnvPkgs = [ external.ghc-mod ];
+    propagatedUserEnvPkgs = [ pkgs.haskellPackages.ghc-mod ];
     recipe = pkgs.writeText "recipe" ''
       (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
     '';
@@ -115,7 +115,7 @@
 
   llvm-mode = trivialBuild {
     pname = "llvm-mode";
-    inherit (external.llvmPackages.llvm) src version;
+    inherit (pkgs.llvmPackages.llvm) src version;
 
     dontConfigure = true;
     buildPhase = ''
@@ -123,24 +123,73 @@
     '';
 
     meta = {
-      inherit (external.llvmPackages.llvm.meta) homepage license;
+      inherit (pkgs.llvmPackages.llvm.meta) homepage license;
       description = "Major mode for the LLVM assembler language.";
     };
   };
 
+  matrix-client = melpaBuild {
+    pname = "matrix-client";
+    version = "0.3.0";
+
+    src = pkgs.fetchFromGitHub {
+      owner = "alphapapa";
+      repo = "matrix-client.el";
+      rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
+      sha256 = "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq";
+    };
+
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://github.com/alphapapa/matrix-client.el/commit/5f49e615c7cf2872f48882d3ee5c4a2bff117d07.patch";
+        sha256 = "07bvid7s1nv1377p5n61q46yww3m1w6bw4vnd4iyayw3fby1lxbm";
+      })
+    ];
+
+    packageRequires = [
+      anaphora
+      cl-lib
+      self.map
+      dash-functional
+      esxml
+      f
+      ov
+      tracking
+      rainbow-identifiers
+      dash
+      s
+      request
+      frame-purpose
+      a
+      ht
+    ];
+
+    recipe = pkgs.writeText "recipe" ''
+      (matrix-client
+      :repo "alphapapa/matrix-client.el"
+      :fetcher github)
+    '';
+
+    meta = {
+      description = "A chat client and API wrapper for Matrix.org";
+      license = gpl3Plus;
+    };
+
+  };
+
   org-mac-link =
     callPackage ./org-mac-link { };
 
   ott-mode = self.trivialBuild {
     pname = "ott-mod";
 
-    inherit (external.ott) src version;
+    inherit (pkgs.ott) src version;
 
     postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot";
 
     meta = {
       description = "Standalone package providing ott-mode without building ott and with compiled bytecode.";
-      inherit (external.Agda.meta) homepage license;
+      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
     };
   };
 
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 305d60aa305..f5adf631913 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -22,7 +22,7 @@ instantenous and formats commits for you.
 
 */
 
-{ lib, external, pkgs }: variant: self:
+{ lib, pkgs }: variant: self:
 let
   dontConfigure = pkg:
     if pkg != null then pkg.override (args: {
@@ -53,7 +53,7 @@ let
   });
 
   fix-rtags = pkg:
-    if pkg != null then dontConfigure (externalSrc pkg external.rtags)
+    if pkg != null then dontConfigure (externalSrc pkg pkgs.rtags)
     else null;
 
   generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json
@@ -79,9 +79,9 @@ let
         };
 
         auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: {
-          buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ];
-          CFLAGS = "-I${external.llvmPackages.clang}/include";
-          LDFLAGS = "-L${external.llvmPackages.clang}/lib";
+          buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
+          CFLAGS = "-I${pkgs.llvmPackages.clang}/include";
+          LDFLAGS = "-L${pkgs.llvmPackages.clang}/lib";
         });
 
         # part of a larger package
@@ -132,8 +132,8 @@ let
         flycheck-rtags = fix-rtags super.flycheck-rtags;
 
         pdf-tools = super.pdf-tools.overrideAttrs (old: {
-          nativeBuildInputs = [ external.pkg-config ];
-          buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
+          nativeBuildInputs = [ pkgs.pkg-config ];
+          buildInputs = with pkgs; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
           preBuild = "make server/epdfinfo";
           recipe = pkgs.writeText "recipe" ''
             (pdf-tools
@@ -143,7 +143,7 @@ let
         });
 
         # Build same version as Haskell package
-        hindent = (externalSrc super.hindent external.hindent).overrideAttrs (attrs: {
+        hindent = (externalSrc super.hindent pkgs.haskellPackages.hindent).overrideAttrs (attrs: {
           packageRequires = [ self.haskell-mode ];
         });
 
@@ -169,7 +169,7 @@ let
           dontUseCmakeBuildDir = true;
           doCheck = true;
           packageRequires = [ self.emacs ];
-          nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
+          nativeBuildInputs = [ pkgs.cmake pkgs.llvmPackages.llvm pkgs.llvmPackages.clang ];
         });
 
         # tries to write a log file to $HOME
@@ -286,18 +286,28 @@ let
         # part of a larger package
         notmuch = dontConfigure super.notmuch;
 
-        rtags = dontConfigure (externalSrc super.rtags external.rtags);
+        rtags = dontConfigure (externalSrc super.rtags pkgs.rtags);
 
         rtags-xref = dontConfigure super.rtags;
 
         shm = super.shm.overrideAttrs (attrs: {
-          propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
+          propagatedUserEnvPkgs = [ pkgs.haskellPackages.structured-haskell-mode ];
         });
 
         # Telega has a server portion for it's network protocol
         telega = super.telega.overrideAttrs (old: {
           buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
-          nativeBuildInputs = [ external.pkg-config ];
+          nativeBuildInputs = [ pkgs.pkg-config ];
+
+          postPatch = ''
+            substituteInPlace telega-customize.el \
+              --replace 'defcustom telega-server-command "telega-server"' \
+                        "defcustom telega-server-command \"$out/bin/telega-server\""
+
+            substituteInPlace telega-sticker.el --replace '"dwebp"' '"${pkgs.libwebp}/bin/dwebp"'
+
+            substituteInPlace telega-vvnote.el --replace '"ffmpeg' '"${pkgs.ffmpeg}/bin/ffmpeg'
+          '';
 
           postBuild = ''
             cd source/server
@@ -314,12 +324,12 @@ let
         treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
         });
 
         vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
           nativeBuildInputs =
-            (attrs.nativeBuildInputs or [ ]) ++ [ external.git ];
+            (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
         });
 
         zmq = super.zmq.overrideAttrs (old: {
@@ -328,11 +338,11 @@ let
             make
           '';
           nativeBuildInputs = [
-            external.autoconf
-            external.automake
-            external.pkg-config
-            external.libtool
-            (external.zeromq.override { enableDrafts = true; })
+            pkgs.autoconf
+            pkgs.automake
+            pkgs.pkg-config
+            pkgs.libtool
+            (pkgs.zeromq.override { enableDrafts = true; })
           ];
           postInstall = ''
             mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
@@ -415,7 +425,7 @@ let
         window-numbering = markBroken super.window-numbering;
 
         editorconfig = super.editorconfig.overrideAttrs (attrs: {
-          propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
+          propagatedUserEnvPkgs = [ pkgs.editorconfig-core-c ];
         });
 
         # missing dependencies
@@ -433,7 +443,7 @@ let
         racer = super.racer.overrideAttrs (attrs: {
           postPatch = attrs.postPatch or "" + ''
             substituteInPlace racer.el \
-              --replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc}
+              --replace /usr/local/src/rust/src ${pkgs.rustPlatform.rustcSrc}
           '';
         });
 
@@ -462,7 +472,7 @@ let
         w3m = super.w3m.override (args: {
           melpaBuild = drv: args.melpaBuild (drv // {
             prePatch =
-              let w3m = "${lib.getBin external.w3m}/bin/w3m"; in
+              let w3m = "${lib.getBin pkgs.w3m}/bin/w3m"; in
               ''
                 substituteInPlace w3m.el \
                 --replace 'defcustom w3m-command nil' \
diff --git a/pkgs/applications/editors/emacs/26.nix b/pkgs/applications/editors/emacs/26.nix
index a151006a995..1667bec9932 100644
--- a/pkgs/applications/editors/emacs/26.nix
+++ b/pkgs/applications/editors/emacs/26.nix
@@ -2,7 +2,6 @@ import ./generic.nix (rec {
   version = "26.3";
   sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
   patches = [
-    ./clean-env-26.patch
     ./tramp-detect-wrapped-gvfsd-26.patch
   ];
 })
diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix
index 1037c0cd91d..8bc65bad8b5 100644
--- a/pkgs/applications/editors/emacs/27.nix
+++ b/pkgs/applications/editors/emacs/27.nix
@@ -2,7 +2,6 @@ import ./generic.nix (rec {
   version = "27.1";
   sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
   patches = [
-    ./clean-env.patch
     ./tramp-detect-wrapped-gvfsd.patch
   ];
 })
diff --git a/pkgs/applications/editors/emacs/clean-env-26.patch b/pkgs/applications/editors/emacs/clean-env-26.patch
deleted file mode 100644
index 88befda899a..00000000000
--- a/pkgs/applications/editors/emacs/clean-env-26.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Dump temacs in an empty environment to prevent -dev paths from ending
-up in the dumped image.
-
-diff --git a/src/Makefile.in b/src/Makefile.in
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
- 	ln -f temacs$(EXEEXT) $@
- else
- 	unset EMACS_HEAP_EXEC; \
--	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
-+	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
-   ifneq ($(PAXCTL_dumped),)
- 	$(PAXCTL_dumped) $@
-   endif
diff --git a/pkgs/applications/editors/emacs/clean-env.patch b/pkgs/applications/editors/emacs/clean-env.patch
deleted file mode 100644
index 2ffe8b777a0..00000000000
--- a/pkgs/applications/editors/emacs/clean-env.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Dump temacs in an empty environment to prevent -dev paths from ending
-up in the dumped image.
-
-diff --git a/src/Makefile.in b/src/Makefile.in
-index fd05a45df5..13f529c253 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -570,7 +570,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) \
-                 lisp.mk $(etc)/DOC $(lisp) \
-                 $(lispsource)/international/charprop.el ${charsets}
- ifeq ($(DUMPING),unexec)
--	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
-+	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
-   ifneq ($(PAXCTL_dumped),)
- 	      $(PAXCTL_dumped) emacs$(EXEEXT)
-   endif
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index 70e253dd6df..12c3c57bbec 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -63,6 +63,12 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       rm -fr .git
     '')
 
+    # Reduce closure size by cleaning the environment of the emacs dumper
+    ''
+      substituteInPlace src/Makefile.in \
+        --replace 'RUN_TEMACS = ./temacs' 'RUN_TEMACS = env -i ./temacs'
+    ''
+
     ''
     substituteInPlace lisp/international/mule-cmds.el \
       --replace /usr/share/locale ${gettext}/share/locale
diff --git a/pkgs/applications/editors/emacs/macport.nix b/pkgs/applications/editors/emacs/macport.nix
index 3c57d3bc81a..b8fcc678faa 100644
--- a/pkgs/applications/editors/emacs/macport.nix
+++ b/pkgs/applications/editors/emacs/macport.nix
@@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
     sha256 = "0f2wzdw2a3ac581322b2y79rlj3c9f33ddrq9allj97r1si6v5xk";
   };
 
-  patches = [ ./clean-env.patch ];
-
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkg-config autoconf automake ];
@@ -57,6 +55,11 @@ stdenv.mkDerivation rec {
     # Fix sandbox impurities.
     substituteInPlace Makefile.in --replace '/bin/pwd' 'pwd'
     substituteInPlace lib-src/Makefile.in --replace '/bin/pwd' 'pwd'
+
+
+    # Reduce closure size by cleaning the environment of the emacs dumper
+    substituteInPlace src/Makefile.in \
+      --replace 'RUN_TEMACS = ./temacs' 'RUN_TEMACS = env -i ./temacs'
   '';
 
   configureFlags = [
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 67cb0028ae5..da7b70cecd2 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -35,7 +35,6 @@
 , wrapGAppsHook
 , dbus
 , xvfb_run
-, glib
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/applications/editors/jupp/default.nix b/pkgs/applications/editors/jupp/default.nix
index e134113e23f..c31c1fe10c0 100644
--- a/pkgs/applications/editors/jupp/default.nix
+++ b/pkgs/applications/editors/jupp/default.nix
@@ -1,31 +1,41 @@
-{ lib, stdenv, fetchurl, ncurses, gpm }:
+{ lib
+, stdenv
+, fetchurl
+, ncurses
+, gpm
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "jupp";
-  version = "39";
+  version = "40";
   srcName = "joe-3.1${pname}${version}";
 
   src = fetchurl {
     urls = [
       "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
-      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
-    sha256 = "14gys92dy3kq9ikigry7q2x4w5v2z76d97vp212bddrxiqy5np8d";
+      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz"
+    ];
+    sha256 = "S+1DnN5/K+KU6W5J7z6RPqkPvl6RTbiIQD46J+gDWxo=";
   };
 
   preConfigure = "chmod +x ./configure";
 
-  buildInputs = [ ncurses gpm ];
+  buildInputs = [
+    gpm
+    ncurses
+  ];
 
   configureFlags = [
     "--enable-curses"
-    "--enable-termcap"
-    "--enable-termidx"
     "--enable-getpwnam"
     "--enable-largefile"
+    "--enable-termcap"
+    "--enable-termidx"
   ];
 
   meta = with lib; {
+    homepage = "http://www.mirbsd.org/jupp.htm";
+    downloadPage = "https://www.mirbsd.org/MirOS/dist/jupp/";
     description = "A portable fork of Joe's editor";
     longDescription = ''
       This is the portable version of JOE's Own Editor, which is currently
@@ -35,8 +45,8 @@ stdenv.mkDerivation rec {
       and has a lot of bugs fixed. It is based upon an older version of joe
       because these behave better overall.
     '';
-    homepage = "http://www.mirbsd.org/jupp.htm";
-    license = licenses.gpl1;
+    license = licenses.gpl1Only;
     maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index cb53eb9d9d4..30d1e5b7578 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.5";
+  version = "5.6";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "0jkyd3yzcidnvnj1k9bmplzlbd303x6xxblpp5np7zs1kfzq22rr";
+    sha256 = "0ckscf3klm2k1zjvcv8mkza1yp80g7ss56n73790fk83lzj87qgw";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index af98580a8bf..12b9c638c4c 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "sha256-40VgWfSjyERHJapiIXSk89O3X1V8rb8JEWqfnAyf1Sc=";
+    sha256 = "sha256-MFCQwhdF+WCTqDt4q5qw431y/zqEy9vHudcUYb4BYNQ=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/pkgs/applications/editors/xed-editor/default.nix b/pkgs/applications/editors/xed-editor/default.nix
new file mode 100644
index 00000000000..d7b0703b8d5
--- /dev/null
+++ b/pkgs/applications/editors/xed-editor/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, libxml2
+, libpeas
+, glib
+, gtk3
+, gtksourceview4
+, gspell
+, xapps
+, pkg-config
+, meson
+, ninja
+, wrapGAppsHook
+, intltool
+, itstool }:
+
+stdenv.mkDerivation rec {
+  pname = "xed-editor";
+  version = "2.8.4";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "xed";
+    rev = version;
+    sha256 = "1hqr4157kp110p01jygqnnzj86zxlfiq4b53j345vqpx0f80c340";
+  };
+
+  nativeBuildInputs = [
+    meson
+    cmake
+    pkg-config
+    intltool
+    itstool
+    ninja
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    libxml2
+    glib
+    gtk3
+    gtksourceview4
+    libpeas
+    gspell
+    xapps
+  ];
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$($out/bin/xed --version)" == "xed - Version ${version}" ]] ; then
+      echo "${pname} smoke test passed"
+    else
+      echo "${pname} smoke test failed"
+      return 1
+    fi
+  '';
+
+  meta = with lib; {
+    description = "Light weight text editor from Linux Mint";
+    homepage = "https://github.com/linuxmint/xed";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tu-maurice ];
+  };
+}
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 902fb43047b..0a90b84892e 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.11.2";
+  version = "4.12.0";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-gE00Pukkf5wXP+SGqJgKJeLR82VtH/iwFNYkBb4Z8q0=";
+    sha256 = "sha256-qbG0Ii3Xmj1UGGS+n+LdiNPAHBkpQZMGEzrDvOcaUNA=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 31dff2f9c2d..82007caea9a 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "14.1.5";
+  version = "14.4.3";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    hash = "sha256-dM/DGtUDnJBD4Cfhm/zbxfgBhUcIlEzlF4z3cmQuW14=";
+    hash = "sha256-0wBjZg6IvjVTzAGeXTBBZjIN6s9NxKV0r76YK9h4fFk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix
index faa25f4aef0..26de91ee225 100644
--- a/pkgs/applications/graphics/gthumb/default.nix
+++ b/pkgs/applications/graphics/gthumb/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , gnome3
 , pkg-config
 , meson
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index 98348129d9b..b00f7f33210 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchgit, cmake, pkg-config, zlib, libpng, cairo, freetype
-, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xorg, pcre
-, wrapGAppsHook
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, zlib, libpng, cairo, freetype
+, json_c, fontconfig, gtkmm3, pangomm, glew, libGLU, xorg, pcre, wrapGAppsHook
 }:
 stdenv.mkDerivation rec {
-  name = "solvespace-2.3-20190501";
-  rev = "e7b75f19c34c923780db776592b47152650d8f22";
-  src = fetchgit {
-    url = "https://github.com/solvespace/solvespace";
-    inherit rev;
-    sha256 = "07k4mbzxf0dmzwdhjx5nc09y7rn1schkaypsw9kz0l7ppylprpp2";
+  pname = "solvespace";
+  version = "v3.0.rc2";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1z0873gwcr0hybrpqy4hwislir6k2zb4s62lbsivq5nbkizy7gjm";
     fetchSubmodules = true;
   };
 
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     +# include(GetGitCommitHash)
      # and instead uncomment the following, adding the complete git hash of the checkout you are using:
     -# set(GIT_COMMIT_HASH 0000000000000000000000000000000000000000)
-    +set(GIT_COMMIT_HASH $rev)
+    +set(GIT_COMMIT_HASH $version)
     EOF
   '';
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A parametric 3d CAD program";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.edef ];
     platforms = platforms.linux;
     homepage = "http://solvespace.com";
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 3103ace8029..db5a5d00fc1 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "0.9.13";
+  version = "0.9.14-4";
 
   src = fetchurl {
     url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
-    hash = "sha256-VdbdmpLiQGVFH3q6baE2yuuKz11Tn0gMpkGDI9KI3HQ=";
+    hash = "sha256-ZEpHeBeP2LpjABWD1eQxUORUKsRWvZ8WYa5IxSRLeXc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/9menu/default.nix b/pkgs/applications/misc/9menu/default.nix
new file mode 100644
index 00000000000..8e6b7b3bcbe
--- /dev/null
+++ b/pkgs/applications/misc/9menu/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, meson
+, ninja
+, libX11
+, libXext
+}:
+
+stdenv.mkDerivation rec {
+  pname = "9menu";
+  version = "unstable-2021-02-24";
+
+  src = fetchFromGitHub {
+    owner = "arnoldrobbins";
+    repo = pname;
+    rev = "00cbf99c48dc580ca28f81ed66c89a98b7a182c8";
+    sha256 = "arca8Gbr4ytiCk43cifmNj7SUrDgn1XB26zAhZrVDs0=";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja ];
+  buildInputs = [ libX11 libXext ];
+
+  meta = with lib; {
+    homepage = "https://github.com/arnoldrobbins/9menu";
+    description = "Simple X11 menu program for running commands";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = libX11.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index f3fec316bf9..8646a6716a4 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -5,11 +5,11 @@ watchdog, wtforms, html2text, flask-compress }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "archivy";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53a43e26e9081ac266412d8643c66c07c289c4639bbaec374fd5147441253a4f";
+    sha256 = "6f706b925175852d8101a4afe2304ab7ee7d56e9658538b9a8e49e925978b87e";
   };
 
   # Relax some dependencies
diff --git a/pkgs/applications/misc/caerbannog/default.nix b/pkgs/applications/misc/caerbannog/default.nix
new file mode 100644
index 00000000000..451980352c2
--- /dev/null
+++ b/pkgs/applications/misc/caerbannog/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, fetchgit
+, python3
+, glib
+, gobject-introspection
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, atk
+, libhandy
+, libnotify
+, pango
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "caerbannog";
+  version = "0.3";
+  format = "other";
+
+  src = fetchgit {
+    url = "https://git.sr.ht/~craftyguy/caerbannog";
+    rev = version;
+    sha256 = "0wqkb9zcllxm3fdsr5lphknkzy8r1cr80f84q200hbi99qql1dxh";
+  };
+
+  nativeBuildInputs = [
+    glib
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    atk
+    gobject-introspection
+    libhandy
+    libnotify
+    pango
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    anytree
+    fuzzyfinder
+    gpgme
+    pygobject3
+  ];
+
+  meta = with lib; {
+    description = "Mobile-friendly Gtk frontend for password-store";
+    homepage = "https://sr.ht/~craftyguy/caerbannog/";
+    changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index f4dafd9e134..aa19ce2c53e 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.13.1";
+  version = "1.13.2";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fgXhWouqStfxWs6cFNVxWI1INVYswVUTOuLr09utxpY=";
+    sha256 = "sha256-++8vTK0OR44Mcdh5g2bJEq7aO+fWySKw0XlSz2KJNio=";
   };
 
   vendorSha256 = "sha256-BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index eed07a2356e..65e86bb7dbe 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -1,12 +1,13 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
 , pkg-config, which, perl, libXrandr
 , cairo, dbus, systemd, gdk-pixbuf, glib, libX11, libXScrnSaver
+, gtk3, wayland, wayland-protocols
 , libXinerama, libnotify, pango, xorgproto, librsvg, dunstify ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cairo dbus gdk-pixbuf glib libX11 libXScrnSaver
     libXinerama libnotify pango xorgproto librsvg libXrandr
+    gtk3 wayland wayland-protocols
   ];
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/misc/free42/default.nix b/pkgs/applications/misc/free42/default.nix
index 29c6df8a72e..5810607e8d1 100644
--- a/pkgs/applications/misc/free42/default.nix
+++ b/pkgs/applications/misc/free42/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "free42";
-  version = "2.5.24a";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = pname;
     rev = "v${version}";
-    sha256 = "xP0kzpmX6Q5Dg7azvyUZIdoi52AYkUmiCkUA1aVY+nQ=";
+    sha256 = "jzNopLndYH9dIdm30pyDaZNksHwS4i5LTZUXRmcrTp8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 5eebda9610e..6ccc31ef9b5 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.16.4";
+  version = "1.16.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "744deddf22fdbc51d1d89776c41b0f1127d2b4d212bd092718fad2c0dc7f160f";
+    sha256 = "fb8c927630b292abf5052f8f75c3eebccbdffa609566768d4dc4d9665df91e68";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index fad86b8974f..e5e1995548c 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.6";
+  version = "8.7";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-RAqTwi65YskQhsjlHxQqy50R5s8z2yriWLkrg5J/eTc=";
+    sha256 = "sha256-pBNG9lDdqvxh2hGmOcL21mkkyFD7id1mWCUSgkTG71M=";
   };
 
   patches = (substituteAll {
diff --git a/pkgs/applications/misc/lscolors/cargo.lock.patch b/pkgs/applications/misc/lscolors/cargo.lock.patch
new file mode 100644
index 00000000000..2f233a0667b
--- /dev/null
+++ b/pkgs/applications/misc/lscolors/cargo.lock.patch
@@ -0,0 +1,159 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..3528c6c
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,153 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "getrandom"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.86"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
++
++[[package]]
++name = "lscolors"
++version = "0.7.1"
++dependencies = [
++ "ansi_term",
++ "tempfile",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "remove_dir_all"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "tempfile"
++version = "3.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "rand",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi",
++]
++
++[[package]]
++name = "wasi"
++version = "0.10.2+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/applications/misc/lscolors/default.nix b/pkgs/applications/misc/lscolors/default.nix
new file mode 100644
index 00000000000..76e4792ab1c
--- /dev/null
+++ b/pkgs/applications/misc/lscolors/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "lscolors";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "sharkdp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0av3v31fvanvn59bdm9d0v9zh5lzrq0f4vqhg6xlvabkgsa8jk04";
+  };
+
+  cargoPatches = [
+    ./cargo.lock.patch
+  ];
+
+  cargoSha256 = "02k23idwy0sb4lnjrwnyah3qp22zj161ilbc13p75k0hdijfaxl5";
+
+  meta = with lib; {
+    description = "Rust library and tool to colorize paths using LS_COLORS";
+    homepage = "https://github.com/sharkdp/lscolors";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index cb8494e1c48..bacaf88e5cf 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonApplication, lib, fetchFromGitHub, fetchpatch
+{ buildPythonApplication, lib, fetchFromGitHub
 
 # build inputs
 , atk
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index b64654ad675..76009b96a33 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -30,12 +30,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.10.13";
+  version = "0.11.0";
 
   src = fetchurl {
     url =
       "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
-    sha256 = "J4kaNtB6DVivNDhrGwrRZJBvu4Bpzl0jY1ZtlAtQiZE=";
+    sha256 = "AkPx7X00kEds7B1syXJPSV1+TJlqQ7NnR6w9wSG2BRw=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix
index d52120e0fb7..745d03bb189 100644
--- a/pkgs/applications/misc/onboard/default.nix
+++ b/pkgs/applications/misc/onboard/default.nix
@@ -6,7 +6,6 @@
 , atspiSupport ? true
 , bash
 , glib
-, glibcLocales
 , dconf
 , gobject-introspection
 , gsettings-desktop-schemas
@@ -130,8 +129,7 @@ python3.pkgs.buildPythonApplication rec {
       --replace "/etc" "$out/etc"
 
     substituteInPlace  ./Onboard/LanguageSupport.py \
-      --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" \
-      --replace "/usr/bin/yelp" "${yelp}/bin/yelp"
+      --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes"
 
     substituteInPlace  ./Onboard/Indicator.py \
       --replace   "/usr/bin/yelp" "${yelp}/bin/yelp"
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index 84ba3ced8fc..ec78c43dbe0 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee, fetchpatch
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, vala, gtk3, libgee
 , poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook
 , webkitgtk, discount, json-glib }:
 
diff --git a/pkgs/applications/misc/playonlinux/0001-fix-locale.patch b/pkgs/applications/misc/playonlinux/0001-fix-locale.patch
new file mode 100644
index 00000000000..2ae1a17ca8b
--- /dev/null
+++ b/pkgs/applications/misc/playonlinux/0001-fix-locale.patch
@@ -0,0 +1,17 @@
+diff --git a/python/lib/lng.py b/python/lib/lng.py
+index a390d920..00c3527e 100755
+--- a/python/lib/lng.py
++++ b/python/lib/lng.py
+@@ -12,11 +12,7 @@ class Lang(object):
+ 
+ class iLang(object):
+     def __init__(self):
+-        if(os.environ["DEBIAN_PACKAGE"] == "TRUE"):
+-            languages = os.listdir('/usr/share/locale')
+-        else:
+-            languages = os.listdir(Variables.playonlinux_env+'/lang/locale')
+-
++        languages = os.listdir('@out@/share/playonlinux/lang/locale')
+         if(os.environ["POL_OS"] == "Mac"):
+             wxLocale = wx.Locale().FindLanguageInfo(os.environ["RLANG"])
+ 
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index d805aa0c0aa..320d771bc67 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -9,7 +9,7 @@
 , imagemagick
 , netcat-gnu
 , p7zip
-, python2
+, python3
 , unzip
 , wget
 , wine
@@ -22,6 +22,9 @@
 , jq
 , xorg
 , libGL
+, steam-run-native
+# needed for avoiding crash on file selector
+, gsettings-desktop-schemas
 }:
 
 let
@@ -54,9 +57,10 @@ let
   ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
   libs = pkgs: lib.makeLibraryPath [ xorg.libX11 libGL ];
 
-  python = python2.withPackages(ps: with ps; [
-    wxPython
+  python = python3.withPackages(ps: with ps; [
+    wxPython_4_1
     setuptools
+    natsort
   ]);
 
 in stdenv.mkDerivation {
@@ -68,8 +72,16 @@ in stdenv.mkDerivation {
     sha256 = "0n40927c8cnjackfns68zwl7h4d7dvhf7cyqdkazzwwx4k2xxvma";
   };
 
+  patches = [
+    ./0001-fix-locale.patch
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
 
+  preBuild = ''
+    makeFlagsArray+=(PYTHON="python -m py_compile")
+  '';
+
   buildInputs = [
     xorg.libX11
     libGL
@@ -77,6 +89,7 @@ in stdenv.mkDerivation {
   ];
 
   postPatch = ''
+    substituteAllInPlace python/lib/lng.py
     patchShebangs python tests/python
     sed -i "s/ %F//g" etc/PlayOnLinux.desktop
   '';
@@ -87,8 +100,16 @@ in stdenv.mkDerivation {
 
     install -D -m644 etc/PlayOnLinux.desktop $out/share/applications/playonlinux.desktop
 
-    makeWrapper $out/share/playonlinux/playonlinux $out/bin/playonlinux \
-      --prefix PATH : ${binpath}
+    makeWrapper $out/share/playonlinux/playonlinux{,-wrapper} \
+      --prefix PATH : ${binpath} \
+      --prefix XDG_DATA_DIRS : ${gsettings-desktop-schemas}/share/GConf
+    # steam-run is needed to run the downloaded wine executables
+    mkdir -p $out/bin
+    cat > $out/bin/playonlinux <<EOF
+    #!${stdenv.shell} -e
+    exec ${steam-run-native}/bin/steam-run $out/share/playonlinux/playonlinux-wrapper "\$@"
+    EOF
+    chmod a+x $out/bin/playonlinux
 
     bunzip2 $out/share/playonlinux/bin/check_dd_x86.bz2
     patchelf --set-interpreter $(cat ${ld32}) --set-rpath ${libs pkgsi686Linux} $out/share/playonlinux/bin/check_dd_x86
@@ -107,7 +128,7 @@ in stdenv.mkDerivation {
     description = "GUI for managing Windows programs under linux";
     homepage = "https://www.playonlinux.com/";
     license = licenses.gpl3;
-    maintainers = [ maintainers.a1russell ];
+    maintainers = [ maintainers.pasqui23 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix
index e1be229b087..0b97110b1dd 100644
--- a/pkgs/applications/misc/sweethome3d/default.nix
+++ b/pkgs/applications/misc/sweethome3d/default.nix
@@ -1,5 +1,20 @@
-{ lib, stdenv, fetchurl, fetchsvn, makeWrapper, makeDesktopItem, jdk, jre, ant
-, gtk3, gsettings-desktop-schemas, p7zip, libXxf86vm }:
+{ lib
+, stdenv
+, fetchurl
+, fetchsvn
+, makeWrapper
+, makeDesktopItem
+# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
+# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+, jdk8
+# it can run on the latest stable jre fine though
+, jre
+, ant
+, gtk3
+, gsettings-desktop-schemas
+, p7zip
+, libXxf86vm
+}:
 
 let
 
@@ -27,7 +42,7 @@ let
       categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
-    patchPhase = ''
+    postPatch = ''
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_awt.so
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/amd64/libnativewindow_x11.so
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_awt.so
@@ -35,16 +50,22 @@ let
     '';
 
     nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ ant jdk p7zip gtk3 gsettings-desktop-schemas ];
+    buildInputs = [ ant jdk8 p7zip gtk3 gsettings-desktop-schemas ];
 
     buildPhase = ''
+      runHook preBuild
+
       ant furniture textures help
       mkdir -p $out/share/{java,applications}
       mv "build/"*.jar $out/share/java/.
       ant
+
+      runHook postBuild
     '';
 
     installPhase = ''
+      runHook preInstall
+
       mkdir -p $out/bin
       cp install/${module}-${version}.jar $out/share/java/.
 
@@ -60,6 +81,8 @@ let
         --set MESA_GL_VERSION_OVERRIDE 2.1 \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
         --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
+
+      runHook postInstall
     '';
 
     dontStrip = true;
diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix
index c0cdc764dc3..f5dbd0510a3 100644
--- a/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/pkgs/applications/misc/sweethome3d/editors.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
-, gtk3, gsettings-desktop-schemas, sweethome3dApp }:
+{ lib
+, stdenv
+, fetchcvs
+, makeWrapper
+, makeDesktopItem
+# sweethome3d 6.4.2 does not yet build with jdk 9 and later.
+# this is fixed on trunk (7699?) but let's build with jdk8 until then.
+, jdk8
+# it can run on the latest stable jre fine though
+, jre
+, ant
+, gtk3
+, gsettings-desktop-schemas
+, sweethome3dApp }:
 
 let
 
@@ -24,15 +36,19 @@ let
     };
 
     nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ ant jre jdk gtk3 gsettings-desktop-schemas ];
+    buildInputs = [ ant jre jdk8 gtk3 gsettings-desktop-schemas ];
 
-    patchPhase = ''
+    postPatch = ''
       sed -i -e 's,../SweetHome3D,${application.src},g' build.xml
       sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml
     '';
 
     buildPhase = ''
-      ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk}/lib
+      runHook preBuild
+
+      ant -lib ${application.src}/libtest -lib ${application.src}/lib -lib ${jdk8}/lib
+
+      runHook postBuild
     '';
 
     installPhase = ''
diff --git a/pkgs/applications/misc/ticker/default.nix b/pkgs/applications/misc/ticker/default.nix
index 97b27d5ff1b..e42d48c8f04 100644
--- a/pkgs/applications/misc/ticker/default.nix
+++ b/pkgs/applications/misc/ticker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ticker";
-  version = "3.1.7";
+  version = "3.1.8";
 
   src = fetchFromGitHub {
     owner = "achannarasappa";
     repo = "ticker";
     rev = "v${version}";
-    sha256 = "sha256-OA01GYp6E0zsEwkUUtvpmvl0y/YTXChl0pwIKozB4Qg=";
+    sha256 = "sha256-U2TYUB4RHUBPoXe/te+QpXglbVcrT6SItiDrA7ODX6w=";
   };
 
   vendorSha256 = "sha256-aUBj7ZGWBeWc71y1CWm/KCw+El5TwH29S+KxyZGH1Zo=";
diff --git a/pkgs/applications/misc/tickrs/default.nix b/pkgs/applications/misc/tickrs/default.nix
index 214d2775c0d..114b1464083 100644
--- a/pkgs/applications/misc/tickrs/default.nix
+++ b/pkgs/applications/misc/tickrs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tickrs";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "tarkah";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Gxrz0RNv7sEIfl0Ac5eLVXvbbxIWIL31mDOZrgY88ps=";
+    sha256 = "sha256-PGJztoGVIjUwx4x42LdpxJQMZH60x6JWY+yTHQgjHWM=";
   };
 
-  cargoSha256 = "sha256-9UlEmc9gbZDWelOPD3jZAIkVKNk9jMq5Ljzwur1UiGs=";
+  cargoSha256 = "sha256-0NNdo28fLoqwKXBQ1fBTKPGE/zE7pnWnIjgCITsaGJc=";
 
   nativeBuildInputs = [ perl ];
 
diff --git a/pkgs/applications/networking/bee/bee-clef.nix b/pkgs/applications/networking/bee/bee-clef.nix
index a94386ea3f1..9e36f8670d4 100644
--- a/pkgs/applications/networking/bee/bee-clef.nix
+++ b/pkgs/applications/networking/bee/bee-clef.nix
@@ -1,4 +1,4 @@
-{ version ? "release", stdenv, lib, substituteAll, fetchFromGitHub, go-ethereum }:
+{ version ? "release", stdenv, lib, fetchFromGitHub, go-ethereum }:
 
 stdenv.mkDerivation rec {
   pname = "bee-clef";
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 6e772c7931d..fe996a01aa0 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -88,11 +88,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.19.88";
+  version = "1.20.110";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "jySedvm9V3O4kri1PgoqC0OsC1gvB0Nwx8leoUZnHK0=";
+    sha256 = "0xmf74qh85f2jvi90q4cw2n7cvx5p46xmdr2iznfy09hdsymxfry";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index 12adbc0a9b7..e5282d79a28 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -13,13 +13,13 @@ assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   pname = "elinks";
-  version = "0.13.5";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "rkd77";
     repo = "felinks";
     rev = "v${version}";
-    sha256 = "067l9m47j40039q8mvvnxd1amwrac3x6vv0c0svimfpvj4ammgkg";
+    sha256 = "sha256-LxJJ0yBlw9hJ/agyL9dbVe4STKdXE8rtk1mMFqe1fFI=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 4d72f210619..07a2caca85d 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "85.0.2";
+  version = "86.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ach/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ach/firefox-86.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "24a938fb96347b938db028452e5a1b9f6c63c43f1e9b7ff0bf2a43f92d1df45c";
+      sha256 = "96cf6afb631f36dd18f0d109bfc31abbff5960e7972b59e4fa51ac0c2c81f9ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/af/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/af/firefox-86.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "5799e2c1c5408da29f9922cd1a694a0ef7d4250b504dd827d5cdeeb41bc7de6e";
+      sha256 = "38d4588b8498917717ea58419a35751c6c3ae987372ee6a37590a7630eb68c35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/an/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/an/firefox-86.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "04ee06350b7cc1f1ab808e8cff3d02060effbb9fa656c2f687b7cbe9d18b9c2b";
+      sha256 = "942c9cf4dc6f5baa6c5225a15a2856bd72c7366bcb6224b8ba5a1428cfd974f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ar/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ar/firefox-86.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "a92dbd6c4253a8ded0cf4681a6c165e6809e495d1aba84d2158b80d571c1c660";
+      sha256 = "a616e3dfac2bcae832bc6538692a9d811604aadb71079641f77f9b3db105fabd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ast/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ast/firefox-86.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "eeee2c9a00ab94630f331d7f1e781ba5085415d816d403e14f356717cf5fa967";
+      sha256 = "0e026de4affddbdf9e5915818c02acb018b214cd005c5122593e86e821919016";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/az/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/az/firefox-86.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "107fab10c5ac5947676509fce31dec23e70b4cc2f1467e914157fab0555dbada";
+      sha256 = "761e129a070f017b28ce51c1f96fa95be8d98e687b44e9e97d95d18db85ad9aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/be/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/be/firefox-86.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a04273533574232e0b2c370e2d48ab2206b53b45743543fe0efeea8bd51988cc";
+      sha256 = "9e80115c8a78ab5ff3eec38e31c1ec29decba3660ebc95cb909aedf3db4390ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bg/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/bg/firefox-86.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "0b18c8862ce9c26cb63919c3bd3aa911b6179eebcbc9a38001953b49dd09ad36";
+      sha256 = "b5149b21a8ae9b08ee3abfa2fdb894582e620464af36037c43c2cd0b6667c174";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/bn/firefox-86.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "8aa13bccd6fcd9f9c91a18dae807394dc46ea32103608c829d4dd073861b95f3";
+      sha256 = "0b5ed8e2859e54ce7d64ac8b0626c69229209cfadf14e8d55225272f702a6f8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/br/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/br/firefox-86.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "121f9474e56deb5f2a606aa153c8f3c6b857f0966c9843257d22a8be01b609a6";
+      sha256 = "7fb1cdb85510bb8e41f2ce5e856a0ef93c83c430bbe64079a2e3c362bd557ab0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/bs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/bs/firefox-86.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "c4781d938cd86988edc31674a46acb0120209b101d9b563c20ec6a213d161a03";
+      sha256 = "2259ddd7f35d5a8d8830a429f0dec92da5ee101d5c42ff5d9f8ff003f76e5b8a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ca-valencia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ca-valencia/firefox-86.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "f0b0e35ae0ba98d0585c45a660c85345b71f834e61875f923713f0c05a78509d";
+      sha256 = "5214a48525eabc0ae4cda08e70ceba59b0e9fd51976d578f512b02fefbf48b8c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ca/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ca/firefox-86.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "1208d84a85694ce1327c9a8ab6cdb6aeb45b990704bbb9fef9b1edd664597fbb";
+      sha256 = "250f4bf5659a04dfb20a651899a92bccd9d24c2e9d3186bb17acc4f452b0b648";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cak/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/cak/firefox-86.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "ddbc3a5d3283994b7408fd8970023b71178c83db12ba8be54553395791bc9ace";
+      sha256 = "959c3cf7aace0b80adc6ae2bedc578b74de66adf261de7b67654e0c57e6ee2f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/cs/firefox-86.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c02faaf56a820c45bb38119c03becc53cd2ae25e93bed3ad93cc88f091b00a2d";
+      sha256 = "aaed7891e891ba8926ed5904a798e6201cbc355ba11c341546f779e0f2815abc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/cy/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/cy/firefox-86.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "1d206ea516202af87511d13cbd8482b9dcbeca2447ac8b684937668afac68439";
+      sha256 = "064c2419e8fd43e350e055d7bcd4ae1689c4f7667b51996be9037bc4d1c529a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/da/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/da/firefox-86.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "68976d8cd0ce910c6b8155a68a955f4dfd182fe7625ea3386f083fff27f216a9";
+      sha256 = "484f1bdd24689a7a7dd7a8b4556b2f32aeb50509aa3f9d645e151dbfaab9e71b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/de/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/de/firefox-86.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "6510c8105420027f1632da15060d332f9ec93353c03111a592477bf45dae5925";
+      sha256 = "12670011be25e5420a5721e23d1e37592e4d1ca9a2efac85db02545398454e65";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/dsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/dsb/firefox-86.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "736a478e15f11126ad5dbdca66cd8938d72602041ff0c1f5f78101d4f62b1aa3";
+      sha256 = "2851664d7d9dd90f8e444e13b5c9f20bd6271b6e77ae857db1e3aa55429b8b83";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/el/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/el/firefox-86.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d0c2f1c156d239c2c410d15216a8d331cde8cdb7d54bdf40aa6519f582b93bbf";
+      sha256 = "ec24c6634f20da95f820623c32d92f492f2b939280a49e327a1f465b0046632f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-CA/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/en-CA/firefox-86.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "0b68ac180a828a94743349cb53f64224d0013de610a5c9cffed9a9242caadab1";
+      sha256 = "6c5a19ac4ac5f174569483ee5c1f053e692efc189edfca7e78f9428f05454338";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-GB/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/en-GB/firefox-86.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "978397ce347115b87ac24c174ac4363bd345ef8471d25bfc4a639722ed7098e1";
+      sha256 = "919d6e6c731d53ade97bbb330cd2e425f70565c330233a86ffe9295ff3692001";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/en-US/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/en-US/firefox-86.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "98763f4b1526811967d71e1bbb9552a9a3fd877321ecb497083b9e313b528c31";
+      sha256 = "c643dd519fe8b0b6d2d2241b5c241aa1b43ece397f49268865b4d1888c19173e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/eo/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/eo/firefox-86.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "a44c9b60e0e8342dcff31ab0bc2776680b9a94bea51ef237fc4b1f013fea6ab6";
+      sha256 = "d20b007ba86bdfdd7aa4bdaae08b283107a4464d88a4a9fc34bd4c95781f48d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-AR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/es-AR/firefox-86.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3229e32a2db2f5a7638a734c538fbaf1b83f9dd203bb67008460783239da04c8";
+      sha256 = "3d4ed05801d31a92c072384e660d7b874be835edd3b6b37741b71bec32a0fa6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-CL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/es-CL/firefox-86.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "574c90358de584b2bf4ec874a8f5a22fd777ceeca92c2894fe978a793faea7c2";
+      sha256 = "8ec51d79baefe2808024c33105fd4c1a8e4f5061b72530a4c01bc8a23d6b6cd5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-ES/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/es-ES/firefox-86.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1e92995900cfdbb94d673d5efb02e84321dc8917edab1ce6c86b98f860f483a8";
+      sha256 = "38781952508f86d9b4aa7a0c4fae927494e207970e54ba1070943008283c2e23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/es-MX/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/es-MX/firefox-86.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "56de604e9b32c7552825d87c0c2802bff66d72faad5d173fc71388118a47c046";
+      sha256 = "29817ccf3aad1e38f195f18ab628bca8f9bc4dcd931919cdd9d5d22c6461ce87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/et/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/et/firefox-86.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "53297a8e1f8c5d3ac05d44c3aac1f886d7065cec6666548c3a571ec06702eb63";
+      sha256 = "d4ddde9103e9355a91186e0343315f99bf0eb53b2502abb80b8fcb1056ea82e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/eu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/eu/firefox-86.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3b392831ee487279ffbc2156421243990a2abe94cdcf233c375f7949c28571a1";
+      sha256 = "85744b3d7e3bcd5de92ca4ec5a0ade8421689dda5a3c53e361656f3de3178a91";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fa/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/fa/firefox-86.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "bdaf06e327bc17ff05d82e27d85d4ff747b8af58e8a0b95599d4af0068c6948c";
+      sha256 = "60e6ebb40f1e11a61ad63d2543acd7d83cef58c0fd4dc22f1c553749a36e3fb8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ff/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ff/firefox-86.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "8e029e2f755f107bbdaf4833332f94b062284529230ef148ec404d9954da5b83";
+      sha256 = "878d7155fe73ff6585e8566399416361a39080cb54afd61448e1bd0e191046a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/fi/firefox-86.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b1cf30bbd4046c3f6b200b876bfa022b34771d1aebb48a56b35817d5d0f46d18";
+      sha256 = "d02f24944f5bbd57273e05aa4fe701b375ad8d8905d0070ec9396a55d104203d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/fr/firefox-86.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "95f5265e9e7be13a8d50ff4e0c45f1247531fc78076081cf7045ffcf5e366846";
+      sha256 = "ac6497f8a4bfa4e37798840bf4dc9b84463bf095074d2ba3c931e89a402a3fc8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/fy-NL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/fy-NL/firefox-86.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "f22756db0256f2d7b3ccb15c15f1006834e8a53251ba8a315f0d72365d7140e3";
+      sha256 = "456ff8a1bed8769cd9fc05b29ed23edd29c48514dda4e73ac8e8663593cc3b4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ga-IE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ga-IE/firefox-86.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "7c67dc57553eca0c59293cff6f3097e56719d3c6b67d6599ea56ef799992e566";
+      sha256 = "b0778c1217f9ee6e631c62ef024991212cb679a43394e07401a5f61ca2b88459";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gd/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/gd/firefox-86.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "a1a4ceefc1f83454280e70316fcc9d0c2bb635a77596bafeed2f06d3cb133340";
+      sha256 = "37eba79d0db2bf84faa2d89efa0c5b9b34f7fc732636f4b436a3e118792ba610";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/gl/firefox-86.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "02afd3809826d41a75f6554cc7f49eb65725df2721f16484907eb0ad3cb172c4";
+      sha256 = "ef06e70653f712c4ab594a00c4d571ba098db740ff508cf78e08e859123096dc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/gn/firefox-86.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "dc4de709435a0015d3c4fcb615cf8ed96814b2f6038c37ee5045e632891f8719";
+      sha256 = "c7bbe33c8f839b24ee6928d74d5b0cff18918ab5f2a55e4b3bc1319049b19e4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/gu-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/gu-IN/firefox-86.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "f9a66be242916abf1576397204c8fd0c88574fcc68fb06480d82a6d7008f1f67";
+      sha256 = "71ceee81509cb6d505b836dd494eb9dba73857aa2c976ec1aab2fa57a50f1519";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/he/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/he/firefox-86.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8739ec72ada89c64be8ebf692734a80f7a825c7201b4f7d43c3b0b8e18f8edba";
+      sha256 = "cca354d947d83c616035fdd64019b50d1bb86c3d01e05090eae2d07953ae566b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hi-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/hi-IN/firefox-86.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "db9f6f97951291d86f8406d919377ef1121195665734edcb4ae731ebb15efa12";
+      sha256 = "a151d3a3d85f0cf96837f51b2a0df9a0a9652148dbcb53733025e15686451669";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/hr/firefox-86.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "b8fe4cf3e7c9d30c377504d58ae11c612cf74f0a02c3b25d4efe3ed6ee7365f6";
+      sha256 = "00e3301bef430e243c6516d5c94e0b5fe6e27ca58fd0192955423956395fb2d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/hsb/firefox-86.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "73207d15a6146e4bfe5b2324421993382a41f8648c0fe5e4f2ef72ed5182fc74";
+      sha256 = "34c2666668499c8034e732565b244fc5b0cc7b0f544296be1e86942aa62b9167";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/hu/firefox-86.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "d57ac494fa650d1f0d46f9109952c1493ed476dcf26fbe843c3e9c5a722eac3a";
+      sha256 = "d33f5467d9be5a2c6317a10fbd5285c4db7ed4191ceddc317d4ec923bd6ef7df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/hy-AM/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/hy-AM/firefox-86.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "58ea459134ccddc63156161300f075cb747125a16aeeb8f616662783b2a8be73";
+      sha256 = "a008343614e5fa43d8ce90ac5f2afc0bec98419d28efc191b836ce835b6f48a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ia/firefox-86.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "d0e4ab532d39eb094de62ae41fb40055e8dc20f2b69856f0ff28633f3c2a5139";
+      sha256 = "9140874f06ed6e135ae70fa40600b4e1e570b6dc6901191658870916f73d1c17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/id/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/id/firefox-86.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "f60c707585e197263fd64a85a120cd4c52da17194d54a2fc538bdface62b1c08";
+      sha256 = "c1dea9043a7f06708498acfda90a7b166b1f7bf839bf86dc2fbb90cf7a00269f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/is/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/is/firefox-86.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "f0d2a9052ebefee0f7774e47fe13de41ba8c2b7cba5ca784d6d218fbb2549a75";
+      sha256 = "50a804f9b7dd594b8c449ce6dd137b5f2bce41ab29baa35f6a14977a5c7af486";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/it/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/it/firefox-86.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "4946d59a1b5fe36ddeacb371efe2072f66623d82eb4f26cf0fe6b96e8dd54203";
+      sha256 = "3ea5e01722a7a03a5dc498977410fd2cde90352b026489669bcb7ebaa571ffdf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ja/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ja/firefox-86.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "2a9f7705b5ef1258f925a6e48ccd99243003cb429bef9bba4ad56dfbd294ce11";
+      sha256 = "efac929a1ace0484b5bce056bbd3d3ff4f26f897d4b1739f128d1dfd91c3c375";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ka/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ka/firefox-86.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "443b974d1631602734402a2a6dedaec8a7cc017e1abbb768ceb5e767978c36af";
+      sha256 = "95261b88327b5b20739d8adb2a99bb0de5d1311099e2d3fc0999405fbc918ae6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kab/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/kab/firefox-86.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "8f8283696206450cf21a4c88384ca915030a1dd7df9e93911b620dc9375e5db6";
+      sha256 = "f7b4f440f27ab9141b24f2673e4b850193744d1fc03451c2134a6890b4884f37";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/kk/firefox-86.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c9d78fdd7ac9d79dbb713a7130baceb4f19aca6bf8e7218950190ff95d921b6d";
+      sha256 = "652aeb8d66ffb884983a043ff1d2ba10ff3a03aafe8cd55217a8f6a8068a3e59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/km/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/km/firefox-86.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "1fb2612268f53fe300955daadae60be238070dae35555707027a8a62ce4ec3f7";
+      sha256 = "39deb82ca935780959e4a0f71d85cee3b90c6228237a508b239ad2a1f5a35a07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/kn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/kn/firefox-86.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "86208426d917883c2eb6ea9248feead33d4115093bddf5f1c690ed176adb9c84";
+      sha256 = "886370871c27c6637a74e4d8ced9ef2a9ec5062a8aae45fad5fea1dc358e38f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ko/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ko/firefox-86.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "b8057874e199124ebf283ab67e184dd2fed016b1bcb31a2f220e2e5d38d4f438";
+      sha256 = "9acea882760a961e228344c2cac9dfdb8d40c6c4c874744a4f2fffc356f6499c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lij/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/lij/firefox-86.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "2e5bdea7a0f68efb0e6bdbe64a1df287644e14ce5fbb896040f3315c6412fc43";
+      sha256 = "fd76e82cda32813d43d80ae4acaed5610882162d68e98b4ae47dd1ddc8487d82";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lt/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/lt/firefox-86.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e1f79eba23036cdee87b9a5a2f48284bc006a191644d26e50a7ec61cb26d26c4";
+      sha256 = "afcc203f0d080560364277e7cca0f4080c74011dfc0fe07c751124e341e5b729";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/lv/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/lv/firefox-86.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "4d8f26a3b6211799a87dbbab6692f4a00c81b1d70c6af990a684b1b65c255482";
+      sha256 = "1b8a5cc4941d669f12593dc078d6658751609bd094a3704e9a9949341413ba9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/mk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/mk/firefox-86.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "3e5741eee9b27aa91827ef19e9b2b0200719120d07dccd37f5752ba1b746e29b";
+      sha256 = "72d374b828e3316f119d592bde6ebfe91ac4907d63cde43f6391d4be81119bc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/mr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/mr/firefox-86.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "247a11da64a28084d68d450cfa92ba66868891796d60a09ff9bf28d2af347a05";
+      sha256 = "17a2dec82a1d89fe74e71f924a21bb175cdb89d801ba50e5f0f0b4625fdabc1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ms/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ms/firefox-86.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "79e1823ce9d454d70660464776f1d492f67c3489f7e9ed20fef5a7331def0cf2";
+      sha256 = "9af2d0b5f81d573c8fed4ff54446b2f3a77080ccec5138b1d0e707fb1c37e164";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/my/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/my/firefox-86.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "ebe50de263127be29aecc611c2e4b5c60068245fe64ee0a72beb2680253f85dc";
+      sha256 = "3a2815eed7a1288991c769045614cc50ec3fed2810ff143652092cd32aef5e1b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nb-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/nb-NO/firefox-86.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "7e5f1266acf220fa8db165c3cc3ed2bf287ca809e3dce9b74e6284a8a3bd9e63";
+      sha256 = "a8255d1dffb5dcba012a15d5b0f62b9e6e4e60720ae6dc139c23f77aaf6ea99e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ne-NP/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ne-NP/firefox-86.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "0b7fecf7497937709d83e002951ec4425b080fe4a6f6cc967a3eab65db93a212";
+      sha256 = "e1c563748ae230a44939d27d7fa246e63ad49d242df236082af2eb0c38af8046";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/nl/firefox-86.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "7125adcabd21b4edb2828b295713b3a35cd174abea748d5d4f8456c3e18e5707";
+      sha256 = "56ab4fedc5c3a71b91693d33eb70f79ba3f0095dda66eae44e3e15f885491d5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/nn-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/nn-NO/firefox-86.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "560d195e6b472228403b2fd5651c7a61e84491e788faafb77af511e3c74e7fb5";
+      sha256 = "216e2d4434c66fd4361114467ed5e4635342ed53b74eae287d1d69ba63ac85d6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/oc/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/oc/firefox-86.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "ae15b401c284e5e68819e68b0e9e76ca909ff167f2d15b3d77b546708a7e7369";
+      sha256 = "0f6822824131d1709c09de64643a9f6e3b03e30741d079f66229efdfb5096e21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pa-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/pa-IN/firefox-86.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "32d9ef570e718ef79b004fcbb9a7e212d06e8171c0056f90709423495c3c7bdd";
+      sha256 = "9a15f3ea177314500e72ef123ed9dc36bfb9e10b92e5ab20cdaa6e7e1fa3367f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/pl/firefox-86.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "2201fb7b8edb8ce2b3446a4accf3f0ace2b1a18a7690a20b6e64ecb5ee1a61e2";
+      sha256 = "18d19ed1597d3862d08d6daf52dd1bfb8f21c005f7cc44ce4d2e8177b4509aee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pt-BR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/pt-BR/firefox-86.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "f80d4d45078bb3884d8302913ac738f33cd984709e95e279d341284b9c29749c";
+      sha256 = "287c3c117532b23e45d726d4541ee726056139e976bf43210f35b529834c3884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/pt-PT/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/pt-PT/firefox-86.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "aba0a4166f0b815e1bc96c4faca818e82adc4b4d1bb8d26cd1f086de681eb56b";
+      sha256 = "26915b7725a325db052cbc165454c34f19e7a1346aa400b1306234707bccdf9b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/rm/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/rm/firefox-86.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "450640a39b0773a255c97d884d51f7dd0de04da523e28dcfb9680e750b68e965";
+      sha256 = "4d5c14e2607efc653f5cae75290332229286b5ee606da635871dc04e20495fc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ro/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ro/firefox-86.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "eb20d1a28f510ca98baf24c10feb186d21900690d9f0c8be5c180b72c9d3408d";
+      sha256 = "a41bab63866e22712861a825aae272e3468470783f92c23117e1c116b9d66771";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ru/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ru/firefox-86.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "7b0c8c5b5cdbb66b36366289f7b65263abb19c174ac89cbb2970a5742eec2d66";
+      sha256 = "edec67a8079f55c5f22b6928bf1d55a2e1d31aff931c9e41e503ff1b7acf2ecf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/si/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/si/firefox-86.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "1f2e5c35d9766cb46c9c5ce5ff0f6c95ca12d0c14d12cc29d098562b8f35e9b1";
+      sha256 = "0357b913e6528214f30ff5ffd4a0f1c0e26bf079d3afdc166a82ee24e8c099ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/sk/firefox-86.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "528d3270d9bd722545fb57ab09059e0f43c0f605e479c0869cbe0757d1f38d8e";
+      sha256 = "5a38f953d93cf4cb8b4e2dbb0206fc0a9fa3262c55d91fa4cfc3a8605098403e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/sl/firefox-86.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "d4948a03a97424c7b499e339a509b2ebba9b716c84e4713b140576bd787178ca";
+      sha256 = "0c2c41f6d7c3f72e56cb84c921207a606f959993ec6a3cc5619bbb894ce6ef8a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/son/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/son/firefox-86.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "34a841faec9720c9ec32d6e00ca775d266f47ca3b660876cbd4a1d7c9d7b87af";
+      sha256 = "cfdedeaacf244b3bc63343f76ed817a165a15b2a727f04327581cd373e76ac86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sq/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/sq/firefox-86.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "aa5688e676bbb8ae87f089d78d4d6cb2a9c3393bf252a7c277ab6a8c97a80951";
+      sha256 = "daac917a1e105b7871a0361db364558251b931898e08c36515c64269c760d6b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/sr/firefox-86.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "882263a340ef6b11b35e91262620218078c87b193f3d0ca8eb3a9365dfb98d60";
+      sha256 = "c1993cabde0e7df92e45101bd62cd14a86d023763c48c18a7e00018dcfea282f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/sv-SE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/sv-SE/firefox-86.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "5b8baf5ee22e5da51040afb4cbdb4a6f165aecb117d181561c97903a0e63b74d";
+      sha256 = "eb04be61ab3d029437f57dedbf1b66d0bfc6c0a9b29e41fe4fb7aec7b5ab47b0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ta/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ta/firefox-86.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "14a00497f7a4f27680e95126b4584a13d3376b8d4f39fe0a0de9a7356bd8dca2";
+      sha256 = "fbd105183afb74dc7887dfe5cc0e518e96cb8bf79c53fc502d154bbaededacd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/te/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/te/firefox-86.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "0de38fdd91056121d68734c76b799534921e8adf37566465a72b4fce9d5af693";
+      sha256 = "e049b79ce8a81749caa83d6b42ae710414fe08ae2f28a2c1af7c7d47f83b24e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/th/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/th/firefox-86.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "80aff43b79ab4343d6b9bb2a5eebada3ef376313fe47cb2d1d7ad51f2f2a57ad";
+      sha256 = "2b3ca062e1e53d5fca726e5c5a9eb7a3a639e4f6e7f5b455bf33e305eda475cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/tl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/tl/firefox-86.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "acdcbb66a68421030634bf1ea1c265ff38e84dbe010aa41058da64ce966d1e57";
+      sha256 = "0fce4ea1fc379ab87c0f565c12f8ee16205108048d7fe89d7850802653247c16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/tr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/tr/firefox-86.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "a3365e32fb78743ae45f89ae1740a7c51cd11e927454cc836bac4e9f62cd9abe";
+      sha256 = "e0a1c0a5d31225fb6af2b5b2c4d7386dc10d9c5c56081c1282615cc8d5da51ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/trs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/trs/firefox-86.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "a9da73cdade15ce508678c8347c6bf03c2d93578cfd095e0c586682efba7f2fd";
+      sha256 = "129d9b5d54cc807664a27fba1fd4f003430bdccf0385cbb53ea77517ce30879f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/uk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/uk/firefox-86.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "05ebea023813ea0755e105f6f1451ee0d85bba5e52660230f25487bb9d997bd0";
+      sha256 = "d50f3c3f21af6c805bc8c86f886af9f1be2b2d5cb5ad061a000633fa9b7e2641";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/ur/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/ur/firefox-86.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "ee4cda80858fc6ab33996a546be8de565a5d4d969ce26d0d1aa70ba7a923e496";
+      sha256 = "ac9240e7896f695f48526ad275d887ddef7eb98aa3dd94800a1b4da081110876";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/uz/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/uz/firefox-86.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "7be525a02c9bbd4beee8678eb8488f50337aaf16883ebd41f5b2f67586b4e57d";
+      sha256 = "94bd2d3f2f95e32381f6b945f4b1149f355dffcc27ec829fd0849ec4895a6da7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/vi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/vi/firefox-86.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "cc6a9d73810294f3261aaf26d4678c4a49b88375f48321384443f027a5a0b5ba";
+      sha256 = "e7c8034074e6d1f8f6987321e24dffdbe8acfa11d6784b8c8d033e690a5ed145";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/xh/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/xh/firefox-86.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "5eee0a8b232448992ab37546d698d4f212df53c562f29261023e64cf5762138c";
+      sha256 = "b8f0f3ee8aeeec6fdac5ee15cf688735809994c71cbe4f01b238a3cc1386006a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/zh-CN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/zh-CN/firefox-86.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "94ac5a87b53fc8aa6769a4f6faf56d0089965514d8e811ca94ce2cd996e536e2";
+      sha256 = "47b4f3411306839882f5755b3eb2038f9c7bfd1c2ae72927db54c4816c97217d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-x86_64/zh-TW/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-x86_64/zh-TW/firefox-86.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "025c04100a427e231db031aa43694a51191ded2c31f22913bcd694c734bd516d";
+      sha256 = "5fb11410c30a813fd0db58c928fb07c488405776308eacf64b238daa0fbffbc1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ach/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ach/firefox-86.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "9f770cc6655b31ee907f949e0ba2f197d0d6fb3ae33ec1fcab311ffb7b109fb2";
+      sha256 = "06d2dbe0f799d22e98b715528b54566b167a22db4d16d3ad60d84a6e6a8b9e5e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/af/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/af/firefox-86.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "7ecd58201a5f3eb6fce474bdcbb0f672c8f492f30de3ec4f8f3cc48c2c967313";
+      sha256 = "536fdd221aa5f872cc8028f39fcfa7b9eecfe09a215da3d50fbfa9e256a1394d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/an/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/an/firefox-86.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "362d8bf290f67ea40c93fa058813c073a51911940b916595c0a8f1599ef46713";
+      sha256 = "ba6eff6a355361862fc78879264965f5f1c0adebefe934d1b6d51994023d3bc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ar/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ar/firefox-86.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "6b66c3f25eeea055e42a74ce6c327f09e8fe4f18acb1f947deee351d2cdda1da";
+      sha256 = "0b465097dcfd4f2a50eba984b0bb30fedceb1a409e2a98f22c45709cdd1117ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ast/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ast/firefox-86.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "0efef2406fe4d8093a1ce6bb56d1a54eaef5bb429b6fa560fff7373a7435cb3d";
+      sha256 = "614241f31f38a71782faf76f0a31cd81d2520523ff85d8a5dfee32a77e48829b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/az/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/az/firefox-86.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "bb0dc33a53a2f871b9743f17a36f50fabed87c137521404675e69df69f121350";
+      sha256 = "4fd682f83c0eee3031c6e452d1c7cde3e54d0e52bb8316b0e2224360665d4fc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/be/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/be/firefox-86.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "7459818c037c45ff2969998b8d3f481eb8384802e5444e2f3c58340f316aec14";
+      sha256 = "c15417c21f42212337bd921c869b05124a720c6d8730e4a16d30ddd9c10aca97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bg/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/bg/firefox-86.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "55f10b4a5cc1d06dcb81aca68c59a0aa64d7934e01c3f5f3dbcc27dd7497e3a5";
+      sha256 = "fda51760d2dfa07d559673605120a34706f8a6546dc4e673dab55b71cbc501ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/bn/firefox-86.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "6491efbf19bdf11b877d04dc22707864c07e9b52452408cf386bcb7bda3cf840";
+      sha256 = "f61419c6dd7b20cbdc48cb0faf51cc831fa90f37a721a162bf32753d85a40aff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/br/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/br/firefox-86.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "4ae74e5843edbb01d35b7564b1e998f58fc1c50d849fca9a9e97e540abe6f140";
+      sha256 = "7d60c5f6be2270e9b40612dfb1072ab5d29bd02d070f463f1df915f8d13873d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/bs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/bs/firefox-86.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "c796121189e7bcf5ec5a90218db35fb34393d4e70ab7100567b3f7aa43daaea4";
+      sha256 = "4707568c61df2d2050e3f1c18d3a2dee1c5bcfd091f32bd615f2e75ed06949fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ca-valencia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ca-valencia/firefox-86.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "a2097281cb1d5191992399686c26754a57d0a3bf241961374e335c225c4f7324";
+      sha256 = "fe52cf8f5f531143ef28e728753610b442443de53f34a4a8d6318d5124a10caf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ca/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ca/firefox-86.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "4135f8421b6594a468dad1057d2684cc8c5e3fee1b095653d42c86c6b4b62ab2";
+      sha256 = "8e6baa8ac94878448f65598042d47b9789352fba55d4e4f91cbe319f9676780e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cak/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/cak/firefox-86.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "93799eaee71f6e1914c9161d075163bbc7c42d85b196301eb6891bb7c3debba6";
+      sha256 = "006a887bfaea07c40ee0f67ebccb1aa538f56e28f625cf2b085242c26ebe7bf0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/cs/firefox-86.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "25678ecf83437174adca71c682ff36145b0f68e45cdaec515fda671907c21133";
+      sha256 = "27f1c5634e101d3681885a8d2d572b73f8c9db2215e4836a6cd71fbcd0a5b8dc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/cy/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/cy/firefox-86.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "85b571e0fe4f0bdedb8b433f8363a7649a1c5fdfeba40b35f069ef1518a28600";
+      sha256 = "9e56e8f88baae2a4c99ae12041ed9c766dedc99b7ffd75bffbba92a7c19d98b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/da/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/da/firefox-86.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d998daa0d89d7d4a632c576f9d81d5fe7af3c0e54332968d593d88e5f81fa246";
+      sha256 = "eb317f12d74ac8b636c87dfe9c1cb0ce267a15ffeedb79956e1c15e971d1b7e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/de/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/de/firefox-86.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "a84adef78975397d45941ced4b17abfacc2a26a0b758336c99eb174b33f51c89";
+      sha256 = "8a736a3a9c257f2b4509e3ec2f74259f655369159981cfedf8468de9cb1fb22a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/dsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/dsb/firefox-86.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "6647771748299fe56d9f023e612de6c3dfcd1b711cdcde74ea39bafb957deb5c";
+      sha256 = "a8fbd4dd6d1172f67744e9283efb6cb644421cb07e3568cae0d3c68c479d653b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/el/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/el/firefox-86.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "73a7a168b65362901a4b198200e2a5167244e886131203543bcf83f2998261cc";
+      sha256 = "59baec30ea1d8e30982f52279003b6e1be0148c02f38fdf283325c53ad900ee5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-CA/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/en-CA/firefox-86.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d47e5707ab2ea2e369adffaaa49c52f461d3c01b6b28b31b0876bc5284d2de66";
+      sha256 = "a4e0ea60acf339a61c19272170d2efdb4f519325bf2f71bcbf82af70ca304af0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-GB/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/en-GB/firefox-86.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "6a50517b8ecd2fdbb897dca8de5a948214180fcb25ba3654faee7bb563d049d9";
+      sha256 = "6c82da02a7560977faad1ca3d4c3973d08583fc0ce75e1de6e5aee2c9d372b38";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/en-US/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/en-US/firefox-86.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "83ace0384a14e383e65716ef9305d72e39832b855ebecf2035e6267b4c9a97a5";
+      sha256 = "eeec3b446c30c65d4af72d04d58c6d5ddb04c13e871a5351921a737f7e1cf234";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/eo/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/eo/firefox-86.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "2e8b25943115edae1dda4265aa3fd1edd8683318e47aa3b11f9e2f3d6f89a372";
+      sha256 = "4cbb1144cadfd901082829f8e67e311c51df96ecd08aa2082772421d6445f2fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-AR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/es-AR/firefox-86.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "559b0de8d0d846f58e15675e31e0db57ba00ad2b98d3a042c1d6d25a9727e1a0";
+      sha256 = "c875473caefc7e18a4f7a0a3e7d44ce659a2271fc1b21d435a70c921092b8af4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-CL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/es-CL/firefox-86.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "3297f38424fc6cdf2ddefa72732f977cb1ba1b309dbd3d845b63a038d748359c";
+      sha256 = "d1bf9c2a1df028b5d6eca5b41c975afc6378701c6f33d888b46511da5ce5e498";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-ES/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/es-ES/firefox-86.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "614e69e978f0e814b54150a013872081d6365d9e5bb03ee1147c5310d6315dff";
+      sha256 = "5ee1967bc61259869441f61061fec2f24ee3a4179c64b245768387e94acafdce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/es-MX/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/es-MX/firefox-86.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "765d1ca2685a462f173d7ba1863a2263008cba71738548dcdab83f6c010b7dc9";
+      sha256 = "6b4669581f26a18fbd0bda8d605b9d22b3aa98eb193ea81f7ebce1db4d39a263";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/et/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/et/firefox-86.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "1465b6447bd476f98060321562ec0ab47b117f1271dc97f9924da573c77b5a3d";
+      sha256 = "0c41ec2c1df4cbd295d349a7b6ad7a7e974662319d4a1d458e9f6bd31c4830c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/eu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/eu/firefox-86.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "4f25ccef829ad465d62676aec9c6daff9e5910cdb5447c0d9b5befee89b7e4f7";
+      sha256 = "e7bb380e013f5cf35edba5b698a5e3fafd7af63593c663e0029e2754f6854b4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fa/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/fa/firefox-86.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "c2bed62b36d648133edd1541799b231dbfb1c0c5fb6213ac28c3abc0a38ee66d";
+      sha256 = "d2601f3b84b31d9852a3f2ec35ae8b43f8640da18976f5f4c8a77cf7ad360a22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ff/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ff/firefox-86.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "527591e25cd83c6ba7fe443dd40ad6963dd1b7f69a693e76cd1e18a2bf74c082";
+      sha256 = "a13ee0463fc23cff51f88072d527a6b758fd313276cc7e5f3c8a0c4c8d5f5404";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/fi/firefox-86.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "3c89fb2c42b854fa800c47e5c91d19defe56be5f6474c500bab309eb84df0a74";
+      sha256 = "76a153c9e398eb259c69b30d15782b7d7a9ebd156283f1034c20182cd72e13f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/fr/firefox-86.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "a7b033c9df0e11abb6dae08f62dbfb34f740fb9d849e0bd8a027ecf0461ff5ac";
+      sha256 = "6f5d6e07251f75d6355f52558f2734d2788bb87e1e53ccfb800e03173094f765";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/fy-NL/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/fy-NL/firefox-86.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d162a3c113182178a7de0c5f3dab907badf9625ab50e8a922ceb4c34c4616c31";
+      sha256 = "785a30a785e55158c7251e623683350ed4840bb4b6f002d34cdee82d91b33d10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ga-IE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ga-IE/firefox-86.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "637d65856d46474d51cff1da13b9b1e74984cb646cc5a6a643fcbc7fc1ec37fe";
+      sha256 = "f32f8a0e5f0b5fd2a1dd147b32880605186a4b9435e39a53fc87f42eb8706979";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gd/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/gd/firefox-86.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "aab2f06d6ed6108fe48350ce0275d3d244f175e6c2427f54b403d6bd6ddc18cd";
+      sha256 = "2893dd13353b3504a00e02f65f0b2a0a72dd43771148d45cca271aa752a0c520";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/gl/firefox-86.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "a5945bf732fc6e3edddb0e7bb9067c591f4fc347f56a35c8622311706d8c135b";
+      sha256 = "b5bcf0eff53f6bda0e394be3e483c3f314d962a919473492a7d1005b6976b861";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/gn/firefox-86.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "6036a369187f5e30322d140e1add09cc0a51e5d092693a5acb65176c872bf53b";
+      sha256 = "c979d766174b2e4df72de6a375084b509e879f11a13c1972c97b5ba0accb67d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/gu-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/gu-IN/firefox-86.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "2b6d3c13a44b1234f591536c8f7f3cf5d1b56af53f366150e0565a36d4fa678e";
+      sha256 = "0e053f93d56a8fd9c07bfef4e93f1f338f951f519be669f5ff18157ca4216025";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/he/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/he/firefox-86.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "c3d01e14f24de5635a9c0d3c7625fcb9b84129ce9505d2601390f2d40fff5a3a";
+      sha256 = "05435889024f622f69d82a0007c19b50b1842f2cfa558748b39859a94a7addaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hi-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/hi-IN/firefox-86.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "23f1dd3a9603d797abf6a1411c7b6e44d4fb2dc7b26294670ce4c63cb859e42f";
+      sha256 = "7fb87408064c024305295c38938c42b34a0c627b177cacb00ed9e79a0ff974c8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/hr/firefox-86.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "e30d8a599b28b05a3f83692dbadeb9185829b1a87c84ab5449f142ad1a7a8a44";
+      sha256 = "924141a867793aa4fb3d2b87b75c1d60cc39bb3a3591eaaf6ee3381fcf28fcc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hsb/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/hsb/firefox-86.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "1a6cb70573e9e0356e18a18d1a0a4d2f7188549c19cbed7e28d3b801915c22ca";
+      sha256 = "7ce0f09c144462f9c94dc6805165543d12afbf0e44e327dae4554fecf272601e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hu/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/hu/firefox-86.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "c2cc048b05e197e028606535fdeb62a205c037eb5823560f187ec4152be41d97";
+      sha256 = "8997e6d5620e0f565939cd8f127c4e86da0c46828c66fab7333073c3cbb8054e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/hy-AM/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/hy-AM/firefox-86.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "a4b6b0d0f05ce86d13dbf08448724106278891cb79387e29f9ba3874c1aa6ec7";
+      sha256 = "aeff6c4b8c7d164b63bf22808ea234236f893e6da2b3d9142f95d89e9ec7178e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ia/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ia/firefox-86.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "f7d761ea9ee5d6037886a9aa8eb93747ae9f943957a296cdcca0dbbb0e7a2b38";
+      sha256 = "0590e0469ac2e562325d786dcb68e2ca2111aa8ae1ff3717ef8db2259e6ec149";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/id/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/id/firefox-86.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "1599cd0ea460ee1280753bea5d5c84419506f72f8d87818114665ced3237407f";
+      sha256 = "ef8dc62e52df3e6b1d37aea5f9b9a214a26e51ef9fd378f56ac8b2245de54613";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/is/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/is/firefox-86.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "ec9b790cc55ed72fcd79afb6502db207906f89aff4053d62efa12a37bbe85b93";
+      sha256 = "aeabfd51aa160ba259850b7fac88829f81bcc0dd8ccc9168c7add07ce0d4efc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/it/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/it/firefox-86.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "97c625e01e9a565ef10079ae980cd2ee45761f428594158f6c05fb4a3f1142c9";
+      sha256 = "c6069c0a86344af00150be03cb0f2c26984b713ad386352f5a10b39b79b13cac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ja/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ja/firefox-86.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "625dc84ed56bb46032eae0087ae96d17127594efd99e4aeea410d4c8bef93819";
+      sha256 = "9be7b40e66723583b17657ea805919955dda703957ba21d541baa22390a1befe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ka/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ka/firefox-86.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "45a00fe06fc302d59744b8c9dfc9d7a4e27ed4ac3727848f52597208020ce16a";
+      sha256 = "2e8a57b44b3bec627793f46df84f7f25ab0aedd0f8b1f08202c75cc58d7e14c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kab/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/kab/firefox-86.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "32b8ce9f195ecc610e3327402953609eb8621cbe116e22bba76131c9dd1b9738";
+      sha256 = "5777a6b5eb3055ab2c93f98bc597343f13bff7d0a846809d24c97e9ba1a0ca7d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/kk/firefox-86.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "651f3c7314b919af1348771ef7c5ea986fe3d9d7e42e056172fa55d675e17e3e";
+      sha256 = "84a8fbf2a859d81aae2aae6bc95f12a8e2982cff77090072a01d28daccbf21f9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/km/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/km/firefox-86.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "1a62be10235639a7c2256521838fee8637ebd575cee39c5744a65ef057afe1b8";
+      sha256 = "55982f15b467ddea6203fbcf98081496d0e313d3cd281f807d2bb75b4e79077e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/kn/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/kn/firefox-86.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "1cdb648165896ccda8da7ef6862605723089cbd8e3c9e6b8692ffeb2d28f9593";
+      sha256 = "18aedab4f324448da412ddebd1da9b01be51edcd5052c9455672a763ae1f673b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ko/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ko/firefox-86.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "70781041791a7c64e518de27955cf2b57ce3d3ee7afad36737f62783b5255d64";
+      sha256 = "5baa361fb97a76d12bfbf5b87c092cbe8079d34dd08842dae9def133383f587a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lij/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/lij/firefox-86.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "ea44fdf528da53d7f2ba9d447c70079873f802647ee708f6580447af6adc1834";
+      sha256 = "35bf3aeba596135231b1ddff2e2550ab2a3e0c5bc796d7b628c5f78ac46ce40f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lt/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/lt/firefox-86.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ffca3845c97f4d87e0d601c483e2bde8fa8f7f59b44ee85259fc70b1dcfb727f";
+      sha256 = "eedf7ba2cf4634ab18c2f2926266845a29c9bce8ba747554d413b276445b9eb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/lv/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/lv/firefox-86.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b513e100141d1df78de9f05dac72da91c6cf65a8fcc22b9091ec00e6c6ee21ef";
+      sha256 = "a1c5f04c16f6d50a0797e466d6a8836de40219567f04928cda7f64d967d8afa7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/mk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/mk/firefox-86.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "c65febe8a9f9b59ecdc61880a5c1a5b2b29fc53ffbc8d968f1773fe60adb082e";
+      sha256 = "8de29502640b51ac9f586ae7713903612911cf01cd7aecb6d74175a816cce6a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/mr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/mr/firefox-86.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b4d3b6758c67f72e8f8c9dbb0e32fcd7b527b701e41d3d492e3e7ba7817cc544";
+      sha256 = "f4cb4ddcac3b5ede422e54c69c05902506be788b45a79cfee6e21a0b7b8c3ca5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ms/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ms/firefox-86.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "2fe81086a7a15bb29b909987063c058c1826bee6c0c645cae1e7a0907207d1ae";
+      sha256 = "aa09b472e21b453f6875e25dc7922ca062934527a306f3b338cd32636076c021";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/my/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/my/firefox-86.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "40661cc4fa51c2782bd0da0d6f460c3a5fbfaab72e91b15c77f9b7b537484ab8";
+      sha256 = "4a4ad99aac0614aa25fd77c4c740c49f509db2333c37f797018362b15f38d1d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nb-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/nb-NO/firefox-86.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "9ce253d8bc316fb976c4f64135f7767060aed90111b54dac687011a772e650ab";
+      sha256 = "45814c2d731cd8435a92c31e9311c333d4357dc38e9196fbc24358289004df8b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ne-NP/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ne-NP/firefox-86.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "7fb96857d5da6726e68038a9659ac7c18b8e746d0dd5e4823655c8fd093238a4";
+      sha256 = "008ecc3d7bf7932a320b6ec12404a5259032930539a65e60f8aa2f98f9018524";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/nl/firefox-86.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "1d03b2eb31dca3cfbfb38af4e59d3eb84845b8fdaf488b76949a98f744253935";
+      sha256 = "0202adc844602502b48d078a665b1e9012c65172deda406ac9db972e05456fc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/nn-NO/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/nn-NO/firefox-86.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "64fdf6e8e8086c04c53c84f792382c32579b43548f9410dc074b2aff95165d88";
+      sha256 = "28f34c957628178a112ad6a7c16d9dd20e58bc3a9068fb1e59ef5e656ac8f02f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/oc/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/oc/firefox-86.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "6db5c30ca7d449534289f5b84e328484edd5d04512cde11f097f28f5ffb986bb";
+      sha256 = "4645cc6de115ff73444dfa4165a82b3ba1b0adbe3c4eff6fd854c9ec594a7bbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pa-IN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/pa-IN/firefox-86.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "102ac2026af2d21f27502f190dfeb0f39b148ce39324e480f653f6868df770d3";
+      sha256 = "3fbe8e5c7b4fb420a6a6c62475bd01fead342d7431578b96f391a829cf184be4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/pl/firefox-86.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "f0a03e6a95a67af8e6949f5b6ad32179f7bf4978f050ca3c453287bdfaca6252";
+      sha256 = "6850d14c02c152fb6252b08a111ff6bccbaee6a6ff76a99c018b497a8a014ab0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pt-BR/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/pt-BR/firefox-86.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "7177392c8f0c049ad685676aa6aab258274b7d5871c06467f7e87292779b7575";
+      sha256 = "a0aac09a39302df30a48c54e64ae422166eb781ef349dbc58927e077310fae5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/pt-PT/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/pt-PT/firefox-86.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "1fcae4be8cb31d30b1187b7d94fde71c41eb95c858467136af32fd7ad1117147";
+      sha256 = "e577444bd6ef376b0277cc2181bf50bc1ac3e377bed171f30616f536fa2d516b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/rm/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/rm/firefox-86.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "86f801260baccff9e8d9036dae46b0796edc8d90c9a2238da1e1547ac2684da9";
+      sha256 = "2a4f5f35caa3ec5b9f20c1160dd038ce3d689593650771c3e63246cc53b23cfe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ro/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ro/firefox-86.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "c1b02e43cc649acef6cdc9498814a4582b46b42de96dc48fcbac4d83b44ba35b";
+      sha256 = "c68f195f10bcd7d19aa76084450419008068ee5d30c34acc02d7621ea250211a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ru/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ru/firefox-86.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "c067538578c2891f062716f56f3ae057ef8db2814a03ec7f1eb8855b95f9ace0";
+      sha256 = "e6e7dcc74dac1c331d3202a141df71dbe2e5a398e2b97c9da1358707823d76b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/si/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/si/firefox-86.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "8131b12c390e31c06752115abf62426565433261e73ffa37a8389b102ccd06bf";
+      sha256 = "1bf321805bd46e0214568921b89eaf5ea4d394e43fb1d475ee61c7de8439d997";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/sk/firefox-86.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "f45f32063d34930b7e0ba4c087e97a78af642a59270c62fbea86b0bd87e06171";
+      sha256 = "221667dd6eead982d13e911e0ee9d6fb0e6288d689c59c7adc403e8eeab6fd4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/sl/firefox-86.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df8602e60a895887170ff2d18aae487730ef8e0bcfe08010fbe0da30f05af91e";
+      sha256 = "5df6f40394d0c2561c5103cb0600d3566b2bf42dca4d6a3194bee725577f1dad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/son/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/son/firefox-86.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "3dd3bb220c4cfeee6ecd79977e1a619470a2504a4597f314286497164984cd9f";
+      sha256 = "8ce2f3d67ea7e1889fce2f534e90320403350b27bd63e97263a9c14544d7f212";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sq/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/sq/firefox-86.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "cc04ff65bb4fbc714e21a416af26256d4b203f327e5678c71378fa507242ec6e";
+      sha256 = "a4f403eefa8da37d7308bda7a10cf62dbe9ff74f848e9e3603d9b787c1629b05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/sr/firefox-86.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "abb30a4c0eb7ea9910b21c0f10cace395f9d413ce39051494c97ddd1e18e2c10";
+      sha256 = "7f3d5fb8cb77c2405403f9899257d41f4e9fcdb45a1af945e337228d7648f79d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/sv-SE/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/sv-SE/firefox-86.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "76ae51342d5b8a93ae5f3927a69b9b1a6cd4877b98a7a103f8250bbe105ecf6a";
+      sha256 = "261886fc3f3c9c40123a6b6ae0040fffb281d90cbc34506f85bcd73cb94276f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ta/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ta/firefox-86.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "1e9866ac793705555c15ae4d0e16753e90e8deae19e6694ce9f85e8dfa6ee476";
+      sha256 = "3df7b4c5eb395b123d8c9a67d58e2eda268bd931394e38941545cded144b97e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/te/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/te/firefox-86.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "66dcd400f89054f194f1a794c8731c7344b04f97209023559bfcd0f008e005c8";
+      sha256 = "b27fe9f6d6e4920e5714a74f439900238900e164cce584f1a1548a02105caa10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/th/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/th/firefox-86.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "adef4cf7769510a8b47628eff5ee0f3b00c23862634fd8f6975daf599cf7b056";
+      sha256 = "e4eadb2885d09a082c40e27eb41e5a8f721ddd45ef79ed0ccba02f18d7fc3d6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/tl/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/tl/firefox-86.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "465d089eb0c68d8279e3cc7f8ceb5c08527fc48b0292cc8ce523879c4643fbb1";
+      sha256 = "392368f316cf89668e2ff9a42e0b170b55bfc610c84b0a605866914a39273fce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/tr/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/tr/firefox-86.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "00d75ff3605672f6704fb600208872e536f76907ed25a4f90325cabc1924f991";
+      sha256 = "e9c7f55b656860dc6d2b28fcca66dbc6e7290d2f418da238ca06ccfe68fdd579";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/trs/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/trs/firefox-86.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "299be659a464911dd27d92c36f567f675a26aa6d92af63deb002e172ba6b40e0";
+      sha256 = "9cd24da9a1dbc0665b589ea8d1f5e5a3546a8b7babbd0f9f2f27641d5c81eeaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/uk/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/uk/firefox-86.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "49c2084ec32c03fd2821c8f1220bbbf954b98705e44a6a7fa65ec6f1abb12c02";
+      sha256 = "0bbd4c03dd422901bf2ff1a6e000ec4c6ed798bfa66ade8db03551f5509efc40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/ur/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/ur/firefox-86.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "d703344d8f03186b0fb246108892432f137cc033ae66bef395e7216cfa7bbdd3";
+      sha256 = "c0f807c2c7365f281d921fd347a173ce2538fce79b1e74beedf928f392422236";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/uz/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/uz/firefox-86.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "02379c1fd1766eb15d9e99f8a6f08074df943c49ecf6b50a6b29ae8e922bf347";
+      sha256 = "f561501fdf1a0edf9f58289fe608b9d47c00ef666c7f980972f0f3112470ad27";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/vi/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/vi/firefox-86.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0577b4c2891ba646a67a93b4d6373095b98466e32b95993abc79e7bfd240f7d5";
+      sha256 = "12ce7eae83ef3100039871e82784ba7a63742ef8f132c48ceccac22641074c1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/xh/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/xh/firefox-86.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "83e40e1b33b2782d5dc68d32286da290188e8b5c3d689e5352d53411f95bed4c";
+      sha256 = "9def9420b6e6e252839268167e978cc357add46e54e77a0f5bf8e03a2183a855";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/zh-CN/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/zh-CN/firefox-86.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "695e647135b911a5e60374595197cd096b7bc180e63ee3069e4550a612354369";
+      sha256 = "03cea12f34a9eb22e730d6b28f294bc2a1578e9c357a15bcf189ab1fb925e337";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0.2/linux-i686/zh-TW/firefox-85.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/86.0/linux-i686/zh-TW/firefox-86.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5dcc5aa463f3c2325dcc7f4f768580dca6adf66e052470ec932bfabe9b3f8f29";
+      sha256 = "cf5e5cdf7230bf231f63750b3747b625d64026194c29b36c3d00ff9851960745";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index bbc3f7308f9..86d91d21e3c 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -32,10 +32,10 @@ rec {
 
   firefox-esr-78 = common rec {
     pname = "firefox-esr";
-    ffversion = "78.7.1esr";
+    ffversion = "78.8.0esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "138dcfpdkp78yqgygac212vg5fm5ich2a82p7258ch8hk6bpvpdxbws4sdqwljs92x831dblcsshwkl06vh48899489gx87mdkqd0nm";
+      sha512 = "0160aa6c408c2af66d24b74cf98e1a07ab1604e7b93ffcde79201f9d68e41e896ef965f1904de52d5dd82ffedae33ac96e93b871727bf5dd5983c5af2f1f439f";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 64f4c27c96c..78eef775558 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.1.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "0c7w4a19cwx3bkmbhc9c1wx0zmqd3a1grrj4ffifdic95wdihv7x";
+    sha256 = "sha256-EN0fQ5Scwrd7Tv31upQVbuqoNCoYudtruwtPR1IKTzE=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/browsers/nyxt/default.nix b/pkgs/applications/networking/browsers/nyxt/default.nix
index b4bec6ead3f..861b5a15ee0 100644
--- a/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, lispPackages, sbcl
+{ stdenv, lib, lispPackages
 , makeWrapper, wrapGAppsHook, gst_all_1
 , glib, gdk-pixbuf, cairo
 , mime-types, pango, gtk3
diff --git a/pkgs/applications/networking/calls/default.nix b/pkgs/applications/networking/calls/default.nix
index 01797397f4e..fcd27eceaa8 100644
--- a/pkgs/applications/networking/calls/default.nix
+++ b/pkgs/applications/networking/calls/default.nix
@@ -19,9 +19,7 @@
 , dbus
 , vala
 , wrapGAppsHook
-, xorg
 , xvfb_run
-, libxml2
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index e369fec213a..f1fb506ee9f 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.4";
+  version = "1.8.5";
   commit = "28aea3dfdede00443b52cc584814d80e8f896200";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256:155396rnihha31jxy0zk1jykiirpv4dhc69w45y6nx3nx4k0gwhk";
+    sha256 = "sha256-JjxibnGSDTjd0E9L3X2wnl9G713IYBs+O449RdrT19w=";
   };
 
-  vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4=";
+  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix
index 4f3dfcfc03f..659e8ee4170 100644
--- a/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -1,9 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, bash
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
 , coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
 }:
 
 let
-  common = { version, sha256, dependencies-sha256, tomcat, opensslPkg ? openssl }:
+  maven-jdk8 = maven.override {
+    jdk = jdk8;
+  };
+  common = { version, sha256, dependencies-sha256, maven, tomcat, opensslPkg ? openssl }:
     let
       # compile the hadoop tarball from sources, it requires some patches
       binary-distributon = stdenv.mkDerivation rec {
@@ -131,6 +134,7 @@ in {
     dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_8 = common {
     version = "2.8.4";
@@ -138,6 +142,7 @@ in {
     dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_9 = common {
     version = "2.9.1";
@@ -145,17 +150,20 @@ in {
     dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_3_0 = common {
     version = "3.0.3";
     sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5";
     dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m";
     tomcat = null;
+    maven = maven-jdk8;
   };
   hadoop_3_1 = common {
     version = "3.1.1";
     sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd";
     dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn";
     tomcat = null;
+    maven = maven-jdk8;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index 8e20093f5b2..586fc6cf806 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kube-router";
-  version = "1.1.0";
+  version = "1.1.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nsd371w667qhgiygxcg4kmynwldb0pbip6x03rc7j854hg8l7k0";
+    sha256 = "sha256-U7vjWtVXmyEPYFS1fAPOgV3WILGPhWsmoawV7B0pZaE=";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index f2071494f16..cf0c8451427 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-sUeXzmgSOkpqzqrX9+wNGj2X7gcf5QSpavXK4MJe8qE=";
+    sha256 = "sha256-wzaNFM/4V2mWqhkqeT70ieQuhgNK79U2b7PhxKqn/X0=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index d11461366b6..b16d0448cad 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "AkihiroSuda";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw=";
+    sha256 = "sha256-zexvTPEQw7iW1d3ahHmqTn+UaT/bJMlr1sVlWErc2ck=";
   };
 
-  vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM=";
+  vendorSha256 = "sha256-bX1GfKbAbdEAnW3kPNsbF/cJWufxvuhm//G88qJ3u08=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -30,6 +30,9 @@ buildGoModule rec {
     "-X github.com/AkihiroSuda/nerdctl/pkg/version.Revision=<unknown>"
   ];
 
+  # Many checks require a containerd socket and running nerdctl after it's built
+  doCheck = false;
+
   postInstall = ''
     wrapProgram $out/bin/nerdctl \
       --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \
@@ -39,6 +42,9 @@ buildGoModule rec {
   doInstallCheck = true;
   installCheckPhase = ''
     runHook preInstallCheck
+    # nerdctl expects XDG_RUNTIME_DIR to be set
+    export XDG_RUNTIME_DIR=$TMPDIR
+
     $out/bin/nerdctl --help
     # --version will error without containerd.sock access
     $out/bin/nerdctl --help | grep "${version}"
diff --git a/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index ffc682ca4d9..e53a9c39ea7 100644
--- a/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8qY99sEEOFY2eMfuZSWv49nw1LKVHn50P1gYQN6y2f4=";
+    sha256 = "sha256-GyWvwgLtE8N+HLmGKUOjv5HXl2sdnecjh5y6VCOs+/0=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/nomad/1.0.nix b/pkgs/applications/networking/cluster/nomad/1.0.nix
index 6ae59033835..99c43aeeee4 100644
--- a/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.3";
-  sha256 = "142rwpli8mbyg4vhhybnym34rk9w1ns4ddfhqjr1ygmxb1rlsngi";
+  version = "1.0.4";
+  sha256 = "0znaxz9mzbqb59p6rwa5h89m344m2ci39jsx8dfh1v5fc17r0fcq";
 }
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 4004402475d..6bf2e476163 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.28.6";
+  version = "0.28.7";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DzC/HNwFNNEJhic/8KpHchrBmsSbrn7xf1DjY0JTH08=";
+    sha256 = "sha256-pM3R85gdP2eVoXx//2tKePNAi14eM8Ut+eXR+vB0Ukk=";
   };
 
   vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";
@@ -22,6 +22,14 @@ buildGoModule rec {
     "-X main.VERSION=v${version}"
   ];
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/terragrunt --help
+    $out/bin/terragrunt --version | grep "v${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://terragrunt.gruntwork.io";
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index b97b5869960..f28754005ec 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,29 +2,45 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JeuVrlm6JB8MgSUmgMLQPuPmlKSScSdsVga9jUwLWHM=";
+    sha256 = "sha256-FTBBDKFUoyC+Xdm3+2QWXK57fLwitYrFP89OvAyHHVY=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-ArebHOjP3zvpASVAoaPXpSbrG/jq+Jbx7+EaQ1uHSVY=";
+  vendorSha256 = "sha256-ihelAumTRgLALevJdVq3V3SISitiRPCQZUh2h5/eczA=";
 
   nativeBuildInputs = [ go-bindata ];
 
   # GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
   buildPhase = ''
+    runHook preBuild
     make bin GIT_DESCRIBE="v${version}" GIT_COMMIT="" GIT_DIRTY=""
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D waypoint $out/bin/waypoint
+    runHook postInstall
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # `version` tries to write to ~/.config/waypoint
+    export HOME="$TMPDIR"
+
+    $out/bin/waypoint --help
+    $out/bin/waypoint version # | grep "Waypoint v${version}"
+    runHook postInstallCheck
+  '';
+
+  # Binary is static
   dontPatchELF = true;
   dontPatchShebangs = true;
 
diff --git a/pkgs/applications/networking/feedreaders/rssguard/default.nix b/pkgs/applications/networking/feedreaders/rssguard/default.nix
index d0ce431be76..1438d61f999 100644
--- a/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rssguard";
-  version = "3.8.4";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2NC5Y8WxVYrzpuqDzhXXJ16b04Em1HqZaE2VK9tmfYk=";
+    sha256 = "sha256-pprWJIYAFYSTPhWVCW4dz3GWeAS53Vo8UXiyQ56Mwjo=";
   };
 
   buildInputs =  [ qtwebengine qttools ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       for ownCloud/Nextcloud.
     '';
     homepage = "https://github.com/martinrotter/rssguard";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 2e5713627e4..9daa4992da0 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.98";
+  version = "3.1.103";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "d2d17a5ea821a580c55680294fce9ecf7012ef86c086c742414ec5bcb8468972";
+    sha256 = "da635a01ae7d15ba31b41081ab3e0214b8c5ab5e4662c381246495d7d1eba9be";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index f7b526f29b5..748d3c89ae6 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.2.3";
+  version = "3.2.4";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "1in25clpbb2vdhms3iypj6r5sp8d1dxjcfn85c272sh7shnmqagr";
+    sha256 = "11dy4w810jms75nrr3n3dy5anrl5ksb5pmnk31z37k60hg9q9afm";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
index a18a5198d05..bb5776b65e3 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-electron/default.nix
@@ -1,13 +1,14 @@
-{ lib, fetchurl, appimageTools }:
+{ lib, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
+
 let
   pname = "deltachat-electron";
-  version = "1.14.1";
+  version = "1.15.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url =
       "https://download.delta.chat/desktop/v${version}/DeltaChat-${version}.AppImage";
-    sha256 = "0w00qr8wwrxwa2g71biyz42k8y5y766m6k876bnzq927vcjilq6b";
+    sha256 = "sha256-lItI1aIFHYQ3wGRVn4Yw0nA7qgfhyHT/43kKbY/1cgI=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
@@ -16,6 +17,10 @@ in
 appimageTools.wrapType2 {
   inherit name src;
 
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
   extraInstallCommands = ''
     mv $out/bin/${name} $out/bin/${pname}
     install -m 444 -D \
diff --git a/pkgs/applications/networking/instant-messengers/neochat/default.nix b/pkgs/applications/networking/instant-messengers/neochat/default.nix
index cd456b336dd..c0e0c80b459 100644
--- a/pkgs/applications/networking/instant-messengers/neochat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/neochat/default.nix
@@ -3,8 +3,6 @@
 , fetchFromGitLab
 , pkg-config
 , cmake
-, qtbase
-, qttools
 , qtquickcontrols2
 , qtmultimedia
 , qtgraphicaleffects
@@ -26,14 +24,14 @@
 
 mkDerivation rec {
   pname = "neochat";
-  version = "1.0.1";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     owner = "network";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xGqGFJHyoZXHLv/n3UGr/KVbgs5Gc9kKKWIuKMr9DtQ=";
+    sha256 = "sha256-HvLPsU+fxlyPDP7i9OSnZ/C1RjouOQCp+4WCl6FlFJo=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 57db6a0750e..927f89c9493 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -23,6 +23,9 @@
 , olm
 , pkg-config
 , nlohmann_json
+, voipSupport ? true
+, gst_all_1
+, libnice
 }:
 
 mkDerivation rec {
@@ -59,12 +62,24 @@ mkDerivation rec {
     qtquickcontrols2
     qtgraphicaleffects
     qtkeychain
-  ] ++ lib.optional stdenv.isDarwin qtmacextras;
+  ] ++ lib.optional stdenv.isDarwin qtmacextras
+    ++ lib.optionals voipSupport (with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+      (gst-plugins-good.override { qt5Support = true; })
+      gst-plugins-bad
+      libnice
+    ]);
 
   cmakeFlags = [
     "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
   ];
 
+  preFixup = lib.optionalString voipSupport ''
+    # add gstreamer plugins path to the wrapper
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
   meta = with lib; {
     description = "Desktop client for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/nheko";
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 03ef4abc2d0..e821e182cd4 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -25,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.40.0"; # Please backport all updates to the stable channel.
+  version = "1.40.1"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1xd38a9mi23c4r873k37rzip68hfk3a4bk9j4j24v2kb3yvixrpp";
+    sha256 = "0k57r1x64w38n0295qdrf3p19d3z8m530h46ps0j2x0krhah47w7";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 44642ab8a93..8f09c37d25c 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -41,11 +41,11 @@ let
 
   pname = "slack";
 
-  x86_64-darwin-version = "4.12.2";
-  x86_64-darwin-sha256 = "0qflv2glfy7d77zjgqi7qcjr53c9dni26gmqkg9vk2xijmmd3xy7";
+  x86_64-darwin-version = "4.13.0";
+  x86_64-darwin-sha256 = "1f155fgbdmqxy7324lxj3ysx1p332rzpwy06iac90rm6irf5v57f";
 
-  x86_64-linux-version = "4.12.2";
-  x86_64-linux-sha256 = "sha256-G5uQI078N7AbhEJs6a/17Hoi5DSdwvYLM1T/ttrEw4s=";
+  x86_64-linux-version = "4.13.0";
+  x86_64-linux-sha256 = "1hqvynkhbkfwxvfgjqv91x5k7qlzayjr5mmf8rz0ncp4j4d3x9mq";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 7cbcc2392c6..2c7efe42a88 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -3,8 +3,9 @@
 , qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
 , dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
 , tl-expected, hunspell
-# TODO: Shouldn't be required:
-, pcre, xorg, util-linux, libselinux, libsepol, epoxy, at-spi2-core, libXtst
+# Transitive dependencies:
+, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, at-spi2-core, libXtst, libthai, libdatrie
 , xdg-utils
 }:
 
@@ -22,12 +23,12 @@ let
 
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.5.9";
+  version = "2.6.0";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "1311dab9cil8hl1qlh01ynrczyjbldcsq1l6ibh818wb5lsgvvl2";
+    sha256 = "18ifmvll0nnmjf8ba6r23ri9i4fggy7k2dqs3qf4f52cklmlfj06";
   };
 
   postPatch = ''
@@ -48,8 +49,9 @@ in mkDerivation rec {
     dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
     tl-expected hunspell
     tg_owt
-    # TODO: Shouldn't be required:
-    pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy at-spi2-core libXtst
+    # Transitive dependencies:
+    pcre xorg.libpthreadstubs xorg.libXdmcp util-linux libselinux libsepol epoxy
+    at-spi2-core libXtst libthai libdatrie
   ];
 
   cmakeFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix
index a177499154e..6b143abda3b 100644
--- a/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.5.0";
+  version = "5.6.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "059zfcvaq8wnsz2lfd4gdb17b6nngqk3vgisy2kb29ifqf3lpzqi";
+    sha256 = "19sdmkxxzaidb89m8k56p94hq2yaxwn9islzrzwb86f50hlrq46w";
     name="${pname}-${version}.AppImage";
   };
 
@@ -34,7 +34,7 @@ in appimageTools.wrapType2 {
     description = "Desktop client for Zulip Chat";
     homepage = "https://zulip.com";
     license = licenses.asl20;
-    maintainers = with maintainers; [ jonafato ];
+    maintainers = with maintainers; [ andersk jonafato ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
new file mode 100644
index 00000000000..45e620db258
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/0001-hardcode-json-file-path.patch
@@ -0,0 +1,35 @@
+From 5dd2593369645b11a9dc03e1930617d2f5dbd039 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Wed, 11 Nov 2020 11:48:49 +0100
+Subject: [PATCH] hardcode json file path
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ wee_slack.py | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/wee_slack.py b/wee_slack.py
+index a3d779c..5942289 100644
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -5136,13 +5136,7 @@ def create_slack_debug_buffer():
+ 
+ def load_emoji():
+     try:
+-        weechat_dir = w.info_get('weechat_dir', '')
+-        weechat_sharedir = w.info_get('weechat_sharedir', '')
+-        local_weemoji, global_weemoji = ('{}/weemoji.json'.format(path)
+-                for path in (weechat_dir, weechat_sharedir))
+-        path = (global_weemoji if os.path.exists(global_weemoji) and
+-                not os.path.exists(local_weemoji) else local_weemoji)
+-        with open(path, 'r') as ef:
++        with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
+             emojis = json.loads(ef.read())
+             if 'emoji' in emojis:
+                 print_error('The weemoji.json file is in an old format. Please update it.')
+-- 
+2.29.0
+
diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
index 089271812a7..679e278c8a0 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wee-slack";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     repo = "wee-slack";
     owner = "wee-slack";
     rev = "v${version}";
-    sha256 = "0s4qd1z40c1bczkvc840jwjmzbv7nyj06xqs1si9v54qmkh4gaq4";
+    sha256 = "sha256-6Z/H15bKe0PKpNe9PCgc5mLOii3CILCAVon7EgzIkx8=";
   };
 
   patches = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
         paths = with python3Packages; [ websocket_client six ];
       }}/${python3Packages.python.sitePackages}";
     })
-    ./hardcode-json-file-path.patch
+    ./0001-hardcode-json-file-path.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch b/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
deleted file mode 100644
index 7413a9229ce..00000000000
--- a/pkgs/applications/networking/irc/weechat/scripts/wee-slack/hardcode-json-file-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/wee_slack.py
-+++ b/wee_slack.py
-@@ -4560,8 +4560,7 @@
- 
- def load_emoji():
-     try:
--        DIR = w.info_get('weechat_dir', '')
--        with open('{}/weemoji.json'.format(DIR), 'r') as ef:
-+        with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
-             emojis = json.loads(ef.read())
-             if 'emoji' in emojis:
-                 print_error('The weemoji.json file is in an old format. Please update it.')
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index e86e847e8f3..5c129803ce6 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.7.1";
+  version = "78.8.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/af/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/af/thunderbird-78.8.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "b9d7bacd982db97e531775ceca569e011603dbd2806a64bce43ef2ff30e6c8f4";
+      sha256 = "9e4334e885fd43138f32138976e7539ed3e438d18322764aa21df5c30b38d987";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ar/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ar/thunderbird-78.8.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "144647297e15556de5273e4f41712fc348b3dd401d71356d556c1ed09221037d";
+      sha256 = "b51e15fcb534d82909cd3578cc02bc9b1f5f79cddab89349009b6edf7292208f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ast/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ast/thunderbird-78.8.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "9adb0d16ab633e4ffa3628969ccb542488fc299da5250c058828144f6f773781";
+      sha256 = "75d944c21a5077fab03dc474bcadb09a21392f25ffe5f5baa1e6ec1b59d319cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/be/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/be/thunderbird-78.8.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "3e54fa9ca34bcc11d411a979ed6bcd0a68b67da08cdba49e1f8a59794bc2dff0";
+      sha256 = "3b28e58054f40d60cdde6cb0789d5f885dd695c459666680aad53a67cefa4ec2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/bg/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/bg/thunderbird-78.8.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "d576d3193c8e263d44942043b7e13c8861b2234ebb66969ac2cd20f84d6d769f";
+      sha256 = "fd5e34527ff0f33b7c072e34f0e6a8c27963bb4849b3876ef6a4a0243b89b3cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/br/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/br/thunderbird-78.8.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "cd85058134a3b1364049d11a32bd964f8f9488fb48ece65d32fbb9005831b1d4";
+      sha256 = "de272588fe4ef2f24b9a73952f408ff0e22aa3dc481007cbd8dd64e3552e65be";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ca/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ca/thunderbird-78.8.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "5bf9ac27b8401f7c1479cacddc48e6310e6ac52e038f824193788dd6883512a6";
+      sha256 = "fda9add048104e2709421add69957c79914dc3ec65b29f2bdf90f345d397ff8d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cak/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/cak/thunderbird-78.8.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "dfa2f97ee07f80adc5ded391bf01aea36e2aaf5a12ca9a510c5842756d9b9f8e";
+      sha256 = "d9c394a8f69ce1442c5444d1f6fd7350922fd9616e1dc696399fbdfd539f99b0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cs/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/cs/thunderbird-78.8.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "c76d755c9b54921a4edc9521aea2c51aa6301d954154fa6228195193000be56f";
+      sha256 = "c5cea000c58d4f42d54306835fe1c15ca358286e3f4b48862857ae6dc531859b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/cy/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/cy/thunderbird-78.8.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "09475639dec1e370360c1c257b88ab45fbf2251bd22d1d50e9df078b035b8560";
+      sha256 = "9e790ef1f09af98e84bd3246fd4cfa679cca354532472a5323eeb4bafa92f7a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/da/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/da/thunderbird-78.8.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "74cc98d1d99e9fd101e86051cf9aee26b40cfcb6203892adf6fd45fad5934926";
+      sha256 = "62d2af10af31a472a3a2d2b3aa582c96d92466428aac3f1f007003cfcbe0c106";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/de/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/de/thunderbird-78.8.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "509648ba2c7d9ef4db1755ae5e017d3dc1c73c5a3a94a293bbc9a505b5349e2a";
+      sha256 = "98bdf6c67d230b46014526d756a06dc2897de3f24f027fac3abb8550e5e608bf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/dsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/dsb/thunderbird-78.8.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "03dff2bbcb39d967c96934675134acd3ec74b39df3b6cc76846229ff92653483";
+      sha256 = "2350e2884af5757ef7d61e37fe2090a5e0f504a2c192c78d66af982f9e4a9d92";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/el/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/el/thunderbird-78.8.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d6ec9ccdd2945d6de1718f32b551e922da1808d59acec937a16addaa0004e94a";
+      sha256 = "bfc20efee36a77fa124d6980396c2a51e0d59d1480ba32f53b550986ebda61a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-CA/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/en-CA/thunderbird-78.8.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "bc97cadcf95bd0273708e1ea5cc8cdddd29f11b280213c1bd4f35a50d446763e";
+      sha256 = "094cb02d5bb3ae13025005c458befa34428a9338e6bc489fc7cf14d70ec42e00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-GB/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/en-GB/thunderbird-78.8.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "82fd7e16cc8d5df4e775187d7f3e32b9b1dab3647cd766cec1649c39d08d5165";
+      sha256 = "3ca1112e55371d628b518ce12d4bcef08ff1ae71a0820405e236b2399cf1d6f9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/en-US/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/en-US/thunderbird-78.8.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "463c1164b80f0f8bcb72f04fb0c17e32a637df988c0ea14d90469b1d7a958f82";
+      sha256 = "074aa418d841d65f8c702cd86046595ce715e3156d8cd7f0da9dba48580b230c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/es-AR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/es-AR/thunderbird-78.8.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "1ce69e73e8326e316d056a98efe601e7300714f1b65f69e2fcd175123fdca96b";
+      sha256 = "4f4552f137958ab583183237322cb48327242e8354689aba9c557e448abed7f9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/es-ES/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/es-ES/thunderbird-78.8.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "a04161f56944527f8537d46e046fbed715a554e4dc581aa636f1cec3fb1e1351";
+      sha256 = "61787b7e70a6722e5921246bedf1182d7f52b28f1abc218b5bad7544fbe7dc87";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/et/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/et/thunderbird-78.8.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "36c2e7ae029b65976b92cff62c3c3a97e8c44a73c2f5e48415260b23a23ff653";
+      sha256 = "b85fd3bcea1284b79d5a8816ff0056060b4bad22ffeb2b2e50f6b8bbc61da8c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/eu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/eu/thunderbird-78.8.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "538a42bb6eb11360fa70bd06058dbd47f2a3eec53fbbfe0232ddfbbeb4a4187c";
+      sha256 = "a80cbc3f5227a6712ae04fa3a6f553c91c8ee757e9f58483ed3db300e7661fc5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fa/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/fa/thunderbird-78.8.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "6e2b18166237fdf0d020570957ee7d0815d846a0aca8df2036cdf99e651cfce9";
+      sha256 = "fee67058c3b6b6ab5ef10c2bdd9ac9cdc86c1a65177f86b9b39e69435923feb8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/fi/thunderbird-78.8.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "1769213bf789a21572014d4d97c823db14e11f7a32b91d57d98bebe39a80786d";
+      sha256 = "c3e2b90ec439de73a4afead978bc53e64966dda277d7b40cc0c2080df4180238";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/fr/thunderbird-78.8.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "60017c2151aed3782567d9c10817e89c738d6bce322fd33f1188bc25dc12ac3f";
+      sha256 = "c7dc2fb5a67a5e3d884276c74dbed0d975db2686b7c9e47ee3b8e9cacba248db";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/fy-NL/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/fy-NL/thunderbird-78.8.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "3878ce39135e30a76c67182765f5fa7fc38b7019021aa86f0806028f67a7dfd5";
+      sha256 = "13a0b3041c1178ea08fd4a65968f3e3a244a1e2a09931a1b9e142bb39db3da2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ga-IE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ga-IE/thunderbird-78.8.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "b2e66dd3fe5a78d2eb6691bc91521b3f22fbb5be88c556e2d5158057db0d6cfd";
+      sha256 = "e53725b3e31b9d397a3c92d2cb1bc5cdc206b5fa3310dbce3fcf8b82bdd50af4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/gd/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/gd/thunderbird-78.8.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "c4722ceb4eca2afaa3502f2bc419b0ffc6cd2600100c5a91bf2cb7cdda60cd66";
+      sha256 = "04fc55448d9a12b4dc0995b48e0744868195f633b3489f0c38e4d154f9a2d1f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/gl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/gl/thunderbird-78.8.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "0f34fd28523062c90c521b40b0a67ad23e3b2ba05fe5c03cc1da29d480fde1e3";
+      sha256 = "18db14f47f958e4eaf8954805df109819124e4f0ea1713781add31105b258c4e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/he/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/he/thunderbird-78.8.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8cf8a0b5e1bd3ed116ac1dcbcb1857db9ccff8452ff0d1f3ac2957cada5883c8";
+      sha256 = "99b47c6caa14ddf6af2d5ebdcad25f2d53300f8599c8b9f0304ab374dd0d2ebb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/hr/thunderbird-78.8.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "827d0c46d404d871661af45d301645a1c888941741c1b6cad27c7c37aed52800";
+      sha256 = "29ce83e46a61c22c3bd4e4cbacc0fd7ec04a36460bfbeb76b62eaa752a0d10e2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/hsb/thunderbird-78.8.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "83e965004f0293c324393914cc931ccfa608360982d338859da1e7e2ae0f333f";
+      sha256 = "a3f3fae8b4b0eb67dc4ea7f12aff3246effa7e61ee07d626cb05802ce1dbb2d8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/hu/thunderbird-78.8.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "120ca3f7b356c57d7fa2af63ebcb974ad0ba313fe9c615afa5553b2e7ab75e62";
+      sha256 = "3207c91a73d67f21d809d1508bbd103a453ebe18db85dc099ff7be75b4d0752e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/hy-AM/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/hy-AM/thunderbird-78.8.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "7d0c2c5854f0a5a2288cacb6bf0d2f8ecd838dffcc8ccd040f993af94cb92d13";
+      sha256 = "80a659841237012e80c88530602c0845ddb42ad0d7fea4fb56d8026924cf50c6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/id/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/id/thunderbird-78.8.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "29462ae0dd0eaa8ac9370b8fc46ad8ad679ef44996a7f80468890b8a75ce4a29";
+      sha256 = "ab68d00bab6baa18c3ab0f5d77d6c0575e1af687e0473b61c69ba329d8ec392a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/is/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/is/thunderbird-78.8.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "084aee31331bb0bbdf466d3c3a6bb1834dfbdddaefe0e8c6e1d4a91eec0725ca";
+      sha256 = "69ba962cdd99500b3d65a9dee4a29780e2d2c807ad9ae5260fcae37593f2038d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/it/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/it/thunderbird-78.8.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f180ceb0cd9f2e1d3e975f30fffa968e938b18ebb3c45108b6758d36989918e6";
+      sha256 = "0ddd769c4cc7a145bfe4f5a03b208e95ecea0219766b1351ce160c3c731eeb3e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ja/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ja/thunderbird-78.8.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "662f124e3a32ab9e6b6fbefed9b58779060d927558bbc9527d83936191e3e044";
+      sha256 = "45d8db5b361aa6c941ffa13651fd7c2a44db52f70ddf67bae9b5a0e3513db05b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ka/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ka/thunderbird-78.8.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "2faece980493b0071e5d62a579f4e1c4d792a63293949d81fa96e70468044acc";
+      sha256 = "66a0cbb3fccda23ac1f6547e69fce19bbf843882baa9d92ba8eb2f325cabe22d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/kab/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/kab/thunderbird-78.8.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "7382fc4e006bcb05c0db2dc88f8aad32a3abbce2bcb32f28d6271658caf934b8";
+      sha256 = "e3d03fabe85a31756db1a0ff27e7ac29e4ca127f2f87612aa12c698171b3a610";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/kk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/kk/thunderbird-78.8.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c8c52e06cd3ac3a02dc0081a82b25223a1da5a918335f770660122c8a6ba750c";
+      sha256 = "2367aa9c3e5e1b94a2661d8bdd56c39f3cbf95058c2c77639fecc01fe674b305";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ko/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ko/thunderbird-78.8.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "67928b2f6861b1071ff76c457f6aef4a9eb0d80f896331bdb847543c62b0dd11";
+      sha256 = "1c728ae7c8fc39c38aec45240f9c25879b7fe028d60ad1089e8564d5915eb3ab";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/lt/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/lt/thunderbird-78.8.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "aec1acfb847cea57772197d81d122e97915b03358c984293d40f6ce759b9e77a";
+      sha256 = "9f70983576df0e51a508941b0714bb43c3eb7ce494abfc1e3cf5b8a471c42047";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ms/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ms/thunderbird-78.8.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "9a4411e932789040abc939a64b9ad979104ffe868a969dabc27022dc9ff822fd";
+      sha256 = "19962ca7f30a397f2668e1dcb71ee5a5ffbefc1cf2c66d27978895fb06e2816f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nb-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/nb-NO/thunderbird-78.8.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "c7cfcd78108d931c60e9a061ed459da9df0cee27b16085fd1c6f3d71d54cd2fd";
+      sha256 = "fa4d681a30cb5d00771614de4ec40b92c5a593262818dd86dca79ca7ac0e7881";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/nl/thunderbird-78.8.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "44e9a143f00636a9287b2f0774720fd372de25fff9de8ceb468bc81de1d7ade3";
+      sha256 = "ca2f0bbb087020e045c38068aa64b0f562aa9d3b08d76227f0cffaa84258b467";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/nn-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/nn-NO/thunderbird-78.8.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "75269ac3171d14ca6145c3d00ba004489f89fc9210cf3af0d4e0248e24dac273";
+      sha256 = "97777d687d9bae2f495940a59dd513431f5ffa4520ce08a9af35db32783965d4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pa-IN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/pa-IN/thunderbird-78.8.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "ef98d53446ad294eaa861919cc8e9e70f4f6458d3a4210a43ec37bd919db8aa7";
+      sha256 = "c50088c6b911c10fa7ca84ce284ffaa45c4a81a5276277809972c080c5bb3321";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/pl/thunderbird-78.8.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "682c6b2a5e808e65e1e233fb48bbd68058a7f2745648d01d6342c90316b8135c";
+      sha256 = "1391c90597bb89e9edaaf58dc46894d84619649a2f7aa68a69bef41a167c4cab";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pt-BR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/pt-BR/thunderbird-78.8.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "761988b180f3077cd9710324fd87ec577de5f5ee11c79404b416c64ba322c65a";
+      sha256 = "11229cb39877d227071809e4a53fdd078813241e736e3cb9b4868fff0329560d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/pt-PT/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/pt-PT/thunderbird-78.8.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "9182a7064d0f98a49b34b9bf78ae4d63fe6b588c51ceb48ffe0974455e767867";
+      sha256 = "e29d5d58d86af538700f69f6102c5f5dff3102173febfe559c959f15b8d19838";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/rm/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/rm/thunderbird-78.8.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "33a8bec5ee7240fb44e350139f60e1d7c92361020bba2857634af03e40ee0f87";
+      sha256 = "53925070690b9cb88e62e73b52ceac7663bcc9af82834a6028a1fc83e8fe954b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ro/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ro/thunderbird-78.8.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "a50168d1b5e62d7bec9d75714612614b9d2342fdc6b8f89959d50d1505cbf7d0";
+      sha256 = "ac6e9b71f0008560768dbf3675c3a2d99e1436d810cc35705219d1141cd5657c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/ru/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/ru/thunderbird-78.8.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "555e630090fbc41711e88d0a8e822febf0619333c2bcace5bdfbfdfdddfbb0dd";
+      sha256 = "e70c93d3ac2ab6bd0b618b43ecb34fb5dd756325cc2b524249b6ba47d0abcf47";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/si/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/si/thunderbird-78.8.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "f977bd3fb4caaefb03eb8c967ae4850c0b7b2b8dfa0f7d7cedfba0847788cdb3";
+      sha256 = "ffebac6b9c87abe040a25a39e9f84c05f8d143afe54bb293828945ccd694b44f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/sk/thunderbird-78.8.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "f1e5c9787a2ae8f8aaceef1ca2963884031a6cb8dc0ab3c3230fa0021156cfc4";
+      sha256 = "bb9be9c2427965ef4007bef0e6da049680959ecb47fa120a49a78418def11aee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/sl/thunderbird-78.8.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "59a97046285bca3e5b8ba396d3afef69fe2cb5a41347e4e0a21e9ff66c03ae12";
+      sha256 = "3889b8b457cc078dd0c5a3ef0564a285622fb2295ce003322eb76227876397af";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sq/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/sq/thunderbird-78.8.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "ed0cf7d341d42dedeaa224f7f1f8e005172134da591f65664a4aca717e6db44a";
+      sha256 = "2ba1e13b129c81e2fcf2382481d477ee9209bcbd413b357426659c4c59951fd4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/sr/thunderbird-78.8.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "fd61b2e8e048f162e59a1a428100e6d0556d7120de1f8b46decdfe60509de0d7";
+      sha256 = "5eb98fb8b36f0ada831306b37eb63ab3b959baf55e0adb0641400eb7cf143e4a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/sv-SE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/sv-SE/thunderbird-78.8.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "87afa3b4b12848de156ea61d1727dea1ef5b86bc83b583df55f089bd1d1bec1e";
+      sha256 = "20f9c865e9c2ac8c7af880126748e6a7260d310b1c4abd142631a5507d3a7715";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/th/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/th/thunderbird-78.8.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "0e9b959424106680bced6d924c184d1306f7f1fd34fb4d3e4d8a54cb191500bd";
+      sha256 = "da966ee74484fea59f0a431639f9745f600c65e1d50ba625c7dcb04edf8f3b12";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/tr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/tr/thunderbird-78.8.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f2d037cea39d2698e71a0885587302644450149434ac7c3234c7ae32c5f4d103";
+      sha256 = "15e7953aafcd2476c8f0a5bbde7c5bd4be634dc8ccb6e7c599e49885e653a1c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/uk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/uk/thunderbird-78.8.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "663aa8509cc75c074697509981bf54ab00eeddc50c53acc0221225c3d7c63f9f";
+      sha256 = "d5b81175250441ef8850d3d62886223ebb824554180e78537367afc63fe13b6c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/uz/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/uz/thunderbird-78.8.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "892209fbe5d48532710feab4ad8f38f9387e10b088d91a12c9778bc465af194c";
+      sha256 = "7a8ed91075d4d3f884a9fbd750bdd57b51b781cc299bc9648adbcb218524d3c7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/vi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/vi/thunderbird-78.8.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "a66d1d470f4a76cfa8b31fa3d60acb91cc7657455f9aebf930e127c2acbf4c8f";
+      sha256 = "38b0e4005a2023191ea237e54328040e2dd9c92f38d6a00b57ab0ef1114b2f60";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/zh-CN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/zh-CN/thunderbird-78.8.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "10830b4a84ca22c19ee329cb00b92816e9b74f99c99a1ba6cfc86171470d655d";
+      sha256 = "196c4f43f93cb3bced090a62d229799a7e5f4f174ed2304ed6013eba4eaa53db";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-x86_64/zh-TW/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-x86_64/zh-TW/thunderbird-78.8.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "b88200643a70ba3391cfd3be6cbc7bb178c6170f26041d4153021736d03365f0";
+      sha256 = "ad26a1b2a35acdc290eb6709b96880b1e72fb66d70443a83b1da9d9f16a4eb2d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/af/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/af/thunderbird-78.8.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "e78e2ef7411b3e6c0f2ed5c0729dfdc144f94e8575f2f30ae1cbaeb7c73188dc";
+      sha256 = "af7973120feb000127c70c53d84efd256f5758751fe1f1c77fa1daa1cccfdded";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ar/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ar/thunderbird-78.8.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "42c3f3b177a50afd6640db6815e7c159048cebb6dd5613c2fdf9ef18871d40cf";
+      sha256 = "49581a6febcca71de9b67ca92ed0cab6f52863e59754575effe629b6c7d9f627";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ast/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ast/thunderbird-78.8.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "b8fb786756051169d96a4fecf05cdabf4becc8fbcabd56ba676e96286a80b9d2";
+      sha256 = "a1462259b3157128582889f266ed8b36656de974a64faec39e461fc64de78403";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/be/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/be/thunderbird-78.8.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "4e3f8f26b1321d130fb16b5eb30c3b3c3a7863e6d43ee9604f1a6da97228c85f";
+      sha256 = "c677a9d1802e58c9fce12058da7f3c504f4b4f67a727897e0f0e8d8005fe26cb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/bg/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/bg/thunderbird-78.8.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "0385b615dfb21f33b3e84b6c9213d3d8980379bb4be07967f5309888078ac177";
+      sha256 = "0424f520fed1d43ac5145d7607b775f7d4f6f880e41e9638085a9a185bf160e4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/br/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/br/thunderbird-78.8.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "e338d6b439577af562c4dbcd2951176d2c6cf87254203e6d20602de4563484c0";
+      sha256 = "1be23d98643548dd40007db54ffcbf6df52e80c74f05d92175bf2109ef4308f3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ca/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ca/thunderbird-78.8.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "71f1b5f1b35a9c5712ba6cedbf3de96f4a3814655c44ed1cda48d4e5a56c3e03";
+      sha256 = "d743f55888ed0d0e4acd31e158fd8db3f7709f534cd570696216c2adcb081c99";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cak/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/cak/thunderbird-78.8.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "0f616eb61c0de3e38d2092ae215613ba104be279027259def8bca4082bd74cd3";
+      sha256 = "875378354c62fa050d1559539df54e7d5dcf1fecbb4cda733648dc5488121b6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cs/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/cs/thunderbird-78.8.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "8de26b3daa7b087fb94a349e909da703867665fb2b4add360584c8d61f0c84ee";
+      sha256 = "677239766430bd055e83a25a03ad825602b88c5b6e236dbf8c7f36abc3956fa3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/cy/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/cy/thunderbird-78.8.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "74e28fb04e08bcfd68215eec443fde725077850e412798c1f0870e776ecbeeb1";
+      sha256 = "e14dd47506b180b29bd8ed3e70c9d0e66ac264dbbe374bcf82b6849ff1b92c18";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/da/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/da/thunderbird-78.8.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "d50f37a31e4e5805084fa14bf639057b543deac99738871c402ad9af9684ce20";
+      sha256 = "ea8f4fc8eaf461da09050a03282dfeec7ca1987c5741f875546ad22dc904748a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/de/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/de/thunderbird-78.8.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "7aa84ada2e6cb6b467a618b234a7cd0370f5d71fd1eb0f5da1addb6478665ad3";
+      sha256 = "f60f678ee1ee593b99fb95116ac7d157d860c0fabe8b37865fd5b703634e9c78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/dsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/dsb/thunderbird-78.8.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "e273b80d5039097a34e7e2c96f65aca112e68d72a82782e783ea9412e49ab21f";
+      sha256 = "fbc2d5841e1ab6401d4ff4cf1f03102c4bf59662e4687354f36f15efebdf92f9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/el/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/el/thunderbird-78.8.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "f31dfc543cca8d8f3c6e1cc40f8a07ead7b231222c8e04e5e2202c315c4708d8";
+      sha256 = "ef9d01738f186aa87e55e41d3ba835fe0d3a616d6ab2c0115849577e98aafb66";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-CA/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/en-CA/thunderbird-78.8.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "534f8008886a3028c09afb1c030923359f8ee0c85c6e961faa4c974b6c2c30da";
+      sha256 = "3ed96eb3b0f4a301ee350cad37b0544391aa937757ac1e6f0be9b20f13207915";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-GB/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/en-GB/thunderbird-78.8.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c9c138e5d92847c0c0ec82d1799fddf1267b95a5f6ef2cae7820f560aff53732";
+      sha256 = "eef090aed2c10f3275f1161e34fec1ed46af057c52279765797297eb2b7d7053";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/en-US/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/en-US/thunderbird-78.8.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "6ec06f3a432301745ed24607b0549602ae31bf6e051ca9a4079f4cd6caf2041f";
+      sha256 = "163c1289f515179281c44e1c4eebdcff4a3d641cc91ae8acc57c8e43ab07c07c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/es-AR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/es-AR/thunderbird-78.8.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "8debebc56ee0fbcbf2507f98f28f7807b55d4d768bd40c7820aa9e4f7dc9f0ad";
+      sha256 = "e84f8d773bc91ccb45b4295b05e2154a831b54ed5156d5979bfa6b54f0a33e70";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/es-ES/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/es-ES/thunderbird-78.8.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "58ac431d1b48a1c8224e414577a7405f20336cd990f6e4d8399e304cc5f38a3f";
+      sha256 = "c40e97e1d321ada605a4d441452705b24b6968662b118d074780b2f864dfa62f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/et/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/et/thunderbird-78.8.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "a80917893c189acbd745e56820b7f4fce1ebf14e99be8700db75817ffa3eccf5";
+      sha256 = "4a69f41eb0c60a63cc0f4b4580ad12b7ac0328062dd66bbb7d63e276594e3007";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/eu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/eu/thunderbird-78.8.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "f305db54f9cc504777ee9d329ca1da97a8642f7505903b2744cb7d86382b0ccf";
+      sha256 = "bec059640483556ab03dcf53c966fcf3fb46cf8a1f38b14f0981f0cb75411943";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fa/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/fa/thunderbird-78.8.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "0a90e573bf94097f790dec0ef2771266bf115c0c4768c3952758f8c17f7cfb70";
+      sha256 = "8a186051fb3d7b7e2293d2b591fb0f9708be6985e4ff8b9e1809cd98bf44690b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/fi/thunderbird-78.8.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "264104b86cd034927586520b6c4df25b1c75da4d97ea18bffd74261e553b4eb5";
+      sha256 = "6c407bc175f75f84ec83386cc8ea7fcdd4b25523326e86755f033f2512446007";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/fr/thunderbird-78.8.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "2cbca14d94252f24dd50c971fd5ad367b4b3c0d3ccfd2d9ce8b18cb1df62a82c";
+      sha256 = "429fe2900ac9caf79d386f3826898b6fed6302030fa7b7c2e7386cc3d849eab5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/fy-NL/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/fy-NL/thunderbird-78.8.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "d60c543f59ebdb539b9d3799d77f4ad1d05738cc5d1b78d016a7d2f036d72095";
+      sha256 = "718807d6cf9af7d205bc273343e60b8f7ddeb531253f738a3275afc65c659916";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ga-IE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ga-IE/thunderbird-78.8.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "2d0a19e3a702a72866af8c8e9aac64e9c41b3b1bc44de53ec42b56efd657cd63";
+      sha256 = "900ac6c3d62879521ca5a39622994d8d2d352271f088f6e7cc142d533a146800";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/gd/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/gd/thunderbird-78.8.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "93eaaf7d5c6cdf1947e25fbd053185f09f60329ba729a53f12d272f24dca6bf7";
+      sha256 = "3e5fcc21742434445d3508690d90ff9782bdc4a9568e422899897293333c51e4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/gl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/gl/thunderbird-78.8.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "02d78333abaed79e7a2fccc6af3edef3077e08cadcc83fa2856779b6d24e9113";
+      sha256 = "8c83f977b0ec5ef8b25e0ae0b7735590d1c5a42bebd90ca3f53a6a50ab8e1f12";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/he/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/he/thunderbird-78.8.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "d4dd60245672fc23e114d2cfef40ff69faf08a2f188969deff7d084d8aebd64f";
+      sha256 = "7aa66ca6d1c58a1e55c8b76aa0a872af69dec41e403176a95bae7f1b73941eec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/hr/thunderbird-78.8.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "0aba235af4ebdd924d9d909755dd059025c1b502ab0056a24ef0eb5aea05b9ae";
+      sha256 = "7341f850d220f9e66bf018d27e44cb8906c31fbe7346d850b4b646b517eedf7c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hsb/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/hsb/thunderbird-78.8.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "acc53828d809a21b3a5bc6b00cf5681b376284e4818c8db250f61a3117573f78";
+      sha256 = "a4ed28817e4680f53271bf3c24a5479f00bc9c8614c141065462e396bb46be36";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hu/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/hu/thunderbird-78.8.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "39aac6a7e96fbc71c9e537f4312fa528c0f3b56a5d669638ca2a4ff2a4823cb8";
+      sha256 = "0331825ce5c8595e0270f5c92b3818abd53514a2304b55d41d264175c01c100b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/hy-AM/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/hy-AM/thunderbird-78.8.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "bb1fdc6084ca5d761823b5391aa237d14d62f783007cbb2d6ccff1b69a7b3142";
+      sha256 = "aecb16b8b69fbcd65b3ce43595f00a67214616f85f936d9b8f395fda3bec1769";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/id/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/id/thunderbird-78.8.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "340b91be60235a91b1a130d68e9b5ddc16d63eba381cc59efd2d396764bf2327";
+      sha256 = "aea434ed29197b5a6afe21fe5b1fa361bf3ef17bee6cdb7fd3d1f5e76fd8b8ea";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/is/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/is/thunderbird-78.8.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4f3b255119669de976714089d11532342eb6c1ede95e98d8de09413cdaf28c4c";
+      sha256 = "7747d287ce2f13f8b136f9186168cfbcb7e9e9bf65d949dd9291f69afdd63999";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/it/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/it/thunderbird-78.8.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "1fdda6110ef1eec5702490dfb786fadeb6bbb73fa849526327baebdf3aeaf348";
+      sha256 = "0c5cbc6a5ccdb940e6e5ed2ec2970f9b252c9106e51d9342b665cc3625283c9f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ja/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ja/thunderbird-78.8.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "fd10c2307c71e143d76dfba7d26ea15a6a211878bcf1287128d5706018fb3083";
+      sha256 = "60b05dbf93b1947fa3fe8b3c85eb700f0e15ec702c0d1ffd1a9b494517482041";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ka/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ka/thunderbird-78.8.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "b796f8b6aaa28a23726afe915b741b7c89ed73f4e731bf7fad3848aade16001c";
+      sha256 = "0b80a9e27408e9ab91cbfe1682b5a0679723f22164390ddf6f77992b90bb6ec6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/kab/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/kab/thunderbird-78.8.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "35941699918a3177b092c650a73d8bc8f6d06bdf8cbc5c33e492d93f6cb0f198";
+      sha256 = "d7b61aaca643ad9e0e8a61256e5ff42d855353d93fdcfc40641046385196f7fa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/kk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/kk/thunderbird-78.8.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "3ea99defb54f2e672d48b424e842c876ad0ceacd87cd19cc643acb55586948ea";
+      sha256 = "c9140b1223585cb5c95c17cea964c0658875b24e4f126f67e13766cc2880daf1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ko/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ko/thunderbird-78.8.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "4cfa908b81773b57486b8144eb61c949c70615eafc1b3d050b6ceb6292958769";
+      sha256 = "3486ddea77036a357636235d2839d4e3abb8bb703d6b2aeab4dab7bd510d2975";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/lt/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/lt/thunderbird-78.8.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "0d668e8a27f7044c610cff1028f245d2952abf6320ce905365bd42a39df85c23";
+      sha256 = "07d85f0ad5ae0992076369c5e7082b1846c53122953de8e7cdb947ddbb741bfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ms/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ms/thunderbird-78.8.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "a632e60198e189d33e87a01c084179bdfb8f8c1d1547dfa4747dec325d1c04c7";
+      sha256 = "d063f14194c3e89a5379a9d9d0edd38f987040269cf69a0e60b1a2fe5e8773a1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nb-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/nb-NO/thunderbird-78.8.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d0336060f8e8b632462df91dc0e3ba33f2a7dbf1da6084d41961c05fbbedd46b";
+      sha256 = "129ee98d2f0d899664face9c7e4214b9f120141ffa230f5f195efd013e7bfcb0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/nl/thunderbird-78.8.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "4e9c1921dac5ce0008b7380d810d5ee4530c4d336c79c6a274c657ea338a4ca1";
+      sha256 = "df58d1e22671e09219719c86580dd605e6def1dc6f65c63306b5d3624382542a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/nn-NO/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/nn-NO/thunderbird-78.8.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "c33045aaa5d9054022431cf66f03ba2485ea7c68553ea245b73c8cf33b4458fc";
+      sha256 = "12041cf3f1edaa62eafa5b338b890482d85df33ca4b1506a007aa862d31a5c0c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pa-IN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/pa-IN/thunderbird-78.8.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "8b3810587f61e029a2536cb0eceb8b0b26656adf9ce17e8a7f020ed41b6e5724";
+      sha256 = "479250fc9203ec4895341ea37bda544c47c972ea12b8e2462539533c90a7b384";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/pl/thunderbird-78.8.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "01c8e6ba91037b8e5f713fd7d0dc9b6025aa3dc83fd8b13f1490dd849ec5e87f";
+      sha256 = "a4563a29cea75560c0de441a1fc311cdefb938bc91feea283b8e18da7252a3fe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pt-BR/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/pt-BR/thunderbird-78.8.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "9ab3d18699c6de55a198028592da01b576d67920375cbc2154d356bdf7fd4ccc";
+      sha256 = "45414f14d31eb81f2b590fb702d5a586069c32a1b854116dd88a4104abd15fce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/pt-PT/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/pt-PT/thunderbird-78.8.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "3446b5b82aeb058ff880d82fa7da923231a7104bcef77bc08f640490c79b24b5";
+      sha256 = "f12515b2b18a1cd7040d35e9452a6b2b4f3bd2ebc277815d9f85167fcd61b645";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/rm/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/rm/thunderbird-78.8.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "0e1ba7a270021b2df2f189715ddd6b0d540c35dbfb3f45d8216b24e29c6ecd25";
+      sha256 = "ba4b770ef2ac9663120bd6b7f4f42647e995e6db2ca3bbdcbfeea9734e6ba985";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ro/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ro/thunderbird-78.8.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "9845b2e33d758474c44e46804c7c49255f3acf9f25c8afa299320828cefb3ec8";
+      sha256 = "cae153b7ba51b3c86568bf672fc13edf2029a2b6b5dfe44dc0b493bcb2228855";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/ru/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/ru/thunderbird-78.8.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "60dc7072a6dfa0723972522d4a06be75c99e6e1b423e68e91af276f2a325913b";
+      sha256 = "39241b2643770adde562ac748c69456eba9a4fcaef257c47bdc72938ee3119f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/si/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/si/thunderbird-78.8.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "fd08c36b8143196ca73aade09e3a8292bab0ce8b6e6d18705eed2594f342ce86";
+      sha256 = "8df14f85560561334caf28ad280e093fbaa8fa6af32fde417e8f29088a31ccb3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/sk/thunderbird-78.8.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "068d927b94908224c7a789bfe33d1e884228d82d3f30e573a0006136d5841c5f";
+      sha256 = "42ac111340581dc6f067d26f6aa51fb354e27d38af5b61deb34d6e79ec015011";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sl/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/sl/thunderbird-78.8.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "27d3a7f5549c48fa2724dc98b8df72bf2b843b0cc34d55371f050ca217cd2ed3";
+      sha256 = "07c234d2ec1e512a177a2f87713dcb3bd0d9b8a8683e840f767a041f127fe73a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sq/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/sq/thunderbird-78.8.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "b8d3ca545ff88c854b13e1ee89793b33df39f3d6713aae8fb4a2fa3be2d6f73f";
+      sha256 = "da4a269007d5cc4f4077a5f6da98d5d34fceb7a4043598bee4776aaf867a64d3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/sr/thunderbird-78.8.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "10d0f70e52bbb8b0978ff6c26359120bb537cc9f15b47a93744ad8ee6dbd7b96";
+      sha256 = "6719dba0153c8f60b4ce6fb0d68b2f52f8b7840f5659a1ad884bf2a4b6455a3a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/sv-SE/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/sv-SE/thunderbird-78.8.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "15fd51de4cd82eaadfb0c9a5231cd6c8f83a58eca1eb66acafa037ca8ae76767";
+      sha256 = "140c6b0ea0171443714951064d60de5372c85e04e2c3282a86e7b11e682737c1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/th/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/th/thunderbird-78.8.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "07a6289101aa3d105c2a358ea53d1045bfc3616cd909e57b5a577bcba38dba0f";
+      sha256 = "99a659426d84ee98f94c9162ce49c1d098529a233ffb7cbfd5a7e26eda23b554";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/tr/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/tr/thunderbird-78.8.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "6253f5e59cf07cfe8bbdd566b27ad9cd56aab29f40c42df1368d7e14d064a27a";
+      sha256 = "e5bdb857cb059119c1a3de847947125d2caeef7a5c9f75e0e1a4f3bdaa8c168b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/uk/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/uk/thunderbird-78.8.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "e4e37d8194d8df48810afc47463d044e4b4b9fdd0752b0199e4c6a7aa1b46d60";
+      sha256 = "3a6530c8bb8976aec06b71fdb3eb4a4fcf3fef27668f1323b7c934026f9b7429";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/uz/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/uz/thunderbird-78.8.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "983d9701e367017ada3b6583d9e6985a73609c642968f1c82ec9b08644fe82b5";
+      sha256 = "ce246a13ed9cc8a03212f0b74f24907e75502a8cdf9ebf59f0153882dfa96c28";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/vi/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/vi/thunderbird-78.8.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b743d0c18257880cf0d7c463a0e39f6029fede79a534bef9dbd5ffe6ba3b10e7";
+      sha256 = "bfa8c72c3c2cf08f36bb13b9844574aecb3e69636ede5a60e24a7d816ee7aa0e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/zh-CN/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/zh-CN/thunderbird-78.8.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "8cc5d4a05eef0498fe12476e7ee7a91dce0c69234b78278cc7985505708ff8ab";
+      sha256 = "68c8f68454806be4cff160621b97c897a752db5498c48dd45889f861d741c0b3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.7.1/linux-i686/zh-TW/thunderbird-78.7.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.8.0/linux-i686/zh-TW/thunderbird-78.8.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5070474b2ac89d09e45bced9513b0f317d4dce76c57ce5f82c75feafb6d49ec3";
+      sha256 = "79ad159cb37d2c68a26dba5298cc62eb25a0f46c845bd3f556e198658b62bede";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index d91239c3a6e..78a9ef0dbb3 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -73,13 +73,13 @@ assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "78.7.1";
+  version = "78.8.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "328p14mgcam4dxx0asbgp4v2v559bwbw7z2kxd5yfwkna040r9ccrkkirma5580z9vkwb0rcjlmai9wrbacxrg8hg65d8vylvnkampy";
+      "18hx7qi4nwfbygh1ykczvs7vyvmcqwj4x838lpillimzwjd7chyrbjz2b2h15ckfgndbrxmwvvd3v50bj04xpqigvz18g46nav1mly7";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 2eeb151bebe..4432d9ddeec 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -1,22 +1,15 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkg-config, qt5
+{ lib, stdenv, fetchFromGitHub, pkg-config, qt5
 , avahi, boost, libopus, libsndfile, protobuf, speex, libcap
 , alsaLib, python3
 , rnnoise
-, jackSupport ? false, libjack2 ? null
-, speechdSupport ? false, speechd ? null
-, pulseSupport ? false, libpulseaudio ? null
-, iceSupport ? false, zeroc-ice ? null
-, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null
+, jackSupport ? false, libjack2
+, speechdSupport ? false, speechd
+, pulseSupport ? false, libpulseaudio
+, iceSupport ? false, zeroc-ice
+, grpcSupport ? false, grpc, c-ares, abseil-cpp, which
 , nixosTests
 }:
 
-assert jackSupport -> libjack2 != null;
-assert speechdSupport -> speechd != null;
-assert pulseSupport -> libpulseaudio != null;
-assert iceSupport -> zeroc-ice != null;
-assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
-
-with lib;
 let
   generic = overrides: source: qt5.mkDerivation (source // overrides // {
     pname = overrides.type;
@@ -42,8 +35,8 @@ let
       "CONFIG+=no-bundled-opus"
       "CONFIG+=no-bundled-speex"
       "DEFINES+=PLUGIN_PATH=${placeholder "out"}/lib/mumble"
-    ] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
-      ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
+    ] ++ lib.optional (!speechdSupport) "CONFIG+=no-speechd"
+      ++ lib.optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
       ++ (overrides.configureFlags or [ ]);
 
     preConfigure = ''
@@ -64,11 +57,9 @@ let
       runHook postInstall
     '';
 
-    enableParallelBuilding = true;
-
     passthru.tests.connectivity = nixosTests.mumble;
 
-    meta = {
+    meta = with lib; {
       description = "Low-latency, high quality voice chat software";
       homepage = "https://mumble.info";
       license = licenses.bsd3;
@@ -82,16 +73,16 @@ let
 
     nativeBuildInputs = [ qt5.qttools ];
     buildInputs = [ libopus libsndfile speex qt5.qtsvg rnnoise ]
-      ++ optional stdenv.isLinux alsaLib
-      ++ optional jackSupport libjack2
-      ++ optional speechdSupport speechd
-      ++ optional pulseSupport libpulseaudio;
+      ++ lib.optional stdenv.isLinux alsaLib
+      ++ lib.optional jackSupport libjack2
+      ++ lib.optional speechdSupport speechd
+      ++ lib.optional pulseSupport libpulseaudio;
 
     configureFlags = [
       "CONFIG+=no-server"
     ];
 
-    NIX_CFLAGS_COMPILE = optional speechdSupport "-I${speechd}/include/speech-dispatcher";
+    NIX_CFLAGS_COMPILE = lib.optional speechdSupport "-I${speechd}/include/speech-dispatcher";
 
     installPhase = ''
       # bin stuff
@@ -113,18 +104,18 @@ let
   server = source: generic {
     type = "murmur";
 
-    postPatch = optional iceSupport ''
+    postPatch = lib.optional iceSupport ''
       grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc-ice.dev}/share/ice/,g'
     '';
 
     configureFlags = [
       "CONFIG+=no-client"
-    ] ++ optional (!iceSupport) "CONFIG+=no-ice"
-      ++ optional grpcSupport "CONFIG+=grpc";
+    ] ++ lib.optional (!iceSupport) "CONFIG+=no-ice"
+      ++ lib.optional grpcSupport "CONFIG+=grpc";
 
     buildInputs = [ libcap ]
-      ++ optional iceSupport zeroc-ice
-      ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
+      ++ lib.optional iceSupport zeroc-ice
+      ++ lib.optionals grpcSupport [ grpc c-ares abseil-cpp which ];
 
     installPhase = ''
       # bin stuff
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 42486458b2c..163faf02af0 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -12,6 +12,7 @@
 , qtkeychain
 , qttools
 , qtwebengine
+, qtwebsockets
 , qtquickcontrols2
 , qtgraphicaleffects
 , sqlite
@@ -19,16 +20,17 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.0.3";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "0idh8i71jivdjjs2y62l22yl3qxwgcr0hf53dad587bzgkkkr223";
+    sha256 = "sha256-8Ql6tOvWOjAvMJA87WlT9TbpnbciBsjDxRuYlMVi/m8=";
   };
 
   patches = [
+    # Explicitly move dbus configuration files to the store path rather than `/etc/dbus-1/services`.
     ./0001-Explicitly-copy-dbus-files-into-the-store-dir.patch
   ];
 
@@ -40,6 +42,7 @@ mkDerivation rec {
   buildInputs = [
     inotify-tools
     libcloudproviders
+    libsecret
     openssl
     pcre
     qtbase
@@ -48,13 +51,10 @@ mkDerivation rec {
     qtwebengine
     qtquickcontrols2
     qtgraphicaleffects
+    qtwebsockets
     sqlite
   ];
 
-  qtWrapperArgs = [
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
-  ];
-
   cmakeFlags = [
     "-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
     "-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
@@ -63,7 +63,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Nextcloud themed desktop client";
     homepage = "https://nextcloud.com";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ caugner ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index 77d08692f62..124ee9a20ea 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -1,30 +1,33 @@
 {
   lib,
   buildPythonApplication,
-  stdenv,
   substituteAll,
   fetchFromGitHub,
   isPy3k,
   flask,
   flask-httpauth,
+  flask-socketio,
   stem,
+  psutil,
   pyqt5,
   pycrypto,
-  pysocks,
-  pytest,
+  pyside2,
+  pytestCheckHook,
+  qrcode,
   qt5,
   requests,
+  unidecode,
   tor,
   obfs4,
 }:
 
 let
-  version = "2.2";
+  version = "2.3.1";
   src = fetchFromGitHub {
     owner = "micahflee";
     repo = "onionshare";
     rev = "v${version}";
-    sha256 = "0m8ygxcyp3nfzzhxs2dfnpqwh1vx0aws44lszpnnczz4fks3a5j4";
+    sha256 = "sha256-H09x3OF6l1HLHukGPvV2rZUjW9fxeKKMZkKbY9a2m9I=";
   };
   meta = with lib; {
     description = "Securely and anonymously send and receive files";
@@ -51,63 +54,76 @@ let
     maintainers = with maintainers; [ lourkeur ];
   };
 
-  common = buildPythonApplication {
-    pname = "onionshare-common";
-    inherit version meta src;
-
+in rec {
+  onionshare = buildPythonApplication {
+    pname = "onionshare-cli";
+    inherit version meta;
+    src = "${src}/cli";
+    patches = [
+      # hardcode store paths of dependencies
+      (substituteAll {
+        src = ./fix-paths.patch;
+        inherit tor obfs4;
+        inherit (tor) geoip;
+      })
+    ];
     disable = !isPy3k;
     propagatedBuildInputs = [
       flask
       flask-httpauth
+      flask-socketio
       stem
-      pyqt5
+      psutil
       pycrypto
-      pysocks
       requests
+      unidecode
     ];
+
     buildInputs = [
       tor
       obfs4
     ];
 
+    checkInputs = [
+      pytestCheckHook
+    ];
+
+    preCheck = ''
+      # Tests use the home directory
+      export HOME="$(mktemp -d)"
+    '';
+  };
+
+  onionshare-gui = buildPythonApplication {
+    pname = "onionshare";
+    inherit version meta;
+    src = "${src}/desktop/src";
     patches = [
+      # hardcode store paths of dependencies
       (substituteAll {
-        src = ./fix-paths.patch;
+        src = ./fix-paths-gui.patch;
         inherit tor obfs4;
         inherit (tor) geoip;
       })
     ];
-    postPatch = "substituteInPlace onionshare/common.py --subst-var-by common $out";
 
-    doCheck = false;
-  };
-in
-{
-  onionshare = stdenv.mkDerivation {
-    pname = "onionshare";
-    inherit version meta;
+    disable = !isPy3k;
+    propagatedBuildInputs = [
+      onionshare
+      pyqt5
+      pyside2
+      psutil
+      qrcode
+    ];
 
-    dontUnpack = true;
+    nativeBuildInputs = [ qt5.wrapQtAppsHook ];
 
-    inherit common;
-    installPhase = ''
-      mkdir -p $out/bin
-      cp $common/bin/onionshare -t $out/bin
+    preFixup = ''
+      wrapQtApp $out/bin/onionshare
     '';
-  };
-  onionshare-gui = stdenv.mkDerivation {
-    pname = "onionshare-gui";
-    inherit version meta;
 
-    nativeBuildInputs = [ qt5.wrapQtAppsHook ];
-
-    dontUnpack = true;
+    doCheck = false;
 
-    inherit common;
-    installPhase = ''
-      mkdir -p $out/bin
-      cp $common/bin/onionshare-gui -t $out/bin
-      wrapQtApp $out/bin/onionshare-gui
-    '';
+    pythonImportsCheck = [ "onionshare" ];
   };
 }
diff --git a/pkgs/applications/networking/onionshare/fix-paths-gui.patch b/pkgs/applications/networking/onionshare/fix-paths-gui.patch
new file mode 100644
index 00000000000..cdc2e3d47dd
--- /dev/null
+++ b/pkgs/applications/networking/onionshare/fix-paths-gui.patch
@@ -0,0 +1,37 @@
+
+--- a/onionshare/gui_common.py
++++ b/onionshare/gui_common.py
+@@ -376,29 +376,10 @@ class GuiCommon:
+         }
+ 
+     def get_tor_paths(self):
+-        if self.common.platform == "Linux":
+-            tor_path = shutil.which("tor")
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
+-        elif self.common.platform == "Windows":
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "Tor", "tor.exe")
+-            obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
+-        elif self.common.platform == "Darwin":
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "tor")
+-            obfs4proxy_file_path = os.path.join(base_path, "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "geoip6")
+-        elif self.common.platform == "BSD":
+-            tor_path = "/usr/local/bin/tor"
+-            tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
+-            tor_geo_ipv6_file_path = "/usr/local/share/tor/geoip6"
+-            obfs4proxy_file_path = "/usr/local/bin/obfs4proxy"
++        tor_path = "@tor@/bin/tor"
++        tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
++        tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
++        obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
+ 
+         return (
+             tor_path,
diff --git a/pkgs/applications/networking/onionshare/fix-paths.patch b/pkgs/applications/networking/onionshare/fix-paths.patch
index ddd0c75334b..a290dd88410 100644
--- a/pkgs/applications/networking/onionshare/fix-paths.patch
+++ b/pkgs/applications/networking/onionshare/fix-paths.patch
@@ -1,68 +1,31 @@
-diff --git a/onionshare/common.py b/onionshare/common.py
-index 3373462..7fd245b 100644
---- a/onionshare/common.py
-+++ b/onionshare/common.py
-@@ -87,66 +87,16 @@ class Common(object):
-                 ),
-                 "share",
-             )
--            if not os.path.exists(prefix):
--                # While running tests during stdeb bdist_deb, look 3 directories up for the share folder
--                prefix = os.path.join(
--                    os.path.dirname(
--                        os.path.dirname(os.path.dirname(os.path.dirname(prefix)))
--                    ),
--                    "share",
--                )
--
--        elif self.platform == "BSD" or self.platform == "Linux":
--            # Assume OnionShare is installed systemwide in Linux, since we're not running in dev mode
--            prefix = os.path.join(sys.prefix, "share/onionshare")
--
--        elif getattr(sys, "frozen", False):
--            # Check if app is "frozen"
--            # https://pythonhosted.org/PyInstaller/#run-time-information
--            if self.platform == "Darwin":
--                prefix = os.path.join(sys._MEIPASS, "share")
--            elif self.platform == "Windows":
--                prefix = os.path.join(os.path.dirname(sys.executable), "share")
-+        else:
-+            prefix = "@common@/share/onionshare"
-
-         return os.path.join(prefix, filename)
-
+--- a/onionshare_cli/common.py
++++ b/onionshare_cli/common.py
+@@ -86,33 +86,10 @@ class Common:
+         return path
+ 
      def get_tor_paths(self):
 -        if self.platform == "Linux":
--            tor_path = "/usr/bin/tor"
--            tor_geo_ip_file_path = "/usr/share/tor/geoip"
--            tor_geo_ipv6_file_path = "/usr/share/tor/geoip6"
--            obfs4proxy_file_path = "/usr/bin/obfs4proxy"
+-            tor_path = shutil.which("tor")
+-            if not tor_path:
+-                raise CannotFindTor()
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
 -        elif self.platform == "Windows":
--            base_path = os.path.join(
--                os.path.dirname(os.path.dirname(self.get_resource_path(""))), "tor"
--            )
--            tor_path = os.path.join(os.path.join(base_path, "Tor"), "tor.exe")
--            obfs4proxy_file_path = os.path.join(
--                os.path.join(base_path, "Tor"), "obfs4proxy.exe"
--            )
--            tor_geo_ip_file_path = os.path.join(
--                os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip"
--            )
--            tor_geo_ipv6_file_path = os.path.join(
--                os.path.join(os.path.join(base_path, "Data"), "Tor"), "geoip6"
--            )
+-            base_path = self.get_resource_path("tor")
+-            tor_path = os.path.join(base_path, "Tor", "tor.exe")
+-            obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe")
+-            tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip")
+-            tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6")
 -        elif self.platform == "Darwin":
--            base_path = os.path.dirname(
--                os.path.dirname(os.path.dirname(self.get_resource_path("")))
--            )
--            tor_path = os.path.join(base_path, "Resources", "Tor", "tor")
--            tor_geo_ip_file_path = os.path.join(base_path, "Resources", "Tor", "geoip")
--            tor_geo_ipv6_file_path = os.path.join(
--                base_path, "Resources", "Tor", "geoip6"
--            )
--            obfs4proxy_file_path = os.path.join(
--                base_path, "Resources", "Tor", "obfs4proxy"
--            )
+-            tor_path = shutil.which("tor")
+-            if not tor_path:
+-                raise CannotFindTor()
+-            obfs4proxy_file_path = shutil.which("obfs4proxy")
+-            prefix = os.path.dirname(os.path.dirname(tor_path))
+-            tor_geo_ip_file_path = os.path.join(prefix, "share/tor/geoip")
+-            tor_geo_ipv6_file_path = os.path.join(prefix, "share/tor/geoip6")
 -        elif self.platform == "BSD":
 -            tor_path = "/usr/local/bin/tor"
 -            tor_geo_ip_file_path = "/usr/local/share/tor/geoip"
@@ -72,63 +35,6 @@ index 3373462..7fd245b 100644
 +        tor_geo_ip_file_path = "@geoip@/share/tor/geoip"
 +        tor_geo_ipv6_file_path = "@geoip@/share/tor/geoip6"
 +        obfs4proxy_file_path = "@obfs4@/bin/obfs4proxy"
-
+ 
          return (
              tor_path,
-diff --git a/setup.py b/setup.py
-index 9af72fc..53ca47b 100644
---- a/setup.py
-+++ b/setup.py
-@@ -70,41 +70,41 @@ classifiers = [
- ]
- data_files = [
-     (
--        os.path.join(sys.prefix, "share/applications"),
-+        "share/applications",
-         ["install/org.onionshare.OnionShare.desktop"],
-     ),
-     (
--        os.path.join(sys.prefix, "share/icons/hicolor/scalable/apps"),
-+        "share/icons/hicolor/scalable/apps",
-         ["install/org.onionshare.OnionShare.svg"],
-     ),
-     (
--        os.path.join(sys.prefix, "share/metainfo"),
-+        "share/metainfo",
-         ["install/org.onionshare.OnionShare.appdata.xml"],
-     ),
--    (os.path.join(sys.prefix, "share/onionshare"), file_list("share")),
--    (os.path.join(sys.prefix, "share/onionshare/images"), file_list("share/images")),
--    (os.path.join(sys.prefix, "share/onionshare/locale"), file_list("share/locale")),
-+    ( "share/onionshare", file_list("share")),
-+    ( "share/onionshare/images", file_list("share/images")),
-+    ( "share/onionshare/locale", file_list("share/locale")),
-     (
--        os.path.join(sys.prefix, "share/onionshare/templates"),
-+        "share/onionshare/templates",
-         file_list("share/templates"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/css"),
-+        "share/onionshare/static/css",
-         file_list("share/static/css"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/img"),
-+        "share/onionshare/static/img",
-         file_list("share/static/img"),
-     ),
-     (
--        os.path.join(sys.prefix, "share/onionshare/static/js"),
-+        "share/onionshare/static/js",
-         file_list("share/static/js"),
-     ),
- ]
- if not platform.system().endswith("BSD") and platform.system() != "DragonFly":
-     data_files.append(
-         (
--            "/usr/share/nautilus-python/extensions/",
-+            "share/nautilus-python/extensions/",
-             ["install/scripts/onionshare-nautilus.py"],
-         )
-     )
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index ff504aa7c01..3e5a23a3f38 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "seaweedfs";
-  version = "2.26";
+  version = "2.27";
 
   src = fetchFromGitHub {
     owner = "chrislusf";
     repo = "seaweedfs";
     rev = version;
-    sha256 = "sha256-l3lgN5x7bBUP9WwDkuHRJEjhL7wr2tZmpxr6MqHoUYw=";
+    sha256 = "sha256-0KT/5seJs8GkatL4BsZ+r71t6AJrpHB6Q92sCvplKcQ=";
   };
 
   vendorSha256 = "sha256-uT/Y/TfpqDyOUElc4M/w/v77bWF3tTJz+Yu0KRMcxk4=";
diff --git a/pkgs/applications/networking/websocketd/default.nix b/pkgs/applications/networking/websocketd/default.nix
index c287abb0de2..636443c9b85 100644
--- a/pkgs/applications/networking/websocketd/default.nix
+++ b/pkgs/applications/networking/websocketd/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "websocketd";
-  version = "0.3.1";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "joewalnes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qc4yi4kwy7bfi3fb17w58ff0i95yi6m4syldh8j79930syr5y8q";
+    sha256 = "sha256-cp4iBSQ6Cd0+NPZ2i79Mulg1z17u//OCm3yoArbZEHs=";
   };
 
-  vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
+  vendorSha256 = "sha256-i5IPJ3srUXL7WWjBW9w803VSoyjwA5JgPWKsAckPYxY=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/office/bookworm/default.nix b/pkgs/applications/office/bookworm/default.nix
index 8ea277e1af3..8bd1d8f974b 100644
--- a/pkgs/applications/office/bookworm/default.nix
+++ b/pkgs/applications/office/bookworm/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, gnome3, glib, webkitgtk, libgee
+{ lib, stdenv, fetchFromGitHub, pantheon, vala, python3, python2, pkg-config, libxml2, meson, ninja, gtk3, glib, webkitgtk, libgee
 , gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook
 , appstream, desktop-file-utils }:
 
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index c917c439691..c9b1099f8b9 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
+{ stdenv, fetchurl, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
 , IOCompress, zlib, libjpeg, expat, freetype, libwpd
 , libxml2, db, curl, fontconfig, libsndfile, neon
 , bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 739b003bbef..91673ed146a 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.89";
+  version = "5.0.95";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
+    sha256 = "16rahl14clgnl7gzpw7rxx23yxbw1nbrz219q051zkjkkw5ai8lv";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
       stdenv.cc.cc
     ];
 
-  patchPhase = ''
+  postPatch = ''
     sed -i '/pref("app.update.enabled", true);/c\pref("app.update.enabled", false);' defaults/preferences/prefs.js
   '';
 
@@ -103,33 +103,36 @@ stdenv.mkDerivation rec {
     mimeType = "text/plain";
   };
 
-  installPhase =
-  ''
-     mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
-     cp -r * "$prefix/usr/lib/zotero-bin-${version}"
-     mkdir -p "$out/bin"
-     ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
+  installPhase = ''
+    runHook preInstall
 
-     # install desktop file and icons.
-     mkdir -p $out/share/applications
-     cp ${desktopItem}/share/applications/* $out/share/applications/
-     for size in 16 32 48 256; do
-       install -Dm444 chrome/icons/default/default$size.png \
-         $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
-     done
+    mkdir -p "$prefix/usr/lib/zotero-bin-${version}"
+    cp -r * "$prefix/usr/lib/zotero-bin-${version}"
+    mkdir -p "$out/bin"
+    ln -s "$prefix/usr/lib/zotero-bin-${version}/zotero" "$out/bin/"
 
-     for executable in \
-       zotero-bin plugin-container \
-       updater minidump-analyzer
-     do
-       if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
-         patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-           "$out/usr/lib/zotero-bin-${version}/$executable"
-       fi
-     done
-     find . -executable -type f -exec \
-       patchelf --set-rpath "$libPath" \
-         "$out/usr/lib/zotero-bin-${version}/{}" \;
+    # install desktop file and icons.
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications/
+    for size in 16 32 48 256; do
+      install -Dm444 chrome/icons/default/default$size.png \
+        $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
+    done
+
+    for executable in \
+      zotero-bin plugin-container \
+      updater minidump-analyzer
+    do
+      if [ -e "$out/usr/lib/zotero-bin-${version}/$executable" ]; then
+        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/zotero-bin-${version}/$executable"
+      fi
+    done
+    find . -executable -type f -exec \
+      patchelf --set-rpath "$libPath" \
+        "$out/usr/lib/zotero-bin-${version}/{}" \;
+
+    runHook postInstall
   '';
 
   preFixup = ''
@@ -141,7 +144,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ i077 ];
   };
 }
diff --git a/pkgs/applications/printing/pappl/default.nix b/pkgs/applications/printing/pappl/default.nix
index 4c7b60c125c..de0b9bada53 100644
--- a/pkgs/applications/printing/pappl/default.nix
+++ b/pkgs/applications/printing/pappl/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pappl";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4evyOrPd8zb5y00L8h2t++ayW1S8WQ5P+6MXe6eju68=";
+    sha256 = "sha256-L4ptgAJAvyTUCVl6YotA8DnlISc9PwZM0WjXyOvxGJg=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix
index 34586384737..9ad53502cd7 100644
--- a/pkgs/applications/science/biology/star/default.nix
+++ b/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "star";
-  version = "2.7.7a";
+  version = "2.7.8a";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "sha256-0K49yjcnTzC56ZIB20OeTiMJ5EW8mRx+xEpyWEfFcts=";
+    sha256 = "sha256-2qqdCan67bcoUGgr5ro2LGGHDAyS/egTrT8pWX1chX0=";
   };
 
   sourceRoot = "source/source";
diff --git a/pkgs/applications/science/electronics/diylc/default.nix b/pkgs/applications/science/electronics/diylc/default.nix
index 70d07460a75..dac6713a495 100644
--- a/pkgs/applications/science/electronics/diylc/default.nix
+++ b/pkgs/applications/science/electronics/diylc/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "diylc";
-  version = "4.15.1";
+  version = "4.17.0";
   files = {
     app = fetchurl {
       url = "https://github.com/bancika/diy-layout-creator/releases/download/v${version}/diylc-${version}.zip";
-      sha256 = "09vzbxas654n8npxljqljf930y5gcjfvv3r4dv97dwk5sy66xvaf";
+      sha256 = "0cysqkrddhbs7rprm8xm21c286mz4apw66fxakhzlg50kjn0nwjv";
     };
     icon16 = fetchurl {
       url = "https://raw.githubusercontent.com/bancika/diy-layout-creator/v${version}/diylc/diylc-core/src/org/diylc/core/images/icon_small.png";
@@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ unzip ];
 
   installPhase = ''
+    runHook preInstall
+
     install -d $out/share/diylc
     ${unzip}/bin/unzip -UU ${files.app} -d $out/share/diylc
     rm $out/share/diylc/diylc.exe
@@ -59,6 +61,8 @@ stdenv.mkDerivation rec {
     ${jre8}/bin/java -Xms512m -Xmx2048m -Dorg.diylc.scriptRun=true -Dfile.encoding=UTF-8 -cp diylc.jar:lib org.diylc.DIYLCStarter
     EOF
     chmod +x $out/bin/diylc
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -67,5 +71,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/bancika/diy-layout-creator/releases";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ eduardosm ];
   };
 }
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index 3ed6234b4f8..1a5c0de5fb7 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv
-, fetchFromGitLab
+{ lib
+, stdenv
 , cmake
 , libGLU
 , libGL
@@ -18,9 +18,7 @@
 , pcre
 , libpthreadstubs
 , libXdmcp
-, fetchpatch
 , lndir
-, callPackage
 
 , stable
 , baseName
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 88bb7978881..dcf51e657c4 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -15,19 +15,15 @@
 , stable ? true
 , oceSupport ? false
 , withOCE ? false
-, opencascade
 , withOCCT ? false
 , withOCC ? true
-, opencascade-occt
 , ngspiceSupport ? false
 , withNgspice ? true
 , libngspice
 , scriptingSupport ? false
 , withScripting ? true
-, swig
 , python3
 , debug ? false
-, valgrind
 , with3d ? true
 , withI18n ? true
 , srcs ? { }
diff --git a/pkgs/applications/science/electronics/ngspice/default.nix b/pkgs/applications/science/electronics/ngspice/default.nix
index f8fbdffc634..0eed8b1692a 100644
--- a/pkgs/applications/science/electronics/ngspice/default.nix
+++ b/pkgs/applications/science/electronics/ngspice/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ngspice";
-  version = "33";
+  version = "34";
 
   src = fetchurl {
     url = "mirror://sourceforge/ngspice/ngspice-${version}.tar.gz";
-    sha256 = "1wa1hmpn13spmxqgbb1m7vgy32mwvjqwrxhymzll8z65q5nbd7dr";
+    sha256 = "sha256-ImP//GaUdUlyr3By7wHP5irHkIANrWUbwpC/yueb17U=";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix
index 13364beed5c..1cf08741206 100644
--- a/pkgs/applications/science/logic/acgtk/default.nix
+++ b/pkgs/applications/science/logic/acgtk/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchurl, dune, ocamlPackages }:
+{ lib, stdenv, fetchurl, dune_2, ocamlPackages }:
 
 stdenv.mkDerivation {
 
   pname = "acgtk";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchurl {
-    url = "https://acg.loria.fr/software/acg-1.5.1-20191113.tar.gz";
-    sha256 = "17595qfwhzz5q091ak6i6bg5wlppbn8zfn58x3hmmmjvx2yfajn1";
+    url = "https://acg.loria.fr/software/acg-1.5.2-20201204.tar.gz";
+    sha256 = "09yax7dyw8kgwzlb69r9d20y7rrymzwi3bbq2dh0qdq01vjz2xwq";
   };
 
-  buildInputs = [ dune ] ++ (with ocamlPackages; [
+  buildInputs = [ dune_2 ] ++ (with ocamlPackages; [
     ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir mtime yojson
   ]);
 
-  buildPhase = "dune build";
+  buildPhase = "dune build --profile=release";
 
   installPhase = ''
     dune install --prefix $out --libdir $OCAMLFIND_DESTDIR
diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix
index 519b1f98138..dd72d148e29 100644
--- a/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -9,20 +9,22 @@ let
     sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
   };
 
+  useDune2 = true;
+
   nativeBuildInputs = [ which ];
 
 in
 
 let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-lib";
-  inherit version src nativeBuildInputs;
+  inherit version src useDune2 nativeBuildInputs;
   configureFlags = pname;
   propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
 }; in
 
 let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-parsers";
-  inherit version src nativeBuildInputs;
+  inherit version src useDune2 nativeBuildInputs;
   configureFlags = pname;
   buildInputs = with ocamlPackages; [ menhir ];
   propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
@@ -30,7 +32,7 @@ let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
 
 ocamlPackages.buildDunePackage {
 
-  inherit pname version src nativeBuildInputs;
+  inherit pname version src useDune2 nativeBuildInputs;
 
   configureFlags = pname;
 
diff --git a/pkgs/applications/science/logic/hol/default.nix b/pkgs/applications/science/logic/hol/default.nix
index 6fc7286154a..569c455e653 100644
--- a/pkgs/applications/science/logic/hol/default.nix
+++ b/pkgs/applications/science/logic/hol/default.nix
@@ -3,14 +3,14 @@
 
 let
   pname = "hol4";
-  vnum = "10";
+  vnum = "14";
 in
 
 let
   version = "k.${vnum}";
   longVersion = "kananaskis-${vnum}";
   holsubdir = "hol-${longVersion}";
-  kernelFlag = if experimentalKernel then "-expk" else "-stdknl";
+  kernelFlag = if experimentalKernel then "--expk" else "--stdknl";
 in
 
 let
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/hol/hol/${longVersion}/${holsubdir}.tar.gz";
-    sha256 = "0x2wxksr305h1lrbklf6p42lp09rbhb4rsh74g0l70sgapyiac9b";
+    sha256 = "6Mc/qsEjzxGqzt6yP6x/1Tmqpwc1UDGlwV1Gl+4pMsY=";
   };
 
   buildInputs = [polymlEnableShared graphviz fontconfig liberation_ttf];
@@ -46,8 +46,8 @@ stdenv.mkDerivation {
     cd ${holsubdir}
 
     substituteInPlace tools/Holmake/Holmake_types.sml \
-      --replace "\"/bin/mv\"" "\"mv\"" \
-      --replace "\"/bin/cp\"" "\"cp\""
+      --replace "\"/bin/" "\"" \
+
 
     for f in tools/buildutils.sml help/src-sml/DOT;
     do
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
 
     poly < tools/smart-configure.sml
 
-    bin/build ${kernelFlag} -symlink
+    bin/build ${kernelFlag}
 
     mkdir -p "$out/bin"
     ln -st $out/bin  $out/src/${holsubdir}/bin/*
@@ -81,8 +81,7 @@ stdenv.mkDerivation {
     '';
     homepage = "http://hol.sourceforge.net/";
     license = licenses.bsd3;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ mudri ];
-    platforms = with platforms; linux;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index 256e7b45bca..456ce878e49 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -42,7 +42,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "C-style arbitrary precision calculator";
     homepage = "http://www.isthe.com/chongo/tech/comp/calc/";
-    license = licenses.lgpl21Only;
+    # The licensing situation depends on readline (see section 3 of the LGPL)
+    # If linked against readline then GPLv2 otherwise LGPLv2.1
+    license = with licenses; if enableReadline then gpl2Only else lgpl21Only;
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.all;
   };
diff --git a/pkgs/applications/science/math/nasc/default.nix b/pkgs/applications/science/math/nasc/default.nix
index 931e83defdc..b55e4047fe4 100644
--- a/pkgs/applications/science/math/nasc/default.nix
+++ b/pkgs/applications/science/math/nasc/default.nix
@@ -9,7 +9,6 @@
 , gtk3
 , glib
 , pantheon
-, libsoup
 , gtksourceview
 , libgee
 , nix-update-script
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index 26ca10e3f3f..e41d9bee5b4 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib
+{ stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
 , future, psutil, setuptools
 # Optional dependencies:
 , bottle, pysnmp
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 a4080fbdacb..a52b11bff92 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "03bsramq75i5sw08gdmjh94n1xh743mq6h4dzaix78i531x7y34i";
+    sha256 = "1wq8k626w3w2cnqp9gqdk7g4pjnqjjybkjgbfq5cvqsql3jdjg65";
   };
 
   vendorSha256 = "0nk5axyr3nd9cbk8wswfhqf25dks22mky3rdn6ba9s0fpxhhkr5g";
diff --git a/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
index f56ce386e42..ee9a532a7d9 100644
--- a/pkgs/applications/version-management/git-and-tools/ghq/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ghq";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
+    sha256 = "sha256-6oRyT/i+PndmjWBNJQzgrysE7jXiL/hAwwN++uCs6ZI=";
   };
 
-  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+  vendorSha256 = "sha256-5Eth9v98z1gxf1Fz5Lbn2roX7dSBmA7GRzg8uvT0hTI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/version-management/git-and-tools/lab/default.nix b/pkgs/applications/version-management/git-and-tools/lab/default.nix
index 41c4e653a63..a9138fa0c87 100644
--- a/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "lab";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "zaquestion";
     repo = "lab";
     rev = "v${version}";
-    sha256 = "1l6xsikd1113qd4y0mvjsl64gbi4327m9v4d593f27fxink39j8s";
+    sha256 = "sha256-EQqbWM/4CInFNndfD+k7embPUFLXgxRT44e/+Ik2TDs=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "07zl5xhzgrgr5skba6cds5nal58pllf10gak0ap62j1k9gk2ych2";
+  vendorSha256 = "sha256-T6kGhje3K2HnR8xRuio6AsYbSwIdbWvAk3ZSnbm1NsA=";
 
   doCheck = false;
 
@@ -33,6 +33,6 @@ buildGoModule rec {
     description = "Lab wraps Git or Hub, making it simple to clone, fork, and interact with repositories on GitLab";
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
-    maintainers = with maintainers; [ marsam dtzWill ];
+    maintainers = with maintainers; [ marsam dtzWill SuperSandro2000 ];
   };
 }
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 268098b2d2d..89e3a5ea0b5 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -45,7 +45,6 @@ python3.pkgs.buildPythonApplication rec {
     gtksourceview4
     gsettings-desktop-schemas
     gnome3.adwaita-icon-theme
-    gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -53,6 +52,10 @@ python3.pkgs.buildPythonApplication rec {
     pycairo
   ];
 
+  # gobject-introspection and some other similar setup hooks do not currently work with strictDeps.
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/pkgs/applications/video/catt/default.nix b/pkgs/applications/video/catt/default.nix
index d22657d651c..e60acf87da6 100644
--- a/pkgs/applications/video/catt/default.nix
+++ b/pkgs/applications/video/catt/default.nix
@@ -1,32 +1,26 @@
 { lib, python3 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-      PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
-        version = "6.0.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "05f8r3b2pdqbl76hwi5sv2xdi1r7g9lgm69x8ja5g22mn7ysmghm";
-        };
-      });
-    };
-  };
+with python3.pkgs;
 
-in with py.pkgs; buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "catt";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vq1wg79b7855za6v6bsfgypm0v3b4wakap4rash45mhzbgjj0kq";
+    sha256 = "sha256-6RUeinHhAvvSz38hHQP5/MXNiY00rCM8k2ONaFYbwPc=";
   };
 
   propagatedBuildInputs = [
-    youtube-dl PyChromecast click ifaddr requests
+    click
+    ifaddr
+    PyChromecast
+    requests
+    youtube-dl
   ];
 
   doCheck = false; # attempts to access various URLs
+  pythonImportsCheck = [ "catt" ];
 
   meta = with lib; {
     description = "Cast All The Things allows you to send videos from many, many online sources to your Chromecast";
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 1c3432b911d..a9d56cc9108 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
-    sha256 = "sha256-R1FnHgSziJ7eGL8GrUmheVZxOnUgn9TK6gObSSKe9j0=";
+    sha256 = "sha256-xgdCjo2RLp+EtUTfSiys7PURhnC00R9IOLPtz3427pA=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index f060a7b2e5a..2de5899aa3e 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, lib, fetchpatch, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
-, pkg-config, cmake, gnumake, yasm, python2Packages
+{ stdenv, lib, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
+, pkg-config, cmake, gnumake, yasm, python3Packages
 , libgcrypt, libgpgerror, libunistring
-, boost, avahi, lame, autoreconfHook
+, boost, avahi, lame
 , gettext, pcre-cpp, yajl, fribidi, which
 , openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
+, gtest, ncurses, spdlog
 , libxml2, systemd
-, alsaLib, libGLU, libGL, glew, fontconfig, freetype, ftgl
+, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
 , libjpeg, libpng, libtiff
 , libmpeg2, libsamplerate, libmad
 , libogg, libvorbis, flac, libxslt
@@ -42,17 +43,18 @@ assert udevSupport  -> udev != null;
 assert usbSupport   -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
 assert vdpauSupport -> libvdpau != null;
 assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
+assert useGbm || useWayland || x11Support;
 
 let
-  kodiReleaseDate = "20200728";
-  kodiVersion = "18.9";
-  rel = "Leia";
+  kodiReleaseDate = "20210219";
+  kodiVersion = "19.0";
+  rel = "Matrix";
 
   kodi_src = fetchFromGitHub {
     owner  = "xbmc";
     repo   = "xbmc";
     rev    = "${kodiVersion}-${rel}";
-    sha256 = "0nnf7823pixj6n2fkjc8rbdjwayvhlbglij2by4rnjzzfgmqmw20";
+    sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
   };
 
   cmakeProto = fetchurl {
@@ -87,9 +89,9 @@ let
 
   ffmpeg = kodiDependency rec {
     name    = "FFmpeg";
-    version = "4.0.3";
-    rev     = "${version}-${rel}-18.2";
-    sha256  = "1krsjlr949iy5l6ljxancza1yi6w1annxc5s6k283i9mb15qy8cy";
+    version = "4.3.1";
+    rev     = "${version}-${rel}-Beta1";
+    sha256  = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
     preConfigure = ''
       cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
       sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
@@ -151,6 +153,12 @@ let
     postPatch         = cmakeProtoPatch;
   };
 
+  kodi_platforms =
+    lib.optional useGbm "gbm" ++
+    lib.optional useWayland "wayland" ++
+    lib.optional x11Support "x11"
+  ;
+
 in stdenv.mkDerivation {
     name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
 
@@ -158,10 +166,11 @@ in stdenv.mkDerivation {
 
     buildInputs = [
       gnutls libidn libtasn1 nasm p11-kit
-      libxml2 python2Packages.python
+      libxml2 python3Packages.python
       boost libmicrohttpd
       gettext pcre-cpp yajl fribidi libva libdrm
       openssl gperf tinyxml2 taglib libssh
+      gtest ncurses spdlog
       alsaLib libGL libGLU fontconfig freetype ftgl
       libjpeg libpng libtiff
       libmpeg2 libsamplerate libmad
@@ -210,7 +219,7 @@ in stdenv.mkDerivation {
       which
       pkg-config gnumake
       autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
-      jre_headless yasm gettext python2Packages.python flatbuffers
+      jre_headless yasm gettext python3Packages.python flatbuffers
 
       # for TexturePacker
       giflib zlib libpng libjpeg lzo
@@ -221,6 +230,8 @@ in stdenv.mkDerivation {
     ];
 
     cmakeFlags = [
+      "-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}"
+      "-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}"
       "-Dlibdvdcss_URL=${libdvdcss.src}"
       "-Dlibdvdnav_URL=${libdvdnav.src}"
       "-Dlibdvdread_URL=${libdvdread.src}"
@@ -231,14 +242,9 @@ in stdenv.mkDerivation {
       "-DLIRC_DEVICE=/run/lirc/lircd"
       "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
       "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
-      "-DPYTHON_EXECUTABLE=${buildPackages.python2Packages.python}/bin/python"
+      "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
     ] ++ lib.optional useWayland [
-      "-DCORE_PLATFORM_NAME=wayland"
-      "-DWAYLAND_RENDER_SYSTEM=gl"
       "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
-    ] ++ lib.optional useGbm [
-      "-DCORE_PLATFORM_NAME=gbm"
-      "-DGBM_RENDER_SYSTEM=gles"
     ];
 
     # 14 tests fail but the biggest issue is that every test takes 30 seconds -
@@ -256,14 +262,14 @@ in stdenv.mkDerivation {
     '';
 
     postPatch = ''
-      substituteInPlace xbmc/platform/linux/LinuxTimezone.cpp \
+      substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
         --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
     '';
 
     postInstall = ''
       for p in $(ls $out/bin/) ; do
         wrapProgram $out/bin/$p \
-          --prefix PATH            ":" "${lib.makeBinPath ([ python2Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
+          --prefix PATH            ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
           --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
               ([ curl systemd libmad libvdpau libcec libcec_platform libass ]
                  ++ lib.optional nfsSupport libnfs
@@ -279,7 +285,7 @@ in stdenv.mkDerivation {
     installCheckPhase = "$out/bin/kodi --version";
 
     passthru = {
-      pythonPackages = python2Packages;
+      pythonPackages = python3Packages;
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix
index 7d9fdcc3d00..44e5dec6b77 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/plugins.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, callPackage, fetchFromGitHub
-, cmake, kodiPlain, libcec_platform, tinyxml, rapidxml
+, cmake, kodiPlain, libcec_platform, tinyxml, pugixml
 , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
-, python2Packages, expat, glib, nspr, nss, openssl
+, python3Packages, expat, glib, nspr, nss, openssl
 , libssh, libarchive, lzma, bzip2, lz4, lzo }:
 
 with lib;
@@ -9,7 +9,7 @@ with lib;
 let self = rec {
 
   pluginDir = "/share/kodi/addons";
-  rel = "Leia";
+  rel = "Matrix";
 
   kodi = kodiPlain;
 
@@ -122,6 +122,7 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
@@ -151,6 +152,7 @@ let self = rec {
       '';
       platforms = platforms.all;
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
 
   };
@@ -204,6 +206,7 @@ let self = rec {
       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 = mkKodiPlugin {
@@ -221,14 +224,14 @@ let self = rec {
 
   joystick = mkKodiABIPlugin rec {
     namespace = "peripheral.joystick";
-    version = "1.4.7";
+    version = "1.7.1";
     plugin = namespace;
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
-      rev = "v${version}";
-      sha256 = "03gsp4kg41s3n4ib4wsv7m3krfipgwc2z07i4mnd5zvg0c4xrmap";
+      rev = "${version}-${rel}";
+      sha256 = "1dhj4afr9kj938xx70fq5r409mz6lbw4n581ljvdjj9lq7akc914";
     };
 
     meta = {
@@ -237,7 +240,7 @@ let self = rec {
       maintainers = with maintainers; [ edwtjo ];
     };
 
-    extraBuildInputs = [ udev ];
+    extraBuildInputs = [ tinyxml udev ];
   };
 
   simpleplugin = mkKodiPlugin rec {
@@ -256,6 +259,7 @@ let self = rec {
       homepage = src.meta.homepage;
       description = "Simpleplugin API";
       license = licenses.gpl3;
+      broken = true; # requires port to python3
     };
   };
 
@@ -263,14 +267,14 @@ let self = rec {
 
     plugin = "svtplay";
     namespace = "plugin.video.svtplay";
-    version = "4.0.48";
+    version = "5.1.12";
 
     src = fetchFromGitHub {
       name = plugin + "-" + version + ".tar.gz";
       owner = "nilzen";
       repo = "xbmc-" + plugin;
-      rev = "dc18ad002cd69257611d0032fba91f57bb199165";
-      sha256 = "0klk1jpjc243ak306k94mag4b4s17w68v69yb8lzzydszqkaqa7x";
+      rev = "v${version}";
+      sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
     };
 
     meta = {
@@ -290,14 +294,14 @@ let self = rec {
 
   steam-controller = mkKodiABIPlugin rec {
     namespace = "peripheral.steamcontroller";
-    version = "0.10.0";
+    version = "0.11.0";
     plugin = namespace;
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = namespace;
-      rev = "ea345392ab5aa4485f3a48d2037fa8a8e8ab82de";
-      sha256 = "1hbd8fdvn7xkr9csz1g9wah78nhnq1rkazl4zwa31y70830k3279";
+      rev = "f68140ca44f163a03d3a625d1f2005a6edef96cb";
+      sha256 = "09lm8i119xlsxxk0c64rnp8iw0crr90v7m8iwi9r31qdmxrdxpmg";
     };
 
     extraBuildInputs = [ libusb1 ];
@@ -314,13 +318,13 @@ let self = rec {
 
     plugin = "steam-launcher";
     namespace = "script.steam.launcher";
-    version = "3.1.4";
+    version = "3.5.1";
 
     src = fetchFromGitHub rec {
       owner = "teeedubb";
       repo = owner + "-xbmc-repo";
-      rev = "db67704c3e16bdcdd3bdfe2926c609f1f6bdc4fb";
-      sha256 = "001a7zs3a4jfzj8ylxv2klc33mipmqsd5aqax7q81fbgwdlndvbm";
+      rev = "8260bf9b464846a1f1965da495d2f2b7ceb81d55";
+      sha256 = "1fj3ry5s44nf1jzxk4bmnpa4b9p23nrpmpj2a4i6xf94h7jl7p5k";
     };
 
     propagatedBuildInputs = [ steam ];
@@ -356,6 +360,7 @@ let self = rec {
       homepage = "https://forum.kodi.tv/showthread.php?tid=187421";
       description = "A comic book reader";
       maintainers = with maintainers; [ edwtjo ];
+      broken = true; # requires port to python3
     };
   };
 
@@ -363,13 +368,13 @@ let self = rec {
 
     plugin = "pvr-hts";
     namespace = "pvr.hts";
-    version = "4.4.14";
+    version = "8.2.2";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.hts";
       rev = "${version}-${rel}";
-      sha256 = "1bcwcwd2yjhw85yk6lyhf0iqiclrsz7r7vpbxgc650fwqbb146gr";
+      sha256 = "0jnn9gfjl556acqjf92wzzn371gxymhbbi665nqgg2gjcan0a49q";
     };
 
     meta = {
@@ -385,13 +390,13 @@ let self = rec {
 
     plugin = "pvr-hdhomerun";
     namespace = "pvr.hdhomerun";
-    version = "3.5.0";
+    version = "7.1.0";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.hdhomerun";
       rev = "${version}-${rel}";
-      sha256 = "1zrkvfn0im2qmvqm93pa3cg8xkxv61sxlj8nsz4r5z9v9nhqadf6";
+      sha256 = "0gbwjssnd319csq2kwlyjj1rskg19m1dxac5dl2dymvx5hn3zrgm";
     };
 
     meta = {
@@ -409,13 +414,13 @@ let self = rec {
 
     plugin = "pvr-iptvsimple";
     namespace = "pvr.iptvsimple";
-    version = "3.5.7";
+    version = "7.4.2";
 
     src = fetchFromGitHub {
       owner = "kodi-pvr";
       repo = "pvr.iptvsimple";
       rev = "${version}-${rel}";
-      sha256 = "17znib7c491h2ii4gagxradh0jyvgga0d548gbk4yjj2nc9qqc6d";
+      sha256 = "062i922qi0izkvn7v47yhyy2cf3fa7xc3k95b1gm9abfdwkk8ywr";
     };
 
     meta = {
@@ -426,7 +431,7 @@ let self = rec {
       license = licenses.gpl2Plus;
     };
 
-    extraBuildInputs = [ zlib rapidxml ];
+    extraBuildInputs = [ zlib pugixml ];
   };
 
   osmc-skin = mkKodiPlugin rec {
@@ -451,7 +456,7 @@ let self = rec {
     };
   };
 
-  yatp = python2Packages.toPythonModule (mkKodiPlugin rec {
+  yatp = python3Packages.toPythonModule (mkKodiPlugin rec {
     plugin = "yatp";
     namespace = "plugin.video.yatp";
     version = "3.3.2";
@@ -467,14 +472,15 @@ let self = rec {
 
     propagatedBuildInputs = [
       simpleplugin
-      python2Packages.requests
-      python2Packages.libtorrent-rasterbar
+      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
     };
   });
 
@@ -482,13 +488,13 @@ let self = rec {
 
     plugin = "inputstream-adaptive";
     namespace = "inputstream.adaptive";
-    version = "2.4.6";
+    version = "2.6.7";
 
     src = fetchFromGitHub {
       owner = "peak3d";
       repo = "inputstream.adaptive";
       rev = "${version}-${rel}";
-      sha256 = "09d9b35mpaf3g5m51viyan9hv7d2i8ndvb9wm0j7rs5gwsf0k71z";
+      sha256 = "1pwqmbr78wp12jn6rwv63npdfc456adwz0amlxf6gvgg43li6p7s";
     };
 
     extraBuildInputs = [ expat ];
@@ -509,14 +515,14 @@ let self = rec {
 
   vfs-sftp = mkKodiABIPlugin rec {
     namespace = "vfs.sftp";
-    version = "1.0.6";
+    version = "2.0.0";
     plugin = namespace;
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "044kkzcpzvbyih4vys33r4hqw38xa82snmvl4qj1r80wnszc8af1";
+      sha256 = "06w74sh8yagrrp7a7rjaz3xrh1j3wdqald9c4b72c33gpk5997dk";
     };
 
     meta = with lib; {
@@ -531,14 +537,14 @@ let self = rec {
 
   vfs-libarchive = mkKodiABIPlugin rec {
     namespace = "vfs.libarchive";
-    version = "1.0.7";
+    version = "2.0.0";
     plugin = namespace;
 
     src = fetchFromGitHub {
       owner = "xbmc";
       repo = namespace;
       rev = "${version}-${rel}";
-      sha256 = "01qhv095h5j67ispm4iw18pd3kl7a0mnjkgm92al9qqiyif8lzgh";
+      sha256 = "1q62p1i6rvqk2zv6f1cpffkh95lgclys2xl4dwyhj3acmqdxd9i5";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
index e388d5a67fe..45c96fb180d 100644
--- a/pkgs/applications/video/pitivi/default.nix
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchFromGitHub
 , fetchurl
 , pkg-config
 , gettext
diff --git a/pkgs/applications/video/xplayer/default.nix b/pkgs/applications/video/xplayer/default.nix
new file mode 100644
index 00000000000..d3f87f879c5
--- /dev/null
+++ b/pkgs/applications/video/xplayer/default.nix
@@ -0,0 +1,103 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, autoconf-archive
+, clutter-gst
+, clutter-gtk
+, gettext
+, glib
+, gobject-introspection
+, gst-plugins-bad
+, gst-plugins-base
+, gst-plugins-good
+, gstreamer
+, gtk-doc
+, gtk3
+, intltool
+, itstool
+, libpeas
+, libxml2
+, libxplayer-plparser
+, pkg-config
+, python3
+, wrapGAppsHook
+, xapps
+, yelp-tools }:
+
+let
+  pythonenv = python3.withPackages (ps: [
+    ps.pygobject3
+    ps.dbus-python # For one plugin
+  ]);
+in
+
+stdenv.mkDerivation rec {
+  pname = "xplayer";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1xcv6nr2gc0vji5afwy283v7bgx46kzgrq79hl8q9pz995qq2kbp";
+  };
+
+  # configure wants to find gst-inspect-1.0 via pkgconfig but
+  # the gstreamer toolsdir points to the wrong derivation output
+  postPatch = ''
+    substituteInPlace configure.ac \
+                      --replace '$gst10_toolsdir/gst-inspect-1.0' '${gstreamer.dev}/bin/gst-inspect-1.0' \
+  '';
+
+  preBuild = ''
+    makeFlagsArray+=(
+      "INCLUDES=-I${glib.dev}/include/gio-unix-2.0"
+      "CFLAGS=-Wno-error" # Otherwise a lot of deprecated warnings are treated as error
+    )
+  '';
+
+  nativeBuildInputs = [
+    autoreconfHook
+    wrapGAppsHook
+    autoconf-archive
+    gettext
+    gtk-doc
+    intltool
+    itstool
+    pkg-config
+    yelp-tools
+  ];
+
+  buildInputs = [
+    clutter-gst
+    clutter-gtk
+    glib
+    gobject-introspection
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+    gtk3
+    libpeas
+    libxml2
+    libxplayer-plparser
+    pythonenv
+    xapps
+    # to satisfy configure script
+    pythonenv.pkgs.pygobject3
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/xplayer \
+                --prefix PATH : ${lib.makeBinPath [ pythonenv ]}
+  '';
+
+  meta = with lib; {
+    description = "A generic media player from Linux Mint";
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
+    homepage = "https://github.com/linuxmint/xplayer";
+    maintainers = with maintainers; [ tu-maurice ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/xplayer/plparser.nix b/pkgs/applications/video/xplayer/plparser.nix
new file mode 100644
index 00000000000..da3daa445f6
--- /dev/null
+++ b/pkgs/applications/video/xplayer/plparser.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, intltool
+, gobject-introspection
+, gmime
+, libxml2
+, libsoup
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xplayer-plparser";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1i7sld8am6b1wwbpfb18v7qp17vk2a5p8xcfds50yznr30lddsb2";
+  };
+
+  nativeBuildInputs = [
+    intltool
+    pkg-config
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gmime
+    libxml2
+    libsoup
+  ];
+
+  meta = with lib; {
+    description = "Playlist parsing library for xplayer";
+    homepage = "https://github.com/linuxmint/xplayer-plparser";
+    maintainers = with maintainers; [ tu-maurice ];
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 99505371507..8a7399cf66c 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.0";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "sha256-3rougAl0vVH01ulbnfIO2x8OCyofWlvVsvlKjoAD2NE=";
+    sha256 = "sha256-cli/ipWxZgAeDMBUMuOU3l2mKv4POvOhi7ctbVdU6jc=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/virtualization/docker-compose/default.nix b/pkgs/applications/virtualization/docker-compose/default.nix
index 93f5f56ac55..885a48fd7c5 100644
--- a/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/pkgs/applications/virtualization/docker-compose/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonApplication rec {
-  version = "1.28.2";
+  version = "1.28.3";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f148b590414915d029dad7551f4cdf0b03a774dc9baa674480217236d260cc1";
+    sha256 = "78a48ef8ff4fed092261ecb1a60d9b28b7776e72ed6df591a900008039308b0f";
   };
 
   # lots of networking and other fails
diff --git a/pkgs/applications/window-managers/dwl/default.nix b/pkgs/applications/window-managers/dwl/default.nix
index 9a56f865c34..52c0a6ae04d 100644
--- a/pkgs/applications/window-managers/dwl/default.nix
+++ b/pkgs/applications/window-managers/dwl/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchFromGitHub
 , pkg-config
+, libinput
 , libxcb
 , libxkbcommon
 , wayland
@@ -15,27 +16,32 @@
 
 stdenv.mkDerivation rec {
   pname = "dwl";
-  version = "0.1";
+  version = "0.2";
 
   src = fetchFromGitHub {
     owner = "djpohly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "QoKaeF5DbSX0xciwc/0VKpubn/001cJjoZ+UzVDX4qE=";
+    sha256 = "gUaFTkpIQDswEubllMgvxPfCaEYFO7mODzjPyW7XsGQ=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
+    libinput
     libxcb
     libxkbcommon
     wayland
     wayland-protocols
     wlroots
-  ] ++ lib.optionals enable-xwayland [ xwayland libX11 ];
+  ] ++ lib.optionals enable-xwayland [
+    libX11
+    xwayland
+  ];
 
   # Allow users to set their own list of patches
   inherit patches;
 
+  # Last line of config.mk enables XWayland
   prePatch = lib.optionalString enable-xwayland ''
     sed -i -e '$ s|^#||' config.mk
   '';
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 6592621570c..3985eca4243 100644
--- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -1,4 +1,6 @@
-{ lib, callPackage, runCommandLocal, writeShellScriptBin, coreutils, bubblewrap }:
+{ lib, callPackage, runCommandLocal, writeShellScriptBin, glibc, pkgsi686Linux, coreutils, bubblewrap }:
+
+let buildFHSEnv = callPackage ./env.nix { }; in
 
 args @ {
   name
@@ -60,29 +62,53 @@ let
   in concatStringsSep "\n  "
   (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
 
+  # Create this on the fly instead of linking from /nix
+  # The container might have to modify it and re-run ldconfig if there are
+  # issues running some binary with LD_LIBRARY_PATH
+  createLdConfCache = ''
+    cat > /etc/ld.so.conf <<EOF
+    /lib
+    /lib/x86_64-linux-gnu
+    /lib64
+    /usr/lib
+    /usr/lib/x86_64-linux-gnu
+    /usr/lib64
+    /lib/i386-linux-gnu
+    /lib32
+    /usr/lib/i386-linux-gnu
+    /usr/lib32
+    EOF
+    ldconfig &> /dev/null
+  '';
   init = run: writeShellScriptBin "${name}-init" ''
     source /etc/profile
+    ${createLdConfCache}
     exec ${run} "$@"
   '';
 
   bwrapCmd = { initArgs ? "" }: ''
     blacklist=(/nix /dev /proc /etc)
     ro_mounts=()
+    symlinks=()
     for i in ${env}/*; do
       path="/''${i##*/}"
       if [[ $path == '/etc' ]]; then
-        continue
+        :
+      elif [[ -L $i ]]; then
+        symlinks+=(--symlink "$(readlink "$i")" "$path")
+        blacklist+=("$path")
+      else
+        ro_mounts+=(--ro-bind "$i" "$path")
+        blacklist+=("$path")
       fi
-      ro_mounts+=(--ro-bind "$i" "$path")
-      blacklist+=("$path")
     done
 
     if [[ -d ${env}/etc ]]; then
       for i in ${env}/etc/*; do
         path="/''${i##*/}"
-        # NOTE: we're binding /etc/fonts from the host so we don't want to
-        # override it with a path from the FHS environment.
-        if [[ $path == '/fonts' ]]; then
+        # NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we
+        # don't want to override it with a path from the FHS environment.
+        if [[ $path == '/fonts' || $path == '/ssl' ]]; then
           continue
         fi
         ro_mounts+=(--ro-bind "$i" "/etc$path")
@@ -112,8 +138,26 @@ let
       ${lib.optionalString unshareCgroup "--unshare-cgroup"}
       --die-with-parent
       --ro-bind /nix /nix
+      # Our glibc will look for the cache in its own path in `/nix/store`.
+      # As such, we need a cache to exist there, because pressure-vessel
+      # depends on the existence of an ld cache. However, adding one
+      # globally proved to be a bad idea (see #100655), the solution we
+      # settled on being mounting one via bwrap.
+      # Also, the cache needs to go to both 32 and 64 bit glibcs, for games
+      # of both architectures to work.
+      --tmpfs ${glibc}/etc \
+      --symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \
+      --symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \
+      --ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \
+      --remount-ro ${glibc}/etc \
+      --tmpfs ${pkgsi686Linux.glibc}/etc \
+      --symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \
+      --symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \
+      --ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \
+      --remount-ro ${pkgsi686Linux.glibc}/etc \
       ${etcBindFlags}
       "''${ro_mounts[@]}"
+      "''${symlinks[@]}"
       "''${auto_mounts[@]}"
       ${init runScript}/bin/${name}-init ${initArgs}
     )
diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
index 8b2d46c4ae9..b9c719a4c78 100644
--- a/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
+++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildEnv, writeText, pkgs, pkgsi686Linux }:
+{ stdenv, lib, buildEnv, writeText, writeShellScriptBin, pkgs, pkgsi686Linux }:
 
 { name, profile ? ""
 , targetPkgs ? pkgs: [], multiPkgs ? pkgs: []
@@ -49,6 +49,9 @@ let
     [ (toString gcc.cc.lib)
     ];
 
+  ldconfig = writeShellScriptBin "ldconfig" ''
+    exec ${pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@"
+  '';
   etcProfile = writeText "profile" ''
     export PS1='${name}-chrootenv:\u@\h:\w\$ '
     export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
@@ -86,7 +89,8 @@ let
   # Composes a /usr-like directory structure
   staticUsrProfileTarget = buildEnv {
     name = "${name}-usr-target";
-    paths = [ etcPkg ] ++ basePkgs ++ targetPaths;
+    # ldconfig wrapper must come first so it overrides the original ldconfig
+    paths = [ etcPkg ldconfig ] ++ basePkgs ++ targetPaths;
     extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
     ignoreCollisions = true;
   };
@@ -132,7 +136,20 @@ let
     mkdir -m0755 usr
     cd usr
     ${setupLibDirs}
-    for i in bin sbin share include; do
+    ${lib.optionalString isMultiBuild ''
+    if [ -d "${staticUsrProfileMulti}/share" ]; then
+      cp -rLf ${staticUsrProfileMulti}/share share
+    fi
+    ''}
+    if [ -d "${staticUsrProfileTarget}/share" ]; then
+      if [ -d share ]; then
+        chmod -R 755 share
+        cp -rLTf ${staticUsrProfileTarget}/share share
+      else
+        cp -rLf ${staticUsrProfileTarget}/share share
+      fi
+    fi
+    for i in bin sbin include; do
       if [ -d "${staticUsrProfileTarget}/$i" ]; then
         cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
       fi
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index f34835eaf09..fcbf5bcabe6 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -147,9 +147,15 @@ runCommand
         # Begin the new site-start.el by loading the original, which sets some
         # NixOS-specific paths. Paths are searched in the reverse of the order
         # they are specified in, so user and system profile paths are searched last.
+        #
+        # NOTE: Avoid displaying messages early at startup by binding
+        # inhibit-message to t. This would prevent the Emacs GUI from showing up
+        # prematurely. The messages would still be logged to the *Messages*
+        # buffer.
         rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled
         cat >"$siteStart" <<EOF
-        (load-file "$emacs/share/emacs/site-lisp/site-start.el")
+        (let ((inhibit-message t))
+          (load-file "$emacs/share/emacs/site-lisp/site-start.el"))
         (add-to-list 'load-path "$out/share/emacs/site-lisp")
         (add-to-list 'exec-path "$out/bin")
         ${optionalString nativeComp ''
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index a7bd296d673..bfa6c0d17cd 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -25,6 +25,9 @@
   # Legacy hash
 , cargoSha256 ? ""
 
+  # Name for the vendored dependencies tarball
+, cargoDepsName ? name
+
 , src ? null
 , srcs ? null
 , unpackPhase ? null
@@ -59,7 +62,8 @@ let
 
   cargoDeps = if cargoVendorDir == null
     then fetchCargoTarball ({
-        inherit name src srcs sourceRoot unpackPhase cargoUpdateHook;
+        inherit src srcs sourceRoot unpackPhase cargoUpdateHook;
+        name = cargoDepsName;
         hash = cargoHash;
         patches = cargoPatches;
         sha256 = cargoSha256;
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index a8f38b1a6c6..f54df832191 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.09";
+  version = "5.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "1whbxim4diyan97y9pz9k4ck16rmjalw5i1m0dg6ycv3pxv386nz";
+    sha256 = "sha256-dRAlNboRny8iP2dNhOHc2uvwpf/WObPC5ssKDjR2h2I=";
   };
 
   makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index f8afc557cb3..95c223f31f8 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -10,7 +10,7 @@ let
     (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
 in stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
index d9d988cdfb4..77c9a7f1d74 100644
--- a/pkgs/data/fonts/iosevka/variants.nix
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -1,26 +1,26 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  iosevka = "069qy5mnrp61da7b5yy79s9d0s3cwn5mqkqkysv8lccr91qnjgdc";
-  iosevka-aile = "1b9zh017wdxlk9dlick6qwx8f2vqsrsaq5yjr79iinirc417ri67";
-  iosevka-curly = "155faw2nlczp3ic2y9ck2vm21rfa1zaiswc0mfgmd3b2r6wimjrj";
-  iosevka-curly-slab = "1axzan1p9slfskg8nshz4hrmw24vmbcsxf7kpz70xjs98w7wh6lh";
-  iosevka-etoile = "00w4r660qaydygqvfv03i77h1q6wk8xbvrvh4wsnifl7li4xax4w";
-  iosevka-slab = "0a7ndr3c0sldn902d9c50l63xrvranclsvwnj4py2m6w32s8i9nx";
-  iosevka-ss01 = "0q5bh511z6qdvagk831sb1nrp9gawsjv904106clkqwak3k55v54";
-  iosevka-ss02 = "1qk250yydi3ff5z3s1099xrdzpwg62lr39wxl9539a2rl0awdw3w";
-  iosevka-ss03 = "02rblgk9j0bz7pyag3a8p4by76zj0z4gg8iignfff7j3yfszgfhp";
-  iosevka-ss04 = "0z9aj5ll5mdgfm8brgwhwabbq31ws8qqzdyyf9s8mq30l0js2wd6";
-  iosevka-ss05 = "00sclgj25vp3frk1wvlwb83z33xy45171m76jr5x9jspq5nr02fa";
-  iosevka-ss06 = "1r9da69k47kiag7ba47panyj5sxgz6icpynbrnz7d7kvqwal842k";
-  iosevka-ss07 = "0lvdzfha27158bs5p3njyw6gnrm53mpdacaln1bh37mwd967b689";
-  iosevka-ss08 = "1l60yz475m780k6ds5h4n36p82av8ag28l1yr8z8gl7yznf2sf7b";
-  iosevka-ss09 = "058ln47yv5015c4xnhmyglvdqndbdp0v8n5w73cd73nzfb4y035j";
-  iosevka-ss10 = "0966wrbamjkyrjkirv2jzw86yr9l3d5vnb0azi93y0amcrkksmrw";
-  iosevka-ss11 = "0y3nhjn38jvcf4ngwgir5hg4vx9fsrfxzlshmynlf7bb6krvfnaq";
-  iosevka-ss12 = "09hccisb2lrakjh7fnk43znixly7qbqclmsvhp9mlbpjvlzzq03j";
-  iosevka-ss13 = "117712kys0fihadpzrwqm3z25z390qjnhligr5k0wx8h0la9nwq3";
-  iosevka-ss14 = "0iy4m64jnsi2b74hcmwxk0qabzgza08v9s56blg4i9mfmp8xvzlp";
-  iosevka-ss15 = "0mdqfal48sfq5n3a88cgsaddcc07qwqynr662zqqpjqy98kvaz62";
-  iosevka-ss16 = "0dkv3mzhl9vl7x9x0g6hc7j1mp9mnnyx7iamkvm8wcqjhwnvy0r6";
-  iosevka-ss17 = "1adb1z468wfa1b707kr0ycv5d5nxpmcx44q0dizik5zyx26aq10p";
+  iosevka = "1w1y543iypvhwx27qswkvhhiwzd3ik2jklapz2g497f3ppj834g4";
+  iosevka-aile = "12dybqmcpq83xiw4k9m9fmkhj204sxb9hnqndb212vvgj3vbl0fm";
+  iosevka-curly = "09rl8l9jkqhq811h35x15s4gssig0xrzvas154gg5igrdqha5kk8";
+  iosevka-curly-slab = "19l13inmnaysz2mp7x4rh4zffa5n8qd3n727j54dd2581g9f0n9c";
+  iosevka-etoile = "0flsdjdq0jsfblnazdw82kflzwvjvqaxzsyifgbn4flgjwy46mhm";
+  iosevka-slab = "04wg7aklybwrbali53c22fs5xfgacyfkxw20bhnxqbfcsykriz11";
+  iosevka-ss01 = "07a6ghjzk8kf266bgqv8khx54cxl2hfkqnjq6n5s3bbahbs3fh4x";
+  iosevka-ss02 = "06prf0jigh1xi00lg46qw4kp416psv1xkijdpbvjkmxgmcbnqx2s";
+  iosevka-ss03 = "03ga07y7nmcky3dschlk4cjg3lcxjqra6wvsb8q9vc39qz01cnxr";
+  iosevka-ss04 = "0d17p18kbh78f4w0pvslh3r0a52d207dyp4njrqxnpzjn2w8w1kg";
+  iosevka-ss05 = "1qh1z1kffid718h2mc0f6wygkwkpc1rlj29h2ljigv8kdp4kcik6";
+  iosevka-ss06 = "0b6gn7j5qa23qpay08ri6z9jrqkcsb8m67d84bqs419rw0wdhmfr";
+  iosevka-ss07 = "0f5bj8vn9frmmhg5b971gav7379xwlg439sm2vi79vjqlp5ls5gy";
+  iosevka-ss08 = "0vqhywgly5w2j0nwmspa2ba7rk1n4jsb3lidngnpkpvpkr2w1n7z";
+  iosevka-ss09 = "1ysb28qwqjkxissqsiz67l3fj5kflf94baxwjjvqqi67f72kq8m4";
+  iosevka-ss10 = "11sdzyplb1bf8blzmj40brdnvy6z6yghvh91k27bf73rgdby7svk";
+  iosevka-ss11 = "0jrn998c8jrkjw7sa429kkgpfp897gdbikr0j9sc5b0fyjci0qdx";
+  iosevka-ss12 = "1qrnp3s3abxryi2nf8x4m5l7z83iklksr8mgwcxi07cfi8ix87jr";
+  iosevka-ss13 = "0hs3m1vc3l54xj4flgyr8m4mklgqlzf3ffcvwlp8i4a5b9cdxczh";
+  iosevka-ss14 = "112l7skaplmrn16h8lw5288ivcw1wm7mvilqrmdgswmvyxkpqdzg";
+  iosevka-ss15 = "13bbgjmw20d1dr6h8ckc2zaq0bilx494g5p94a2ighdm5d4sbk4y";
+  iosevka-ss16 = "180qfpp9ixjznk7srijbj1l2dzshb9wayqgvfmgqhl94fif23bja";
+  iosevka-ss17 = "0f1r0zad32mdqgd0ik08q07ni46w6dm93npz633azn3l9ch6hd41";
 }
diff --git a/pkgs/data/misc/nixos-artwork/icons.nix b/pkgs/data/misc/nixos-artwork/icons.nix
index caab674393a..af8a157d491 100644
--- a/pkgs/data/misc/nixos-artwork/icons.nix
+++ b/pkgs/data/misc/nixos-artwork/icons.nix
@@ -1,13 +1,25 @@
-{ stdenv, fetchFromGitHub, imagemagick }:
+{ stdenv
+, fetchFromGitHub
+, imagemagick
+}:
 
 stdenv.mkDerivation {
-  name = "nixos-icons-2017-03-16";
-  srcs = fetchFromGitHub {
+  pname = "nixos-icons";
+  version = "2021-02-24";
+
+  src = fetchFromGitHub {
     owner = "NixOS";
     repo = "nixos-artwork";
-    rev = "783ca1249fc4cfe523ad4e541f37e2229891bc8b";
-    sha256 = "0wp08b1gh2chs1xri43wziznyjcplx0clpsrb13wzyscv290ay5a";
+    rev = "488c22aad523c709c44169d3e88d34b4691c20dc";
+    sha256 = "ZoanCzn4pqGB1fyMzMyGQVT0eIhNdL7ZHJSn1VZWVRs=";
   };
-  makeFlags = [ "DESTDIR=$(out)" "prefix=" ];
-  nativeBuildInputs = [ imagemagick ];
+
+  nativeBuildInputs = [
+    imagemagick
+  ];
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "prefix="
+  ];
 }
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
index 82dd336e5e5..7ab25da3cc4 100644
--- a/pkgs/data/misc/tzdata/default.nix
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   preInstall = ''
      mv zic.o zic.o.orig
      mv zic zic.orig
-     make $makeFlags cc=${stdenv.cc.targetPrefix}cc AR=${stdenv.cc.targetPrefix}ar zic
+     make $makeFlags cc=${stdenv.cc.nativePrefix}cc AR=${stdenv.cc.nativePrefix}ar zic
      mv zic zic-native
      mv zic.o.orig zic.o
      mv zic.orig zic
diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix
index 7121aed9b1e..29176c664ca 100644
--- a/pkgs/data/themes/yaru/default.nix
+++ b/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.10.2";
+  version = "20.10.6.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "0vxs17nbahrdix1q9xj06nflm344lfgj2mrafsvyfcr2isn61iv6";
+    sha256 = "0kcmxfz2rfav7aj5v1vv335vqzyj0n53lbhwx0g6gxxfi0x3vv6v";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Ubuntu community theme 'yaru' - default Ubuntu theme since 18.10";
     homepage = "https://github.com/ubuntu/yaru";
-    license = with licenses; [ cc-by-sa-40 gpl3 ];
+    license = with licenses; [ cc-by-sa-40 gpl3Plus lgpl21Only lgpl3Only ];
     platforms = platforms.linux;
     maintainers = [ maintainers.jD91mZM2 ];
   };
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 198cfe40a6d..4e951bfcc58 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -8,18 +8,11 @@
 , intltool
 , gtk3
 , libnotify
-, gnome-menus
 , libxml2
-, systemd
-, upower
 , gnome-online-accounts
 , cinnamon-settings-daemon
 , colord
 , polkit
-, ibus
-, libpulseaudio
-, isocodes
-, kerberos
 , libxkbfile
 , cinnamon-menus
 , dbus-glib
@@ -27,7 +20,6 @@
 , libxklavier
 , networkmanager
 , libwacom
-, gnome3
 , libtool
 , wrapGAppsHook
 , tzdata
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index f0972f8d6f1..60ec6792e5d 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , vala
 , meson
 , ninja
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index c88c1e0f525..324ab865b11 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -33,14 +33,9 @@
 
 let
 
-  icon = fetchurl {
-    url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/4f041870efa1a6f0799ef4b32bb7be2cafee7a74/logo/nixos.svg";
-    sha256 = "0b0dj408c1wxmzy6k0pjwc4bzwq286f1334s3cqqwdwjshxskshk";
-  };
-
   override = substituteAll {
     src = ./org.gnome.login-screen.gschema.override;
-    inherit icon;
+    icon = "${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
   };
 
 in
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 98d87dc09c8..603aaf1744b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -58,6 +58,7 @@
 , shared-mime-info
 , sound-theme-freedesktop
 , tracker
+, tracker-miners
 , tzdata
 , udisks2
 , upower
@@ -75,6 +76,7 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "09i011hf23s2i4wim43vjys7y4y43cxl3kyvrnrwqvqgc5n0144d";
   };
+
   # See https://mail.gnome.org/archives/distributor-list/2020-September/msg00001.html
   prePatch = (import ../gvc-with-ucm-prePatch.nix {
     inherit fetchFromGitLab;
@@ -100,6 +102,7 @@ stdenv.mkDerivation rec {
     clutter-gtk
     colord
     colord-gtk
+    epoxy
     fontconfig
     gdk-pixbuf
     glib
@@ -121,6 +124,7 @@ stdenv.mkDerivation rec {
     libgudev
     libhandy
     libkrb5
+    libnma
     libpulseaudio
     libpwquality
     librsvg
@@ -131,13 +135,12 @@ stdenv.mkDerivation rec {
     modemmanager
     mutter # schemas for the keybindings
     networkmanager
-    libnma
     polkit
     samba
     tracker
+    tracker-miners # for search locations dialog
     udisks2
     upower
-    epoxy
   ];
 
   patches = [
@@ -159,6 +162,11 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.gnome.org/GNOME/gnome-control-center/commit/64686cfee330849945f6ff4dcc43393eb1a6e59c.patch";
       sha256 = "4VJU0q6qOtGzd/hmDncckInfEjCkC8+lXmDgxwc4VJU=";
     })
+    # https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1173
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-control-center/-/commit/27e1140c9d4ad852b4dc6a132a14cd5532d52997.patch";
+      sha256 = "nU3szjKfXpRek8hhsxiCJNgMeDeIRK3QVo82D9R+kL4=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix b/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
index 7d143a061f6..ad588be18ce 100644
--- a/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/no-title-bar/default.nix
@@ -2,18 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-no-title-bar";
-  version = "9";
+  version = "11";
 
   src = fetchFromGitHub {
-    owner = "franglais125";
+    owner = "poehlerj";
     repo = "no-title-bar";
-    rev = "v${version}";
-    sha256 = "02zm61fg40r005fn2rvgrbsz2hbcsmp2hkhyilqbmpilw35y0nbq";
+    rev = "V_${version}";
+    sha256 = "07ddw47binlsbyvgy4xkdjvd40zyp7nwd17r6k7w54d50vmnwhvb";
   };
 
-  nativeBuildInputs = [
-    glib gettext
-  ];
+  nativeBuildInputs = [ glib gettext ];
 
   patches = [
     (substituteAll {
@@ -25,14 +23,13 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
 
-  uuid = "no-title-bar@franglais125.gmail.com";
+  uuid = "no-title-bar@jonaspoehler.de";
 
   meta = with lib; {
     description = "Integrates maximized windows with the top panel";
-    homepage = "https://github.com/franglais125/no-title-bar";
+    homepage = "https://github.com/poehlerj/no-title-bar";
     license = licenses.gpl2;
-    broken = true; # https://github.com/franglais125/no-title-bar/issues/114
-    maintainers = with maintainers; [ jonafato svsdep ];
+    maintainers = with maintainers; [ jonafato svsdep maxeaubrey ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch b/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
index 9a53d63860d..fb2d3d57e51 100644
--- a/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/extensions/no-title-bar/fix-paths.patch
@@ -1,24 +1,44 @@
+diff --git a/decoration.js b/decoration.js
+index d1ff3dd..ff4193f 100644
 --- a/decoration.js
 +++ b/decoration.js
-@@ -181,7 +181,7 @@
+@@ -223,7 +223,7 @@ var Decoration = class {
+ 
+         let winId = this._guessWindowXID(win);
+ 
+-        let xprops = GLib.spawn_command_line_sync(`xprop -id ${winId}`);
++        let xprops = GLib.spawn_command_line_sync(`@xprop@ -id ${winId}`);
+         if (!xprops[0]) {
+             Utils.log_debug(`Unable to determine windows '${win.get_title()}' original state`);
+             return win._noTitleBarOriginalState = WindowState.UNKNOWN;
+@@ -237,7 +237,7 @@ var Decoration = class {
+         let prop = '_MOTIF_WM_HINTS';
+         let value = '0x2, 0x0, %s, 0x0, 0x0'.format(hide ? '0x2' : '0x1');
+ 
+-        GLib.spawn_command_line_sync(`xprop -id ${windId} -f ${prop} 32c -set ${prop} "${value}"`);
++        GLib.spawn_command_line_sync(`@xprop@ -id ${windId} -f ${prop} 32c -set ${prop} "${value}"`);
+         if (!hide && !win.titlebar_is_onscreen()) {
+             Utils.log_debug(`Shoving titlebar onscreen for window '${win.get_title()}'`);
+             win.shove_titlebar_onscreen();
+@@ -354,7 +354,7 @@ var Decoration = class {
          let act = win.get_compositor_private();
          let xwindow = act && act['x-window'];
          if (xwindow) {
 -            let xwininfo = GLib.spawn_command_line_sync('xwininfo -children -id 0x%x'.format(xwindow));
 +            let xwininfo = GLib.spawn_command_line_sync('@xwininfo@ -children -id 0x%x'.format(xwindow));
              if (xwininfo[0]) {
-                 let str = xwininfo[1].toString();
+                 let str = ByteArray.toString(xwininfo[1]);
  
-@@ -207,7 +207,7 @@
+@@ -384,7 +384,7 @@ var Decoration = class {
          // Try enumerating all available windows and match the title. Note that this
          // may be necessary if the title contains special characters and `x-window`
          // is not available.
 -        let result = GLib.spawn_command_line_sync('xprop -root _NET_CLIENT_LIST');
 +        let result = GLib.spawn_command_line_sync('@xprop@ -root _NET_CLIENT_LIST');
          if (result[0]) {
-             let str = result[1].toString();
+             let str = ByteArray.toString(result[1]);
  
-@@ -218,7 +218,7 @@
+@@ -395,7 +395,7 @@ var Decoration = class {
  
              // For each window ID, check if the title matches the desired title.
              for (var i = 0; i < windowList.length; ++i) {
@@ -27,30 +47,10 @@
                  let result = GLib.spawn_command_line_sync(cmd);
  
                  if (result[0]) {
-@@ -258,7 +258,7 @@
-         }
- 
-         let id = this._guessWindowXID(win);
--        let cmd = 'xprop -id ' + id;
-+        let cmd = '@xprop@ -id ' + id;
- 
-         let xprops = GLib.spawn_command_line_sync(cmd);
-         if (!xprops[0]) {
-@@ -277,7 +277,7 @@
-         m = str.match(/^_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED(\(CARDINAL\))? = ([0-9]+)$/m);
-         if (m) {
-             let state = !!parseInt(m[2]);
--            cmd = ['xprop', '-id', id,
-+            cmd = ['@xprop@', '-id', id,
-                   '-f', '_NO_TITLE_BAR_ORIGINAL_STATE', '32c',
-                   '-set', '_NO_TITLE_BAR_ORIGINAL_STATE',
-                   (state ? '0x1' : '0x0')];
-@@ -358,7 +358,7 @@
-         let winXID = this._guessWindowXID(win);
-         if (winXID == null)
-             return;
--        let cmd = ['xprop', '-id', winXID,
-+        let cmd = ['@xprop@', '-id', winXID,
-                    '-f', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED', '32c',
-                    '-set', '_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED',
-                    (hide ? '0x1' : '0x0')];
+@@ -455,4 +455,4 @@ var Decoration = class {
+         let styleContent = this._updateUserStyles();
+         GLib.file_set_contents(this._userStylesPath, styleContent);
+     }
+-}
+\ No newline at end of file
++}
diff --git a/pkgs/desktops/gnome-3/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
index 3ca257db49b..a209f2d2d9c 100644
--- a/pkgs/desktops/gnome-3/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/misc/geary/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , gtk3
 , vala
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 4c440ab97db..2eff5e553ea 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -23,6 +23,7 @@
 , glib
 , pango
 , gdk-pixbuf
+, gtk2
 , libpng12
 , expat
 , freetype
@@ -56,7 +57,7 @@ let
     gcc.cc.lib
     gdk-pixbuf
     glib
-    gtk3
+    gtk2
     libpng12
     libusb-compat-0_1
     pango
@@ -240,7 +241,7 @@ stdenv.mkDerivation rec {
       patchelf --debug \
           --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
           --set-rpath "${teensy_libpath}" \
-          $out/share/arduino/hardware/tools/teensy
+          $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon}
     ''}
   '';
 
diff --git a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index e20983380a4..efc94e4baf4 100644
--- a/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "adoptopenjdk-icedtea-web";
 
-  version = "1.8.4";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "AdoptOpenJDK";
     repo = "IcedTea-Web";
     rev = "icedtea-web-${version}";
-    sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
+    sha256 = "sha256-AC6D6n8jLdATXIXrDTHhs2QFnIZNaaZvJyFEqfxCxYQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config bc ];
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index defe78d7c31..cfbec681e8a 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -27,13 +27,13 @@ let
   ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
-  version = "unstable-2020.11.04";
+  version = "unstable-2021.02.14";
 
   src = fetchFromGitHub {
       owner  = "B-Lang-org";
       repo   = "bsc";
-      rev    = "103357f32cf63f2ca2b16ebc8e2c675ec5562464";
-      sha256 = "0iikzx0fxky0fmc31lyxfldy1wixr2mayzcn24b8d76wd4ix1vk3";
+      rev    = "c085ecd807d85f31d102d8bec71f5c28dc96b31d";
+      sha256 = "0c86gwhrarw78cr9c9slb9vij6kcwx3x281kbqji96qqzs0dfb32";
     };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/ocaml/4.12.nix b/pkgs/development/compilers/ocaml/4.12.nix
index c422d2a15a3..0662e66e0b6 100644
--- a/pkgs/development/compilers/ocaml/4.12.nix
+++ b/pkgs/development/compilers/ocaml/4.12.nix
@@ -1,9 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "12";
-  patch_version = "0-beta1";
-  src = fetchTarball {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~beta1.tar.xz";
-    sha256 = "1rny74mi0knl8byqg2naw1mgvn22c2zihlwvzbkd56j97flqsxsm";
-  };
+  patch_version = "0";
+  sha256 = "1hxy349jfa2vkfgmxf6pvd9w4z5bmcgsg0fxfdabcghyvjw9vvir";
 }
diff --git a/pkgs/development/compilers/openjdk/darwin/11.nix b/pkgs/development/compilers/openjdk/darwin/11.nix
index 64654351886..069380802ac 100644
--- a/pkgs/development/compilers/openjdk/darwin/11.nix
+++ b/pkgs/development/compilers/openjdk/darwin/11.nix
@@ -7,11 +7,11 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu11.2.3-jdk11.0.1";
+    name = "zulu11.43.21-ca-jdk11.0.9";
 
     src = fetchurl {
       url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
-      sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy";
+      sha256 = "1j19fb5mwdkfn6y8wfsnvxsz6wfpcab4xv439fqssxy520n6q4zs";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
     };
 
diff --git a/pkgs/development/compilers/sbcl/common.nix b/pkgs/development/compilers/sbcl/common.nix
index 2e162ed5a2e..11ae960a531 100644
--- a/pkgs/development/compilers/sbcl/common.nix
+++ b/pkgs/development/compilers/sbcl/common.nix
@@ -22,11 +22,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [texinfo];
 
-  patchPhase = ''
+  postPatch = ''
     echo '"${version}.nixos"' > version.lisp-expr
 
-    pwd
-
     # SBCL checks whether files are up-to-date in many places..
     # Unfortunately, same timestamp is not good enough
     sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
@@ -43,12 +41,6 @@ stdenv.mkDerivation rec {
     # Fix the tests
     sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
     sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
-
-    # Use whatever `cc` the stdenv provides
-    substituteInPlace src/runtime/Config.x86-64-darwin --replace gcc cc
-
-    substituteInPlace src/runtime/Config.x86-64-darwin \
-      --replace mmacosx-version-min=10.4 mmacosx-version-min=10.5
   ''
   + (if purgeNixReferences
     then
@@ -81,16 +73,24 @@ stdenv.mkDerivation rec {
     optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];
 
   buildPhase = ''
+    runHook preBuild
+
     sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${
                   lib.concatStringsSep " "
                     (builtins.map (x: "--with-${x}") enableFeatures ++
                      builtins.map (x: "--without-${x}") disableFeatures)
                 }
     (cd doc/manual ; make info)
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     INSTALL_ROOT=$out sh install.sh
+
+    runHook postInstall
   ''
   + lib.optionalString (!purgeNixReferences) ''
     cp -r src $out/lib/sbcl
diff --git a/pkgs/development/compilers/scala/2.x.nix b/pkgs/development/compilers/scala/2.x.nix
index a91e0dbe1c7..a0a5f1a2b22 100644
--- a/pkgs/development/compilers/scala/2.x.nix
+++ b/pkgs/development/compilers/scala/2.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils, nixosTests
+{ stdenv, lib, fetchurl, makeWrapper, jre, gnugrep, coreutils
 , writeScript, common-updater-scripts, git, gnused, nix, nixfmt, majorVersion }:
 
 with lib;
@@ -26,8 +26,8 @@ let
     };
 
     "2.13" = {
-      version = "2.13.4";
-      sha256 = "1alcnzmxga00nsvgy8yky91zw5b4q0xg2697vrrdgjlglpxiqwdw";
+      version = "2.13.5";
+      sha256 = "1ah5rw6xqksiayi5i95r3pcff961q71ilishzn2kmg673z0j2b7d";
       pname = "scala_2_13";
     };
   };
@@ -49,20 +49,22 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-      mkdir -p $out
-      rm bin/*.bat
-      mv * $out
-      # put docs in correct subdirectory
-      mkdir -p $out/share/doc
-      mv $out/doc $out/share/doc/${name}
-      mv $out/man $out/share/man
+    runHook preInstall
+    mkdir -p $out
+    rm bin/*.bat
+    mv * $out
+    # put docs in correct subdirectory
+    mkdir -p $out/share/doc
+    mv $out/doc $out/share/doc/${name}
+    mv $out/man $out/share/man
     for p in $(ls $out/bin/) ; do
         wrapProgram $out/bin/$p \
           --prefix PATH ":" ${coreutils}/bin \
           --prefix PATH ":" ${gnugrep}/bin \
           --prefix PATH ":" ${jre}/bin \
           --set JAVA_HOME ${jre}
-      done
+    done
+    runHook postInstall
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 5d891a6d19f..2356f3cea65 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -33,13 +33,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.9+3905";
+  version = "0.9+3962";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "4e741adda976260f620e5787d6db3cb28e0e35e7";
-    sha256 = "0ml4c7vfzmivcc289d12m6ki82qdsg5wj00f2aamcvq1y7l4062x";
+    rev    = "5d0cc54f5c36dea1d989438426a321b4554257c8";
+    sha256 = "1c85kga95lin6rcpr7cf80wr9f1a6irdrld9g23zmqdrxhick8y7";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 0a1b3a9a294..8a093a03d1c 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -35,6 +35,8 @@
 # IE: programs coupled with the compiler
 , allowGoReference ? false
 
+, CGO_ENABLED ? go.CGO_ENABLED
+
 , meta ? {}, ... } @ args:
 
 
@@ -75,11 +77,13 @@ let
       ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs;
     buildInputs = buildInputs;
 
-    inherit (go) GOOS GOARCH GO386 CGO_ENABLED;
+    inherit (go) GOOS GOARCH GO386;
 
     GOHOSTARCH = go.GOHOSTARCH or null;
     GOHOSTOS = go.GOHOSTOS or null;
 
+    inherit CGO_ENABLED;
+
     GO111MODULE = "off";
     GOFLAGS = lib.optionals (!allowGoReference) [ "-trimpath" ];
 
diff --git a/pkgs/development/interpreters/guile/1.8.nix b/pkgs/development/interpreters/guile/1.8.nix
index 93eca9a73f1..6277312acc8 100644
--- a/pkgs/development/interpreters/guile/1.8.nix
+++ b/pkgs/development/interpreters/guile/1.8.nix
@@ -37,7 +37,10 @@ stdenv.mkDerivation rec {
     libtool
   ];
 
-  patches = [ ./cpp-4.5.patch ];
+  patches = [
+    ./cpp-4.5.patch
+    ./CVE-2016-8605.patch
+  ];
 
   preBuild = ''
     sed -e '/lt_dlinit/a  lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
diff --git a/pkgs/development/interpreters/guile/CVE-2016-8605.patch b/pkgs/development/interpreters/guile/CVE-2016-8605.patch
new file mode 100644
index 00000000000..2fc281357ca
--- /dev/null
+++ b/pkgs/development/interpreters/guile/CVE-2016-8605.patch
@@ -0,0 +1,59 @@
+commit d514e3fc42eb14a1bc5846b27ef89f50ba3a5d48
+Author: Ludovic Courtès <ludo@gnu.org>
+Date:   Tue Oct 11 10:14:26 2016 +0200
+
+    Remove 'umask' calls from 'mkdir'.
+    
+    Fixes <http://bugs.gnu.org/24659>.
+    
+    * libguile/filesys.c (SCM_DEFINE): Remove calls to 'umask' when MODE is
+    unbound; instead, use 0777 as the mode.  Update docstring to clarify
+    this.
+
+diff --git a/libguile/filesys.c b/libguile/filesys.c
+index c8acb13ef..921f765f1 100644
+--- a/libguile/filesys.c
++++ b/libguile/filesys.c
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 1996,1997,1998,1999,2000,2001, 2002, 2004, 2006, 2008 Free Software Foundation, Inc.
++/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006,
++ *   2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc.
+  * 
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -791,26 +792,21 @@ SCM_DEFINE (scm_delete_file, "delete-file", 1, 0, 0,
+ SCM_DEFINE (scm_mkdir, "mkdir", 1, 1, 0,
+             (SCM path, SCM mode),
+ 	    "Create a new directory named by @var{path}.  If @var{mode} is omitted\n"
+-	    "then the permissions of the directory file are set using the current\n"
+-	    "umask.  Otherwise they are set to the decimal value specified with\n"
+-	    "@var{mode}.  The return value is unspecified.")
++	    "then the permissions of the directory are set to @code{#o777}\n"
++	    "masked with the current umask (@pxref{Processes, @code{umask}}).\n"
++	    "Otherwise they are set to the value specified with @var{mode}.\n"
++	    "The return value is unspecified.")
+ #define FUNC_NAME s_scm_mkdir
+ {
+   int rv;
+-  mode_t mask;
++  mode_t c_mode;
+ 
+-  if (SCM_UNBNDP (mode))
+-    {
+-      mask = umask (0);
+-      umask (mask);
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, 0777 ^ mask));
+-    }
+-  else
+-    {
+-      STRING_SYSCALL (path, c_path, rv = mkdir (c_path, scm_to_uint (mode)));
+-    }
++  c_mode = SCM_UNBNDP (mode) ? 0777 : scm_to_uint (mode);
++
++  STRING_SYSCALL (path, c_path, rv = mkdir (c_path, c_mode));
+   if (rv != 0)
+     SCM_SYSERROR;
++
+   return SCM_UNSPECIFIED;
+ }
+ #undef FUNC_NAME
diff --git a/pkgs/development/interpreters/io/default.nix b/pkgs/development/interpreters/io/default.nix
index d0a3b20e503..48462a333bc 100644
--- a/pkgs/development/interpreters/io/default.nix
+++ b/pkgs/development/interpreters/io/default.nix
@@ -1,18 +1,27 @@
-{ lib, stdenv, fetchFromGitHub, cmake, zlib, sqlite, gmp, libffi, cairo,
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, sqlite, gmp, libffi, cairo,
   ncurses, freetype, libGLU, libGL, libpng, libtiff, libjpeg, readline, libsndfile,
   libxml2, freeglut, libsamplerate, pcre, libevent, libedit, yajl,
   python3, openssl, glfw, pkg-config, libpthreadstubs, libXdmcp, libmemcached
 }:
 
 stdenv.mkDerivation {
-  name = "io-2015.11.11";
+  pname = "io";
+  version = "2017.09.06";
   src = fetchFromGitHub {
     owner = "stevedekorte";
     repo = "io";
-    rev = "1fc725e0a8635e2679cbb20521f4334c25273caa";
-    sha256 = "0ll2kd72zy8vf29sy0nnx3awk7nywpwpv21rvninjjaqkygrc0qw";
+    rev = "b8a18fc199758ed09cd2f199a9bc821f6821072a";
+    sha256 = "07rg1zrz6i6ghp11cm14w7bbaaa1s8sb0y5i7gr2sds0ijlpq223";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "check-for-sysctl-h.patch";
+      url = "https://github.com/IoLanguage/io/pull/446/commits/9f3e4d87b6d4c1bf583134d55d1cf92d3464c49f.patch";
+      sha256 = "9f06073ac17f26c2ef6298143bdd1babe7783c228f9667622aa6c91bb7ec7fa0";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -32,6 +41,17 @@ stdenv.mkDerivation {
     sed -ie \
           "s/add_subdirectory(addons)/#add_subdirectory(addons)/g" \
           CMakeLists.txt
+    # Bind Libs STATIC to avoid a segfault when relinking
+    sed -i 's/basekit SHARED/basekit STATIC/' libs/basekit/CMakeLists.txt
+    sed -i 's/garbagecollector SHARED/garbagecollector STATIC/' libs/garbagecollector/CMakeLists.txt
+    sed -i 's/coroutine SHARED/coroutine STATIC/' libs/coroutine/CMakeLists.txt
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/io
+    $out/bin/io_static
   '';
 
   # for gcc5; c11 inline semantics breaks the build
diff --git a/pkgs/development/interpreters/octave/build-env.nix b/pkgs/development/interpreters/octave/build-env.nix
new file mode 100644
index 00000000000..fee53b716da
--- /dev/null
+++ b/pkgs/development/interpreters/octave/build-env.nix
@@ -0,0 +1,83 @@
+{ lib, stdenv, octave, buildEnv
+, makeWrapper, texinfo
+, octavePackages
+, wrapOctave
+, computeRequiredOctavePackages
+, extraLibs ? []
+, extraOutputsToInstall ? []
+, postBuild ? ""
+, ignoreCollisions ? false
+}:
+
+# Create an octave executable that knows about additional packages
+let
+  packages = computeRequiredOctavePackages extraLibs;
+
+in buildEnv {
+  name = "${octave.name}-env";
+  paths = extraLibs ++ [ octave ];
+
+  inherit ignoreCollisions;
+  extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
+
+  buildInputs = [ makeWrapper texinfo wrapOctave ];
+
+  # During "build" we must first unlink the /share symlink to octave's /share
+  # Then, we can re-symlink the all of octave/share, except for /share/octave
+  # in env/share/octave, re-symlink everything from octave/share/octave and then
+  # perform the pkg install.
+  postBuild = ''
+      . "${makeWrapper}/nix-support/setup-hook"
+      # The `makeWrapper` used here is the one defined in
+      # ${makeWrapper}/nix-support/setup-hook
+
+      if [ -L "$out/bin" ]; then
+         unlink $out/bin
+         mkdir -p "$out/bin"
+         cd "${octave}/bin"
+         for prg in *; do
+             if [ -x $prg ]; then
+                makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc"
+             fi
+         done
+         cd $out
+      fi
+
+      # Remove symlinks to the input tarballs, they aren't needed.
+      rm $out/*.tar.gz
+
+      createOctavePackagesPath $out ${octave}
+
+      for path in ${lib.concatStringsSep " " packages}; do
+          if [ -e $path/*.tar.gz ]; then
+             $out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \
+                                         pkg prefix $out/${octave.octPkgsPath} $out/${octave.octPkgsPath}; \
+                                         pfx = pkg (\"prefix\"); \
+                                         pkg install -nodeps -local $path/*.tar.gz"
+          fi
+      done
+
+      # Re-write the octave-wide startup file (share/octave/site/m/startup/octaverc)
+      # To point to the new local_list in $out
+      addPkgLocalList $out ${octave}
+
+      wrapOctavePrograms "${lib.concatStringsSep " " packages}"
+     '' + postBuild;
+
+  inherit (octave) meta;
+
+  passthru = octave.passthru // {
+    interpreter = "$out/bin/octave";
+    inherit octave;
+    env = stdenv.mkDerivation {
+      name = "interactive-${octave.name}-environment";
+
+      buildCommand = ''
+        echo >&2 ""
+        echo >&2 "*** octave 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+        echo >&2 ""
+        exit 1
+      '';
+    };
+  };
+}
diff --git a/pkgs/development/interpreters/octave/build-octave-package.nix b/pkgs/development/interpreters/octave/build-octave-package.nix
new file mode 100644
index 00000000000..73a67769d6a
--- /dev/null
+++ b/pkgs/development/interpreters/octave/build-octave-package.nix
@@ -0,0 +1,113 @@
+# Generic builder for GNU Octave libraries.
+# This is a file that contains nested functions. The first, outer, function
+# is the library- and package-wide details, such as the nixpkgs library, any
+# additional configuration provided, and the namePrefix to use (based on the
+# pname and version of Octave), the octave package, etc.
+
+{ lib
+, stdenv
+, config
+, octave
+, texinfo
+, computeRequiredOctavePackages
+, writeRequiredOctavePackagesHook
+}:
+
+# The inner function contains information required to build the individual
+# libraries.
+{ fullLibName ? "${attrs.pname}-${attrs.version}"
+
+, src
+
+, dontPatch ? false
+, patches ? []
+, patchPhase ? ""
+
+, enableParallelBuilding ? true
+# Build-time dependencies for the package, which were compiled for the system compiling this.
+, nativeBuildInputs ? []
+
+# Build-time dependencies for the package, which may not have been compiled for the system compiling this.
+, buildInputs ? []
+
+# Propagate build dependencies so in case we have A -> B -> C,
+# C can import package A propagated by B
+# Run-time dependencies for the package.
+, propagatedBuildInputs ? []
+
+# Octave packages that are required at runtime for this one.
+# These behave similarly to propagatedBuildInputs, where if
+# package A is needed by B, and C needs B, then C also requires A.
+# The main difference between these and propagatedBuildInputs is
+# during the package's installation into octave, where all
+# requiredOctavePackages are ALSO installed into octave.
+, requiredOctavePackages ? []
+
+, preBuild ? ""
+
+, meta ? {}
+
+, passthru ? {}
+
+, ... } @ attrs:
+
+let
+  requiredOctavePackages' = computeRequiredOctavePackages requiredOctavePackages;
+
+in stdenv.mkDerivation {
+  packageName = "${fullLibName}";
+  # The name of the octave package ends up being
+  # "octave-version-package-version"
+  name = "${octave.pname}-${octave.version}-${fullLibName}";
+
+  # This states that any package built with the function that this returns
+  # will be an octave package. This is used for ensuring other octave
+  # packages are installed into octave during the environment building phase.
+  isOctavePackage = true;
+
+  OCTAVE_HISTFILE = "/dev/null";
+
+  inherit src;
+
+  inherit dontPatch patches patchPhase;
+
+  dontConfigure = true;
+
+  enableParallelBuilding = enableParallelBuilding;
+
+  requiredOctavePackages = requiredOctavePackages';
+
+  nativeBuildInputs = [
+    octave
+    writeRequiredOctavePackagesHook
+  ]
+  ++ nativeBuildInputs;
+
+  buildInputs = buildInputs ++ requiredOctavePackages';
+
+  propagatedBuildInputs = propagatedBuildInputs ++ [ texinfo ];
+
+  preBuild = if preBuild == "" then
+    ''
+      # This trickery is needed because Octave expects a single directory inside
+      # at the top-most level of the tarball.
+      tar --transform 's,^,${fullLibName}/,' -cz * -f ${fullLibName}.tar.gz
+    ''
+             else
+               preBuild;
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir -p $out
+    octave-cli --eval "pkg build $out ${fullLibName}.tar.gz"
+
+    runHook postBuild
+  '';
+
+  # We don't install here, because that's handled when we build the environment
+  # together with Octave.
+  dontInstall = true;
+
+  inherit meta;
+}
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 6ad25d24eae..0a87c1ddcf0 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, pkgs
 , lib
 # Note: either stdenv.mkDerivation or, for octaveFull, the qt-5 mkDerivation
 # with wrapQtAppsHook (comes from libsForQt5.callPackage)
@@ -45,6 +46,11 @@
 , python ? null
 , overridePlatforms ? null
 , sundials ? null
+# - Packages required for building extra packages.
+, newScope
+, callPackage
+, makeSetupHook
+, makeWrapper
 # - Build Octave Qt GUI:
 , enableQt ? false
 , qtbase ? null
@@ -60,6 +66,7 @@
 }:
 
 let
+
   # Not always evaluated
   blas' = if use64BitIdx then
     blas.override {
@@ -94,118 +101,144 @@ let
   else
     null
   ;
-in mkDerivation rec {
-  version = "6.1.0";
-  pname = "octave";
 
-  src = fetchurl {
-    url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
-    sha256 = "0mqa1g3fq0q45mqc0didr8vl6bk7jzj6gjsf1522qqjq2r04xwvg";
+  octavePackages = import ../../../top-level/octave-packages.nix {
+    inherit pkgs;
+    inherit lib stdenv fetchurl newScope;
+    octave = self;
   };
 
-  buildInputs = [
-    readline
-    ncurses
-    perl
-    flex
-    qhull
-    graphicsmagick
-    pcre
-    fltk
-    zlib
-    curl
-    blas'
-    lapack'
-    libsndfile
-    fftw
-    fftwSinglePrec
-    portaudio
-    qrupdate'
-    arpack'
-    libwebp
-    gl2ps
-  ]
-  ++ lib.optionals enableQt [
-    qtbase
-    qtsvg
-    qscintilla
-  ]
-  ++ lib.optionals (ghostscript != null) [ ghostscript ]
-  ++ lib.optionals (hdf5 != null) [ hdf5 ]
-  ++ lib.optionals (glpk != null) [ glpk ]
-  ++ lib.optionals (suitesparse != null) [ suitesparse' ]
-  ++ lib.optionals (enableJava) [ jdk ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals (gnuplot != null) [ gnuplot ]
-  ++ lib.optionals (python != null) [ python ]
-  ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
-  ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    darwin.apple_sdk.frameworks.Accelerate
-    darwin.apple_sdk.frameworks.Cocoa
-  ]
-  ;
-  nativeBuildInputs = [
-    pkg-config
-    gfortran
-    # Listed here as well because it's outputs are split
-    fftw
-    fftwSinglePrec
-    texinfo
-  ]
-  ++ lib.optionals (sundials != null) [ sundials ]
-  ++ lib.optionals enableJIT [ llvm ]
-  ++ lib.optionals enableQt [
-    qtscript
-    qttools
-  ]
-  ;
+  wrapOctave = callPackage ./wrap-octave.nix {
+    octave = self;
+    inherit (pkgs) makeSetupHook makeWrapper;
+  };
+
+  self = mkDerivation rec {
+    version = "6.2.0";
+    pname = "octave";
+
+    src = fetchurl {
+      url = "mirror://gnu/octave/${pname}-${version}.tar.gz";
+      sha256 = "sha256-RX0f2oY0qDni/Xz8VbmL1W82tq5z0xu530Pd4wEsqnw=";
+    };
+
+    buildInputs = [
+      readline
+      ncurses
+      perl
+      flex
+      qhull
+      graphicsmagick
+      pcre
+      fltk
+      zlib
+      curl
+      blas'
+      lapack'
+      libsndfile
+      fftw
+      fftwSinglePrec
+      portaudio
+      qrupdate'
+      arpack'
+      libwebp
+      gl2ps
+    ]
+    ++ lib.optionals enableQt [
+      qtbase
+      qtsvg
+      qscintilla
+    ]
+    ++ lib.optionals (ghostscript != null) [ ghostscript ]
+    ++ lib.optionals (hdf5 != null) [ hdf5 ]
+    ++ lib.optionals (glpk != null) [ glpk ]
+    ++ lib.optionals (suitesparse != null) [ suitesparse' ]
+    ++ lib.optionals (enableJava) [ jdk ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals (gnuplot != null) [ gnuplot ]
+    ++ lib.optionals (python != null) [ python ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Accelerate
+      darwin.apple_sdk.frameworks.Cocoa
+    ]
+    ;
+    nativeBuildInputs = [
+      pkg-config
+      gfortran
+      # Listed here as well because it's outputs are split
+      fftw
+      fftwSinglePrec
+      texinfo
+    ]
+    ++ lib.optionals (sundials != null) [ sundials ]
+    ++ lib.optionals enableJIT [ llvm ]
+    ++ lib.optionals enableQt [
+      qtscript
+      qttools
+    ]
+    ;
 
-  doCheck = !stdenv.isDarwin;
+    doCheck = !stdenv.isDarwin;
 
-  enableParallelBuilding = true;
+    enableParallelBuilding = true;
 
-  # See https://savannah.gnu.org/bugs/?50339
-  F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
+    # See https://savannah.gnu.org/bugs/?50339
+    F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
-  configureFlags = [
-    "--with-blas=blas"
-    "--with-lapack=lapack"
-    (if use64BitIdx then "--enable-64" else "--disable-64")
-  ]
+    configureFlags = [
+      "--with-blas=blas"
+      "--with-lapack=lapack"
+      (if use64BitIdx then "--enable-64" else "--disable-64")
+    ]
     ++ lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ]
     ++ lib.optionals enableReadline [ "--enable-readline" ]
     ++ lib.optionals stdenv.isDarwin [ "--with-x=no" ]
     ++ lib.optionals enableQt [ "--with-qt=5" ]
     ++ lib.optionals enableJIT [ "--enable-jit" ]
-  ;
+    ;
 
-  # Keep a copy of the octave tests detailed results in the output
-  # derivation, because someone may care
-  postInstall = ''
-    cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
-  '';
+    # Keep a copy of the octave tests detailed results in the output
+    # derivation, because someone may care
+    postInstall = ''
+      cp test/fntests.log $out/share/octave/${pname}-${version}-fntests.log || true
+    '';
 
-  passthru = {
-    sitePath = "share/octave/${version}/site";
-    blas = blas';
-    lapack = lapack';
-    qrupdate = qrupdate';
-    arpack = arpack';
-    suitesparse = suitesparse';
-    inherit python;
-    inherit enableQt enableJIT enableReadline enableJava;
-  };
+    passthru = rec {
+      sitePath = "share/octave/${version}/site";
+      octPkgsPath = "share/octave/octave_packages";
+      blas = blas';
+      lapack = lapack';
+      qrupdate = qrupdate';
+      arpack = arpack';
+      suitesparse = suitesparse';
+      inherit fftw fftwSinglePrec;
+      inherit portaudio;
+      inherit jdk;
+      inherit python;
+      inherit enableQt enableJIT enableReadline enableJava;
+      buildEnv = callPackage ./build-env.nix {
+        octave = self;
+        inherit octavePackages wrapOctave;
+        inherit (octavePackages) computeRequiredOctavePackages;
+      };
+      withPackages = import ./with-packages.nix { inherit buildEnv octavePackages; };
+      pkgs = octavePackages;
+      interpreter = "${self}/bin/octave";
+    };
 
-  meta = {
-    homepage = "https://www.gnu.org/software/octave/";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ raskin doronbehar ];
-    description = "Scientific Pragramming Language";
-    # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
-    broken = enableJIT;
-    platforms = if overridePlatforms == null then
-      (lib.platforms.linux ++ lib.platforms.darwin)
-    else overridePlatforms;
+    meta = {
+      homepage = "https://www.gnu.org/software/octave/";
+      license = lib.licenses.gpl3Plus;
+      maintainers = with lib.maintainers; [ raskin doronbehar ];
+      description = "Scientific Pragramming Language";
+      # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
+      broken = enableJIT;
+      platforms = if overridePlatforms == null then
+        (lib.platforms.linux ++ lib.platforms.darwin)
+      else overridePlatforms;
+    };
   };
-}
+
+in self
diff --git a/pkgs/development/interpreters/octave/hooks/default.nix b/pkgs/development/interpreters/octave/hooks/default.nix
new file mode 100644
index 00000000000..f47560921af
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/default.nix
@@ -0,0 +1,13 @@
+# Hooks for building Octave packages.
+{ octave
+, lib
+, callPackage
+, makeSetupHook
+}:
+
+rec {
+  writeRequiredOctavePackagesHook = callPackage ({ }:
+    makeSetupHook {
+      name = "write-required-octave-packages-hook";
+    } ./write-required-octave-packages-hook.sh) {};
+}
diff --git a/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
new file mode 100644
index 00000000000..64e87d68246
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/octave-write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing octave-write-required-octave-packages-hook.sh"
+
+octaveWriteRequiredOctavePackagesPhase() {
+    echo "Executing octaveWriteRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using octaveWriteRequiredOctavePackagesPhase"
+    preDistPhases+=" octaveWriteRequiredOctavePackagesPhase"
+fi
diff --git a/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
new file mode 100644
index 00000000000..032ea398ac5
--- /dev/null
+++ b/pkgs/development/interpreters/octave/hooks/write-required-octave-packages-hook.sh
@@ -0,0 +1,17 @@
+# Setup hook for writing octave packages that are run-time dependencies for
+# another package to a nix-support file.
+# `echo`s the full path name to the package derivation that is required.
+echo "Sourcing write-required-octave-packages-hook.sh"
+
+writeRequiredOctavePackagesPhase() {
+    echo "Executing writeRequiredOctavePackagesPhase"
+
+    mkdir -p $out/nix-support
+    echo ${requiredOctavePackages} > $out/nix-support/required-octave-packages
+}
+
+# Yes its a bit long...
+if [ -z "${dontWriteRequiredOctavePackagesPhase-}" ]; then
+    echo "Using writeRequiredOctavePackagesPhase"
+    preDistPhases+=" writeRequiredOctavePackagesPhase"
+fi
diff --git a/pkgs/development/interpreters/octave/with-packages.nix b/pkgs/development/interpreters/octave/with-packages.nix
new file mode 100644
index 00000000000..f00befbb00d
--- /dev/null
+++ b/pkgs/development/interpreters/octave/with-packages.nix
@@ -0,0 +1,6 @@
+{ buildEnv, octavePackages }:
+
+# Takes the buildEnv defined for Octave and the set of octavePackages, and returns
+# a function, which when given a function whose return value is a list of extra
+# packages to install, builds and returns that environment.
+f: let packages = f octavePackages; in buildEnv.override { extraLibs = packages; }
diff --git a/pkgs/development/interpreters/octave/wrap-octave.nix b/pkgs/development/interpreters/octave/wrap-octave.nix
new file mode 100644
index 00000000000..1e4616136a1
--- /dev/null
+++ b/pkgs/development/interpreters/octave/wrap-octave.nix
@@ -0,0 +1,16 @@
+{ lib
+, octave
+, makeSetupHook
+, makeWrapper
+}:
+
+# Defined in trivial-builders.nix
+# Imported as wrapOctave in octave/default.nix and passed to octave's buildEnv
+# as nativeBuildInput
+# Each of the substitutions is available in the wrap.sh script as @thingSubstituted@
+makeSetupHook {
+  name = "${octave.name}-pkgs-setup-hook";
+  deps = makeWrapper;
+  substitutions.executable = octave.interpreter;
+  substitutions.octave = octave;
+} ./wrap.sh
diff --git a/pkgs/development/interpreters/octave/wrap.sh b/pkgs/development/interpreters/octave/wrap.sh
new file mode 100644
index 00000000000..a5969fca2a9
--- /dev/null
+++ b/pkgs/development/interpreters/octave/wrap.sh
@@ -0,0 +1,132 @@
+# Unlinks a directory (given as the first argument), and re-creates that
+# directory as an actual directory. Then descends into the directory of
+# the same name in the origin (arg_2/arg_3) and symlinks the contents of
+# that directory into the passed end-location.
+unlinkDirReSymlinkContents() {
+    local dirToUnlink="$1"
+    local origin="$2"
+    local contentsLocation="$3"
+
+    unlink $dirToUnlink/$contentsLocation
+    mkdir -p $dirToUnlink/$contentsLocation
+    for f in $origin/$contentsLocation/*; do
+        ln -s -t "$dirToUnlink/$contentsLocation" "$f"
+    done
+}
+
+# Using unlinkDirReSymlinkContents, un-symlinks directories down to
+# $out/share/octave, and then creates the octave_packages directory.
+createOctavePackagesPath() {
+    local desiredOut=$1
+    local origin=$2
+
+    if [ -L "$out/share" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share"
+    fi
+
+    if [ -L "$out/share/octave" ]; then
+        unlinkDirReSymlinkContents "$desiredOut" "$origin" "share/octave"
+    fi
+
+    # Now that octave_packages has a path rather than symlinks, create the
+    # octave_packages directory for installed packages.
+    mkdir -p "$desiredOut/share/octave/octave_packages"
+}
+
+# First, descends down to $out/share/octave/site/m/startup/octaverc, and
+# copies that start-up file. Once done, it performs a `chmod` to allow
+# writing. Lastly, it `echo`s the location of the locally installed packages
+# to the startup file, allowing octave to discover installed packages.
+addPkgLocalList() {
+    local desiredOut=$1
+    local origin=$2
+    local octaveSite="share/octave/site"
+    local octaveSiteM="$octaveSite/m"
+    local octaveSiteStartup="$octaveSiteM/startup"
+    local siteOctavercStartup="$octaveSiteStartup/octaverc"
+
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSite"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteM"
+    unlinkDirReSymlinkContents "$desiredOut" "$origin" "$octaveSiteStartup"
+
+    unlink "$out/$siteOctavercStartup"
+    cp "$origin/$siteOctavercStartup" "$desiredOut/$siteOctavercStartup"
+    chmod u+w "$desiredOut/$siteOctavercStartup"
+    echo "pkg local_list $out/.octave_packages" >> "$desiredOut/$siteOctavercStartup"
+}
+
+# Wrapper function for wrapOctaveProgramsIn. Takes one argument, a
+# space-delimited string of packages' paths that will be installed.
+wrapOctavePrograms() {
+    wrapOctaveProgramsIn "$out/bin" "$out" "$@"
+}
+
+# Wraps all octave programs in $out/bin with all the propagated inputs that
+# a particular package requires. $1 is the directory to look for binaries in
+# to wrap. $2 is the path to the octave ENVIRONMENT. $3 is the space-delimited
+# string of packages.
+wrapOctaveProgramsIn() {
+    local dir="$1"
+    local octavePath="$2"
+    local pkgs="$3"
+    local f
+
+    buildOctavePath "$octavePath" "$pkgs"
+
+    # Find all regular files in the output directory that are executable.
+    if [ -d "$dir" ]; then
+        find "$dir" -type f -perm -0100 -print0 | while read -d "" f; do
+            echo "wrapping \`$f'..."
+            local -a wrap_args=("$f"
+                --prefix PATH ':' "$program_PATH"
+                   )
+            local -a wrapProgramArgs=("${wrap_args[@]}")
+            wrapProgram "${wrapProgramArgs[@]}"
+    done
+    fi
+}
+
+# Build the PATH environment variable by walking through the closure of
+# dependencies. Starts by constructing the `program_PATH` variable with the
+# environment's path, then adding the original octave's location, and marking
+# them in `octavePathsSeen`.
+buildOctavePath() {
+    local octavePath="$1"
+    local packages="$2"
+
+    local pathsToSearch="$octavePath $packages"
+
+    # Create an empty table of Octave paths.
+    declare -A octavePathsSeen=()
+    program_PATH=
+    octavePathsSeen["$out"]=1
+    octavePathsSeen["@octave@"]=1
+    addToSearchPath program_PATH "$out/bin"
+    addToSearchPath program_PATH "@octave@/bin"
+    echo "program_PATH to change to is: $program_PATH"
+    for path in $pathsToSearch; do
+    echo "Recurse to propagated-build-input: $path"
+    _addToOctavePath $path
+    done
+}
+
+# Adds the bin directories to the program_PATH variable.
+# Recurses on any paths declared in `propagated-build-inputs`, while avoiding
+# duplicating paths by flagging the directires it has seen in `octavePathsSeen`.
+_addToOctavePath() {
+    local dir="$1"
+    # Stop if we've already visited this path.
+    if [ -n "${octavePathsSeen[$dir]}" ]; then return; fi
+    octavePathsSeen[$dir]=1
+    # addToSearchPath is defined in stdenv/generic/setup.sh. It has the effect
+    # of calling `export X=$dir/...:$X`.
+    addToSearchPath program_PATH $dir/bin
+
+    # Inspect the propagated inputs (if they exist) and recur on them.
+    local prop="$dir/nix-support/propagated-build-inputs"
+    if [ -e $prop ]; then
+    for new_path in $(cat $prop); do
+        _addToOctavePath $new_path
+    done
+    fi
+}
diff --git a/pkgs/development/interpreters/scheme48/default.nix b/pkgs/development/interpreters/scheme48/default.nix
index ca34d5055c5..883b0b2f39a 100644
--- a/pkgs/development/interpreters/scheme48/default.nix
+++ b/pkgs/development/interpreters/scheme48/default.nix
@@ -1,17 +1,24 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "scheme48-1.9.2";
-
-  meta = {
-    homepage = "http://s48.org/";
-    description = "Scheme 48";
-    platforms = with lib.platforms; unix;
-    license = lib.licenses.bsd3;
-  };
+stdenv.mkDerivation rec {
+  pname = "scheme48";
+  version = "1.9.2";
 
   src = fetchurl {
-    url = "http://s48.org/1.9.2/scheme48-1.9.2.tgz";
+    url = "http://s48.org/${version}/scheme48-${version}.tgz";
     sha256 = "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw";
   };
+
+  # Make more reproducible by removing build user and date.
+  postPatch = ''
+    substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
+  '';
+
+  meta = with lib; {
+    homepage = "http://s48.org/";
+    description = "Scheme 48 interpreter for R5RS";
+    platforms = platforms.unix;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.siraben ];
+  };
 }
diff --git a/pkgs/development/java-modules/junit/default.nix b/pkgs/development/java-modules/junit/default.nix
index 2cb9ab001c2..79f73879e6b 100644
--- a/pkgs/development/java-modules/junit/default.nix
+++ b/pkgs/development/java-modules/junit/default.nix
@@ -1,12 +1,17 @@
-{ lib, pkgs, mavenbuild, fetchMaven }:
+{ lib, pkgs, mavenbuild, fetchMaven, maven, jdk8 }:
 
 with pkgs.javaPackages;
 
 let
   poms = import (../poms.nix) { inherit fetchMaven; };
   collections = import (../collections.nix) { inherit pkgs; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  junitGen = { mavenDeps, sha512, version }: mavenbuild {
+  junitGen = { mavenDeps, sha512, version }: mavenbuild-jdk8 {
     inherit mavenDeps sha512 version;
 
     name = "junit-${version}";
diff --git a/pkgs/development/java-modules/maven-hello/default.nix b/pkgs/development/java-modules/maven-hello/default.nix
index eac127b6dcc..96d0031270b 100644
--- a/pkgs/development/java-modules/maven-hello/default.nix
+++ b/pkgs/development/java-modules/maven-hello/default.nix
@@ -1,11 +1,21 @@
-{ lib, pkgs, mavenbuild }:
+{ lib
+, pkgs
+, mavenbuild
+, maven
+, jdk8
+}:
 
 with pkgs.javaPackages;
 
 let
   poms = import ../poms.nix { inherit fetchMaven; };
+  mavenbuild-jdk8 = mavenbuild.override {
+    maven = maven.override {
+      jdk = jdk8;
+    };
+  };
 in rec {
-  mavenHelloRec = { mavenDeps, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
+  mavenHelloRec = { mavenDeps, mavenbuild, sha512, version, skipTests ? true, quiet ? true }: mavenbuild {
     inherit mavenDeps sha512 version skipTests quiet;
 
     name = "maven-hello-${version}";
@@ -31,6 +41,7 @@ in rec {
     mavenDeps = [];
     sha512 = "3kv5z1i02wfb0l5x3phbsk3qb3wky05sqn4v3y4cx56slqfp9z8j76vnh8v45ydgskwl2vs9xjx6ai8991mzb5ikvl3vdgmrj1j17p2";
     version = "1.0";
+    mavenbuild = mavenbuild-jdk8;
   };
 
   mavenHello_1_1 = mavenHelloRec {
@@ -39,5 +50,6 @@ in rec {
     version = "1.1";
     skipTests = false;
     quiet = false;
+    mavenbuild = mavenbuild-jdk8;
   };
 }
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 208c74981dc..8a8ab23d495 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.3";
+  version = "2021.Q1.4";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "x9VzPALIlgE3eIKY4/qbFg5w+zd2W/jbqFXgJfpvLP4=";
+    sha256 = "mA7YalgcfjfYdmKPk8L4mfDJWn0rimPDoDB9/S3pyNM=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index 23d7f9d8629..937eef2d0d9 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -26,5 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej eelco ];
+    # https://github.com/awslabs/aws-c-common/issues/754
+    broken = stdenv.hostPlatform.isMusl;
   };
 }
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index dd72b7eb41d..700fe4f4686 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.4.21";
+  version = "4.4.24";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0bfswwvvdshaahg4jd2j10f0sci8809s4khajd0m6b059zwc7y25";
+    sha256 = "sha256-RfjD+E8FLFNBkwpOohNAKDINHAhSNEkeVArqtjfn2i0=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch b/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
index 47f41972745..8a14fb3a5fa 100644
--- a/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
+++ b/pkgs/development/libraries/civetweb/0001-allow-setting-paths-in-makefile.patch
@@ -1,18 +1,7 @@
-From 06b2c6dd6439c01bfb5a4c7b0ec6909c349a66b1 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <freddyrietdijk@fridh.nl>
-Date: Thu, 28 Feb 2019 16:25:49 +0100
-Subject: [PATCH] allow setting paths in makefile
-
-and install headers and libs
----
- Makefile | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b507e2b0..d21e5c56 100644
---- a/Makefile
-+++ b/Makefile
-@@ -19,13 +19,13 @@ BUILD_DIR = out
+diff -u a/Makefile b/Makefile
+--- a/Makefile	2020-12-27 18:48:53.934098765 +0100
++++ b/Makefile	2020-12-27 18:50:44.022674117 +0100
+@@ -19,13 +19,13 @@
  # http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
  PREFIX ?= /usr/local
  EXEC_PREFIX = $(PREFIX)
@@ -20,24 +9,16 @@ index b507e2b0..d21e5c56 100644
 +BINDIR ?= $(EXEC_PREFIX)/bin
  DATAROOTDIR = $(PREFIX)/share
  DOCDIR = $(DATAROOTDIR)/doc/$(CPROG)
- SYSCONFDIR = $(PREFIX)/etc
+ SYSCONFDIR ?= $(PREFIX)/etc
  HTMLDIR = $(DOCDIR)
 -INCLUDEDIR = $(DESTDIR)$(PREFIX)/include
 -LIBDIR = $(DESTDIR)$(EXEC_PREFIX)/lib
 +INCLUDEDIR ?= $(DESTDIR)$(PREFIX)/include
 +LIBDIR ?= $(DESTDIR)$(EXEC_PREFIX)/lib
+ PID_FILE ?= /var/run/$(CPROG).pid
  
  # build tools
- MKDIR = mkdir -p
-@@ -270,17 +270,17 @@ build: $(CPROG) $(CXXPROG)
- unit_test: $(UNIT_TEST_PROG)
- 
- ifeq ($(CAN_INSTALL),1)
--install: $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
-+install: install-headers install-slib $(HTMLDIR)/index.html $(SYSCONFDIR)/civetweb.conf
- 	install -d -m 755  "$(DOCDIR)"
- 	install -m 644 *.md "$(DOCDIR)"
- 	install -d -m 755 "$(BINDIR)"
+@@ -337,10 +337,10 @@
  	install -m 755 $(CPROG) "$(BINDIR)/"
  
  install-headers:
@@ -50,6 +31,3 @@ index b507e2b0..d21e5c56 100644
  
  install-slib: lib$(CPROG).so
  	$(eval version=$(shell grep -w "define CIVETWEB_VERSION" include/civetweb.h | sed 's|.*VERSION "\(.*\)"|\1|g'))
--- 
-2.19.2
-
diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix
index 8a3474a491f..fbbfb6ba738 100644
--- a/pkgs/development/libraries/civetweb/default.nix
+++ b/pkgs/development/libraries/civetweb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "civetweb";
-  version = "1.11";
+  version = "1.13";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1drnid6gs97cp9zpvsxz42yfj8djmgx98fg9p2993x9mpi547vzv";
+    sha256 = "/q7Q1lavIR3i126uI4NsKByHJ6Tp+DSN60R4YxR506U=";
   };
 
   makeFlags = [
@@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  installTargets = [
+    "install-headers"
+    "install-lib"
+    "install-slib"
+    "install"
+  ];
+
   preInstall = ''
     mkdir -p $dev/include
     mkdir -p $out/lib
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index fa7d70d5213..096910b238b 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -2,6 +2,7 @@
 , guiSupport ? false, libX11
 
   # see http://dlib.net/compile.html
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? true
 }:
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DUSE_DLIB_USE_CUDA=${if cudaSupport then "1" else "0"}"
+    "-DUSE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
     "-DUSE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}" ];
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/eclib/default.nix b/pkgs/development/libraries/eclib/default.nix
index 4709441a101..a8697207ed1 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 = "20190909"; # upgrade might break the sage interface
+  version = "20210223"; # 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 = "0y1vdi4120gdw56gg2dn3wh625yr9wpyk3wpbsd25w4lv83qq5da";
+    sha256 = "sha256-xnSw5cdg4PLa0GT/blCYDz/IG5aj+HG2NHSlyCiH9g0=";
   };
   buildInputs = [
     pari
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 955dd2eeb36..7f98a9f1122 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.5.2";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "1p09p1wn8cbj17z83iyyy2498wy1gzyi2mmqi5i2cxglslbm6hy0";
+    sha256 = "sha256-XaQQOt3UekjE4QUUW6+W5M4tkTqeGjZDExJB1U1/gJ8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gexiv2/default.nix b/pkgs/development/libraries/gexiv2/default.nix
index 220b68fa18b..071e749b400 100644
--- a/pkgs/development/libraries/gexiv2/default.nix
+++ b/pkgs/development/libraries/gexiv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gexiv2";
-  version = "0.12.1";
+  version = "0.12.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla";
+    sha256 = "IyK1UqyjMO73lySmmcUaMCNF1eB0c4V4s5i38v+XlEw=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config gobject-introspection vala gtk-doc docbook_xsl docbook_xml_dtd_43 ];
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index e2e0ba3bccf..38ef25770aa 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.2";
+  version = "3.3.3";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "0b5lsxz1xkzip7fvbicjkxvg5ig8gbhx1zrlhandqc0rpk56bvyw";
+    sha256 = "sha256-NfEPXjpVnFvh3Y70RZm8nDG0QwJbefF9wYNUq0BZTN4=";
   };
 
   propagatedBuildInputs = [ libGL ];
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 313a063cae8..178bf64f5c2 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,10 +1,8 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gettext
-, config
 , pkg-config
 , python3
 , gst-plugins-base
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index a032f5f5b5a..3ab25863a80 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -30,6 +30,7 @@
 , mpg123
 , twolame
 , gtkSupport ? false, gtk3 ? null
+, qt5Support ? false, qt5 ? null
 , raspiCameraSupport ? false, libraspberrypi ? null
 , enableJack ? true, libjack2
 , libXdamage
@@ -102,7 +103,12 @@ stdenv.mkDerivation rec {
   ] ++ optionals gtkSupport [
     # for gtksink
     gtk3
-  ] ++ optionals stdenv.isDarwin [
+  ] ++ optionals qt5Support (with qt5; [
+    qtbase
+    qtdeclarative
+    qtwayland
+    qtx11extras
+  ]) ++ optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Cocoa
   ] ++ optionals stdenv.isLinux [
     libv4l
@@ -118,7 +124,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
     "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
-    "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
+  ] ++ optionals (!qt5Support) [
+    "-Dqt5=disabled"
   ] ++ optionals (!gtkSupport) [
     "-Dgtk3=disabled"
   ] ++ optionals (!enableJack) [
@@ -131,7 +138,6 @@ stdenv.mkDerivation rec {
     "-Dv4l2-gudev=disabled" # Linux-only
     "-Dv4l2=disabled" # Linux-only
     "-Dximagesrc=disabled" # Linux-only
-    "-Dpulse=disabled" # TODO check if we can keep this enabled
   ] ++ optionals (!raspiCameraSupport) [
     "-Drpicamsrc=disabled"
   ];
@@ -150,6 +156,9 @@ stdenv.mkDerivation rec {
   # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
   doCheck = false;
 
+  # must be explicitely set since 5590e365
+  dontWrapQtApps = true;
+
   meta = with lib; {
     description = "GStreamer Good Plugins";
     homepage = "https://gstreamer.freedesktop.org";
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 8a9c80a6175..61d87211e0a 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.3";
+  version = "1.12.4";
 
   src = fetchFromGitHub {
-    sha256 = "1mhj29n40z7bvn1ns61wf8812ikm2mpc0d5ip0ha920z0anzqhwr";
+    sha256 = "sha256-7e9D9Q3CAm+2+0vl81djSZwKrQRXc5UxcbJVMt91/vU=";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/libavif/default.nix b/pkgs/development/libraries/libavif/default.nix
index 8c33e6f1b6d..173422fa71e 100644
--- a/pkgs/development/libraries/libavif/default.nix
+++ b/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.8.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qvjd3xi9r89pcblxdgz4c6hqp67ss53b1x9zkg7lrik7g3lwq8d";
+    sha256 = "sha256-7p0w94Od33vjTI5wGLxmDC5P2hebAl7OwJPl1lANhKs=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix
index 7c458bae19c..b8e71c2dfd3 100644
--- a/pkgs/development/libraries/libbap/default.nix
+++ b/pkgs/development/libraries/libbap/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation {
   pname = "libbap";
-  version = "master-2019-11-15";
+  version = "master-2020-11-25";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap-bindings";
-    rev = "1a30dd3e1df18c432a83a7038b555662d6982ae3";
-    sha256 = "140gmak2kymh3r0fagb6ms66lmvwhhqj8pcd3qxc1p4ar330fwrh";
+    rev = "3193cb31e1b1f2455406ea0c819dad9dfa2ba10d";
+    sha256 = "0m4spva3z6fgbwlg4zq53l5p227dic893q2qq65pvzxyf7k7nmil";
   };
 
   nativeBuildInputs = [ autoreconfHook which ];
diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix
index 170bb116a8a..27487c6a315 100644
--- a/pkgs/development/libraries/libfaketime/default.nix
+++ b/pkgs/development/libraries/libfaketime/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libfaketime";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "https://github.com/wolfcw/libfaketime/archive/v${version}.tar.gz";
-    sha256 = "18s2hjm4sbrlg6sby944z87yslnq9s85p7j892hyr42qrlvq4a06";
+    sha256 = "sha256-V9AYEVA2HAqbXI7vBbETkvYTStosLZmOkuY9rtY5ZHw=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index f3f7313accb..979ba7eea53 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitLab
 , pkg-config
 , meson
+, python3
 , ninja
 , gusb
 , pixman
@@ -10,13 +11,13 @@
 , gobject-introspection
 , coreutils
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfprint";
-  version = "1.90.5";
+  version = "1.90.7";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "libfprint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wfwka2ik4hbb5wk5dp533040sqygwswg91c3v5fvpmmixh5qx9j";
+    sha256 = "sha256-g/yczzCZEzUKV2uFl1MAPL1H/R2QJSwxgppI2ftt9QI=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
     gobject-introspection
   ];
@@ -44,16 +45,29 @@ stdenv.mkDerivation rec {
     nss
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds";
+  checkInputs = [
+    python3
+  ];
 
   mesonFlags = [
     "-Dudev_rules_dir=${placeholder "out"}/lib/udev/rules.d"
+    # Include virtual drivers for fprintd tests
+    "-Ddrivers=all"
   ];
 
+  doCheck = true;
+
+  postPatch = ''
+    patchShebangs \
+      tests/test-runner.sh \
+      tests/unittest_inspector.py \
+      tests/virtual-image.py
+  '';
+
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "A library designed to make it easy to add support for consumer fingerprint readers";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 5ab6dde09d7..43092f71c57 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -9,7 +9,6 @@
 , docbook_xsl
 , docbook_xml_dtd_43
 , gtk3
-, gnome3
 , glade
 , dbus
 , xvfb_run
diff --git a/pkgs/development/libraries/libmaxminddb/default.nix b/pkgs/development/libraries/libmaxminddb/default.nix
index 078865198a4..05ae1af2e25 100644
--- a/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-fFbnkf8qZVIV5+04ZLH/3X00o4g1d57+1WpC8Fa9WKo=";
+    sha256 = "sha256-UjcHbSUKX3wpfjMcNaQz7qrw3CBeBw5Ns1PJuhDzQKI=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix
index 10197bd8db0..f46a2039464 100644
--- a/pkgs/development/libraries/libofx/default.nix
+++ b/pkgs/development/libraries/libofx/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libofx";
-  version = "0.9.15";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "LibOFX";
     repo = pname;
     rev = version;
-    sha256 = "1jx56ma351p8af8dvavygjwf6ipa7qbgq7bpdsymwj27apdnixfy";
+    sha256 = "sha256-gdLh5ZUciN4FCJwTCaJSKJ5RjXgNDXnDOUWkyTZwf2c=";
   };
 
   preConfigure = "./autogen.sh";
diff --git a/pkgs/development/libraries/libosmpbf/default.nix b/pkgs/development/libraries/libosmpbf/default.nix
index 1cbfe44ef4e..572b5710fa9 100644
--- a/pkgs/development/libraries/libosmpbf/default.nix
+++ b/pkgs/development/libraries/libosmpbf/default.nix
@@ -1,16 +1,16 @@
 {lib, stdenv, fetchurl, protobuf}:
 
 stdenv.mkDerivation {
-  name = "libosmpbf-1.3.3";
+  name = "libosmpbf-1.5.0";
 
   src = fetchurl {
-    url = "https://github.com/scrosby/OSM-binary/archive/v1.3.3.tar.gz";
-    sha256 = "a109f338ce6a8438a8faae4627cd08599d0403b8977c185499de5c17b92d0798";
+    url = "https://github.com/scrosby/OSM-binary/archive/v1.5.0.tar.gz";
+    sha256 = "sha256-Kr8xJnKXk3MsM4B2OZnMNl5Rv/2jaaAIITh5o82QR2w=";
   };
 
   buildInputs = [ protobuf ];
 
-  sourceRoot = "OSM-binary-1.3.3/src";
+  sourceRoot = "OSM-binary-1.5.0/src";
 
   installFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index a5b6e3b117e..8bd187b5300 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.16.1";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "sha256-mTxxiyN4t84BD4bBysvsrvP7L+DNbP6sMlcNFg4eMF8=";
+    sha256 = "sha256-VlKJrGZOMmnWFmdwV3SchBfyRsHM78eNV+uWONLZbJI=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index 10b2451e7c8..24cd29dcb10 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "libquotient";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "quotient-im";
     repo = "libQuotient";
     rev = version;
-    sha256 = "sha256-bWqZiRv/mJzw+WY+7dLIzYBu8jhglBqgTjiXyQ1y6IQ=";
+    sha256 = "sha256-TAfo4BkNHE8r32FPT2iDjddq2lk1yC9DrRGZurSO48c=";
   };
 
   buildInputs = [ qtbase qtmultimedia ];
diff --git a/pkgs/development/libraries/libsigsegv/default.nix b/pkgs/development/libraries/libsigsegv/default.nix
index 20cb80b1ff8..4189ba9c6fa 100644
--- a/pkgs/development/libraries/libsigsegv/default.nix
+++ b/pkgs/development/libraries/libsigsegv/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libsigsegv-2.12";
+  name = "libsigsegv-2.13";
 
   src = fetchurl {
     url = "mirror://gnu/libsigsegv/${name}.tar.gz";
-    sha256 = "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s";
+    sha256 = "sha256-vnjuQXawX3x1/wMpjYSHTbkPS2ydVQPw2hIms6PEgRk=";
   };
 
   patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null;
diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix
index c0019ee268a..fd7d80574a7 100644
--- a/pkgs/development/libraries/libwnck/default.nix
+++ b/pkgs/development/libraries/libwnck/default.nix
@@ -23,5 +23,8 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/libwnck";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    # ./xutils.h:31:10: fatal error: 'gdk/gdkx.h' file not found
+    # #include <gdk/gdkx.h>
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/lime/default.nix b/pkgs/development/libraries/lime/default.nix
index 3a16b5202c4..e6996a53c83 100644
--- a/pkgs/development/libraries/lime/default.nix
+++ b/pkgs/development/libraries/lime/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.4.0";
+  version = "4.4.21";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z";
+    sha256 = "sha256-3whr2KSAULRe3McgOtJlA3NEPF8NO6YHp+4vqeMPT5I=";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
diff --git a/pkgs/development/libraries/log4cplus/default.nix b/pkgs/development/libraries/log4cplus/default.nix
index 1e16ee96ae7..e9ef841b65d 100644
--- a/pkgs/development/libraries/log4cplus/default.nix
+++ b/pkgs/development/libraries/log4cplus/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 let
-  name = "log4cplus-2.0.5";
+  name = "log4cplus-2.0.6";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/log4cplus/${name}.tar.bz2";
-    sha256 = "05gb0crf440da3vcaxavglzvsldw8hsvxq3xvvj73mzniv3bz3dk";
+    sha256 = "sha256-GpY6/Q+IPWLelGsYkn0jgFH9R5NuQV6r7/4rE5fxbso=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index 3cda9ff3006..6cdc24770d4 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -33,7 +33,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mediastreamer2";
-  version = "4.4.13";
+  version = "4.4.24";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0w84v1ajhyysr41qaj7x4njwdak84cc10lq33hl8lq68a52fc2vw";
+    sha256 = "sha256-wAWcSvsLRzscpx9YAnBcsoYuy+77yJrU3+cNbRu0i7U=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/notcurses/default.nix b/pkgs/development/libraries/notcurses/default.nix
index 7b9bffb9bc9..09169019a12 100644
--- a/pkgs/development/libraries/notcurses/default.nix
+++ b/pkgs/development/libraries/notcurses/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg,
+{ stdenv, cmake, pkg-config, pandoc, libunistring, ncurses, ffmpeg, readline,
   fetchFromGitHub, lib,
   multimediaSupport ? true
 }:
 let
-  version = "2.1.0";
+  version = "2.1.5";
 in
 stdenv.mkDerivation {
   pname = "notcurses";
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake pkg-config pandoc ];
 
-  buildInputs = [ libunistring ncurses ]
+  buildInputs = [ libunistring ncurses readline ]
     ++ lib.optional multimediaSupport ffmpeg;
 
   cmakeFlags =
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     owner  = "dankamongmen";
     repo   = "notcurses";
     rev    = "v${version}";
-    sha256 = "0jvngg40c1sqf85kqy6ya0vflpxsj7j4g6cw609992rifaghxiny";
+    sha256 = "02x9a0z7mbgry2wsfai1l3jwb2zpcg4gq6a2w5d920ap2fixzy8b";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index 4fbc34bcce6..ca3a081aee0 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -1,22 +1,25 @@
-{ lib, stdenv, fetchurl, cmake }:
+{ lib, stdenv, fetchFromGitLab, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.1";
+  version = "3.2.2";
 
-  src = fetchurl {
-    url = "https://matrix.org/git/olm/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0iacbi9iibhzifh1bk6bi5xin557lvqmbf4ccsb8drj50dbxjiyr";
+  src = fetchFromGitLab {
+    domain = "gitlab.matrix.org";
+    owner = "matrix-org";
+    repo = pname;
+    rev = version;
+    sha256 = "0qji25wiwmkxyfpraxj96c54hyayqmjkvwh0gsy5gb5pz5bp4mcy";
   };
 
   nativeBuildInputs = [ cmake ];
 
   doCheck = true;
 
-  meta = {
+  meta = with lib; {
     description = "Implements double cryptographic ratchet and Megolm ratchet";
-    license = lib.licenses.asl20;
     homepage = "https://gitlab.matrix.org/matrix-org/olm";
-    platforms = with lib.platforms; darwin ++ linux;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tilpner oxzi ];
   };
 }
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 8eeff3de943..da7e9c755a0 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openscenegraph";
-  version = "3.6.4";
+  version = "3.6.5";
 
   src = fetchFromGitHub {
     owner = "openscenegraph";
     repo = "OpenSceneGraph";
     rev = "OpenSceneGraph-${version}";
-    sha256 = "0x8hdbzw0b71j91fzp9cwmy9a7ava8v8wwyj8nxijq942vdx1785";
+    sha256 = "00i14h82qg3xzcyd8p02wrarnmby3aiwmz0z43l50byc9f8i05n1";
   };
 
   nativeBuildInputs = [ pkg-config cmake doxygen ];
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 9228424797e..83eb77b603c 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opensubdiv";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenSubdiv";
     rev = "v${lib.replaceChars ["."] ["_"] version}";
-    sha256 = "0zpnpg2zzyavv9r3jakv3j2gn603b62rbczrflc6qmg6qvpgz0kr";
+    sha256 = "sha256-ejxQ5mGIIrEa/rAfkTrRbIRerrAvEPoWn7e0lIqS1JQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index 196cac4bcaf..d9d26d0b537 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ortp";
-  version = "4.4.9";
+  version = "4.4.24";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "0igiw863gnf9f626v0igg1pj3fv4anvlvlk6xx3bk2zdi52a9kcc";
+    sha256 = "sha256-jM2kRInti7lG72bSTbdVZLshb3gvgm2EccnZNwzi8UU=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/protolock/default.nix b/pkgs/development/libraries/protolock/default.nix
index ef1fa6efec7..7d423ac0347 100644
--- a/pkgs/development/libraries/protolock/default.nix
+++ b/pkgs/development/libraries/protolock/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protolock";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "nilslice";
     repo = "protolock";
     rev = "v${version}";
-    sha256 = "sha256-rnsHVJHFE/8JIOfMWqGBfIbIuOFyHtT54Vu/DaRY9js=";
+    sha256 = "sha256-cKrG8f8cabuGDN1gmBYleXcBqeJksdREiEy63UK/6J0=";
   };
 
   vendorSha256 = "sha256-3kRGLZgYcbUQb6S+NrleMNNX0dXrE9Yer3vvqxiP4So=";
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index a42941cbb68..7a9818bce97 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-VCGR0Q8FcoDLr+CFTk/OLMI4zs87K/IdZS1ANmkeb4s=";
+    sha256 = "sha256-EoNzxwuLiYi6sMhyqD/x+ku6BKA+i5og4XsUy2JBN0U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/science/math/openlibm/default.nix b/pkgs/development/libraries/science/math/openlibm/default.nix
index 5bfef9e8ba3..34ebc36ebb9 100644
--- a/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.4";
+  version = "0.7.5";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "sha256-61hSBNbJlWkeVUXqT/y4h8FZvwXMXuG7+Spvzd4vzK4=";
+    sha256 = "sha256-vpg7nh5A5pbou7frj2N208oK5nWubYKTZUA4Ww7uwVs=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index 448270183a5..37ea3b65728 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "1x5f8b5s67kf9sjx04rp81q0f3dlnqfngn3h0lrfnphipald5fji";
+    sha256 = "sha256-azRuLB03NvW+brw7A/kbgkjoDUlk1p7Ch4zZD55QiMQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index b423e557a56..7e43fc7f5c3 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -8,7 +8,7 @@ let
 
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
-      sha256 = "0giklai05shqalj1wwadi9hg5dx6vff8nrblqh9xxljnrq701h00";
+      sha256 = "0jgzaawf6vn15qyi15b6dlq80sk2gaiwfikingldx5mhjrwj7pfx";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index f61811428ce..dbbaca7e11a 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3Packages, dbus-glib, dbus
-, telepathy-farstream, telepathy-glib, fetchpatch }:
+, telepathy-farstream, telepathy-glib }:
 
 let
   inherit (python3Packages) python dbus-python;
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index fa506733c16..42e6e920be4 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -27,7 +27,21 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  postPatch = "patchShebangs script";
+  patches = [
+    # Do not rely on dynamic loader path
+    # TCTI loader relies on dlopen(), this patch prefixes all calls with the output directory
+    ./no-dynamic-loader-path.patch
+  ];
+
+  postPatch = ''
+    patchShebangs script
+    substituteInPlace src/tss2-tcti/tctildr-dl.c \
+      --replace '@PREFIX@' $out/lib/
+    substituteInPlace ./test/unit/tctildr-dl.c \
+      --replace ', "libtss2' ", \"$out/lib/libtss2" \
+      --replace ', "foo' ", \"$out/lib/foo" \
+      --replace ', TEST_TCTI_NAME' ", \"$out/lib/\"TEST_TCTI_NAME"
+  '';
 
   configureFlags = [
     "--enable-unit"
@@ -35,6 +49,14 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = true;
+  preCheck = ''
+    # Since we rewrote the load path in the dynamic loader for the TCTI
+    # The various tcti implementation should be placed in their target directory
+    # before we could run tests
+    installPhase
+    # install already done, dont need another one
+    dontInstall=1
+  '';
 
   postInstall = ''
     # Do not install the upstream udev rules, they rely on specific
diff --git a/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
new file mode 100644
index 00000000000..86cdcd1541e
--- /dev/null
+++ b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
@@ -0,0 +1,39 @@
+diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c
+index b364695c..b13be3ef 100644
+--- a/src/tss2-tcti/tctildr-dl.c
++++ b/src/tss2-tcti/tctildr-dl.c
+@@ -85,7 +85,15 @@ handle_from_name(const char *file,
+     if (handle == NULL) {
+         return TSS2_TCTI_RC_BAD_REFERENCE;
+     }
+-    *handle = dlopen(file, RTLD_NOW);
++    size = snprintf(file_xfrm,
++                    sizeof (file_xfrm),
++                    "@PREFIX@%s",
++                    file);
++    if (size >= sizeof (file_xfrm)) {
++        LOG_ERROR("TCTI name truncated in transform.");
++        return TSS2_TCTI_RC_BAD_VALUE;
++    }
++    *handle = dlopen(file_xfrm, RTLD_NOW);
+     if (*handle != NULL) {
+         return TSS2_RC_SUCCESS;
+     } else {
+@@ -94,7 +102,7 @@ handle_from_name(const char *file,
+     /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE_0,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE_0,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
+@@ -109,7 +117,7 @@ handle_from_name(const char *file,
+     /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */
+     size = snprintf(file_xfrm,
+                     sizeof (file_xfrm),
+-                    TCTI_NAME_TEMPLATE,
++                    "@PREFIX@" TCTI_NAME_TEMPLATE,
+                     file);
+     if (size >= sizeof (file_xfrm)) {
+         LOG_ERROR("TCTI name truncated in transform.");
diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix
index 85eaa1ae80e..f4d1f3c4077 100644
--- a/pkgs/development/libraries/vtk/generic.nix
+++ b/pkgs/development/libraries/vtk/generic.nix
@@ -93,5 +93,7 @@ in stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp tfmoraes lheckemann ];
     platforms = with platforms; unix;
+    # /nix/store/xxxxxxx-apple-framework-Security/Library/Frameworks/Security.framework/Headers/Authorization.h:192:7: error: variably modified 'bytes' at file scope
+    broken = if stdenv.isDarwin && (majorVersion == 7 || majorVersion == 8) then true else false;
   };
 }
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 48178e77409..4635a80152d 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,33 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.6.0";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "0hk3bnzznxj047gwxdxw2v3w6jqq47996m7g72iwj6c2ai9g6h4m";
+    sha256 = "1aa51j0xnhi49izc8djya68l70jkjv25559pgybfb9sa4fa4gz97";
   };
 
-  # almost same as Debian but for now using --enable-all instead of --enable-distro to ensure options.h gets installed
-  configureFlags = [ "--enable-all --enable-pkcs11 --enable-tls13 --enable-base64encode" ];
+  # almost same as Debian but for now using --enable-all --enable-reproducible-build instead of --enable-distro to ensure options.h gets installed
+  configureFlags = [ "--enable-all" "--enable-reproducible-build" "--enable-pkcs11" "--enable-tls13" "--enable-base64encode" ];
 
   outputs = [ "out" "dev" "doc" "lib" ];
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  postPatch = ''
-     # fix recursive cycle:
-     # build flags (including location of header files) are exposed in the
-     # public API of wolfssl, causing lib to depend on dev
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_CONFIGURE_ARGS \"$ac_configure_args\"' ' '
-     substituteInPlace configure.ac \
-       --replace '#define LIBWOLFSSL_GLOBAL_CFLAGS \"$CPPFLAGS $AM_CPPFLAGS $CFLAGS $AM_CFLAGS\"' ' '
-  '';
-
-
   postInstall = ''
      # fix recursive cycle:
      # wolfssl-config points to dev, dev propagates bin
@@ -41,7 +30,7 @@ stdenv.mkDerivation rec {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
     homepage    = "https://www.wolfssl.com/";
     platforms   = platforms.all;
-    license = lib.licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ mcmtroffaes ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/atd/default.nix b/pkgs/development/ocaml-modules/atd/default.nix
index e4edac5fdc1..2f85221e539 100644
--- a/pkgs/development/ocaml-modules/atd/default.nix
+++ b/pkgs/development/ocaml-modules/atd/default.nix
@@ -1,22 +1,22 @@
-{ lib, menhir, easy-format, fetchFromGitHub, buildDunePackage, which, biniou, yojson }:
+{ lib, menhir, easy-format, fetchurl, buildDunePackage, which, re }:
 
 buildDunePackage rec {
   pname = "atd";
-  version = "2.0.0";
+  version = "2.2.1";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.02";
 
-  src = fetchFromGitHub {
-    owner = "mjambon";
-    repo = pname;
-    rev = version;
-    sha256 = "0alzmk97rxg7s6irs9lvf89dy9n3r769my5n4j9p9qyigcdgjaia";
+  src = fetchurl {
+    url = "https://github.com/ahrefs/atd/releases/download/2.2.1/atd-2.2.1.tbz";
+    sha256 = "17jm79np69ixp53a4njxnlb1pg8sd1g47nm3nyki9clkc8d4qsyv";
   };
 
-  createFindlibDestdir = true;
-
   buildInputs = [ which menhir ];
-  propagatedBuildInputs = [ easy-format biniou yojson ];
+  propagatedBuildInputs = [ easy-format re ];
+
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mjambon/atd";
diff --git a/pkgs/development/ocaml-modules/atdgen/default.nix b/pkgs/development/ocaml-modules/atdgen/default.nix
index d8ef2fec999..2537c92d97a 100644
--- a/pkgs/development/ocaml-modules/atdgen/default.nix
+++ b/pkgs/development/ocaml-modules/atdgen/default.nix
@@ -3,7 +3,7 @@
 let runtime =
   buildDunePackage {
     pname = "atdgen-runtime";
-    inherit (atd) version src;
+    inherit (atd) version useDune2 src;
 
     propagatedBuildInputs = [ biniou yojson ];
 
@@ -13,7 +13,7 @@ let runtime =
 
 buildDunePackage {
   pname = "atdgen";
-  inherit (atd) version src;
+  inherit (atd) version useDune2 src;
 
   buildInputs = [ atd ];
 
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 9284bbaf9c6..94f254a2edf 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -2,28 +2,26 @@
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, ocaml_lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
+, linenoise
+, ppx_bap
 , ppx_bitstring
-, ppx_tools_versioned
+, yojson
 , which, makeWrapper, writeText
 , z3
 }:
 
-if !lib.versionAtLeast ocaml.version "4.07"
+if !lib.versionAtLeast ocaml.version "4.08"
 then throw "BAP is not available for OCaml ${ocaml.version}"
 else
 
-if lib.versionAtLeast core_kernel.version "0.13"
-then throw "BAP needs core_kernel-0.12 (hence OCaml 4.07)"
-else
-
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-bap-${version}";
-  version = "2.1.0";
+  version = "2.2.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "10fkr6p798ad18j4h9bvp9dg4pmjdpv3hmj7k389i0vhqniwi5xq";
+    sha256 = "0c53sps6ba9n5cjdmapi8ylzlpcc11pksijp9swzlwgxyz5d276f";
   };
 
   sigs = fetchurl {
@@ -41,12 +39,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ which makeWrapper ];
 
   buildInputs = [ ocaml findlib ocamlbuild ocaml_oasis
-                  llvm ppx_bitstring ppx_tools_versioned
+                  linenoise
+                  ounit
+                  ppx_bitstring
                   z3
                   utop libxml2 ncurses ];
 
-  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_jane core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
-                            piqi-ocaml uuidm frontc ounit ];
+  propagatedBuildInputs = [ bitstring camlzip cmdliner ppx_bap core_kernel ezjsonm fileutils ocaml_lwt ocamlgraph ocurl re uri zarith piqi parsexp
+                            piqi-ocaml uuidm frontc yojson ];
 
   installPhase = ''
     export OCAMLPATH=$OCAMLPATH:$OCAMLFIND_DESTDIR;
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
   patches = [ ./curses_is_ncurses.patch ];
 
   preConfigure = ''
-    substituteInPlace oasis/elf --replace bitstring.ppx ppx_bitstring
+    substituteInPlace oasis/elf-loader --replace bitstring.ppx ppx_bitstring
   '';
 
   configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
diff --git a/pkgs/development/ocaml-modules/linenoise/default.nix b/pkgs/development/ocaml-modules/linenoise/default.nix
index dd5504dda5c..eaeb053239e 100644
--- a/pkgs/development/ocaml-modules/linenoise/default.nix
+++ b/pkgs/development/ocaml-modules/linenoise/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "linenoise";
   version = "1.3.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/ocaml-modules/ppx_bap/default.nix b/pkgs/development/ocaml-modules/ppx_bap/default.nix
new file mode 100644
index 00000000000..f0a223c3db7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ppx_bap/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildDunePackage
+, fetchFromGitHub
+, ppx_assert
+, ppx_bench
+, ppx_bin_prot
+, ppx_compare
+, ppx_enumerate
+, ppx_hash
+, ppx_here
+, ppx_optcomp
+, ppx_sexp_conv
+, ppx_sexp_value
+}:
+
+buildDunePackage rec {
+  pname = "ppx_bap";
+  version = "0.14";
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.07";
+
+  src = fetchFromGitHub {
+    owner = "BinaryAnalysisPlatform";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c6rcdp8bicdiwqc2mb59cl9l2vxlp3y8hmnr9x924fq7acly248";
+  };
+
+  buildInputs = [
+    ppx_optcomp
+    ppx_sexp_value
+  ];
+
+  propagatedBuildInputs = [
+    ppx_assert
+    ppx_bench
+    ppx_bin_prot
+    ppx_compare
+    ppx_enumerate
+    ppx_hash
+    ppx_here
+    ppx_sexp_conv
+  ];
+
+  meta = {
+    description = "The set of ppx rewriters for BAP";
+    license = lib.licenses.mit;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
index 442a4126a89..07d817d2293 100644
--- a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "ppx_yojson_conv_lib";
   version = "0.14.0";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.02.3";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
index 30fb5de7cb8..dbdf3970f63 100644
--- a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
+++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
@@ -1,35 +1,27 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, ocaml, findlib, menhir }:
+{ lib, fetchFromGitHub, buildDunePackage, menhir }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
-then throw "psmt2-frontend is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation rec {
-  version = "0.2";
-  name = "ocaml${ocaml.version}-psmt2-frontend-${version}";
+buildDunePackage rec {
+  version = "0.3.1";
+  pname = "psmt2-frontend";
 
   src = fetchFromGitHub {
-    owner = "Coquera";
-    repo = "psmt2-frontend";
+    owner = "ACoquereau";
+    repo = pname;
     rev = version;
-    sha256 = "097zmbrx4gp2gnrxdmsm9lkkp5450gwi0blpxqy3833m6k5brx3n";
+    sha256 = "038jrfsq09nhnzpjiishg4adk09w3aw1bpczgbj66lqqilkd6gci";
   };
 
-  prefixKey = "-prefix ";
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ ocaml findlib menhir ];
+  useDune2 = true;
 
-  createFindlibDestdir = true;
+  minimumOCamlVersion = "4.03";
 
-  installFlags = [ "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
+  buildInputs = [ menhir ];
 
   meta = {
     description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
-    inherit (ocaml.meta) platforms;
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index c9bf285b7bd..07025be296c 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, dune, cppo, easy-format, biniou }:
+{ lib, stdenv, fetchzip, ocaml, findlib, dune_2, cppo, easy-format, biniou }:
 let
   pname = "yojson";
   param =
@@ -6,7 +6,7 @@ let
     version = "1.7.0";
     url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz";
     sha256 = "08llz96if8bcgnaishf18si76cv11zbkni0aldb54k3cn7ipiqvd";
-    nativeBuildInputs = [ dune ];
+    nativeBuildInputs = [ dune_2 ];
     extra = {
       installPhase = ''
         dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname}
diff --git a/pkgs/development/octave-modules/arduino/default.nix b/pkgs/development/octave-modules/arduino/default.nix
new file mode 100644
index 00000000000..f6536108e6c
--- /dev/null
+++ b/pkgs/development/octave-modules/arduino/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, instrument-control
+, arduino
+}:
+
+buildOctavePackage rec {
+  pname = "arduino";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0fnfk206n31s7diijaylmqhxnr88z6l3l3vsxq4z8gcp9ylm9nkj";
+  };
+
+  requiredOctavePackages = [
+    instrument-control
+  ];
+
+  # Might be able to use pkgs.arduino-core
+  propagatedBuildInputs = [
+    arduino
+  ];
+
+  meta = with lib; {
+    name = "Octave Arduino Toolkit";
+    homepage = "https://octave.sourceforge.io/arduino/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Basic Octave implementation of the matlab arduino extension, allowing communication to a programmed arduino board to control its hardware";
+  };
+}
diff --git a/pkgs/development/octave-modules/audio/default.nix b/pkgs/development/octave-modules/audio/default.nix
new file mode 100644
index 00000000000..4fafefd6f75
--- /dev/null
+++ b/pkgs/development/octave-modules/audio/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, jack2
+, alsaLib
+, rtmidi
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "audio";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18lyvwmdy4b9pcv5sm7g17n3is32q23daw8fcsalkf4rj6cc6qdk";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    jack2
+    alsaLib
+    rtmidi
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/audio/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Audio and MIDI Toolbox for GNU Octave";
+    platforms = platforms.linux; # Because of run-time dependency on jack2 and alsaLib
+  };
+}
diff --git a/pkgs/development/octave-modules/bim/default.nix b/pkgs/development/octave-modules/bim/default.nix
new file mode 100644
index 00000000000..5dc8ca88710
--- /dev/null
+++ b/pkgs/development/octave-modules/bim/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fpl
+, msh
+}:
+
+buildOctavePackage rec {
+  pname = "bim";
+  version = "1.1.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0y70w8mj80c5yns1j7nwngwwrxp1pa87kyz2n2yvmc3zdigcd6g8";
+  };
+
+  requiredOctavePackages = [
+    fpl
+    msh
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bim/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for solving Diffusion Advection Reaction (DAR) Partial Differential Equations";
+  };
+}
diff --git a/pkgs/development/octave-modules/bsltl/default.nix b/pkgs/development/octave-modules/bsltl/default.nix
new file mode 100644
index 00000000000..aefe543b097
--- /dev/null
+++ b/pkgs/development/octave-modules/bsltl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "bsltl";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0i8ry347y5f5db3702nhpsmfys9v18ks2fsmpdqpy3fcvrwaxdsb";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/bsltl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Free collection of OCTAVE/MATLAB routines for working with the biospeckle laser technique";
+  };
+}
diff --git a/pkgs/development/octave-modules/cgi/default.nix b/pkgs/development/octave-modules/cgi/default.nix
new file mode 100644
index 00000000000..4686881251a
--- /dev/null
+++ b/pkgs/development/octave-modules/cgi/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "cgi";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hygj7cpwrs2w9bfb7qrvv7gq410bfiddqvza8smg766pqmfp1s1";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/cgi/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Common Gateway Interface for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/communications/default.nix b/pkgs/development/octave-modules/communications/default.nix
new file mode 100644
index 00000000000..492c837255f
--- /dev/null
+++ b/pkgs/development/octave-modules/communications/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, signal
+, hdf5
+}:
+
+buildOctavePackage rec {
+  pname = "communications";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xay2vjyadv3ja8dmqqzm2his8s0rvidz23nq1c2yl3xh1gavyck";
+  };
+
+  buildInputs = [
+    hdf5
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/communications/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = " Digital Communications, Error Correcting Codes (Channel Code), Source Code functions, Modulation and Galois Fields";
+  };
+}
diff --git a/pkgs/development/octave-modules/control/default.nix b/pkgs/development/octave-modules/control/default.nix
new file mode 100644
index 00000000000..2d61e30cc60
--- /dev/null
+++ b/pkgs/development/octave-modules/control/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+, lapack, blas
+}:
+
+buildOctavePackage rec {
+  pname = "control";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gjyjsxs01x0nyc4cgn3d5af17l3lzs8h4hsm57nxd3as48dbwgs";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  buildInputs = [
+    lapack blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Computer-Aided Control System Design (CACSD) Tools for GNU Octave, based on the proven SLICOT Library";
+  };
+}
diff --git a/pkgs/development/octave-modules/data-smoothing/default.nix b/pkgs/development/octave-modules/data-smoothing/default.nix
new file mode 100644
index 00000000000..551582a7770
--- /dev/null
+++ b/pkgs/development/octave-modules/data-smoothing/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "data-smoothing";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0q0vqdmp8ygyfhk296xbxcpsh5wvpa2kfgv4v0rys68nd2lxfaq1";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/data-smoothing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Algorithms for smoothing noisy data";
+  };
+}
diff --git a/pkgs/development/octave-modules/database/default.nix b/pkgs/development/octave-modules/database/default.nix
new file mode 100644
index 00000000000..3e1fe863276
--- /dev/null
+++ b/pkgs/development/octave-modules/database/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, postgresql
+}:
+
+buildOctavePackage rec {
+  pname = "database";
+  version = "2.4.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1c0n76adi0jw6bx62s04vjyda6kb6ca8lzz2vam43vdy10prcq9p";
+  };
+
+  propagatedBuildInputs = [
+    postgresql
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/database/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to SQL databases, currently only postgresql using libpq";
+  };
+}
diff --git a/pkgs/development/octave-modules/dataframe/default.nix b/pkgs/development/octave-modules/dataframe/default.nix
new file mode 100644
index 00000000000..8f145f0d510
--- /dev/null
+++ b/pkgs/development/octave-modules/dataframe/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "dataframe";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10ara084gkb7d5vxv9qv7zpj8b4mm5y06nccrdy3skw5nfbb4djx";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dataframe/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Data manipulation toolbox similar to R data.frame";
+  };
+}
diff --git a/pkgs/development/octave-modules/dicom/default.nix b/pkgs/development/octave-modules/dicom/default.nix
new file mode 100644
index 00000000000..e16b6447805
--- /dev/null
+++ b/pkgs/development/octave-modules/dicom/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gdcm
+, cmake
+}:
+
+buildOctavePackage rec {
+  pname = "dicom";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "131wn6mrv20np10plirvqia8dlpz3g0aqi3mmn2wyl7r95p3dnza";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [
+    gdcm
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/dicom/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Digital communications in medicine (DICOM) file io";
+  };
+}
diff --git a/pkgs/development/octave-modules/divand/default.nix b/pkgs/development/octave-modules/divand/default.nix
new file mode 100644
index 00000000000..ac8de906068
--- /dev/null
+++ b/pkgs/development/octave-modules/divand/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "divand";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nmaz5j37dflz7p4a4lmwzkh7g1gghdh7ccvkbyy0fpgv9lr1amg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/divand/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Performs an n-dimensional variational analysis (interpolation) of arbitrarily located observations";
+  };
+}
diff --git a/pkgs/development/octave-modules/doctest/default.nix b/pkgs/development/octave-modules/doctest/default.nix
new file mode 100644
index 00000000000..3c02a20cdad
--- /dev/null
+++ b/pkgs/development/octave-modules/doctest/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "doctest";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0hh9izj9ds69bmrvmmj16fd1c4z7733h50c7isl8f714srw26kf4";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/doctest/index.html";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Find and run example code within documentation";
+    longDescription = ''
+      Find and run example code within documentation. Formatted blocks
+      of example code are extracted from documentation files and executed
+      to confirm their output is correct. This can be part of a testing
+      framework or simply to ensure that documentation stays up-to-date
+      during software development.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/econometrics/default.nix b/pkgs/development/octave-modules/econometrics/default.nix
new file mode 100644
index 00000000000..0aa795959ab
--- /dev/null
+++ b/pkgs/development/octave-modules/econometrics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, optim
+}:
+
+buildOctavePackage rec {
+  pname = "econometrics";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1srx78k90ycla7yisa9h593n9l8br31lsdxlspra8sxiyq0sbk72";
+  };
+
+  requiredOctavePackages = [
+    optim
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/econometrics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Econometrics functions including MLE and GMM based techniques";
+  };
+}
diff --git a/pkgs/development/octave-modules/fem-fenics/default.nix b/pkgs/development/octave-modules/fem-fenics/default.nix
new file mode 100644
index 00000000000..300dfd75877
--- /dev/null
+++ b/pkgs/development/octave-modules/fem-fenics/default.nix
@@ -0,0 +1,35 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, dolfin
+, ffc
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fem-fenics";
+  version = "0.0.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1xd80nnkschldvrqx0wvrg3fzbf8sck8bvq24phr5x49xs7b8x78";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    dolfin
+    ffc
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fem-fenics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Package for the resolution of partial differential equations based on fenics";
+    # Lots of compilation errors for newer octave versions and syntax errors
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/financial/default.nix b/pkgs/development/octave-modules/financial/default.nix
new file mode 100644
index 00000000000..5fb6a00df78
--- /dev/null
+++ b/pkgs/development/octave-modules/financial/default.nix
@@ -0,0 +1,23 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "financial";
+  version = "0.5.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0f963yg6pwvrdk5fg7b71ny47gzy48nqxdzj2ngcfrvmb5az4vmf";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/financial/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Monte Carlo simulation, options pricing routines, financial manipulation, plotting functions and additional date manipulation tools";
+  };
+}
diff --git a/pkgs/development/octave-modules/fits/default.nix b/pkgs/development/octave-modules/fits/default.nix
new file mode 100644
index 00000000000..9d236cb9f1f
--- /dev/null
+++ b/pkgs/development/octave-modules/fits/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, cfitsio
+, hdf5
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "fits";
+  version = "1.0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jab5wmrpifqphmrfkqcyrlpc0h4y4m735yc3avqqjajz1rl24lm";
+  };
+
+  # Found here: https://build.opensuse.org/package/view_file/science/octave-forge-fits/octave-forge-fits.spec?expand=1
+  patchPhase = ''
+    sed -i -s -e 's/D_NINT/octave::math::x_nint/g' src/*.cc
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    hdf5
+  ];
+
+  propagatedBuildInputs = [
+    cfitsio
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fits/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for reading, and writing FITS (Flexible Image Transport System) files using cfitsio";
+  };
+}
diff --git a/pkgs/development/octave-modules/fpl/default.nix b/pkgs/development/octave-modules/fpl/default.nix
new file mode 100644
index 00000000000..e5b276c0c20
--- /dev/null
+++ b/pkgs/development/octave-modules/fpl/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fpl";
+  version = "1.3.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cbpahn9flrv9ppp5xakhwh8vyyy7wzlsz22i3s93yqg9q2bh4ys";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fpl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines to export data produced by Finite Elements or Finite Volume Simulations in formats used by some visualization programs";
+  };
+}
diff --git a/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
new file mode 100644
index 00000000000..5cb567b2bb8
--- /dev/null
+++ b/pkgs/development/octave-modules/fuzzy-logic-toolkit/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "fuzzy-logic-toolkit";
+  version = "0.4.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0cs1xh594h1psdinicxrsvm27gzax5jja7bjk4sl3kk2hv24mhml";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/fuzzy-logic-toolkit/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A mostly MATLAB-compatible fuzzy logic toolkit for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/ga/default.nix b/pkgs/development/octave-modules/ga/default.nix
new file mode 100644
index 00000000000..a5265a4ce45
--- /dev/null
+++ b/pkgs/development/octave-modules/ga/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ga";
+  version = "0.10.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s5azn4n174avlmh5gw21zfqfkyxkzn4v09q4l9swv7ldmg3mirv";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ga/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Genetic optimization code";
+  };
+}
diff --git a/pkgs/development/octave-modules/general/default.nix b/pkgs/development/octave-modules/general/default.nix
new file mode 100644
index 00000000000..52ad9af93b0
--- /dev/null
+++ b/pkgs/development/octave-modules/general/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, nettle
+}:
+
+buildOctavePackage rec {
+  pname = "general";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0jmvczssqz1aa665v9h8k9cchb7mg3n9af6b5kh9b2qcjl4r9l7v";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    nettle
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/general/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "General tools for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/generate_html/default.nix b/pkgs/development/octave-modules/generate_html/default.nix
new file mode 100644
index 00000000000..83f3a65bedc
--- /dev/null
+++ b/pkgs/development/octave-modules/generate_html/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "generate_html";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1ai4h7jf9fqi7w565iprzylsh94pg4rhyf51hfj9kfdgdpb1abfs";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/generate_html/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for generating HTML pages that contain the help texts for a set of functions";
+    longDescription = ''
+      This package provides functions for generating HTML pages that contain
+      the help texts for a set of functions. The package is designed to be as
+      general as possible, but also contains convenience functions for generating
+      a set of pages for entire packages.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/geometry/default.nix b/pkgs/development/octave-modules/geometry/default.nix
new file mode 100644
index 00000000000..b4bf57262fa
--- /dev/null
+++ b/pkgs/development/octave-modules/geometry/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, matgeom
+}:
+
+buildOctavePackage rec {
+  pname = "geometry";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zmd97xir62fr5v57xifh2cvna5fg67h9yb7bp2vm3ll04y41lhs";
+  };
+
+  requiredOctavePackages = [
+    matgeom
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/geometry/index.html";
+    license = with licenses; [ gpl3Plus boost ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Library for extending MatGeom functionality";
+  };
+}
diff --git a/pkgs/development/octave-modules/gsl/default.nix b/pkgs/development/octave-modules/gsl/default.nix
new file mode 100644
index 00000000000..5922c015dbd
--- /dev/null
+++ b/pkgs/development/octave-modules/gsl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gsl
+}:
+
+buildOctavePackage rec {
+  pname = "gsl";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1lvfxbqmw8h1nlrxmvrl6j4xffmbzxfhdpxz3vrc6lg2g4jwaa6h";
+  };
+
+  buildInputs = [
+    gsl
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/gsl/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Octave bindings to the GNU Scientific Library";
+  };
+}
diff --git a/pkgs/development/octave-modules/image-acquisition/default.nix b/pkgs/development/octave-modules/image-acquisition/default.nix
new file mode 100644
index 00000000000..08c4305999b
--- /dev/null
+++ b/pkgs/development/octave-modules/image-acquisition/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, libv4l
+, fltk
+}:
+
+buildOctavePackage rec {
+  pname = "image-acquisition";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amp6npkddnnz2i5rm6gvn65qrbn0nxzl2cja3dvc2xqg396wrhh";
+  };
+
+  buildInputs = [
+    libv4l
+    fltk
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image-acquisition/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions to capture images from connected devices";
+    longDescription = ''
+      The Octave-forge Image Aquisition package provides functions to
+      capture images from connected devices. Currently only v4l2 is supported.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/image/default.nix b/pkgs/development/octave-modules/image/default.nix
new file mode 100644
index 00000000000..8bff55fadc6
--- /dev/null
+++ b/pkgs/development/octave-modules/image/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "image";
+  version = "2.12.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d3kqhbkq9acc29k42fcilfmykk9a0r321mvk46l5iibc7nqrmg7";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/image/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions for processing images";
+    longDescription = ''
+       The Octave-forge Image package provides functions for processing
+       images. The package also provides functions for feature extraction,
+       image statistics, spatial and geometric transformations, morphological
+       operations, linear filtering, and much more.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/instrument-control/default.nix b/pkgs/development/octave-modules/instrument-control/default.nix
new file mode 100644
index 00000000000..51c8f300cc5
--- /dev/null
+++ b/pkgs/development/octave-modules/instrument-control/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "instrument-control";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0vckax6rx5v3fq5j6kb6n39a5zas9i24x4wvmjlhc8xbykkg5nkk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/instrument-control/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Low level I/O functions for serial, i2c, spi, parallel, tcp, gpib, vxi11, udp and usbtmc interfaces";
+  };
+}
diff --git a/pkgs/development/octave-modules/interval/default.nix b/pkgs/development/octave-modules/interval/default.nix
new file mode 100644
index 00000000000..0891a614385
--- /dev/null
+++ b/pkgs/development/octave-modules/interval/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, mpfr
+}:
+
+buildOctavePackage rec {
+  pname = "interval";
+  version = "3.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0a0sz7b4y53qgk1xr4pannn4w7xiin2pf74x7r54hrr1wf4abp20";
+  };
+
+  propagatedBuildInputs = [
+    mpfr
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/interval/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interval arithmetic to evaluate functions over subsets of their domain";
+    longDescription = ''
+       The interval package for real-valued interval arithmetic allows one to
+       evaluate functions over subsets of their domain. All results are verified,
+       because interval computations automatically keep track of any errors.
+
+       These concepts can be used to handle uncertainties, estimate arithmetic
+       errors and produce reliable results. Also it can be applied to
+       computer-assisted proofs, constraint programming, and verified computing.
+
+       The implementation is based on interval boundaries represented by
+       binary64 numbers and is conforming to IEEE Std 1788-2015, IEEE standard
+       for interval arithmetic.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/io/default.nix b/pkgs/development/octave-modules/io/default.nix
new file mode 100644
index 00000000000..57058c5f95d
--- /dev/null
+++ b/pkgs/development/octave-modules/io/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, enableJava
+, jdk
+, unzip
+}:
+
+buildOctavePackage rec {
+  pname = "io";
+  version = "2.6.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "044y8lfp93fx0592mv6x2ss0nvjkjgvlci3c3ahav76pk1j3rikb";
+  };
+
+  buildInputs = [
+    (lib.optional enableJava jdk)
+  ];
+
+  propagatedBuildInputs = [
+    unzip
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/io/index.html";
+    license = with licenses; [ gpl3Plus bsd2 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Input/Output in external formats";
+  };
+}
diff --git a/pkgs/development/octave-modules/level-set/default.nix b/pkgs/development/octave-modules/level-set/default.nix
new file mode 100644
index 00000000000..d1f882904d5
--- /dev/null
+++ b/pkgs/development/octave-modules/level-set/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchgit
+, automake
+, autoconf
+, autoconf-archive
+, parallel
+}:
+
+buildOctavePackage rec {
+  pname = "level-set";
+  version = "2019-04-13";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/octave/${pname}";
+    rev = "dbf46228a7582eef4fe5470fd00bc5b421dd33a5";
+    sha256 = "14qwa4j24m2j7njw8gbagkgmp040h6k0h7kyrrzgb9y0jm087qkl";
+    fetchSubmodules = false;
+  };
+
+  # The monstrosity of a regex below is to ensure that only error() calls are
+  # corrected to have a %s format specifier. However, logic_error() also
+  # exists, (a simple regex also matches that), but logic_error() doesn't
+  # require a format specifier. So, this regex was born to handle that...
+  patchPhase = ''
+    substituteInPlace build.sh --replace "level-set-0.3.1" "${pname}-${version}" \
+                               --replace "\`pwd\`" '/build'
+    sed -i -E 's#[^[:graph:]]error \(# error \(\"%s\", #g' src/*.cpp
+  '';
+
+  nativeBuildInputs = [
+    automake
+    autoconf
+    autoconf-archive
+  ];
+
+  requiredOctavePackages = [
+    parallel
+  ];
+
+  preBuild = ''
+    mkdir -p $out
+    source ./build.sh
+    cd -
+  '';
+
+  meta = with lib; {
+    name = "Level Set";
+    homepage = "https://octave.sourceforge.io/level-set/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function";
+  };
+}
diff --git a/pkgs/development/octave-modules/linear-algebra/default.nix b/pkgs/development/octave-modules/linear-algebra/default.nix
new file mode 100644
index 00000000000..18818c1db60
--- /dev/null
+++ b/pkgs/development/octave-modules/linear-algebra/default.nix
@@ -0,0 +1,22 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "linear-algebra";
+  version = "2.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wwjpxp9vjc6lszh0z3kgy4hyzpib8rvvh6b74ijh9qk9r9nmvjk";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/linear-algebra/index.html";
+    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    # They claim to have a FreeBSD license, but none of their code seems to have it.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional linear algebra code, including matrix functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/lssa/default.nix b/pkgs/development/octave-modules/lssa/default.nix
new file mode 100644
index 00000000000..f737c104f30
--- /dev/null
+++ b/pkgs/development/octave-modules/lssa/default.nix
@@ -0,0 +1,27 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "lssa";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10h9lzsi7pqh93i7y50b618g05fnbw9n0i505bz5kz4avfa990zh";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/lssa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Tools to compute spectral decompositions of irregularly-spaced time series";
+    longDescription = ''
+       A package implementing tools to compute spectral decompositions of
+       irregularly-spaced time series. Currently includes functions based off
+       the Lomb-Scargle periodogram and Adolf Mathias' implementation for R
+       and C.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/ltfat/default.nix b/pkgs/development/octave-modules/ltfat/default.nix
new file mode 100644
index 00000000000..505670f6298
--- /dev/null
+++ b/pkgs/development/octave-modules/ltfat/default.nix
@@ -0,0 +1,54 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, fftw
+, fftwSinglePrec
+, fftwFloat
+, fftwLongDouble
+, lapack
+, blas
+, portaudio
+, jdk
+}:
+
+buildOctavePackage rec {
+  pname = "ltfat";
+  version = "2.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gghh5a4w649ff776wvidfvqas87m0n7rqs960pid1d11bnyqqrh";
+  };
+
+  patches = [
+    # Fixes a syntax error with performing multiplication.
+    ./syntax-error.patch
+  ];
+
+  buildInputs = [
+    fftw
+    fftwSinglePrec
+    fftwFloat
+    fftwLongDouble
+    lapack
+    blas
+    portaudio
+    jdk
+  ];
+
+  meta = with lib; {
+    name = "The Large Time-Frequency Analysis Toolbox";
+    homepage = "https://octave.sourceforge.io/ltfat/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Toolbox for working with time-frequency analysis, wavelets and signal processing";
+    longDescription = ''
+      The Large Time/Frequency Analysis Toolbox (LTFAT) is a Matlab/Octave
+      toolbox for working with time-frequency analysis, wavelets and signal
+      processing. It is intended both as an educational and a computational
+      tool. The toolbox provides a large number of linear transforms including
+      Gabor and wavelet transforms along with routines for constructing windows
+      (filter prototypes) and routines for manipulating coefficients.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/ltfat/syntax-error.patch b/pkgs/development/octave-modules/ltfat/syntax-error.patch
new file mode 100644
index 00000000000..732030b7043
--- /dev/null
+++ b/pkgs/development/octave-modules/ltfat/syntax-error.patch
@@ -0,0 +1,15 @@
+diff --git a/inst/nonstatgab/nsdgt.m b/inst/nonstatgab/nsdgt.m
+index ac53963..81656cb 100644
+--- a/inst/nonstatgab/nsdgt.m
++++ b/inst/nonstatgab/nsdgt.m
+@@ -149,8 +149,8 @@ for ii = 1:N
+         col = ceil(Lg/M(ii));
+         
+         temp = zeros(col*M(ii),W,assert_classname(f,g{1}));
+-        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@ ...
+-                                                          times,f(win_range,:),g{ii}(idx));
++        temp([end-floor(Lg/2)+1:end,1:ceil(Lg/2)],:) = bsxfun(@times, ...
++                                                          f(win_range,:),g{ii}(idx));
+         
+         temp = reshape(temp,M(ii),col,W);
+         X = squeeze(fft(sum(temp,2)));
diff --git a/pkgs/development/octave-modules/mapping/default.nix b/pkgs/development/octave-modules/mapping/default.nix
new file mode 100644
index 00000000000..26cea27a725
--- /dev/null
+++ b/pkgs/development/octave-modules/mapping/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io # >= 2.2.7
+, geometry # >= 4.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "mapping";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wj0q1rkrqs4qgpjh4vn9kcpdh94pzr6v4jc1vcrjwkp87yjv8c0";
+  };
+
+  requiredOctavePackages = [
+    io
+    geometry
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mapping/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Simple mapping and GIS .shp .dxf and raster file functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/matgeom/default.nix b/pkgs/development/octave-modules/matgeom/default.nix
new file mode 100644
index 00000000000..b8607cf5dff
--- /dev/null
+++ b/pkgs/development/octave-modules/matgeom/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "matgeom";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05xfmlh1k3mhq8yag7gr8q1ysl1s43vm46fr1i3gcg9b1kkwi8by";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/matgeom/index.html";
+    license = with licenses; [ bsd2 gpl3Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Geometry toolbox for 2D/3D geometric computing";
+  };
+}
diff --git a/pkgs/development/octave-modules/miscellaneous/default.nix b/pkgs/development/octave-modules/miscellaneous/default.nix
new file mode 100644
index 00000000000..74c3879aa9e
--- /dev/null
+++ b/pkgs/development/octave-modules/miscellaneous/default.nix
@@ -0,0 +1,34 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Build-time dependencies
+, mlterm
+, ncurses # >= 5
+, units
+}:
+
+buildOctavePackage rec {
+  pname = "miscellaneous";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "10n107njz24ln7v9a1l3dkh7s7vd6qwgbinrj1nl4wflxsir4l9k";
+  };
+
+  buildInputs = [
+    mlterm
+    ncurses
+  ];
+
+  propagatedBuildInputs = [
+    units
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/miscellaneous/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Miscellaneous tools that don't fit somewhere else";
+  };
+}
diff --git a/pkgs/development/octave-modules/msh/default.nix b/pkgs/development/octave-modules/msh/default.nix
new file mode 100644
index 00000000000..a4e876c8128
--- /dev/null
+++ b/pkgs/development/octave-modules/msh/default.nix
@@ -0,0 +1,56 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave Dependencies
+, splines
+# Other Dependencies
+, gmsh
+, gawk
+, pkg-config
+, dolfin
+, autoconf, automake
+}:
+
+buildOctavePackage rec {
+  pname = "msh";
+  version = "1.0.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb5qrp9y1w1cbzrd9v84430ldy57ca843yspnrgbcqpxyyxbgfz";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoconf automake
+    dolfin
+  ];
+
+  buildInputs = [
+    dolfin
+  ];
+
+  propagatedBuildInputs = [
+    gmsh
+    gawk
+    dolfin
+  ];
+
+  requiredOctavePackages = [
+    splines
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/msh/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Create and manage triangular and tetrahedral meshes for Finite Element or Finite Volume PDE solvers";
+    longDescription = ''
+      Create and manage triangular and tetrahedral meshes for Finite Element or
+      Finite Volume PDE solvers. Use a mesh data structure compatible with
+      PDEtool. Rely on gmsh for unstructured mesh generation.
+    '';
+    # Not technically broken, but missing some functionality.
+    # dolfin needs to be its own stand-alone library for the last tests to pass.
+  };
+}
diff --git a/pkgs/development/octave-modules/mvn/default.nix b/pkgs/development/octave-modules/mvn/default.nix
new file mode 100644
index 00000000000..06fd1905604
--- /dev/null
+++ b/pkgs/development/octave-modules/mvn/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "mvn";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "00w69hxqnqdm3744z6p7gvzci44a3gy228x6bgq3xf5n3jwicnmg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/mvn/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Multivariate normal distribution clustering and utility functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/nan/default.nix b/pkgs/development/octave-modules/nan/default.nix
new file mode 100644
index 00000000000..a0517db714b
--- /dev/null
+++ b/pkgs/development/octave-modules/nan/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "nan";
+  version = "3.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0bp8zl50f8qj5sivl88kjdswm035v4li33fiq3v1gmh0pvgbcw7a";
+  };
+
+  buildInputs = [
+    blas
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nan/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A statistics and machine learning toolbox for data with and w/o missing values";
+  };
+}
diff --git a/pkgs/development/octave-modules/ncarray/default.nix b/pkgs/development/octave-modules/ncarray/default.nix
new file mode 100644
index 00000000000..10db554c87f
--- /dev/null
+++ b/pkgs/development/octave-modules/ncarray/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+, statistics
+}:
+
+buildOctavePackage rec {
+  pname = "ncarray";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0v96iziikvq2v7hczhbfs9zmk49v99kn6z3lgibqqpwam175yqgd";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  requiredOctavePackages = [
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ncarray/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Access a single or a collection of NetCDF files as a multi-dimensional array";
+  };
+}
diff --git a/pkgs/development/octave-modules/netcdf/default.nix b/pkgs/development/octave-modules/netcdf/default.nix
new file mode 100644
index 00000000000..9292da6918c
--- /dev/null
+++ b/pkgs/development/octave-modules/netcdf/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, netcdf
+}:
+
+buildOctavePackage rec {
+  pname = "netcdf";
+  version = "1.0.14";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1wdwl76zgcg7kkdxjfjgf23ylzb0x4dyfliffylyl40g6cjym9lf";
+  };
+
+  buildInputs = [
+    netcdf
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/netcdf/index.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "A NetCDF interface for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/nurbs/default.nix b/pkgs/development/octave-modules/nurbs/default.nix
new file mode 100644
index 00000000000..e5e26d7bb95
--- /dev/null
+++ b/pkgs/development/octave-modules/nurbs/default.nix
@@ -0,0 +1,30 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "nurbs";
+  version = "1.3.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0zkyldm63pc3pcal3yvj6af24cvpjvv9qfhf0ihhwcsh4w3yggyv";
+  };
+
+  # Has been fixed in more recent commits, but has not been pushed out as a
+  # new version yet.
+  # The sed changes allow nurbs to compile.
+  patchPhase = ''
+    sed -i s/feval/octave::feval/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_cell/iscell/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/nurbs/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Collection of routines for the creation, and manipulation of Non-Uniform Rational B-Splines (NURBS), based on the NURBS toolbox by Mark Spink";
+  };
+}
diff --git a/pkgs/development/octave-modules/ocl/default.nix b/pkgs/development/octave-modules/ocl/default.nix
new file mode 100644
index 00000000000..0e47160ad0e
--- /dev/null
+++ b/pkgs/development/octave-modules/ocl/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "ocl";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0ayi5x9zk9p4zm0qsr3i94lyp5468c9d1a7mqrqjqpdvkhrw0xnm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/ocl/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Use OpenCL for parallelization";
+    longDescription = ''
+       Package using OpenCL for parallelization, mostly suitable to
+       Single-Instruction-Multiple-Data (SIMD) computations, selectively
+       using available OpenCL hardware and drivers.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/octclip/default.nix b/pkgs/development/octave-modules/octclip/default.nix
new file mode 100644
index 00000000000..43bcfcd7d84
--- /dev/null
+++ b/pkgs/development/octave-modules/octclip/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "octclip";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05ijh3izgfaan84n6zp690nap9vnz0zicjd0cgvd1c6askm7vxql";
+  };
+
+  # The only compilation problem is that no formatting specifier was provided
+  # for the error function. Because errorText is a string, I provide such a
+  # formatting specifier.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  meta = with lib; {
+    name = "GNU Octave Clipping Polygons Tool";
+    homepage = "https://octave.sourceforge.io/octclip/index.html";
+    license = with licenses; [ gpl3Plus ]; # modified BSD?
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Perform boolean operations with polygons using the Greiner-Hormann algorithm";
+  };
+}
diff --git a/pkgs/development/octave-modules/octproj/default.nix b/pkgs/development/octave-modules/octproj/default.nix
new file mode 100644
index 00000000000..74596c015f8
--- /dev/null
+++ b/pkgs/development/octave-modules/octproj/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, proj # >= 6.3.0
+}:
+
+buildOctavePackage rec {
+  pname = "octproj";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mb8gb0r8kky47ap85h9qqdvs40mjp3ya0nkh45gqhy67ml06paq";
+  };
+
+  # The sed changes below allow for the package to be compiled.
+  patchPhase = ''
+    sed -i s/"error(errorText)"/"error(\"%s\", errorText)"/g src/*.cc
+    sed -i s/"warning(errorText)"/"warning(\"%s\", errorText)"/g src/*.cc
+  '';
+
+  propagatedBuildInputs = [
+    proj
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/octproj/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "GNU Octave bindings to PROJ library for cartographic projections and CRS transformations";
+  };
+}
diff --git a/pkgs/development/octave-modules/optics/default.nix b/pkgs/development/octave-modules/optics/default.nix
new file mode 100644
index 00000000000..1324c6cd4ba
--- /dev/null
+++ b/pkgs/development/octave-modules/optics/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "optics";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1d9z82241a1zmr8m1vgw10pyk81vn0q4dcyx7d05pigfn5gykrgc";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optics/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Functions covering various aspects of optics";
+  };
+}
diff --git a/pkgs/development/octave-modules/optim/default.nix b/pkgs/development/octave-modules/optim/default.nix
new file mode 100644
index 00000000000..b9561faafb1
--- /dev/null
+++ b/pkgs/development/octave-modules/optim/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, statistics
+, lapack
+, blas
+}:
+
+buildOctavePackage rec {
+  pname = "optim";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1z2h8gy99glxh5qi3r22am2vdirlbklkq0lx4r8jrx1ak7awh47r";
+  };
+
+  buildInputs = [
+    lapack
+    blas
+  ];
+
+  requiredOctavePackages = [
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optim/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    # Modified BSD code seems removed
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Non-linear optimization toolkit";
+  };
+}
diff --git a/pkgs/development/octave-modules/optiminterp/default.nix b/pkgs/development/octave-modules/optiminterp/default.nix
new file mode 100644
index 00000000000..8409a10104e
--- /dev/null
+++ b/pkgs/development/octave-modules/optiminterp/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "optiminterp";
+  version = "0.3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05nzj2jmrczbnsr64w2a7kww19s6yialdqnsbg797v11ii7aiylc";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/optiminterp/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "An optimal interpolation toolbox for octave";
+    longDescription = ''
+       An optimal interpolation toolbox for octave. This package provides
+       functions to perform a n-dimensional optimal interpolations of
+       arbitrarily distributed data points.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/parallel/default.nix b/pkgs/development/octave-modules/parallel/default.nix
new file mode 100644
index 00000000000..0ea1d4d9df2
--- /dev/null
+++ b/pkgs/development/octave-modules/parallel/default.nix
@@ -0,0 +1,36 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, struct
+, gnutls
+, pkg-config
+}:
+
+buildOctavePackage rec {
+  pname = "parallel";
+  version = "4.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0wmpak01rsccrnb8is7fsjdlxw15157sqyf9s2fabr16yykfmvi8";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    gnutls
+  ];
+
+  requiredOctavePackages = [
+    struct
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/parallel/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Parallel execution package";
+  };
+}
diff --git a/pkgs/development/octave-modules/quaternion/default.nix b/pkgs/development/octave-modules/quaternion/default.nix
new file mode 100644
index 00000000000..4681b699684
--- /dev/null
+++ b/pkgs/development/octave-modules/quaternion/default.nix
@@ -0,0 +1,29 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "quaternion";
+  version = "2.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "040ncksf0xz32qmi4484xs3q01nappxrsvwwa60g04yjy7c4sbac";
+  };
+
+  # Octave replaced many of the is_thing_type check function with isthing.
+  # The patch changes the occurrences of the old functions.
+  patchPhase = ''
+    sed -i s/is_numeric_type/isnumeric/g src/*.cc
+    sed -i s/is_real_type/isreal/g src/*.cc
+    sed -i s/is_bool_type/islogical/g src/*.cc
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/quaternion/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Quaternion package for GNU Octave, includes a quaternion class with overloaded operators";
+  };
+}
diff --git a/pkgs/development/octave-modules/queueing/default.nix b/pkgs/development/octave-modules/queueing/default.nix
new file mode 100644
index 00000000000..75b3e67e353
--- /dev/null
+++ b/pkgs/development/octave-modules/queueing/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "queueing";
+  version = "1.2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1yhw277i1qgmddf6wbfb6a4zrfhvplkmfr20q1l15z4xi8afnm6d";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/queueing/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides functions for queueing networks and Markov chains analysis";
+    longDescription = ''
+      The queueing package provides functions for queueing networks and Markov
+      chains analysis. This package can be used to compute steady-state
+      performance measures for open, closed and mixed networks with single or
+      multiple job classes. Mean Value Analysis (MVA), convolution, and various
+      bounding techniques are implemented. Furthermore, several transient and
+      steady-state performance measures for Markov chains can be computed, such
+      as state occupancy probabilities, mean time to absorption, time-averaged
+      sojourn times and so forth. Discrete- and continuous-time Markov chains
+      are supported.
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/signal/default.nix b/pkgs/development/octave-modules/signal/default.nix
new file mode 100644
index 00000000000..ae1339ca274
--- /dev/null
+++ b/pkgs/development/octave-modules/signal/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, control
+}:
+
+buildOctavePackage rec {
+  pname = "signal";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1amfh7ifjqxz2kr34hgq2mq8ygmd5j3cjdk1k2dk6qcgic7n0y6r";
+  };
+
+  requiredOctavePackages = [
+    control
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/signal/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Signal processing tools, including filtering, windowing and display functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/sockets/default.nix b/pkgs/development/octave-modules/sockets/default.nix
new file mode 100644
index 00000000000..688bd6a0e92
--- /dev/null
+++ b/pkgs/development/octave-modules/sockets/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "sockets";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18f1zpqcf6h9b4fb0x2c5nvc3mvgj1141f1s8d9gnlhlrjlq8vqg";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sockets/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Socket functions for networking from within octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/sparsersb/default.nix b/pkgs/development/octave-modules/sparsersb/default.nix
new file mode 100644
index 00000000000..b8147f8d281
--- /dev/null
+++ b/pkgs/development/octave-modules/sparsersb/default.nix
@@ -0,0 +1,28 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, librsb
+}:
+
+buildOctavePackage rec {
+  pname = "sparsersb";
+  version = "1.0.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nl7qppa1cm51188hqhbfswlih9hmy1yz7v0f5i07z0g0kbd62xw";
+  };
+
+  buildInputs = [
+    librsb
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/sparsersb/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Interface to the librsb package implementing the RSB sparse matrix format for fast shared-memory sparse matrix computations";
+    # Mark this way until KarlJoad builds librsb specifically for this package.
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/splines/default.nix b/pkgs/development/octave-modules/splines/default.nix
new file mode 100644
index 00000000000..69d5e46147d
--- /dev/null
+++ b/pkgs/development/octave-modules/splines/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "splines";
+  version = "1.3.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "16wisph8axc5xci0h51zj0y0x2wj6c9zybi2sjpb9v8z9dagjjqa";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/splines/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional spline functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/statistics/default.nix b/pkgs/development/octave-modules/statistics/default.nix
new file mode 100644
index 00000000000..61133ec49e5
--- /dev/null
+++ b/pkgs/development/octave-modules/statistics/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, io
+}:
+
+buildOctavePackage rec {
+  pname = "statistics";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0iv2hw3zp7h69n8ncfjfgm29xaihdl5gp2slcw1yf23mhd7q2xkr";
+  };
+
+  requiredOctavePackages = [
+    io
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/statistics/index.html";
+    license = with licenses; [ gpl3Plus publicDomain ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional statistics functions for Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/stk/default.nix b/pkgs/development/octave-modules/stk/default.nix
new file mode 100644
index 00000000000..16ac7b7d03d
--- /dev/null
+++ b/pkgs/development/octave-modules/stk/default.nix
@@ -0,0 +1,32 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "stk";
+  version = "2.6.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1rqndfankwlwm4igw3xqpnrrl749zz1d5pjzh1qbfns7ixwrm19a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/stk/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "STK is a (not so) Small Toolbox for Kriging";
+    longDescription = ''
+      The STK is a (not so) Small Toolbox for Kriging. Its primary focus is on
+      the interpolation/regression technique known as kriging, which is very
+      closely related to Splines and Radial Basis Functions, and can be
+      interpreted as a non-parametric Bayesian method using a Gaussian Process
+      (GP) prior. The STK also provides tools for the sequential and non-sequential
+      design of experiments. Even though it is, currently, mostly geared towards
+      the Design and Analysis of Computer Experiments (DACE), the STK can be
+      useful for other applications areas (such as Geostatistics, Machine
+      Learning, Non-parametric Regression, etc.).
+    '';
+  };
+}
diff --git a/pkgs/development/octave-modules/strings/default.nix b/pkgs/development/octave-modules/strings/default.nix
new file mode 100644
index 00000000000..7b556272f5d
--- /dev/null
+++ b/pkgs/development/octave-modules/strings/default.nix
@@ -0,0 +1,37 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pcre
+}:
+
+buildOctavePackage rec {
+  pname = "strings";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1b0ravfvq3bxd0w3axjfsx13mmmkifmqz6pfdgyf2s8vkqnp1qng";
+  };
+
+  buildInputs = [
+    pcre
+  ];
+
+  # The gripes library no longer exists.
+  # https://build.opensuse.org/package/view_file/openSUSE:Backports:SLE-15-SP3/octave-forge-strings/octave-forge-strings.spec
+  # toascii is a deprecated function. Has been fixed in recent commits, but has
+  # not been released yet.
+  # https://sourceforge.net/p/octave/strings/ci/2db1dbb75557eef94605cb4ac682783ab78ac8d8/
+  patchPhase = ''
+    sed -i -s -e 's/gripes.h/errwarn.h/' -e 's/gripe_/err_/g' src/*.cc
+    sed -i s/toascii/double/g inst/*.m
+  '';
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/strings/index.html";
+    license = licenses.gpl3Plus;
+    # Claims to have a freebsd license, but I found none.
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional functions for manipulation and analysis of strings";
+  };
+}
diff --git a/pkgs/development/octave-modules/struct/default.nix b/pkgs/development/octave-modules/struct/default.nix
new file mode 100644
index 00000000000..a69a8e4b6e2
--- /dev/null
+++ b/pkgs/development/octave-modules/struct/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "struct";
+  version = "1.0.16";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0gx20r126f0ccl4yflp823xi77p8fh4acx1fv0mmcsglmx4c4vgm";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/struct/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Additional structure manipulation functions";
+  };
+}
diff --git a/pkgs/development/octave-modules/symbolic/default.nix b/pkgs/development/octave-modules/symbolic/default.nix
new file mode 100644
index 00000000000..e40d27e7c38
--- /dev/null
+++ b/pkgs/development/octave-modules/symbolic/default.nix
@@ -0,0 +1,46 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave's Python (Python 3)
+, python
+# Needed only to get the correct version of sympy needed
+, python2Packages
+}:
+
+let
+  # Need to use sympy 1.5.1 for https://github.com/cbm755/octsympy/issues/1023
+  # It has been addressed, but not merged yet.
+  # In the meantime, we create a Python environment with Python 3, its mpmath
+  # version and sympy 1.5 from python2Packages.
+  pythonEnv = (let
+      overridenPython = let
+        packageOverrides = self: super: {
+          sympy = super.sympy.overridePythonAttrs (old: rec {
+            version = python2Packages.sympy.version;
+            src = python2Packages.sympy.src;
+          });
+        };
+      in python.override {inherit packageOverrides; self = overridenPython; };
+    in overridenPython.withPackages (ps: [
+      ps.sympy
+      ps.mpmath
+    ]));
+
+in buildOctavePackage rec {
+  pname = "symbolic";
+  version = "2.9.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1jr3kg9q6r4r4h3hiwq9fli6wsns73rqfzkrg25plha9195c97h8";
+  };
+
+  propagatedBuildInputs = [ pythonEnv ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/symbolic/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Adds symbolic calculation features to GNU Octave";
+  };
+}
diff --git a/pkgs/development/octave-modules/tisean/default.nix b/pkgs/development/octave-modules/tisean/default.nix
new file mode 100644
index 00000000000..b21ef0a5f56
--- /dev/null
+++ b/pkgs/development/octave-modules/tisean/default.nix
@@ -0,0 +1,33 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, signal # >= 1.3.0
+# Build dependencies
+, gfortran
+}:
+
+buildOctavePackage rec {
+  pname = "tisean";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0nc2d9h91glxzmpizxdrc2dablw4bqhqhzs37a394c36myk4xjdv";
+  };
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  requiredOctavePackages = [
+    signal
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tisean/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Port of TISEAN 3.0.1";
+  };
+}
diff --git a/pkgs/development/octave-modules/tsa/default.nix b/pkgs/development/octave-modules/tsa/default.nix
new file mode 100644
index 00000000000..a6320f0fc01
--- /dev/null
+++ b/pkgs/development/octave-modules/tsa/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, nan # > 3.0.0
+}:
+
+buildOctavePackage rec {
+  pname = "tsa";
+  version = "4.6.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0p2cjszzjwhp4ih3q3r67qnikgxc0fwxc12p3727jbdvzq2h10mn";
+  };
+
+  requiredOctavePackages = [
+    nan
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/tsa/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Stochastic concepts and maximum entropy methods for time series analysis";
+  };
+}
diff --git a/pkgs/development/octave-modules/vibes/default.nix b/pkgs/development/octave-modules/vibes/default.nix
new file mode 100644
index 00000000000..f60a5d7339a
--- /dev/null
+++ b/pkgs/development/octave-modules/vibes/default.nix
@@ -0,0 +1,39 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, vibes
+}:
+
+buildOctavePackage rec {
+  pname = "vibes";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1zn86rcsjkqg67hphz5inxc5xkgr18sby8za68zhppc2z7pd91ng";
+  };
+
+  buildInputs = [
+    vibes
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vibes/index.html";
+    license = with licenses; [ gpl3Plus mit ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Easily display results (boxes, pavings) from interval methods";
+    longDescription = ''
+      The VIBes API allows one to easily display results (boxes, pavings) from
+      interval methods. VIBes consists in two parts: (1) the VIBes application
+      that features viewing, annotating and exporting figures, and (2) the
+      VIBes API that enables your program to communicate with the viewer in order
+      to draw figures. This package integrates the VIBes API into Octave. The
+      VIBes application is required for operation and must be installed
+      seperately. Data types from third-party interval arithmetic libraries for
+      Octave are also supported.
+    '';
+    # Marked this way until KarlJoad gets around to packaging the vibes program.
+    # https://github.com/ENSTABretagneRobotics/VIBES
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/video/default.nix b/pkgs/development/octave-modules/video/default.nix
new file mode 100644
index 00000000000..8467da98be9
--- /dev/null
+++ b/pkgs/development/octave-modules/video/default.nix
@@ -0,0 +1,31 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, pkg-config
+, ffmpeg
+}:
+
+buildOctavePackage rec {
+  pname = "video";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "0s6j3c4dh5nsbh84s7vnd2ajcayy1gn07b4fcyrcynch3wl28mrv";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  propagatedBuildInputs = [
+    ffmpeg
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/video/index.html";
+    license = with licenses; [ gpl3Plus bsd3 ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Wrapper for OpenCV's CvCapture_FFMPEG and CvVideoWriter_FFMPEG";
+  };
+}
diff --git a/pkgs/development/octave-modules/vrml/default.nix b/pkgs/development/octave-modules/vrml/default.nix
new file mode 100644
index 00000000000..e46e621b80d
--- /dev/null
+++ b/pkgs/development/octave-modules/vrml/default.nix
@@ -0,0 +1,41 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+# Octave dependencies
+, linear-algebra
+, miscellaneous
+, struct
+, statistics
+# Runtime dependencies
+, freewrl
+}:
+
+buildOctavePackage rec {
+  pname = "vrml";
+  version = "1.0.13";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "1mx93k150agd27mbzvds13v9z0x36j68hwpdvlvjmcl2fga5fly4";
+  };
+
+  propagatedBuildInputs = [
+    freewrl
+  ];
+
+  requiredOctavePackages = [
+    linear-algebra
+    miscellaneous
+    struct
+    statistics
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/vrml/index.html";
+    license = with licenses; [ gpl3Plus fdl12Plus ];
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "3D graphics using VRML";
+    # Marked this way until KarlJoad gets freewrl as a runtime dependency.
+    broken = true;
+  };
+}
diff --git a/pkgs/development/octave-modules/windows/default.nix b/pkgs/development/octave-modules/windows/default.nix
new file mode 100644
index 00000000000..274ba1e3b7d
--- /dev/null
+++ b/pkgs/development/octave-modules/windows/default.nix
@@ -0,0 +1,21 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+}:
+
+buildOctavePackage rec {
+  pname = "windows";
+  version = "1.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "05bsf3q816b9vwgmjdm761ybhmk8raq6dzxqvd11brma0granx3a";
+  };
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/windows/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "Provides COM interface and additional functionality on Windows";
+  };
+}
diff --git a/pkgs/development/octave-modules/zeromq/default.nix b/pkgs/development/octave-modules/zeromq/default.nix
new file mode 100644
index 00000000000..7a8f7f6d16a
--- /dev/null
+++ b/pkgs/development/octave-modules/zeromq/default.nix
@@ -0,0 +1,26 @@
+{ buildOctavePackage
+, lib
+, fetchurl
+, zeromq
+}:
+
+buildOctavePackage rec {
+  pname = "zeromq";
+  version = "1.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
+    sha256 = "18h1039ri7dr37jv20cvj5vhw7b57frrda0hhbvlgixinbqmn9j7";
+  };
+
+  propagatedBuildInputs = [
+    zeromq
+  ];
+
+  meta = with lib; {
+    homepage = "https://octave.sourceforge.io/zeromq/index.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ KarlJoad ];
+    description = "ZeroMQ bindings for GNU Octave";
+  };
+}
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index 648cd9c203f..d8c49c99eba 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -36,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.1.2";
+  version = "8.1.3";
 
   # Nix contains only Python 3 supported version of doit, which is a dependency
   # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
@@ -55,7 +55,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26f4fb1a2b0105cf0f71187c6c1eb54283767a883d1c8f4ca8c8039033217d27";
+    sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/PyRMVtransport/default.nix b/pkgs/development/python-modules/PyRMVtransport/default.nix
index ca44e5a80f9..cfbf3be1c40 100644
--- a/pkgs/development/python-modules/PyRMVtransport/default.nix
+++ b/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "PyRMVtransport";
-  version = "0.3.0";
+  version = "0.3.1";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "cgtobi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1y412xmdskf13673igzsqsglpdc3d5r6pbm8j85csax0blv7rn1m";
+    sha256 = "1savzndg8l7rrc5dgzgsrdz9hnnjfv6qs5drznqmdw4f2rq84ypa";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index c608f48fdf9..8fc697828f0 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -46,11 +46,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "adblock" ];
 
-  passthru.meta = with lib; {
+  meta = with lib; {
     description = "Python wrapper for Brave's adblocking library, which is written in Rust";
     homepage = "https://github.com/ArniDagur/python-adblock/";
     maintainers = with maintainers; [ petabyteboy ];
     license = with licenses; [ asl20 mit ];
-    platforms = with platforms; [ all ];
   };
 }
diff --git a/pkgs/development/python-modules/addic7ed-cli/default.nix b/pkgs/development/python-modules/addic7ed-cli/default.nix
index bdf6aab3dbf..3ee3a897a90 100644
--- a/pkgs/development/python-modules/addic7ed-cli/default.nix
+++ b/pkgs/development/python-modules/addic7ed-cli/default.nix
@@ -1,4 +1,6 @@
-{ lib, python3Packages, }:
+{ lib
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "addic7ed-cli";
@@ -14,6 +16,10 @@ python3Packages.buildPythonApplication rec {
     pyquery
   ];
 
+  # Tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "addic7ed_cli" ];
+
   meta = with lib; {
     description = "A commandline access to addic7ed subtitles";
     homepage = "https://github.com/BenoitZugmeyer/addic7ed-cli";
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 2e7c9c2401c..5d9c3fe1669 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -1,10 +1,7 @@
 { lib
-
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, pytestrunner
-, typing-extensions
 , wrapt
 , aioitertools
 , aiohttp
diff --git a/pkgs/development/python-modules/aioguardian/default.nix b/pkgs/development/python-modules/aioguardian/default.nix
index f6822ede08c..8d3de12cd99 100644
--- a/pkgs/development/python-modules/aioguardian/default.nix
+++ b/pkgs/development/python-modules/aioguardian/default.nix
@@ -4,7 +4,6 @@
 , asyncio-dgram
 , asynctest
 , buildPythonPackage
-, cryptography
 , fetchFromGitHub
 , poetry
 , pytest-aiohttp
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
index 44cae12cba5..022e34e23c1 100644
--- a/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "aiosqlite";
-  version = "0.16.0";
+  version = "0.17.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a0fjmlvadyzsml10g5p1qif7192k0swy5zwjp8v48y5zc3yy56h";
+    sha256 = "sha256-8OaswkvEhkFJJnrIL7Rt+zvkRV+Z/iHfgmCcxua67lE=";
   };
 
   checkInputs = [
@@ -26,6 +26,8 @@ buildPythonPackage rec {
   # tests are not pick-up automatically by the hook
   pytestFlagsArray = [ "aiosqlite/tests/*.py" ];
 
+  pythonImportsCheck = [ "aiosqlite" ];
+
   meta = with lib; {
     description = "Asyncio bridge to the standard sqlite3 module";
     homepage = "https://github.com/jreese/aiosqlite";
diff --git a/pkgs/development/python-modules/androidtv/default.nix b/pkgs/development/python-modules/androidtv/default.nix
index aae46e4e322..98ab09fd8e6 100644
--- a/pkgs/development/python-modules/androidtv/default.nix
+++ b/pkgs/development/python-modules/androidtv/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "androidtv";
-  version = "0.0.57";
+  version = "0.0.58";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "JeffLIrion";
     repo = "python-androidtv";
     rev = "v${version}";
-    sha256 = "sha256-xOLMUf72VHeBzbMnhJGOnUIKkflnY4rV9NS/P1aYLJc=";
+    sha256 = "sha256-/5sYiYRFa8XJJ4QSxLzJBHaKfAKsGETiVDHerNQ79U8=";
   };
 
   propagatedBuildInputs = [ adb-shell pure-python-adb ]
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index c3f31850388..fad9e7d03fa 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -1,21 +1,21 @@
 { lib, buildPythonPackage, fetchPypi, installShellFiles
-, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml
+, Babel, requests, requests_oauthlib, six, click, markdown, pyyaml, cryptography
 , pytestrunner, coverage, flake8, mock, pytestCheckHook, pytestcov, tox, gntp, sleekxmpp
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bab3563bc1e0c64938c4c7700112797bd99f20eb5d4a3e6038338bc8f060e153";
+    sha256 = "sha256-FW5gt35yoXVr2+hiGBDJ/5jFFfIpn2Z9sDN8acoO4FI=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
 
   propagatedBuildInputs = [
-    requests requests_oauthlib six click markdown pyyaml
+    cryptography requests requests_oauthlib six click markdown pyyaml
   ];
 
   checkInputs = [
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     installManPage packaging/man/apprise.1
   '';
 
+  pythonImportsCheck = [ "apprise" ];
+
   meta = with lib; {
     homepage = "https://github.com/caronc/apprise";
     description = "Push Notifications that work with just about every platform!";
diff --git a/pkgs/development/python-modules/argon2_cffi/default.nix b/pkgs/development/python-modules/argon2_cffi/default.nix
index 85c6c4b638a..eec01adfebc 100644
--- a/pkgs/development/python-modules/argon2_cffi/default.nix
+++ b/pkgs/development/python-modules/argon2_cffi/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "argon2_cffi";
-  version = "19.2.0";
+  version = "20.1.0";
 
   src = fetchPypi {
     pname = "argon2-cffi";
     inherit version;
-    sha256 = "ffaa623eea77b497ffbdd1a51e941b33d3bf552c60f14dbee274c4070677bda3";
+    sha256 = "0zgr4mnnm0p4i99023safb0qb8cgvl202nly1rvylk2b7qnrn0nq";
   };
 
   propagatedBuildInputs = [ cffi six ] ++ lib.optional (!isPy3k) enum34;
diff --git a/pkgs/development/python-modules/asyncio_mqtt/default.nix b/pkgs/development/python-modules/asyncio_mqtt/default.nix
index 088681a1989..bb2ead70d71 100644
--- a/pkgs/development/python-modules/asyncio_mqtt/default.nix
+++ b/pkgs/development/python-modules/asyncio_mqtt/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "asyncio_mqtt";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hwfgww1ywhjvkpnvafbk2hxlqkrngfdz0sx5amzw68srzazvl6g";
+    sha256 = "c1b3bea68a35c83d290a89903079ffb311106195cd56867e201633a1ee1cad0c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index 2a532beca47..b3b794eb3a1 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.2.2";
+  version = "21.2.3";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "1yl09csypa64nhsw7dc6kj8iybm1wkhfzylyfyq8b7jpwdx7ql31";
+    sha256 = "sha256-UQ77ot1JXZZAKD/ijw+FBYJnDLJyD7jLrKANksBIM2Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/batchgenerators/default.nix b/pkgs/development/python-modules/batchgenerators/default.nix
index 16b8f317a22..8706a31d571 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , isPy27
 , fetchFromGitHub
-, fetchpatch
 , pytestCheckHook
 , unittest2
 , future
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "batchgenerators";
-  version = "0.20.1";
+  version = "0.21";
 
   disabled = isPy27;
 
@@ -24,18 +23,10 @@ buildPythonPackage rec {
     owner = "MIC-DKFZ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1f91yflv9rschyl5bnfn735hp1rxrzcxkx18aajmlzb067h0ip8m";
+    sha256 = "16bk4r0q3m2c9fawpmj4l7kz0x3fyv1spb92grf44gmyricq3jdb";
 
   };
 
-  patches = [
-    # lift Pillow bound; should be merged in next release
-    (fetchpatch {
-      url = "https://github.com/MIC-DKFZ/batchgenerators/pull/59.patch";
-      sha256 = "171b3dm40yn0wi91m9s2nq3j565s1w39jpdf1mvc03rn75i8vdp0";
-    })
-  ];
-
   propagatedBuildInputs = [
     future numpy pillow scipy scikitlearn scikitimage threadpoolctl
   ];
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index cfc222d2d2a..2b256b07f85 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.5"; # N.B: if you change this, change botocore too
+  version = "1.17.12"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1qr7gE/KK2fGXdp4rYtK/tkB4AQHEgi4TIBNNFrZ67o=";
+    sha256 = "sha256-YvBs0eenjYqqTlJ8MnZT6abBr0FbWYNgSKkMKKJ+Xwk=";
   };
 
   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 05c333d9397..635203f94c2 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.5"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.12"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-BKHfdZaB9fFxrMs1TYY7/tB3TWSk6O41/0mDV1VmCk4=";
+    sha256 = "sha256-OakjFaF6b4vBkU27Ag9S6SnxjluZpPocXYeF+RNCftg=";
   };
 
   propagatedBuildInputs = [
@@ -28,10 +28,6 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
-  '';
-
   checkInputs = [ mock nose ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/canopen/default.nix b/pkgs/development/python-modules/canopen/default.nix
index 8925c1cc8a4..51a6d0d11c0 100644
--- a/pkgs/development/python-modules/canopen/default.nix
+++ b/pkgs/development/python-modules/canopen/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "canopen";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15d49f1f71e9989dde6e3b75fb8445c76bd223064dfc0ac629fe9ecb0e21fba9";
+    sha256 = "18d01d56ff0023795cb336cafd4810a76cf402b98b42139b201fa8c5d4ba8c06";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 5445157b853..9115b1d57c3 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -52,8 +52,7 @@ buildPythonPackage rec {
   postPatch = ''
     sed -i setup.py -e "/pip>=/c\'pip',"
     substituteInPlace setup.py \
-      --replace 'typing==3.6.4' 'typing' \
-      --replace 'attrs>=19.3.0,<20.3.0' 'attrs'
+      --replace 'typing==3.6.4' 'typing'
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/ckcc-protocol/default.nix b/pkgs/development/python-modules/ckcc-protocol/default.nix
index eaf89948e8f..859fb091ec9 100644
--- a/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -11,24 +11,24 @@
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.0.2";
+  version = "1.0.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zpn3miyapskw6s71v614pmga5zfain9j085axm9v50b8r71xh1i";
+    sha256 = "d83a77d94e9563c3fb0e982d847ec88ba6ac45e3e008e5e53729c0b9800097fc";
   };
 
-  checkInputs = [
-    pytest
-  ];
-
   propagatedBuildInputs = [ click ecdsa hidapi pyaes ];
 
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "ckcc" ];
+
   meta = with lib; {
     description = "Communicate with your Coldcard using Python";
     homepage = "https://github.com/Coldcard/ckcc-protocol";
-    license = licenses.gpl3;
+    license = licenses.mit;
     maintainers = [ maintainers.hkjn ];
   };
 }
diff --git a/pkgs/development/python-modules/desktop-notifier/default.nix b/pkgs/development/python-modules/desktop-notifier/default.nix
index 83deaed67a0..22289195651 100644
--- a/pkgs/development/python-modules/desktop-notifier/default.nix
+++ b/pkgs/development/python-modules/desktop-notifier/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "desktop-notifier";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-D8/amC6SwXkm8Ao8G2Vn9FNpbqyFJFBUVcngkW5g8k0=";
+    sha256 = "0b333594af6e54677f9620480226dbc88ec6dd7c004352de9268d01aa49467f4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index abc07346efd..a9c2e4e8237 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -8,11 +8,12 @@
 , numpy
 , pydicom
 , scipy
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.2.8";
+  version = "2.2.12";
   disabled = isPy27;
 
   # no tests in PyPI dist
@@ -20,10 +21,10 @@ buildPythonPackage rec {
     owner = "icometrix";
     repo = pname;
     rev = version;
-    sha256 = "1qi2map6f4pa1l8wsif7ff7rhja6ynrjlm7w306dzvi9l25mia34";
+    sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4";
   };
 
-  propagatedBuildInputs = [ gdcm nibabel numpy pydicom scipy ];
+  propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];
 
   checkInputs = [ nose gdcm ];
   checkPhase = "nosetests tests";
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index 7b447eb8d78..7f2db712f00 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.6";
+  version = "3.1.7";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6c0462b8b361f8691171af1fb87eceb4442da28477e12200c40420176206ba7";
+    sha256 = "32ce792ee9b6a0cbbec340123e229ac9f765dff8c2a4ae9247a14b2ba3a365a7";
   };
 
   patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
index 204c1a98542..58ceb16870a 100644
--- a/pkgs/development/python-modules/dlib/default.nix
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -1,4 +1,5 @@
 { buildPythonPackage, stdenv, lib, dlib, python, pytest, more-itertools
+, sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
@@ -12,7 +13,10 @@ buildPythonPackage {
     ${python.interpreter} nix_run_setup test --no USE_AVX_INSTRUCTIONS
   '';
 
-  setupPyBuildFlags = lib.optional avxSupport "--no USE_AVX_INSTRUCTIONS";
+  setupPyBuildFlags = [
+    "--set USE_SSE4_INSTRUCTIONS=${if sse4Support then "yes" else "no"}"
+    "--set USE_AVX_INSTRUCTIONS=${if avxSupport then "yes" else "no"}"
+  ];
 
   patches = [ ./build-cores.patch ];
 
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
index dfa1a0fbd01..5297c83d64b 100644
--- a/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Migrate";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8626af845e6071ef80c70b0dc16d373f761c981f0ad61bb143a529cab649e725";
+    sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
   };
 
   checkInputs = [ flask_script ] ++ lib.optional isPy3k glibcLocales;
diff --git a/pkgs/development/python-modules/fuzzyfinder/default.nix b/pkgs/development/python-modules/fuzzyfinder/default.nix
new file mode 100644
index 00000000000..a422e5606b0
--- /dev/null
+++ b/pkgs/development/python-modules/fuzzyfinder/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fuzzyfinder";
+  version = "2.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c56d86f110866becad6690c7518f7036c20831c0f82fc87eba8fdb943132f04b";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "fuzzyfinder" ];
+
+  meta = with lib; {
+    description = "Fuzzy Finder implemented in Python";
+    homepage = "https://github.com/amjith/fuzzyfinder";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/github3_py/default.nix b/pkgs/development/python-modules/github3_py/default.nix
index 6b1ea305d4a..8a1eea40c68 100644
--- a/pkgs/development/python-modules/github3_py/default.nix
+++ b/pkgs/development/python-modules/github3_py/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "github3.py";
-  version = "1.3.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15a115c18f7bfcf934dfef7ab103844eb9f620c586bad65967708926da47cbda";
+    sha256 = "8dd4ac612fd60cb277eaf6e2ce02f68dda54aba06870ca6fa2b28369bf39aa14";
   };
 
   checkInputs = [ betamax pytest betamax-matchers ]
diff --git a/pkgs/development/python-modules/gmusicapi/default.nix b/pkgs/development/python-modules/gmusicapi/default.nix
index 1797f1d4264..c9fc464f069 100644
--- a/pkgs/development/python-modules/gmusicapi/default.nix
+++ b/pkgs/development/python-modules/gmusicapi/default.nix
@@ -29,6 +29,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ validictory decorator mutagen protobuf setuptools requests dateutil proboscis mock appdirs oauth2client pyopenssl gpsoauth MechanicalSoup future ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "gmusicapi" ];
+
   meta = with lib; {
     description = "An unofficial API for Google Play Music";
     homepage = "https://pypi.python.org/pypi/gmusicapi/";
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 3bc5f185e49..cec1672b761 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b19f0556c252b805a52c976e3317c53d91e36f56dc8d28192eea190627faf343";
+    sha256 = "ff9933573dadb02176dc514662354949d0ea784cc4588d22226c2bf7eb90e797";
   };
 
   propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index 5911bfe6156..c01c294ec33 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jsf7y88lvln9r08pmx673ibmgw397qmir5drrcfvlmgqvszp7qx";
+    sha256 = "6be2f2bca14b4eb1c1bdb0f4ba1dadf791e79a2a3e1fae762e5631a3d9fe094e";
   };
 
   propagatedBuildInputs = [ google-api-core grpc_google_iam_v1 libcst proto-plus ];
diff --git a/pkgs/development/python-modules/gpsoauth/default.nix b/pkgs/development/python-modules/gpsoauth/default.nix
index 1ad50642e2b..3caa89d06f7 100644
--- a/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/pkgs/development/python-modules/gpsoauth/default.nix
@@ -26,6 +26,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cffi cryptography enum34 idna ipaddress ndg-httpsclient pyopenssl pyasn1 pycparser pycryptodomex requests six ];
 
+  # no tests executed
+  doCheck = false;
+
+  pythonImportsCheck = [ "gpsoauth" ];
+
   meta = with lib; {
     description = "A python client library for Google Play Services OAuth";
     homepage = "https://github.com/simon-weber/gpsoauth";
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index d01fd389762..9d6e4795959 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.2.1";
+  version = "2021.2.15";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-R6tqGxGd6JymFgQX+deDPOtlKlwUjL7uf+zGdNxUW/s=";
+    sha256 = "sha256-vHq4DjDh7hBNAK/h/KdzqaEgrG5bg7VQ8fVWuxV7vOg=";
   };
 
   # tests require network connection
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index f3b8393a275..110c28ee2f4 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -2,13 +2,15 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.5.13";
+  version = "1.5.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70b638cf4743f33042bebb3b51e25261a0a10e80f978739f17e7fd4837664a66";
+    sha256 = "de7129142a5c86d75a52b96f394d94d96d497881d2aaf8eafe320cdbe8ac4bcc";
   };
 
+  pythonImportsCheck = [ "identify" ];
+
   # Tests not included in PyPI tarball
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 107febe4041..2f87f24639a 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.37.0";
+  version = "0.38.1";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "1501lk3fjxqmzxffahbj33y795gwl96yqvk3fs86cchm6vz2gnkk";
+    sha256 = "0b2gnym7p6cwgviwdq8pg2dy28pm5535f8kkc8rzc50knqdifl7g";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/json-rpc/default.nix b/pkgs/development/python-modules/json-rpc/default.nix
new file mode 100644
index 00000000000..e475c3117df
--- /dev/null
+++ b/pkgs/development/python-modules/json-rpc/default.nix
@@ -0,0 +1,24 @@
+{ lib, isPy27, buildPythonPackage, fetchPypi, pytestCheckHook, mock }:
+
+let
+  pythonEnv = lib.optional isPy27 mock;
+in buildPythonPackage rec {
+  pname = "json-rpc";
+  version = "1.13.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12bmblnznk174hqg2irggx4hd3cq1nczbwkpsqqzr13hbg7xpw6y";
+  };
+
+  checkInputs = pythonEnv ++ [ pytestCheckHook ];
+
+  nativeBuildInputs = pythonEnv;
+
+  meta = with lib; {
+    description = "JSON-RPC 1/2 transport implementation";
+    homepage = "https://github.com/pavlov99/json-rpc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/pkgs/development/python-modules/jsonpath-ng/default.nix b/pkgs/development/python-modules/jsonpath-ng/default.nix
new file mode 100644
index 00000000000..a623c859e16
--- /dev/null
+++ b/pkgs/development/python-modules/jsonpath-ng/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, decorator
+, fetchFromGitHub
+, ply
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "jsonpath-ng";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "h2non";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1cxjwhx0nj85a3awnl7j6afnk07awzv45qfwxl5jqbbc9cxh5bd6";
+  };
+
+  propagatedBuildInputs = [
+    decorator
+    ply
+    six
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTestFiles = [
+    # Exclude tests that require oslotest
+    "tests/test_jsonpath_rw_ext.py"
+  ];
+
+  pythonImportsCheck = [ "jsonpath_ng" ];
+
+  meta = with lib; {
+    description = "JSONPath implementation for Python";
+    homepage = "https://github.com/h2non/jsonpath-ng";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
index 5a70dcb4676..8b9823b6f03 100644
--- a/pkgs/development/python-modules/keep/default.nix
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "keep";
-  version = "2.10";
+  version = "2.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce71d14110df197ab5afdbd26a14c0bd266b79671118ae1351835fa192e61d9b";
+    sha256 = "3abbe445347711cecd9cbb80dab4a0777418972fc14a14e9387d0d2ae4b6adb7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 1aa22a62e19..a5ca1a7ab2a 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -22,8 +22,6 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements/test.txt \
       --replace "pytest-sugar" ""
-    substituteInPlace requirements/default.txt \
-      --replace "amqp==2.5.1" "amqp~=2.5"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index 0446299fd1b..cc0ba39e64e 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14ljk7rywy3fiv23dpayvk14y1ywma729r3b1x2cxf68919g2gnh";
+    sha256 = "17hqck808m59jv6m2g4hasnay44pycy3y0im01fq9jpr3ymcdbi7";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lsassy/default.nix b/pkgs/development/python-modules/lsassy/default.nix
index 6b1d5ec2bb4..ad9d09b3266 100644
--- a/pkgs/development/python-modules/lsassy/default.nix
+++ b/pkgs/development/python-modules/lsassy/default.nix
@@ -4,7 +4,6 @@
 , impacket
 , netaddr
 , pypykatz
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pecan/default.nix b/pkgs/development/python-modules/pecan/default.nix
index a66c4077c3c..50b62503ff8 100644
--- a/pkgs/development/python-modules/pecan/default.nix
+++ b/pkgs/development/python-modules/pecan/default.nix
@@ -16,7 +16,6 @@
 , Kajiki
 , mock
 , sqlalchemy
-, uwsgi
 , virtualenv
 }:
 
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index c51f8cb54e0..7645fdaec8a 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -11,6 +11,8 @@ buildPythonPackage rec {
     sha256 = "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx";
   };
 
+  dontUseCmakeConfigure = true;
+
   nativeBuildInputs = with pkgs; [
     swig qmake cmake
   ];
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index 4e9f07e2ccb..cfed6dd74cf 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.2.0";
+  version = "2.3.0";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0gsgfr190xy2rnjf1gf7688xrh13ihgq10s19s4rv5hp6pmg9iaa";
+    sha256 = "1y7mqc2myn1gfzg4h018f8xza0q535shnqg6snnaqynz20i8jcfh";
     fetchSubmodules = true; # data dir for tests
   };
 
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index e4bab25fd9c..8c9c0ea004c 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -5,7 +5,6 @@
 , fetchFromGitHub
 , pycryptodomex
 , pytestCheckHook
-, pyyaml
 , pytest-vcr
 , pytest-asyncio
 , requests
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 9eefaa5f364..742ea3d08c6 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "8.0.0";
+  version = "8.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dlxgh57j25cvk2pqr2dj4lv6yn0pix2rcl2kzqsg2405rdjks91";
+    sha256 = "sha256-3wKV9lPO51LeOM+O8J8TrZeCxTkk37qhkcpivV4dzhQ=";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index d58821569e6..fae49e7be0a 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,17 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.9.9";
-
-  meta = {
-    description = "A self-contained cryptographic library for Python";
-    homepage = "https://www.pycryptodome.org";
-    license = lib.licenses.bsd2;
-  };
+  version = "3.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b5b7c5896f8172ea0beb283f7f9428e0ab88ec248ce0a5b8c98d73e26267d51";
+    sha256 = "sha256-VBzT4+JS+xmntI9CC3mLU0gzArf+TZlUyUdgXQomPWI=";
+  };
+
+  pythonImportsCheck = [ "Cryptodome" ];
+
+  meta = with lib; {
+    description = "A self-contained cryptographic library for Python";
+    homepage = "https://www.pycryptodome.org";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix
index de208c7a9db..bf9a9eecfb8 100644
--- a/pkgs/development/python-modules/pynmea2/default.nix
+++ b/pkgs/development/python-modules/pynmea2/default.nix
@@ -1,16 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pynmea2";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b83fa7e3e668af5e182ef1c2fd4a535433ecadf60d7b627280172d695a1646b";
+    sha256 = "0w9g5qh573276404f04b46684ydlakv30ds0x0r4kcl370ljmfsg";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = "pytest";
+  checkInputs = [ pytestCheckHook ];
 
   meta = {
     homepage = "https://github.com/Knio/pynmea2";
diff --git a/pkgs/development/python-modules/pyowm/default.nix b/pkgs/development/python-modules/pyowm/default.nix
index 423d38ab25d..3cfb70e7b87 100644
--- a/pkgs/development/python-modules/pyowm/default.nix
+++ b/pkgs/development/python-modules/pyowm/default.nix
@@ -1,30 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, requests, geojson }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, geojson
+, pysocks
+, pythonOlder
+, requests
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pyowm";
-  version = "3.1.1";
+  version = "3.2.0";
+  disabled = pythonOlder "3.7";
 
-  disabled = pythonOlder "3.3";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a7b18297a9189dbe5f6b454b12d61a407e35c7eb9ca75bcabfe5e1c83245290d";
+  src = fetchFromGitHub {
+    owner = "csparpa";
+    repo = pname;
+    rev = version;
+    sha256 = "0sq8rxcgdiayl5gy4qhkvvsdq1d93sbzn0nfg8f1vr8qxh8qkfq4";
   };
 
-  propagatedBuildInputs = [ requests geojson ];
+  propagatedBuildInputs = [
+    geojson
+    pysocks
+    requests
+  ];
+
+  checkInputs = [ pytestCheckHook ];
 
-  # This may actually break the package.
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "requests>=2.18.2,<2.19" "requests"
-  '';
+  # Run only tests which don't require network access
+  pytestFlagsArray = [ "tests/unit" ];
 
-  # No tests in archive
-  doCheck = false;
+  pythonImportsCheck = [ "pyowm" ];
 
   meta = with lib; {
-    description = "A Python wrapper around the OpenWeatherMap web API";
+    description = "Python wrapper around the OpenWeatherMap web API";
     homepage = "https://pyowm.readthedocs.io/";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
index 2bb2eb1c6fc..40139c79567 100644
--- a/pkgs/development/python-modules/pyquery/default.nix
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -1,14 +1,15 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , cssselect
+, fetchPypi
 , lxml
-, webob
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyquery";
-  version = "1.2.9";
+  version = "1.4.3";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -16,15 +17,19 @@ buildPythonPackage rec {
     sha256 = "00p6f1dfma65192hc72dxd506491lsq3g5wgxqafi1xpg2w1xia6";
   };
 
-  propagatedBuildInputs = [ cssselect lxml webob ];
+  propagatedBuildInputs = [
+    cssselect
+    lxml
+  ];
 
   # circular dependency on webtest
   doCheck = false;
+  pythonImportsCheck = [ "pyquery" ];
 
   meta = with lib; {
+    description = "A jquery-like library for Python";
     homepage = "https://github.com/gawel/pyquery";
-    description = "A jquery-like library for python";
+    changelog = "https://github.com/gawel/pyquery/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
new file mode 100644
index 00000000000..ceba7489e8b
--- /dev/null
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cachetools
+, paho-mqtt
+, pytz
+, requests
+, requests_oauthlib
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pysmappee";
+  version = "0.2.17";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "smappee";
+    repo = pname;
+    rev = version;
+    sha256 = "00274fbclj5kmwxi2bfx4913r4l0y8qvkfcc9d7ryalvf8jq24k6";
+  };
+
+  propagatedBuildInputs = [
+    cachetools
+    paho-mqtt
+    pytz
+    requests
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pysmappee" ];
+
+  meta = with lib; {
+    description = "Python Library for the Smappee dev API";
+    homepage = "https://github.com/smappee/pysmappee";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index 3be2adc11a4..c07832c0b05 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -1,22 +1,31 @@
-{ lib, buildPythonPackage, isPy27, fetchPypi, setuptools_scm, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.3.2";
-  disabled = isPy27;
+  version = "0.4.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mxg91mrn8672f8hwg0f31xkyarnq7q0hr4fvb9hcb09jshq2wk7";
+    sha256 = "sha256-jZ4sHR3OEfe30snQkgLr/HdXt/8MrJtyrTKO3+fuA3s=";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   checkInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "pytest_subtests" ];
+
   meta = with lib; {
     description = "pytest plugin for unittest subTest() support and subtests fixture";
     homepage = "https://github.com/pytest-dev/pytest-subtests";
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/python-olm/default.nix b/pkgs/development/python-modules/python-olm/default.nix
index b1e01f7f4ab..2a8295a65bf 100644
--- a/pkgs/development/python-modules/python-olm/default.nix
+++ b/pkgs/development/python-modules/python-olm/default.nix
@@ -1,11 +1,11 @@
-{ lib, buildPythonPackage, olm,
-  cffi, future, isPy3k, typing }:
+{ lib, buildPythonPackage, isPy3k, olm
+, cffi, future, typing }:
 
 buildPythonPackage {
   pname = "python-olm";
   inherit (olm) src version;
 
-  sourceRoot = "${olm.name}/python";
+  sourceRoot = "source/python";
   buildInputs = [ olm ];
 
   preBuild = ''
@@ -17,12 +17,13 @@ buildPythonPackage {
     future
   ] ++ lib.optionals (!isPy3k) [ typing ];
 
+  # Some required libraries for testing are not packaged yet.
   doCheck = false;
+  pythonImportsCheck = [ "olm" ];
 
-  meta = with lib; {
+  meta = {
+    inherit (olm.meta) license maintainers;
     description = "Python bindings for Olm";
     homepage = "https://gitlab.matrix.org/matrix-org/olm/tree/master/python";
-    license = olm.meta.license;
-    maintainers = [ maintainers.tilpner ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvizio/default.nix b/pkgs/development/python-modules/pyvizio/default.nix
new file mode 100644
index 00000000000..807278d967d
--- /dev/null
+++ b/pkgs/development/python-modules/pyvizio/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, click
+, fetchPypi
+, jsonpickle
+, requests
+, tabulate
+, xmltodict
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "pyvizio";
+  version = "0.1.59";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j2zbziklx4az55m3997y7yp4xflk7i0gsbdfh7fp9k0qngb2053";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    jsonpickle
+    requests
+    tabulate
+    xmltodict
+    zeroconf
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "pyvizio" ];
+
+  meta = with lib; {
+    description = "Python client for Vizio SmartCast";
+    homepage = "https://github.com/vkorn/pyvizio";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 6b73642aea6..6d0414577bc 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -9,20 +9,22 @@
 , protobuf
 , protobuf3-to-dict
 , smdebug-rulesconfig
+, pandas
 }:
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.25.1";
+  version = "2.25.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-xQ1nt8FcjuoilzM5PbU8KHgirPyj9us+ykyjfgEqZhg=";
+    sha256 = "sha256-oacqDLgt11fplc6e3ruCrwDV/iRhoTgx1mu3Pm/5kmw=";
   };
 
-  doCheck = false;
-
-  pythonImportsCheck = [ "sagemaker" ];
+  pythonImportsCheck = [
+    "sagemaker"
+    "sagemaker.lineage.visualizer"
+  ];
 
   propagatedBuildInputs = [
     attrs
@@ -33,8 +35,15 @@ buildPythonPackage rec {
     protobuf
     protobuf3-to-dict
     smdebug-rulesconfig
+    pandas
   ];
 
+  doCheck = false;
+
+  postFixup = ''
+    [ "$($out/bin/sagemaker-upgrade-v2 --help 2>&1 | grep -cim1 'pandas failed to import')" -eq "0" ]
+  '';
+
   meta = with lib; {
     description = "Library for training and deploying machine learning models on Amazon SageMaker";
     homepage = "https://github.com/aws/sagemaker-python-sdk/";
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index 77cd3593863..704549e987d 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.5.0";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "14kqjdv49486ksc1s0m0hc4k5nf9vn1v1g489mpib01hiiqxjp1b";
+    sha256 = "sha256-R9ASHDIGuPRh4yf0FAlpjUZ6QAakYs35EFSqAPc02Q8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/serverlessrepo/default.nix b/pkgs/development/python-modules/serverlessrepo/default.nix
index 1e6f8307fbc..2a8267710a0 100644
--- a/pkgs/development/python-modules/serverlessrepo/default.nix
+++ b/pkgs/development/python-modules/serverlessrepo/default.nix
@@ -29,10 +29,6 @@ buildPythonPackage rec {
     pytest tests/unit
   '';
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "pyyaml~=3.12" "pyyaml~=5.1"
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
     description = "Helpers for working with the AWS Serverless Application Repository";
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 519d9bd3415..1e18027c4be 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -5,7 +5,7 @@
 , substituteAll
 , pythonOlder
 , geos
-, pytest
+, pytestCheckHook
 , cython
 , numpy
 , fetchpatch
@@ -26,9 +26,13 @@ buildPythonPackage rec {
     cython
   ];
 
-  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    numpy
+  ];
 
-  propagatedBuildInputs = [ numpy ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   # environment variable used in shapely/_buildcfg.py
   GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
@@ -51,14 +55,21 @@ buildPythonPackage rec {
       libgeos_c = GEOS_LIBRARY_PATH;
       libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
     })
-  ];
+   # included in next release.
+   (fetchpatch {
+     url = "https://github.com/Toblerity/Shapely/commit/ea5b05a0c87235d3d8f09930ad47c396a76c8b0c.patch";
+     sha256 = "sha256-egdydlV+tpXosSQwQFHaXaeBhXEHAs+mn7vLUDpvybA=";
+   })
+ ];
 
-  # Disable the tests that improperly try to use the built extensions
-  checkPhase = ''
+  preCheck = ''
     rm -r shapely # prevent import of local shapely
-    py.test tests
   '';
 
+  disabledTests = [
+    "test_collection"
+  ];
+
   meta = with lib; {
     description = "Geometric objects, predicates, and operations";
     maintainers = with maintainers; [ knedlsepp ];
diff --git a/pkgs/development/python-modules/sharkiqpy/default.nix b/pkgs/development/python-modules/sharkiqpy/default.nix
new file mode 100644
index 00000000000..9d696bf0a21
--- /dev/null
+++ b/pkgs/development/python-modules/sharkiqpy/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "sharkiqpy";
+  version = "0.1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nk1nbplyk28qadxc7rydjvdgbz3za0xjg6c95l95mhiz453q5sw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "sharkiqpy" ];
+
+  meta = with lib; {
+    description = "Python API for Shark IQ robot";
+    homepage = "https://github.com/ajmarks/sharkiq";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index 3a1c890f048..389feef2b42 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -21,11 +21,6 @@ buildPythonPackage rec {
     sha256 = "26af5c1a3f2b76aab8c3200310f0fc783790ec5a231ffeec102e620acdd6262e";
   };
 
-  # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
-  postPatch = ''
-    substituteInPlace ./setup.py --replace "moto==0.4.31" "moto"
-  '';
-
   # moto>=1.0.0 is backwards-incompatible and some tests fail with it,
   # so disable tests for now
   doCheck = false;
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 96f489ec6ed..a2f6a7aae92 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -57,11 +57,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'boto3>=1.4.4,<1.16'," "'boto3~=1.16'," \
-      --replace "'cryptography>=2.5.0,<3.0.0'," "'cryptography'," \
-      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL'," \
-      --replace "'idna<2.10'," "'idna'," \
-      --replace "'requests<2.24.0'," "'requests',"
+      --replace "'pyOpenSSL>=16.2.0,<20.0.0'," "'pyOpenSSL',"
   '';
 
   # tests require encrypted secrets, see
diff --git a/pkgs/development/python-modules/termplotlib/default.nix b/pkgs/development/python-modules/termplotlib/default.nix
new file mode 100644
index 00000000000..adccc99ac2f
--- /dev/null
+++ b/pkgs/development/python-modules/termplotlib/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, exdown
+, numpy
+, gnuplot
+}:
+
+buildPythonPackage rec {
+  pname = "termplotlib";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "nschloe";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "17d2727bz6kqhxczixx6nxzz4hzyi2cssylzazjimk07syvycd6n";
+  };
+
+  format = "pyproject";
+  checkInputs = [ pytestCheckHook numpy exdown gnuplot ];
+  pythonImportsCheck = [ "termplotlib" ];
+
+  # there seems to be a newline in the very front of the output
+  # which causes the test to fail, since it apparently doesn't
+  # strip whitespace. might be a gnuplot choice? sigh...
+  disabledTests = [ "test_plot_lim" ];
+
+  meta = with lib; {
+    description = "matplotlib for your terminal";
+    homepage = "https://github.com/nschloe/termplotlib";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/python-modules/tiros/default.nix b/pkgs/development/python-modules/tiros/default.nix
deleted file mode 100644
index edc4bbdebb1..00000000000
--- a/pkgs/development/python-modules/tiros/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ fetchPypi, buildPythonPackage
-, semantic-version, boto3, flask, docutils, requests
-}:
-
-buildPythonPackage rec {
-  pname = "tiros";
-  version = "1.0.44";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "d6bf7410967554ec283f9d4eabc0ce6821d6e6d36001afbdb7fe0826423d4f37";
-  };
-
-  patchPhase = ''
-    sed -E -i "s/'([[:alnum:].-_]+)[=><]{2}[[:digit:].]*'/'\\1'/g" setup.py
-    sed -i "s/'datetime',//" setup.py
-  '';
-
-  propagatedBuildInputs = [ semantic-version boto3 flask docutils requests ];
-}
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
new file mode 100644
index 00000000000..544c1a3084a
--- /dev/null
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, pkg-config, swig
+, tpm2-tss
+, cryptography, ibm-sw-tpm2
+}:
+
+buildPythonPackage rec {
+  pname = "tpm2-pytss";
+
+  # Last version on github is 0.2.4, but it looks
+  # like a mistake (it's missing commits from 0.1.9)
+  version = "0.1.9";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-v5Xth0A3tFnLFg54nvWYL2TD201e/GWv+2y5Qc60CmU=";
+  };
+  postPatch = ''
+    substituteInPlace tpm2_pytss/config.py --replace \
+      'SYSCONFDIR = CONFIG.get("sysconfdir", "/etc")' \
+      'SYSCONFDIR = "${tpm2-tss}/etc"'
+  '';
+
+  nativeBuildInputs = [ pkg-config swig ];
+  # The TCTI is dynamically loaded from tpm2-tss, we have to provide the library to the end-user
+  propagatedBuildInputs = [ tpm2-tss ];
+
+  checkInputs = [
+    cryptography
+    # provide tpm_server used as simulator for the tests
+    ibm-sw-tpm2
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tpm2-software/tpm2-pytss";
+    description = "TPM2 TSS Python bindings for Enhanced System API (ESYS)";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
new file mode 100644
index 00000000000..fb561732174
--- /dev/null
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, aiohttp
+, yarl
+, aresponses
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "twentemilieu";
+  version = "0.3.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-twentemilieu";
+    rev = "v${version}";
+    sha256 = "1ff35sh73m2s7fh4d8p2pjwdbfljswr8b8lpcjybz8nsh0286xph";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "twentemilieu" ];
+
+  meta = with lib; {
+    description = "Python client for Twente Milieu";
+    homepage = "https://github.com/frenck/python-twentemilieu";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
new file mode 100644
index 00000000000..b244167f88e
--- /dev/null
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "twitterapi";
+  version = "2.6.8";
+
+  src = fetchFromGitHub {
+    owner = "geduldig";
+    repo = "TwitterAPI";
+    rev = "v${version}";
+    sha256 = "sha256-X/j+3bWLQ9b4q0k/JTE984o1VZS0KTQnC0AdZpNsksY=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    requests_oauthlib
+  ];
+
+  # Tests are interacting with the Twitter API
+  doCheck = false;
+  pythonImportsCheck = [ "TwitterAPI" ];
+
+  meta = with lib; {
+    description = "Python wrapper for Twitter's REST and Streaming APIs";
+    homepage = "https://github.com/geduldig/TwitterAPI";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/venstarcolortouch/default.nix b/pkgs/development/python-modules/venstarcolortouch/default.nix
new file mode 100644
index 00000000000..713059ad908
--- /dev/null
+++ b/pkgs/development/python-modules/venstarcolortouch/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "venstarcolortouch";
+  version = "0.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04y9gmxb0vsmc5c930x9ziis5v83b29kfzsgjlww3pssj69lmw1s";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "venstarcolortouch" ];
+
+  meta = with lib; {
+    description = "Python interface for Venstar ColorTouch thermostats Resources";
+    homepage = "https://github.com/hpeyerl/venstar_colortouch";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/wxPython/4.0.nix b/pkgs/development/python-modules/wxPython/4.0.nix
index d72d4aa35d4..2fc9a98a26f 100644
--- a/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/pkgs/development/python-modules/wxPython/4.0.nix
@@ -10,9 +10,6 @@
 , doxygen
 , ncurses
 , libintl
-, numpy
-, pillow
-, six
 , wxGTK
 , wxmac
 , IOKit
diff --git a/pkgs/development/python-modules/wxPython/4.1.nix b/pkgs/development/python-modules/wxPython/4.1.nix
index e4cb6ec79e0..a86e07729d9 100644
--- a/pkgs/development/python-modules/wxPython/4.1.nix
+++ b/pkgs/development/python-modules/wxPython/4.1.nix
@@ -6,7 +6,6 @@
 , pkg-config
 , python
 , isPy27
-, pyopengl
 , doxygen
 , cairo
 , ncurses
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
deleted file mode 100644
index 65e2b3711fa..00000000000
--- a/pkgs/development/python-modules/xmpppy/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildPythonPackage, fetchurl, isPy3k }:
-buildPythonPackage rec {
-  pname = "xmpp.py";
-  version = "0.5.0rc1";
-
-  patches = [ ./ssl.patch ];
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xmpppy/xmpppy-${version}.tar.gz";
-    sha256 = "16hbh8kwc5n4qw2rz1mrs8q17rh1zq9cdl05b1nc404n7idh56si";
-  };
-
-  preInstall = ''
-    mkdir -p $out/bin $out/lib $out/share $(toPythonPath $out)
-    export PYTHONPATH=$PYTHONPATH:$(toPythonPath $out)
-  '';
-
-  disabled = isPy3k;
-
-  meta = with lib; {
-    description = "XMPP python library";
-    homepage = "http://xmpppy.sourceforge.net/";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.mic92 ];
-  };
-}
diff --git a/pkgs/development/python-modules/xmpppy/ssl.patch b/pkgs/development/python-modules/xmpppy/ssl.patch
deleted file mode 100644
index 915602dc23e..00000000000
--- a/pkgs/development/python-modules/xmpppy/ssl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -wbBur xmpppy-0.5.0rc1/xmpp/transports.py xmpppy-0.5.0rc1.q/xmpp/transports.py
---- xmpppy-0.5.0rc1/xmpp/transports.py	2009-04-07 12:34:09.000000000 +0400
-+++ xmpppy-0.5.0rc1.q/xmpp/transports.py	2015-05-08 13:06:03.049252065 +0300
-@@ -27,7 +27,7 @@
- Also exception 'error' is defined to allow capture of this module specific exceptions.
- """
- 
--import socket,select,base64,dispatcher,sys
-+import socket,ssl,select,base64,dispatcher,sys
- from simplexml import ustr
- from client import PlugIn
- from protocol import *
-@@ -312,9 +312,9 @@
-         """ Immidiatedly switch socket to TLS mode. Used internally."""
-         """ Here we should switch pending_data to hint mode."""
-         tcpsock=self._owner.Connection
--        tcpsock._sslObj    = socket.ssl(tcpsock._sock, None, None)
--        tcpsock._sslIssuer = tcpsock._sslObj.issuer()
--        tcpsock._sslServer = tcpsock._sslObj.server()
-+        tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
-+        tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
-+        tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
-         tcpsock._recv = tcpsock._sslObj.read
-         tcpsock._send = tcpsock._sslObj.write
- 
diff --git a/pkgs/development/tools/air/default.nix b/pkgs/development/tools/air/default.nix
new file mode 100644
index 00000000000..912328ead26
--- /dev/null
+++ b/pkgs/development/tools/air/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "air";
+  version = "1.15.1";
+
+  src = fetchFromGitHub {
+    owner = "cosmtrek";
+    repo = "air";
+    rev = "v${version}";
+    sha256 = "0d34k8hyag84j24bhax4gvg8mkzqyhdqd16rfirpfjiqvqh0vdkz";
+  };
+
+  vendorSha256 = "0k28rxnd0vyb6ljbi83bm1gl7j4r660a3ckjxnzc2qzwvfj69g53";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Live reload for Go apps";
+    homepage = "https://github.com/cosmtrek/air";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ Gonzih ];
+  };
+}
diff --git a/pkgs/development/tools/ameba/default.nix b/pkgs/development/tools/ameba/default.nix
index 13e9c56be9f..48182760dca 100644
--- a/pkgs/development/tools/ameba/default.nix
+++ b/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.13.4";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "sha256-+ZsefwH1hag2syWaEXkdxgmxk6JsxP7MvV+ILlo+Hy8=";
+    sha256 = "sha256-9oLVv0fCJzYyBApR4yzQKc25Uz9X5Rrvj638yD0JDMU=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 5578e03dc96..5c6fd8e3b90 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.144.0";
+  version = "0.145.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-Qr/fizCV+t6SbETEqns72Xv24ucLcqi1JRXF8SAtQRU=";
+    sha256 = "sha256-6fRKXKh+hB/d2CcmZYYSlMzP1IGCl7fLdXCQ1M0wuY4=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 8401e4b7ee1..1c26f64b21a 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.38.3";
+  version = "0.38.4";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vw62cagggqpv3q68ypz3wykhyghz6dzl59hxsahy8lr9b1npy8a";
+    sha256 = "sha256-BWWW54AXj/aV+Yar0EVZPl9fN2l29SgzpRDin1Y76BA=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 12fd01e5e4e..1b4f74f91d4 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.4.6";
+  version = "1.4.8";
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "1fx80yrf03llhxcd8az5vzralz01wdfk7000q8l04rj1ax3daqia";
+    sha256 = "1hfd5gc98bp4p4m85jva2mlkh10q10n9s5136z8620mmjq93rx70";
   };
 
   bloop-bash = fetchurl {
@@ -54,9 +54,9 @@ stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "1hg02a3ildgqv8864zg08hvk4y0kmsxsg7ncbsl933rclhk2lybd"
-                     else if stdenv.isDarwin && stdenv.isx86_64 then "1i9kh4h5w3gr4w6rf5m7xpfqwps91mfddl1zk25v7f6vsraayam0"
-                     else throw "unsupported platform";
+    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "1cs3ng6bj9s7xf6c4xaiqgg5qr34abnipfgc44sy2ljklr7x0jwa"
+      else if stdenv.isDarwin && stdenv.isx86_64 then "0l9vqvzcmxya1s04cps96skw4dslh3i3ks73dl53ing50zb0ga9r"
+      else throw "unsupported platform";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 4735a7559cf..4c5d9a5df80 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -55,12 +55,12 @@ rec {
   gradle_latest = gradle_6_8;
 
   gradle_6_8 = gradleGen rec {
-    name = "gradle-6.8.1";
+    name = "gradle-6.8.3";
     nativeVersion = "0.22-milestone-9";
 
     src = fetchurl {
       url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1zfn7400k39qbiidd5zxay6v5f5xz8x4g7rrf04p71bkmws1lngx";
+      sha256 = "01fjrk5nfdp6mldyblfmnkq2gv1rz1818kzgr0k2i1wzfsc73akz";
     };
   };
 
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index cb977191eaf..46f7e8cfa88 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -1,6 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk, writeScript
-, common-updater-scripts, cacert, git, nixfmt, nix, jq, coreutils, gnused
-, nixosTests }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, curl
+, makeWrapper
+, jdk
+, writeScript
+, common-updater-scripts
+, cacert
+, git
+, nixfmt
+, nix
+, jq
+, coreutils
+, gnused
+}:
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
@@ -28,41 +42,40 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/sbt --prefix PATH : ${lib.makeBinPath [ which curl ]}
   '';
 
-  passthru = {
-    tests = { inherit (nixosTests) sbt-extras; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -xo errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          curl
-          cacert
-          git
-          nixfmt
-          nix
-          jq
-          coreutils
-          gnused
-        ]
-      }
-
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
-      latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/sbt -h >/dev/null
+  '';
 
-      if [ ! "null" = "$latestSha" ]; then
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
-        latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
-        update-source-version ${pname} "$latestSha" --version-key=rev
-        update-source-version ${pname} "$latestDate" --ignore-same-hash
-        nixfmt "$default_nix"
-      else
-        echo "${pname} is already up-to-date"
-      fi
-    '';
-  };
+  passthru.updateScript = writeScript "update.sh" ''
+     #!${stdenv.shell}
+     set -xo errexit
+     PATH=${
+       lib.makeBinPath [
+         common-updater-scripts
+         curl
+         cacert
+         git
+         nixfmt
+         nix
+         jq
+         coreutils
+         gnused
+       ]
+     }
+    oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')"
+     latestSha="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits\?sha\=master\&since\=$oldVersion | jq -r '.[0].sha')"
+    if [ ! "null" = "$latestSha" ]; then
+       nixpkgs="$(git rev-parse --show-toplevel)"
+       default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix"
+       latestDate="$(curl -L -s https://api.github.com/repos/paulp/sbt-extras/commits/$latestSha | jq '.commit.committer.date' | sed 's|"\(.*\)T.*|\1|g')"
+       update-source-version ${pname} "$latestSha" --version-key=rev
+       update-source-version ${pname} "$latestDate" --ignore-same-hash
+       nixfmt "$default_nix"
+     else
+       echo "${pname} is already up-to-date"
+     fi
+  '';
 
   meta = {
     description =
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 9e45c3e8b90..c9518d685b5 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -1,5 +1,10 @@
-{ lib, stdenv, fetchurl, jre, autoPatchelfHook, zlib, writeScript
-, common-updater-scripts, git, nixfmt, nix, coreutils, gnused, nixosTests }:
+{ lib
+, stdenv
+, fetchurl
+, jre
+, autoPatchelfHook
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "sbt";
@@ -28,6 +33,11 @@ stdenv.mkDerivation rec {
     } $out/bin/sbtn
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    ($out/bin/sbt --offline --version 2>&1 || true) | grep 'getting org.scala-sbt sbt ${version}  (this may take some time)'
+  '';
+
   meta = with lib; {
     homepage = "https://www.scala-sbt.org/";
     license = licenses.bsd3;
@@ -35,35 +45,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ nequissimus ];
     platforms = platforms.unix;
   };
-
-  passthru = {
-    tests = { inherit (nixosTests) sbt; };
-
-    updateScript = writeScript "update.sh" ''
-      #!${stdenv.shell}
-      set -o errexit
-      PATH=${
-        lib.makeBinPath [
-          common-updater-scripts
-          git
-          nixfmt
-          nix
-          coreutils
-          gnused
-        ]
-      }
-
-      oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion sbt" | tr -d '"')"
-      latestTag="$(git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:sbt/sbt.git '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^v||g')"
-
-      if [ ! "$oldVersion" = "$latestTag" ]; then
-        update-source-version sbt "$latestTag" --version-key=version --print-changes
-        nixpkgs="$(git rev-parse --show-toplevel)"
-        default_nix="$nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix"
-        nixfmt "$default_nix"
-      else
-        echo "sbt is already up-to-date"
-      fi
-    '';
-  };
 }
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index 55894058794..806eb7c5b0e 100644
--- a/pkgs/development/tools/buildkit/default.nix
+++ b/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.8.1";
+  version = "0.8.2";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "0lqfz097nyb6q6bn5mmfg6vl1nmgb6k4lmwxc8anza6zp8qh7wif";
+    sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo=";
   };
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
diff --git a/pkgs/development/tools/checkmake/default.nix b/pkgs/development/tools/checkmake/default.nix
new file mode 100644
index 00000000000..c48dbe68023
--- /dev/null
+++ b/pkgs/development/tools/checkmake/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, git, pandoc, lib }:
+
+buildGoPackage rec {
+  pname = "checkmake";
+  version = "0.1.0-2020.11.30";
+
+  goPackagePath = "github.com/mrtazz/checkmake";
+
+  src = fetchFromGitHub {
+    owner = "mrtazz";
+    repo = pname;
+    rev = "575315c9924da41534a9d0ce91c3f0d19bb53ffc";
+    sha256 = "121rsl9mh3wwadgf8ggi2xnb050pak6ma68b2sw5j8clmxbrqli3";
+  };
+
+  nativeBuildInputs = [ pandoc ];
+
+  preBuild =
+    let
+      buildVars = {
+        version = version;
+        buildTime = "N/A";
+        builder = "nix";
+        goversion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+      };
+      buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X main.${k}=${v}") buildVars);
+    in
+    ''
+      buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+    '';
+
+  postInstall = ''
+    pandoc -s -t man -o checkmake.1 go/src/${goPackagePath}/man/man1/checkmake.1.md
+    mkdir -p $out/share/man/man1
+    mv checkmake.1 $out/share/man/man1/checkmake.1
+  '';
+
+  meta = with lib; {
+    description = "Experimental tool for linting and checking Makefiles";
+    homepage = https://github.com/mrtazz/checkmake;
+    license = licenses.mit;
+    maintainers = with maintainers; [ vidbina ];
+    platforms = platforms.linux;
+    longDescription = ''
+      checkmake is an experimental tool for linting and checking
+      Makefiles. It may not do what you want it to.
+    '';
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 20cb953edea..ad886e0c3c6 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.8.0";
+  version = "13.9.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 = "15pf6mxma8gkzyxkzm1rjwa514p7gzabn3c474lcvsjpmp76wv68";
+    sha256 = "0zgnp6l0p1i7x6lppd24nfb6kqa8mw7rnr2p5gmwbmjv9i9zkycs";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1c4lpy7nc62rqk8bfwiy5pcgvcwx70qkz3lv9w512fr3n5hjd4c0";
+    sha256 = "06b5p9ygcnrjrisp6bcgw9s3j2zlycp8jsri259bjf7rrfbwpkma";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0v0iqpllzaabkahlc5pidzzw0bjlli984pdna3f3bbg67lm5a421";
+    sha256 = "0wzqrfjg43wnf9lr34jn3ydlxi7vsnqs55pm5igba592q8ykfbxk";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 92249282267..0be77237f42 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.0";
+  version = "4.3.1";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Zwh8baMD8jt+yfsK0jpsTEU32rT+IAQGwavVT3rpRsU=";
+    sha256 = "sha256-hOemDLfkjjPXQErKKCIMl8c5EPZe40B1HlNfvg7IZKU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/dockle/default.nix b/pkgs/development/tools/dockle/default.nix
index c20e2866dc7..d78b54b33e4 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.1";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "goodwithtech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Zc2ZlyeWdRvyuJLDDTONfh0/q+HKR4lNtSFMjgJWrRY=";
+    sha256 = "sha256-oS3ZGQkDSRdVLluLNg56VGp6MCrRDlgjk1va1+xocas=";
   };
 
-  vendorSha256 = "sha256-4IJKXcnMXBqoEjsV4Xg2QYvKwxDDUjcZtrj9IRuT6i4=";
+  vendorSha256 = "sha256-npbUE3ch8TamW0aikdKuFElE4YDRKwNVUscuvmlQxl4=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ btrfs-progs lvm2 ];
@@ -25,7 +25,15 @@ buildGoModule rec {
 
   preCheck = ''
     # Remove tests that use networking
-    rm pkg/scanner/scan_test.go pkg/utils/fetch_test.go
+    rm pkg/scanner/scan_test.go
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/dockle --help
+    $out/bin/dockle --version | grep "dockle version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 4d05bd3ed11..a1759df9458 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.55.0";
+  version = "1.56.0";
 
   vendorSha256 = null;
 
@@ -32,7 +32,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-vhg5X8H4VegSDORtj1rgNKlWQo1H1e/vvO01LJkVK+A=";
+    sha256 = "sha256-rBUao5j4Bofn6uSB20TTN7G1JgKu3mQpISJp+hX28mw=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/dt-schema/default.nix b/pkgs/development/tools/dt-schema/default.nix
index 3d420bf1901..7f439d9b59e 100644
--- a/pkgs/development/tools/dt-schema/default.nix
+++ b/pkgs/development/tools/dt-schema/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "dtschema";
-  version = "2020.12";
+  version = "2021.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01de2598075909f2afb2d45277d0358645066f5bbb1770fca5f1d6f399846924";
+    sha256 = "d9f88f069068dc5dc7e895785d7172d260cbbc34cab3b52704b20e89b80c6de8";
   };
 
   nativeBuildInputs = [ setuptools_scm git ];
diff --git a/pkgs/development/tools/eclipse-mat/default.nix b/pkgs/development/tools/eclipse-mat/default.nix
index 633e13d25f7..4f475440b04 100644
--- a/pkgs/development/tools/eclipse-mat/default.nix
+++ b/pkgs/development/tools/eclipse-mat/default.nix
@@ -1,5 +1,4 @@
-{ buildEnv
-, fetchurl
+{ fetchurl
 , fontconfig
 , freetype
 , glib
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index e906936d2e7..6ea866eb8f5 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -85,21 +85,21 @@ rec {
     headers = "0712160j1yvl9fmj2vm9lznkwnmji1hjzyicb4vis52lbrwx820l";
   };
 
-  electron_10 = mkElectron "10.3.2" {
-    x86_64-linux = "e28748c813ddc69c611a47961d68ae2dc3761f547c509d9ce2c56c2c6eadc9a2";
-    x86_64-darwin = "3120ae3eab94d9102003f6fa2dc833a0629295c7ec0e154b35f61116d55a4954";
-    i686-linux = "13f42ad6ea0fa41553b8f50323d0baaa29272220a2e81ca5293ad4439cda1d79";
-    armv7l-linux = "0e571f63697b8985782175af07bdd7069886195d9ccd7fc5c04578b4144ea922";
-    aarch64-linux = "173551fa6cd3ca1fb52fab3bd3e7f0ffd3e4758e78a5174e6d636a45a282ab8f";
-    headers = "00x71b18prc55pv3sykbzpmkxf8yjzf2cdnlqif993jab8fbwmqn";
+  electron_10 = mkElectron "10.4.0" {
+    x86_64-linux = "6246481577bc0bfa719e0efb3144e8d7ca53e3f20defce7b5e1be4d9feb0becb";
+    x86_64-darwin = "bc9e201643db3dae803db934fa4e180d13b707de6be1c3348ca5ed2c21d30bf4";
+    i686-linux = "aa6a9042097b964230b519c158e369a249a668cc6c7654b30ddd02ced4bad9d1";
+    armv7l-linux = "7e99a9c6aeedd7cc0b25260ac4630730629f363a09b72bd024b42837ab9777bd";
+    aarch64-linux = "ef671fe3cbb7c84e277d885ed157552602bc88d326dc95b322953c6b193f59a1";
+    headers = "1vsvna2zr7qxnk2qsdjzgkv5v2svrllbsjj08qrilly7nbksk9fg";
   };
 
-  electron_11 = mkElectron "11.2.3" {
-    x86_64-linux = "9249901fd7b85a7f952abe0df2ce83a566df612ef3ee15cce488cb1d751bc94d";
-    x86_64-darwin = "e0b2784b25fd4a5ee4041d508d59bbb8386039c7ea7e9cea3e547c672f052b60";
-    i686-linux = "78b2dd2d7b5e891e695cd31c28ac5fa1e99967ff538b944aa9d1ec224e82a964";
-    armv7l-linux = "06178cd44792c7dceb72286460948cb7f575acba4e46cf72c154f243e93eaf65";
-    aarch64-linux = "e23f2572a6a66779aff5d7cf25149fd343b0eef420fbfa3e8c3742284ce6e613";
-    headers = "1yjc7zl7l5n3l2s2x3lbic2lc527alcd4mnwih7pjl5dhvdgmbm9";
+  electron_11 = mkElectron "11.3.0" {
+    x86_64-linux = "136794f9ecc1c6ea38fe9b85682e8fcc8c4afd559f5cd6b4059339b017279917";
+    x86_64-darwin = "7569db1d2e470b0db512735f27f99498f631da3cd86374345139f18df88789fe";
+    i686-linux = "48ab133cab380c564529ea605d4521404b9bd07d80dad6346e1756a0952081cd";
+    armv7l-linux = "5774c2995c6dcf911ece00a94ace0f37d55132da91b1fd242c69e047872ef137";
+    aarch64-linux = "fad31c6fba7aba54db19a2aaedb03b514c51dd58bf301afab5265126833feb15";
+    headers = "123g3dgsb4vp8w1bm4apbp973ppzx4i4y35lhhmqjbp51jhrm9f0";
   };
 }
diff --git a/pkgs/development/tools/errcheck/default.nix b/pkgs/development/tools/errcheck/default.nix
index eb9589f723d..a387c14c0a5 100644
--- a/pkgs/development/tools/errcheck/default.nix
+++ b/pkgs/development/tools/errcheck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "errcheck";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kisielk";
     repo = "errcheck";
     rev = "v${version}";
-    sha256 = "sha256-ZmocFXtg+Thdup+RqDYC/Td3+m1nS0FydZecfsWXIzI=";
+    sha256 = "sha256-Przf2c2jFNdkUq7IOUD7ChXHiSayAz4xTsNzajycYZ0=";
   };
 
   vendorSha256 = "sha256-rluaBdW+w2zPThELlBwX/6LXDgc2aIk/ucbrsrABpVc=";
diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix
index 4f2bd805260..0fd9cf1f06d 100644
--- a/pkgs/development/tools/flyway/default.nix
+++ b/pkgs/development/tools/flyway/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, jre_headless, makeWrapper }:
   let
-    version = "7.5.2";
+    version = "7.5.3";
   in
     stdenv.mkDerivation {
       pname = "flyway";
       inherit version;
       src = fetchurl {
         url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-        sha256 = "sha256-oO7k6JOKUm11OYNN+tH/zqF9ucgrsnF4PcphT8+xnS8=";
+        sha256 = "sha256-XDfY/OnXSmgF2u8DMr+WgzNJD3VYw/hQ8v3cr4/jhVY=";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/pkgs/development/tools/github/github-release/default.nix b/pkgs/development/tools/github/github-release/default.nix
index 81b125ac058..4326d4bf71c 100644
--- a/pkgs/development/tools/github/github-release/default.nix
+++ b/pkgs/development/tools/github/github-release/default.nix
@@ -1,40 +1,17 @@
-{ lib, stdenv, system, fetchurl }:
+{ buildGoPackage, fetchFromGitHub, lib }:
 
-let
-  linuxPredicate = system == "x86_64-linux";
-  bsdPredicate = system == "x86_64-freebsd";
-  darwinPredicate = system == "x86_64-darwin";
-  metadata = assert linuxPredicate || bsdPredicate || darwinPredicate;
-    if linuxPredicate then
-      { arch = "linux-amd64";
-        sha256 = "0p0qj911nmmdj0r7wx3363gid8g4bm3my6mj3d6s4mwgh9lfisiz";
-        archiveBinaryPath = "linux/amd64"; }
-    else if bsdPredicate then
-      { arch = "freebsd-amd64";
-        sha256 = "0g618y9n39j11l1cbhyhwlbl2gv5a2a122c1dps3m2wmv7yzq5hk";
-        archiveBinaryPath = "freebsd/amd64"; }
-    else
-      { arch = "darwin-amd64";
-        sha256 = "0l623fgnsix0y3f960bwx3dgnrqaxs21w5652kvaaal7dhnlgmwj";
-        archiveBinaryPath = "darwin/amd64"; };
-in stdenv.mkDerivation rec {
-  shortname = "github-release";
-  name = "${shortname}-${version}";
-  version = "0.7.2";
+buildGoPackage rec {
+  pname = "github-release";
+  version = "0.10.0";
 
-  src = fetchurl {
-    url = "https://github.com/aktau/github-release/releases/download/v${version}/${metadata.arch}-${shortname}.tar.bz2";
-    sha256 = metadata.sha256;
+  src = fetchFromGitHub {
+    owner = "github-release";
+    repo = "github-release";
+    rev = "v${version}";
+    sha256 = "sha256-J5Y0Kvon7DstTueCsoYvw6x4cOH/C1IaVArE0bXtZts=";
   };
 
-  buildInputs = [ ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    cp "${metadata.archiveBinaryPath}/github-release" "$out/bin/"
-  '';
+  goPackagePath = "github.com/github-release/github-release";
 
   meta = with lib; {
     description = "Commandline app to create and edit releases on Github (and upload artifacts)";
@@ -45,8 +22,8 @@ in stdenv.mkDerivation rec {
     '';
 
     license = licenses.mit;
-    homepage = "https://github.com/aktau/github-release";
-    maintainers = with maintainers; [ ardumont ];
+    homepage = "https://github.com/github-release/github-release";
+    maintainers = with maintainers; [ ardumont j03 ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/gllvm/default.nix b/pkgs/development/tools/gllvm/default.nix
index 78038440a96..460f59dc3d0 100644
--- a/pkgs/development/tools/gllvm/default.nix
+++ b/pkgs/development/tools/gllvm/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gllvm";
-  version = "1.2.9";
+  version = "1.3.0";
 
   goPackagePath = "github.com/SRI-CSL/gllvm";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "SRI-CSL";
     repo = "gllvm";
     rev = "v${version}";
-    sha256 = "15cgngvd9mg057iz32fk5kcprcvvavahbvfvl5ds8x7shbm60g7s";
+    sha256 = "sha256-nu6PRFk+GoN1gT1RTbX6mTPZByAGf0bSsj2C5YriGp8=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 57e836d8f4e..8e58a811305 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.2.1";
+  version = "2020.2.2";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "0a1a4dhz33grwg892436bjhgp8sygrg8yhdhy8dh6i3l6n9dalfh";
+    sha256 = "1vk9c4hsv8i3zhkyrsd0cb5mscxl35ws5bykpp5h6g366rpl0dy1";
   };
 
   vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak";
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 2e973e9a0b0..49928b1a08b 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.36.0";
+  version = "1.37.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "sha256-AObZI104q+kOvV3/6aAusl5PMro1nbNUasvmJ4mRGz8=";
+    sha256 = "sha256-x0VLNQeTVN9aPO06Yi1DTb8bTjq+9VemJaX1R+8s/Bg=";
   };
 
-  vendorSha256 = "sha256-jr8sYfonggAHqtq3A8YVuTqJu3/iIu0OgBEUWj6bq+A=";
+  vendorSha256 = "sha256-uduT4RL6p6/jdT8JeTx+FY9bz0P2eUSaFNDIzi7jcqg=";
 
   doCheck = false;
 
@@ -19,7 +19,9 @@ buildGoModule rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags=-s -w -X main.version=${version} -X main.commit=v${version} -X main.date=19700101-00:00:00")
+  '';
 
   postInstall = ''
     for shell in bash zsh; do
@@ -31,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Fast linters Runner for Go";
     homepage = "https://golangci-lint.run/";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ anpryl manveru ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ anpryl manveru mic92 ];
   };
 }
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
new file mode 100644
index 00000000000..35d7cf50a7e
--- /dev/null
+++ b/pkgs/development/tools/gops/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gops";
+  version = "0.3.15";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "gops";
+    rev = "v${version}";
+    sha256 = "091idnsgbwabmm5s9zhm474fbxvjvpkvwg68snbypfll7wdr3phy";
+  };
+
+  vendorSha256 = null;
+
+  preCheck = "export HOME=$(mktemp -d)";
+
+  meta = with lib; {
+    description = "A tool to list and diagnose Go processes currently running on your system";
+    homepage = "https://github.com/google/gops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pborzenkov ];
+  };
+}
diff --git a/pkgs/development/tools/gotestsum/default.nix b/pkgs/development/tools/gotestsum/default.nix
index 435edd61623..d75dae12bcb 100644
--- a/pkgs/development/tools/gotestsum/default.nix
+++ b/pkgs/development/tools/gotestsum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "sha256-eJxrdR3JYqF+GexcwnyHV4xO75stEDNFzxDtky7PVc8=";
+    sha256 = "sha256-/DpsB3MS0iPYFSug3RTWOprB8tclVP6v3dbS3mC3S+g=";
   };
 
-  vendorSha256 = "sha256-VQ3/VkxoYtY71xJQj6/XAoIEH4jr4Rq4hFqFnwxzkSU=";
+  vendorSha256 = "sha256-AOdWv0PkDi8o5V71DVzAd/sRibbMf3CkqmJGmuxHtuc=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/jq/default.nix b/pkgs/development/tools/jq/default.nix
index e8fe27aae09..ad4304fc6e1 100644
--- a/pkgs/development/tools/jq/default.nix
+++ b/pkgs/development/tools/jq/default.nix
@@ -28,10 +28,9 @@ stdenv.mkDerivation rec {
 
   postInstallCheck = ''
     $bin/bin/jq --help >/dev/null
+    $bin/bin/jq -r '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null
   '';
 
-  passthru.tests = { inherit (nixosTests) jq; };
-
   meta = with lib; {
     description = "A lightweight and flexible command-line JSON processor";
     license = licenses.mit;
diff --git a/pkgs/development/tools/kubectx/default.nix b/pkgs/development/tools/kubectx/default.nix
index 46955855332..fbb08ee2269 100644
--- a/pkgs/development/tools/kubectx/default.nix
+++ b/pkgs/development/tools/kubectx/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubectx";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
+    sha256 = "sha256-a2w4SXF6oOo4ZLYwF8I3mkqW9ktSbHiV/tym8b8Ng4U=";
   };
 
-  vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
+  vendorSha256 = "sha256-4sQaqC0BOsDfWH3cHy2EMQNMq6qiAcbV+RwxCdcSxsg=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index a2707eb72e9..10e701d1e93 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.24.2";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0hy13l1v2kcsn99dswlq1hl0ly18cal387zhnzjfqv51qng2q5kq";
+    sha256 = "sha256-A4Nim1jnyMHd5hxyLu8oZkQ9nDWxTmaX/25WX714ry4=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 729ab88c680..100190b0894 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.9.10";
+  version = "0.10.0";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "1i91jq1p27kkzxk57mm438sablnrx8j5pfyl0yg64wzrashba1xa";
+    outputHash     = "1v9br6nad6yhq9y1z4b9z6xdsjrgqh7wlxww7vp7ws28cg85mqyg";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/ccls/default.nix b/pkgs/development/tools/misc/ccls/default.nix
index 40b53ca6934..218a396490f 100644
--- a/pkgs/development/tools/misc/ccls/default.nix
+++ b/pkgs/development/tools/misc/ccls/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ccls";
-  version = "0.20201025";
+  version = "0.20201219";
 
   src = fetchFromGitHub {
     owner = "MaskRay";
     repo = "ccls";
     rev = version;
-    sha256 = "13v00q1bz8g0ckw1sv0zyicbc44irc00vhwxdv3vvwlvylm7s21p";
+    sha256 = "sha256-qCZYSzUh5WBQxMX6LtWRBz0VWnZVNR4v06aH9bJIb1o=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 2ce779be568..6f923778975 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -82,7 +82,8 @@ stdenv.mkDerivation rec {
     "--with-mpfr=${mpfr.dev}"
     "--with-expat" "--with-libexpat-prefix=${expat.dev}"
     "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}"
-  ] ++ lib.optional (!pythonSupport) "--without-python";
+  ] ++ lib.optional (!pythonSupport) "--without-python"
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-nls";
 
   postInstall =
     '' # Remove Info files already provided by Binutils and other packages.
diff --git a/pkgs/development/tools/misc/gpuvis/default.nix b/pkgs/development/tools/misc/gpuvis/default.nix
new file mode 100644
index 00000000000..5e0f54b2fee
--- /dev/null
+++ b/pkgs/development/tools/misc/gpuvis/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub
+, freetype
+, gtk3
+, lib
+, meson
+, ninja
+, pkg-config
+, SDL2
+, stdenv
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gpuvis";
+  version = "20210220";
+
+  src = fetchFromGitHub {
+    owner = "mikesart";
+    repo = pname;
+    rev = "216f7d810e182a89fd96ab9fad2a5c2b1e425ea9";
+    sha256 = "15pj7gy0irlp849a85z68n184jksjri0xhihgh56rs15kq333mwz";
+  };
+
+  # patch dlopen path for gtk3
+  # python2 is wrongly added in the meson file, upstream PR: https://github.com/mikesart/gpuvis/pull/62
+  postPatch = ''
+    substituteInPlace src/hook_gtk3.h \
+      --replace "libgtk-3.so" "${lib.getLib gtk3}/lib/libgtk-3.so"
+  '';
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+
+  buildInputs = [ SDL2 gtk3 freetype ];
+
+  meta = with lib; {
+    description = "GPU Trace Visualizer";
+    homepage = "https://github.com/mikesart/gpuvis";
+    license = licenses.mit;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/k2tf/default.nix b/pkgs/development/tools/misc/k2tf/default.nix
new file mode 100644
index 00000000000..904256ee66a
--- /dev/null
+++ b/pkgs/development/tools/misc/k2tf/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "k2tf";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "sl1pm4t";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0i1bhn0sccvnqbd4kv2xgng5r68adhcc61im2mn8hxmds5nf6in2";
+  };
+
+  vendorSha256 = "1c2mwhrj0xapc661z1nb6am4qq3rd1pvbvjaxikjyx95n0gs8gjk";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=v${version}" ];
+
+  meta = with lib; {
+    description = "Kubernetes YAML to Terraform HCL converter";
+    homepage = "https://github.com/sl1pm4t/k2tf";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.flokli ];
+  };
+}
diff --git a/pkgs/development/tools/misc/msitools/default.nix b/pkgs/development/tools/misc/msitools/default.nix
index f444f86dbfb..2db336a4991 100644
--- a/pkgs/development/tools/misc/msitools/default.nix
+++ b/pkgs/development/tools/misc/msitools/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, intltool, glib, pkg-config, libgsf, libuuid, gcab, bzip2, gnome3 }:
+{ lib, stdenv, fetchurl, bison, intltool, glib, pkg-config, libgsf, libuuid, gcab, bzip2, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "msitools";
-  version = "0.98";
+  version = "0.99";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac";
+    sha256 = "sha256-1HWTml4zayBesxN7rHM96Ambx0gpBA4GWwGxX2yLNjU=";
   };
 
-  nativeBuildInputs = [ intltool pkg-config ];
+  nativeBuildInputs = [ bison intltool pkg-config ];
   buildInputs = [ glib libgsf libuuid gcab bzip2 ];
 
   passthru = {
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     description = "Set of programs to inspect and build Windows Installer (.MSI) files";
     homepage = "https://wiki.gnome.org/msitools";
     license = [ licenses.gpl2 licenses.lgpl21 ];
+    maintainers = with maintainers; [ PlushBeaver ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/scc/default.nix b/pkgs/development/tools/misc/scc/default.nix
index 8a5cbbcfdfa..9dfa5955f5c 100644
--- a/pkgs/development/tools/misc/scc/default.nix
+++ b/pkgs/development/tools/misc/scc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scc";
-  version = "2.13.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
+    sha256 = "sha256-G5LYOtAUnu82cgDdtYzcfVx/WFg9/HvFQAlQtd6GaDE=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 9695c75a3c1..eb823904eed 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.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0WbUJYNRBKixRFl+YM1uSEltQneB6FYPFHNVVhmdseA=";
+    sha256 = "sha256-p9q+cSnMN6Na+XZoYSHfE4SCNYOEavXE+eWIaxcD73k=";
   };
-  vendorSha256 = "sha256-WYTn2QoI1Z3L4Wxjrq0YT++X9vMA1Wm3zgl08CYiU1Y=";
+  vendorSha256 = "sha256-XOIs5Ng0FYz7OfwbrNiVN3GTIABqxlO8ITKGfnC+kWo=";
 
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
diff --git a/pkgs/development/tools/misc/terraformer/default.nix b/pkgs/development/tools/misc/terraformer/default.nix
index 47c9c15a0cc..60124ef44c9 100644
--- a/pkgs/development/tools/misc/terraformer/default.nix
+++ b/pkgs/development/tools/misc/terraformer/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraformer";
-  version = "0.8.10";
+  version = "0.8.11";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = pname;
     rev = version;
-    sha256 = "005i66d2gkyixqh9sk452la7z86d5x9q3njngjf4z9slcbpgk7bl";
+    sha256 = "sha256-y6cgBYiqy+M8dfcNS6iDohqyip6xAs222MJHJFhloiI=";
   };
 
-  vendorSha256 = "02i1q11nivdlkhf9chpi03p8jpa0fx9wbf79j834qv4fqy7jqf6l";
+  vendorSha256 = "sha256-PQj3+qcmN/raDrAbufAcVT+vSumGuOY47i7ZYfvx3yk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/ocaml/crunch/default.nix b/pkgs/development/tools/ocaml/crunch/default.nix
index e48707dcb9a..07082b7f5d2 100644
--- a/pkgs/development/tools/ocaml/crunch/default.nix
+++ b/pkgs/development/tools/ocaml/crunch/default.nix
@@ -1,10 +1,12 @@
-{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, opaline, ptime }:
+{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, ptime }:
 
 buildDunePackage rec {
 
   pname = "crunch";
   version = "3.1.0";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-crunch/releases/download/v${version}/crunch-v${version}.tbz";
     sha256 = "0d26715a4h9r1wibnc12xy690m1kan7hrcgbb5qk8x78zsr67lnf";
@@ -15,7 +17,7 @@ buildDunePackage rec {
   outputs = [ "lib" "bin" "out" ];
 
   installPhase = ''
-    ${opaline}/bin/opaline -prefix $bin -libdir $lib/lib/ocaml/${ocaml.version}/site-lib/
+    dune install --prefix=$bin --libdir=$lib/lib/ocaml/${ocaml.version}/site-lib/
   '';
 
   meta = {
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index c03dbf75623..c14cd7ddc04 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2.1";
+  version = "1.2.2";
 
   useDune2 = true;
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
-    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
+    sha256 = "0k4i0aabyn750f4wqbnk0yv10kdjd6nhjw2pbmpc4cz639qcsm40";
   };
 
   buildInputs = [ cppo cmdliner re ];
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ocp-indent ];
 
   meta = {
-    homepage = "http://typerex.ocamlpro.com/ocp-index.html";
+    homepage = "https://www.typerex.org/ocp-index.html";
     description = "A simple and light-weight documentation extractor for OCaml";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index b12aa2e6d6d..c3da3bc2327 100644
--- a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation rec
 {
   pname = "ocsigen-i18n";
-  version = "3.5.0";
+  version = "3.7.0";
 
   buildInputs = with ocamlPackages; [ ocaml findlib ppx_tools ];
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec
 
   src = fetchzip {
     url = "https://github.com/besport/${pname}/archive/${version}.tar.gz";
-    sha256 = "1qsgwfl64b53w235wm7nnchqinzgsvd2gb52xm0kra2wlwp69rfq";
+    sha256 = "sha256-PmdDyn+MUcNFrZpP/KLGQzdXUFRr+dYRAZjTZxHSeaw=";
   };
 
   meta = {
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index e3c16b09ef3..8638bb5844b 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.18.1";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-qoN9pTpmXfwaJ37MqAggiPsH4cPr+nsT6NhAUOVclSw=";
+    sha256 = "sha256-+CqWPgdPuTE9TRwQJYibRCtdyAr25sJ2sXCUEoI0VtM=";
   };
 
-  cargoSha256 = "sha256-mmd9Ds37ST+OuCt506/YbdpOOJBp7WIVZBq+bQ2SR3U=";
+  cargoSha256 = "sha256-cBuAVU/fS2HQohjDyzrhDEsgWD5CxTrTCsQeZll90IQ=";
 
   nativeBuildInputs = [ perl pkg-config ];
 
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index 4d6603d31d9..addcab582f6 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -2,10 +2,10 @@
 
 {
   rust-analyzer-unwrapped = callPackage ./generic.nix rec {
-    rev = "2021-02-15";
+    rev = "2021-02-22";
     version = "unstable-${rev}";
-    sha256 = "sha256-4Dgj2RQDe2FoOSXjL7oaHg8WlYX1vnc66LzzbXvTmjM=";
-    cargoSha256 = "sha256-c6kr2PWSG3Sns6/O1zOVUFdkLWHAXcQ8LMeensCEuSk=";
+    sha256 = "sha256-QiVSwpTTOqR2WEm0nXyLLavlF2DnY9GY93HtpgHt2uI=";
+    cargoSha256 = "sha256-934ApOv/PJzkLc/LChckb/ZXKrh4kU556Bo/Zck+q8g=";
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/pkgs/development/tools/rust/rust-analyzer/generic.nix b/pkgs/development/tools/rust/rust-analyzer/generic.nix
index 10f0c6b26ad..0ce33f0f233 100644
--- a/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -41,6 +41,8 @@ rustPlatform.buildRustPackage {
     runHook postInstallCheck
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "An experimental modular compiler frontend for the Rust language";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
diff --git a/pkgs/development/tools/sd-local/default.nix b/pkgs/development/tools/sd-local/default.nix
index 0fbd3362b49..0f4f1740fac 100644
--- a/pkgs/development/tools/sd-local/default.nix
+++ b/pkgs/development/tools/sd-local/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sd-local";
-  version = "1.0.23";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     owner = "screwdriver-cd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oOLNLyQjuLhSfIaiIavuJ1qWWLI0RWp7L9c0m6m5owY=";
+    sha256 = "sha256-dqjZQyh7SWkD2dBcB32pR3PgWPMGQYPo7AkOQURt0hs=";
   };
 
   vendorSha256 = "sha256-3KNYG6RBnfFRgIoIyAe7QwAB56ZMF8bHdgt9Ghtod20=";
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 955bc35c5ab..b2d0581c054 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     rev = "v${version}";
     repo = "yq";
-    sha256 = "sha256-9D00I34pfoiI5cqXjsVLTT6XbFUYxgGit0ZuYeWSEyE=";
+    sha256 = "sha256-pP00y9auYeuz0NSA+QrnGybW5T7TfGFFw/FMPu/JXjM=";
   };
 
   vendorSha256 = "sha256-66ccHSKpl6yB/NVhZ1X0dv4wnGCJAMvZhpKu2vF+QT4=";
diff --git a/pkgs/development/web/cog/default.nix b/pkgs/development/web/cog/default.nix
index a3639e559f1..5344c1b833c 100644
--- a/pkgs/development/web/cog/default.nix
+++ b/pkgs/development/web/cog/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , lib
-, fetchpatch
 , fetchFromGitHub
 , cmake
 , pkg-config
@@ -8,7 +7,6 @@
 , wayland-protocols
 , libwpe
 , libwpe-fdo
-, glib
 , glib-networking
 , webkitgtk
 , makeWrapper
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index 495ac311b88..abb10aa4447 100644
--- a/pkgs/development/web/nodejs/v10.nix
+++ b/pkgs/development/web/nodejs/v10.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.23.3";
-    sha256 = "13za06bz17k71gcxyrx41l2j8al1kr3j627b8m7kqrf3l7rdfnsi";
+    version = "10.24.0";
+    sha256 = "1k1srdis23782hnd1ymgczs78x9gqhv77v0am7yb54gqcspp70hm";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 9c5975a6e49..08b8025f9bc 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.20.2";
-    sha256 = "0g3dxip7b5j7fzkw4b82ln93fphxn1zpdizbj1ikjv3hy00dc6ln";
+    version = "12.21.0";
+    sha256 = "17cp3sv6smpig5xq0z3xgnqdii6k8lm4n5d1nl9vasgmwsn3fbq5";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix
index ee8ea72c05e..9a40bf8654d 100644
--- a/pkgs/development/web/nodejs/v14.nix
+++ b/pkgs/development/web/nodejs/v14.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.15.5";
-    sha256 = "0nv576mlmnf8pfs6yn7vsvwyg0a0xvs7m9pm4k131zjqx501v6z1";
+    version = "14.16.0";
+    sha256 = "19nz2mhmn6ikahxqyna1dn25pb5v3z9vsz9zb2flb6zp2yk4hxjf";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v15.nix b/pkgs/development/web/nodejs/v15.nix
index 2c2634959bd..050e752ed00 100644
--- a/pkgs/development/web/nodejs/v15.nix
+++ b/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.8.0";
-    sha256 = "1a9h88zdzk98k618jascfrivq3v51viw60sfyxn0ci0l33vf4fp2";
+    version = "15.10.0";
+    sha256 = "1i7fdlkkyh5ssncbvxmiz894a12mww4cmj7y4qzm9ddbbvqxhj3p";
   }
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index 3e65915ec1d..62db756a483 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   # Of all the files in the source and data archives, there doesn't seem to be
   # a decent icon :-)
   iconsrc = fetchurl {
-    url = "http://wiki.flightgear.org/images/6/62/FlightGear_logo.png";
+    url = "https://wiki.flightgear.org/w/images/6/62/FlightGear_logo.png";
     sha256 = "1ikz413jia55vfnmx8iwrlxvx8p16ggm81mbrj66wam3q7s2dm5p";
   };
 
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 6f3cdab9ab4..df645171a7f 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -29,20 +29,20 @@ let
   # Note: when raising the version, ensure that all SNAPSHOT versions in
   # build.gradle are replaced by a fixed version
   # (the current one at the time of release) (see postPatch).
-  version = "124.1";
+  version = "125.1";
   buildVersion = makeBuildVersion version;
 
   Mindustry = fetchFromGitHub {
     owner = "Anuken";
     repo = "Mindustry";
     rev = "v${version}";
-    sha256 = "1k4k559y8l6wmj9m4980f7xmaaxzx84x86rqc77j4nd3y3x53546";
+    sha256 = "0p05ndxhl3zgwm4k9cbqclp995kvcjxxhmbkmpjvv7cphiw82hvw";
   };
   Arc = fetchFromGitHub {
     owner = "Anuken";
     repo = "Arc";
     rev = "v${version}";
-    sha256 = "08v929sgxy1pclzc00p7l7fak2h9l306447w5k5db3719kacj059";
+    sha256 = "1injdyxwgc9dn49zvr4qggsfrsslkvh5d53z3yv28ayx48qpsgxk";
   };
   soloud = fetchFromGitHub {
     owner = "Anuken";
@@ -114,7 +114,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "18yfchv55f0fza6gdxd3f6gm0m4wy2a9jkw5wgl84id518jal6la";
+    outputHash = "0dk4w8h0kg0mgbn0ifmk29rw8aj917k3nf27qdf1lyr6wl8k7f8k";
   };
 
 in
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 3d0b53035ed..c2b9718cd25 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -88,11 +88,11 @@ in
 stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.2.1441";
+  version = "2.2.1867";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "03q579hvxnsh7d00j6lmfh53rixdpf33xb5zlz7659pvb9j5w0cm";
+    sha256 = "1gpagrinam595153jbxwagcq20ij2dk8nn6zajy2iyqmj12y66ay";
   };
 
   icon = fetchurl {
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index e32ec946b2d..f5bf9573e6b 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, bash, jre }:
 let
   mcVersion = "1.16.5";
-  buildNum = "457";
+  buildNum = "488";
   jar = fetchurl {
-    url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-    sha256 = "1xkjaj5wgm9rmzk8mz20n9vd674fynvdgqsy96c9bfifa03lsnmc";
+     url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
+     sha256 = "07zgq6pfgwd9a9daqv1dab0q8cwgidsn6sszn7bpr37y457a4ka8";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 924714d802a..42faaf287d7 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -134,6 +134,20 @@ in buildFHSUserEnv rec {
     libuuid
     libbsd
     alsaLib
+
+    # needed by getcap for vr startup
+    libcap
+
+    # dependencies for mesa drivers, needed inside pressure-vessel
+    mesa.drivers
+    expat
+    wayland
+    xlibs.libxcb
+    xlibs.libXdamage
+    xlibs.libxshmfence
+    xlibs.libXxf86vm
+    llvm_11.lib
+    libelf
   ] ++ (if (!nativeOnly) then [
     (steamPackages.steam-runtime-wrapped.override {
       inherit runtimeOnly;
@@ -251,6 +265,8 @@ in buildFHSUserEnv rec {
     fi
 
     export STEAM_RUNTIME=${if nativeOnly then "0" else "/steamrt"}
+
+    export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/intel_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json:/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/nvidia_icd.json:/usr/share/vulkan/icd.d/nvidia_icd32.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json
   '' + extraProfile;
 
   runScript = writeScript "steam-wrapper.sh" ''
diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix
index 71c482fe766..ef9c7fbe4d6 100644
--- a/pkgs/games/stockfish/default.nix
+++ b/pkgs/games/stockfish/default.nix
@@ -10,6 +10,7 @@ let
     arch = if stdenv.isDarwin then archDarwin else
            if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
+           if stdenv.isAarch64 then "armv8" else
            "unknown";
     version = "12";
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation {
       much stronger than the best human chess grandmasters.
       '';
     maintainers = with maintainers; [ luispedro peti ];
-    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
+    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux"];
     license = licenses.gpl2;
   };
 
diff --git a/pkgs/misc/cups/drivers/cnijfilter2/default.nix b/pkgs/misc/cups/drivers/cnijfilter2/default.nix
index baf7e3c1506..c46bb564a1e 100644
--- a/pkgs/misc/cups/drivers/cnijfilter2/default.nix
+++ b/pkgs/misc/cups/drivers/cnijfilter2/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation {
   pname = "cnijfilter2";
 
-  version = "5.90";
+  version = "6.00";
 
   src = fetchzip {
-    url = "https://gdlp01.c-wss.com/gds/4/0100010484/01/cnijfilter2-source-5.90-1.tar.gz";
-    sha256 = "1bwyv9s6xv18xxp3m04a5fyh628nzcjdjvsgmgqndnk7832h5ani";
+    url = "https://gdlp01.c-wss.com/gds/9/0100010739/01/cnijfilter2-source-6.00-1.tar.gz";
+    sha256 = "1n4vq44zya0n4a7jvq3yyqy7dcvc2911cjvxmq48zqicb2xdgafr";
   };
 
   buildInputs = [
@@ -114,7 +114,18 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "Canon InkJet printer drivers for the MG7500, MG6700, MG6600, MG5600, MG2900, MB2000, MB2300, iB4000, MB5000, MB5300, iP110, E450, MX490, E480, MG7700, MG6900, MG6800, MG5700, MG3600, and G3000 series";
+    description = "Canon InkJet printer drivers for many Pixma series printers.";
+    longDescription = ''
+      Canon InjKet printer drivers for series E200, E300, E3100, E3300, E4200, E450, E470, E480,
+      G3000, G3010, G4000, G4010, G5000, G5080, G6000, G6050, G6080, G7000, G7050, G7080, GM2000,
+      GM2080, GM4000, GM4080, iB4000, iB4100, iP110, MB2000, MB2100, MB2300, MB2700, MB5000,
+      MB5100, MB5300, MB5400, MG2900, MG3000, MG3600, MG5600, MG5700, MG6600, MG6700, MG6800,
+      MG6900, MG7500, MG7700, MX490, TR4500, TR703, TR7500, TR7530, TR8500, TR8530, TR8580, TR9530,
+      TS200, TS300, TS3100, TS3300, TS5000, TS5100, TS5300, TS5380, TS6000, TS6100, TS6130, TS6180,
+      TS6200, TS6230, TS6280, TS6300, TS6330, TS6380, TS700, TS708, TS7330, TS8000, TS8100, TS8130,
+      TS8180, TS8200, TS8230, TS8280, TS8300, TS8330, TS8380, TS9000, TS9100, TS9180, TS9500,
+      TS9580, XK50, XK60, XK70, XK80.
+    '';
     homepage = "https://hk.canon/en/support/0101048401/1";
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/misc/emulators/libdsk/default.nix b/pkgs/misc/emulators/libdsk/default.nix
index c0e54e48db3..62820f2c96b 100644
--- a/pkgs/misc/emulators/libdsk/default.nix
+++ b/pkgs/misc/emulators/libdsk/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdsk";
-  version = "1.5.12";
+  version = "1.5.14";
 
   src = fetchurl {
     url = "https://www.seasip.info/Unix/LibDsk/${pname}-${version}.tar.gz";
-    sha256 = "0s2k9vkrf95pf4ydc6vazb29ysrnhdpcfjnf17lpk4nmlv1j3vyv";
+    sha256 = "sha256-fQc6QAj160OskhAo1zQsQKiLgDgZRInU/derP2pEw54=";
   };
 
   meta = with lib; {
diff --git a/pkgs/misc/emulators/yuzu/base.nix b/pkgs/misc/emulators/yuzu/base.nix
index 89c8f2cd947..a4bb3addf86 100644
--- a/pkgs/misc/emulators/yuzu/base.nix
+++ b/pkgs/misc/emulators/yuzu/base.nix
@@ -1,5 +1,5 @@
 { pname, version, src, branchName
-, stdenv, lib, fetchFromGitHub, wrapQtAppsHook
+, stdenv, lib, fetchFromGitHub, fetchpatch, wrapQtAppsHook
 , cmake, pkg-config
 , libpulseaudio, libjack2, alsaLib, sndio, ecasound
 , vulkan-loader, vulkan-headers
@@ -36,15 +36,31 @@ stdenv.mkDerivation rec {
     ffmpeg
   ];
 
+  patches = [
+    (fetchpatch { # Without this, yuzu tries to read version info from .git which is not present.
+      url = "https://raw.githubusercontent.com/pineappleEA/Pineapple-Linux/28cbf656e3188b80eda0031d0b2713708ecd630f/inject-git-info.patch";
+      sha256 = "1zxh5fwdr7jl0aagb3yfwd0995vyyk54f0f748f7c4rqvg6867fd";
+    })
+  ];
+
   cmakeFlags = [
     "-DENABLE_QT_TRANSLATION=ON"
     "-DYUZU_USE_QT_WEB_ENGINE=ON"
     "-DUSE_DISCORD_PRESENCE=ON"
+    # Shows errors about not being able to find .git at runtime if you do not set these
+    "-DGIT_BRANCH=\"\""
+    "-DGIT_DESC=\"\""
   ];
 
-  # Trick the configure system. This prevents a check for submodule directories.
   preConfigure = ''
+    # Trick the configure system. This prevents a check for submodule directories.
     rm -f .gitmodules
+
+    # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
+    cmakeFlagsArray+=(
+      "-DTITLE_BAR_FORMAT_IDLE=\"yuzu ${branchName} ${version}\""
+      "-DTITLE_BAR_FORMAT_RUNNING=\"yuzu ${branchName} ${version} \| \{3\}\""
+    )
   '';
 
   # Fix vulkan detection
diff --git a/pkgs/misc/emulators/yuzu/default.nix b/pkgs/misc/emulators/yuzu/default.nix
index 89a500bb313..cce501aa941 100644
--- a/pkgs/misc/emulators/yuzu/default.nix
+++ b/pkgs/misc/emulators/yuzu/default.nix
@@ -4,25 +4,25 @@ let
 in {
   mainline = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-mainline";
-    version = "517";
+    version = "546";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "0i73yl2ycs8p9cqn25rw35cll0l6l68605f1mc1qvf4zy82jggbb";
+      sha256 = "0d6cbhp877xyjac1flkyjf6g6igzmvjlk6gcph4m04i4zivb9kf2";
       fetchSubmodules = true;
     };
   };
   early-access = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-ea";
-    version = "1377";
+    version = "1480";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "pineappleEA";
       repo = "pineapple-src";
       rev = "EA-${version}";
-      sha256 = "0jjddmcqbkns5iqjwqh51hpjviw5j12n49jwfq7xwrsns6vbpqkf";
+      sha256 = "0flc5mckmnr9gj8f78nh9nys96inlkqk3rvpgbpl0mhcg6lmlb2g";
     };
   };
 }.${branch}
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 20d928d944d..f8f3df665d4 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -178,6 +178,27 @@ in {
     '';
   };
 
+  ubootNanoPCT4 = buildUBoot rec {
+    rkbin = fetchFromGitHub {
+      owner = "armbian";
+      repo = "rkbin";
+      rev = "3bd0321cae5ef881a6005fb470009ad5a5d1462d";
+      sha256 = "09r4dzxsbs3pff4sh70qnyp30s3rc7pkc46v1m3152s7jqjasp31";
+    };
+
+    defconfig = "nanopc-t4-rk3399_defconfig";
+
+    extraMeta = {
+      platforms = ["aarch64-linux"];
+      license = lib.licenses.unfreeRedistributableFirmware;
+    };
+    filesToInstall = ["u-boot.itb" "idbloader.img"];
+    postBuild = ''
+      ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img
+      cat ${rkbin}/rk33/rk3399_miniloader_v1.19.bin >> idbloader.img
+    '';
+  };
+
   ubootNovena = buildUBoot {
     defconfig = "novena_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
@@ -249,6 +270,12 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootOrangePiZero = buildUBoot {
+    defconfig = "orangepi_zero_defconfig";
+    extraMeta.platforms = ["armv7l-linux"];
+    filesToInstall = ["u-boot-sunxi-with-spl.bin"];
+  };
+
   ubootPcduino3Nano = buildUBoot {
     defconfig = "Linksprite_pcDuino3_Nano_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 12561880c64..1ca828fc37a 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-02-18";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "1ee7f6c97bb73bb6e12f00e527b664c5ea0df167";
-      sha256 = "1z05wvbrsjlqxaw1p4c3d16jj3g43ril56w51ld78wzkc9xh5hh9";
+      rev = "76965615558e9398ef4cc79991632a7b68a6c7bc";
+      sha256 = "06djm6di95sci45gwm1mrvd8hhiwxh59lix1p34ky0k7yjb6vygk";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -101,12 +101,12 @@ let
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2021-02-18";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "70c97fab3ba6be835aa502642bdd8621b8595713";
-      sha256 = "00kmjnr7sbkidcy66b60k409ggwn4rwnyx2lc4bp2cwg4d0f9rcb";
+      rev = "de933417e5d37b10d1834095fcd0a1c8c360d34a";
+      sha256 = "1fwjpkzkpwy808949iqbsgi6kxyglfyzr1d5hc1911vbayn8wyjy";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -233,12 +233,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2021-01-29";
+    version = "2021-02-21";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "8f437c8960abbd4b29c05a19eaad8c3e792ace05";
-      sha256 = "039xln6bwxa6mbwvzdfk32b3v8p4glghb3104nydscy9zbsmpick";
+      rev = "d41cf6a68af44dd74bd4a1af0b2c7f33f4475730";
+      sha256 = "1ibj1drcj56gjsqhkid3la58jj7y32ygiib3sjsw35091yamcqc2";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -389,12 +389,12 @@ let
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-02-18";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "0663608e29fda10526af83152840ca549c80e053";
-      sha256 = "1h1ghwmqyss2bvz99c6cyjzi7xf8lhqlqnwxdd84d74zj2d446gv";
+      rev = "30b987585d83389e05fde6443160f570aa39e1e7";
+      sha256 = "1snz1wskla014cxk3dw290bpd0krznhwpm341a9v5vcidhciaprx";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -425,12 +425,12 @@ let
 
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
-    version = "2021-02-13";
+    version = "2021-02-21";
     src = fetchFromGitHub {
       owner = "chuling";
       repo = "ci_dark";
-      rev = "a98f31d7ab86d4886d72f50064fb85d86c6843eb";
-      sha256 = "0s2mgxyzhaj9hvdinkal608yrxyigm7al22cwif6f9ls7aik20zs";
+      rev = "29eee5e5c23b3fde59192df92baf7ba775867092";
+      sha256 = "0plq37r00d5sn6hci7wn8df09dca3cigvd80pq08pcngbm4h19wl";
     };
     meta.homepage = "https://github.com/chuling/ci_dark/";
   };
@@ -485,36 +485,36 @@ let
 
   coc-explorer = buildVimPluginFrom2Nix {
     pname = "coc-explorer";
-    version = "2021-02-07";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "weirongxu";
       repo = "coc-explorer";
-      rev = "8c839426885e290ff5f63d87778f6325339ecf1f";
-      sha256 = "03ssv8b5pq44dnj9iplpc76js5mpwg0l77wg4zal5gx0ashgm39p";
+      rev = "e4409b415a7c299282556422c71a070ad33c8c71";
+      sha256 = "19j0p6ar0kr97xw5sxyywhy4r3wgyzplb482s23rglgxzcdfvp4c";
     };
     meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2021-02-15";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "633cf6e4564a31f970dc924338e393ca79149209";
-      sha256 = "10yvw128zibyp9z49p1mpf3sbj9qgzw3831hh254f6sr9ri69vz1";
+      rev = "087ab5582607fca8e35e8afd5121b3b39b7cdb32";
+      sha256 = "0vpzhhnyybyq90c525263dan2mha64hwrmbc22kw6rwm1n9smxx8";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2021-02-09";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "9fd7f97b9696e53066a8e62f528f26b6bc1858b0";
-      sha256 = "0lnkz1janblic4a15lr9fm6r62691wpgggdq8hyc5dz0m32jr0hn";
+      rev = "228e27dd3118703b4d169b134b458635a3043918";
+      sha256 = "1wxz1bljg7p1gyasf71gm3953pkrmaafw84bmwghfgrp8l3914h2";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -545,12 +545,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2021-01-28";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "a336a8bc251702d9526a6818ae56e86d92fafc0c";
-      sha256 = "0jh5ik1w6qyp9scr9qxi47n7b8xgznknhsriwcpw2axs9ff00zz8";
+      rev = "2bec473a4d8eab4b6a933fc4d2c564a323fb34f8";
+      sha256 = "1a6i7mlylpbvj7dbqpd6mcfw8r7cjdjb1mdvk7snaizh7ahl2cc9";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -616,14 +616,26 @@ let
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
+  compe-conjure = buildVimPluginFrom2Nix {
+    pname = "compe-conjure";
+    version = "2021-02-23";
+    src = fetchFromGitHub {
+      owner = "tami5";
+      repo = "compe-conjure";
+      rev = "809853ff8098dffcf8ba5ac89bcf07806eb8f981";
+      sha256 = "0p7p4bgkh05zy0gzmq0g9nn9npykh1l17cvfzjyhcb3n1sczpjzf";
+    };
+    meta.homepage = "https://github.com/tami5/compe-conjure";
+  };
+
   compe-tabnine = buildVimPluginFrom2Nix {
     pname = "compe-tabnine";
-    version = "2021-02-17";
+    version = "2021-02-21";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "compe-tabnine";
-      rev = "481cfc3bb7fa66a8fdcf4a8a2e8e226634b5f2dc";
-      sha256 = "152z0ixvz89n7wfhr41fipx7mmhjkwx8r50r1mf6ik36gicw0szf";
+      rev = "d717a953dbb745289ea794e86e32deb3750a3a18";
+      sha256 = "1d8nqcfarcwxyz7cwn200g118v0gky0snvzhc22xl766pacgvslk";
     };
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
@@ -844,6 +856,18 @@ let
     meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
 
+  dashboard-nvim = buildVimPluginFrom2Nix {
+    pname = "dashboard-nvim";
+    version = "2021-02-23";
+    src = fetchFromGitHub {
+      owner = "glepnir";
+      repo = "dashboard-nvim";
+      rev = "7cdd2288d5aaf986f6f23c58fa27c50311636142";
+      sha256 = "1rg63sl4q4qlxdllmrmi3x54zz2xqgf6l56zi3wv83x3zd5lj2c9";
+    };
+    meta.homepage = "https://github.com/glepnir/dashboard-nvim";
+  };
+
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
     version = "2021-01-01";
@@ -918,24 +942,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2021-02-17";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "972ba554fea50378b34a6711f6d0a0e2904c6a0b";
-      sha256 = "0rmknirs5a0rkcpprd7wrf5fq85590aj5wdnrmr5vp59wg8677gm";
+      rev = "2b5360f3f2965ee5a6f82e09648d0c18e78142f3";
+      sha256 = "09bya9rqzk809s5i1xda94f64jnzm3vkh8kiziclgyg42sv6in9b";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2021-02-09";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "907cf91cc491348bf383f3eb447c1be2a9330cb4";
-      sha256 = "1xsri4chlzfr0zc93wl96fpy381maygc3dlvy58nz2yswdr0g103";
+      rev = "d66c706c9788aa47399485a3ec29a2a76711a188";
+      sha256 = "09bj5442xln6a98ncnq1lxkyrl8c973p9sfd02zl1a3f16sms415";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1136,12 +1160,12 @@ let
 
   deoplete-vim-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-vim-lsp";
-    version = "2021-02-06";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "lighttiger2505";
       repo = "deoplete-vim-lsp";
-      rev = "fd80985bfd9f140c8e38b303ab325ec86c05b976";
-      sha256 = "1h9xprfqrfnfs50hgiah0c2y9lafhc2lldvmc7cl8xa5p9bslxj3";
+      rev = "af5432f1e063fd4c3a5879aa8c2afe82c17dc1c9";
+      sha256 = "1s6fw6vkpl0yiya22g13v4i14w3n1ds2zr8zdlwpkk44bf0225px";
     };
     meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/";
   };
@@ -1342,12 +1366,12 @@ let
 
   far-vim = buildVimPluginFrom2Nix {
     pname = "far-vim";
-    version = "2021-01-21";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "brooth";
       repo = "far.vim";
-      rev = "b3e7b62ef6820ccdcbdc6070f3573b658aafba43";
-      sha256 = "0lf2vlsyk4ymhyscnpla417hvh6qdi8cablammnc5vsk1hmqvc3i";
+      rev = "e67b1dbe5842b709687c214fea38ca00f0ffe6c6";
+      sha256 = "1ljvl7p2k3bgl54srf6kvshqq16qwfa34ppj982fp2bzzal819l1";
     };
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
@@ -1511,12 +1535,12 @@ let
 
   galaxyline-nvim = buildVimPluginFrom2Nix {
     pname = "galaxyline-nvim";
-    version = "2021-02-17";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "galaxyline.nvim";
-      rev = "daf37458d9bf02783f0a0246a7d76247d60e9aac";
-      sha256 = "1d53274h7465w4dxjgqmdj9c60m5yzvf92gw7h9w6hnfchin2bd4";
+      rev = "916c00d6a53ab492a46b1f8aa3e052136e804483";
+      sha256 = "18yvbxa5rc2s1qyv94d7y6jd2b10ivcv01i42w80gp2kbipp9nay";
     };
     meta.homepage = "https://github.com/glepnir/galaxyline.nvim/";
   };
@@ -1571,12 +1595,12 @@ let
 
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2021-02-16";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "aae5f492786aba161138fa1bce9ba42964363ad9";
-      sha256 = "063j3h6jy5hi1mj9bjkg627gmk1f6x2axbj07gjg3kal2d1iy90s";
+      rev = "bac4f07c9c70aeed25d2a3f5173b782f4efe7c17";
+      sha256 = "00m9j6lvg96xaxnzg0vwridhk1m9zaxna2qcki4y2cr083bsc0vd";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
@@ -1691,12 +1715,12 @@ let
 
   gundo-vim = buildVimPluginFrom2Nix {
     pname = "gundo-vim";
-    version = "2020-01-15";
+    version = "2021-02-21";
     src = fetchFromGitHub {
       owner = "sjl";
       repo = "gundo.vim";
-      rev = "99e6240340d9ba07b66c544daf44fa7caffbf7e7";
-      sha256 = "0py35mmwnfl581isnbh33j3bjgghq17jnamdi1bg3akwyn1jyhqb";
+      rev = "c5efef192b975b8e7d5fa3c6db932648d3b76323";
+      sha256 = "1smavxh0nmx4la75b1fjh8cs2x8p8ahxls034254vnm05wiwvghh";
     };
     meta.homepage = "https://github.com/sjl/gundo.vim/";
   };
@@ -1761,6 +1785,18 @@ let
     meta.homepage = "https://github.com/urbit/hoon.vim/";
   };
 
+  hop-nvim = buildVimPluginFrom2Nix {
+    pname = "hop-nvim";
+    version = "2021-02-23";
+    src = fetchFromGitHub {
+      owner = "phaazon";
+      repo = "hop.nvim";
+      rev = "be919d61d4136d2092f42c922f545bb8c8723fb8";
+      sha256 = "0swslw4g7i8xzzcnz5rxdr0a2g3wm471vg35drynr2r18q2hqqd1";
+    };
+    meta.homepage = "https://github.com/phaazon/hop.nvim";
+  };
+
   i3config-vim = buildVimPluginFrom2Nix {
     pname = "i3config-vim";
     version = "2020-03-28";
@@ -2004,12 +2040,12 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-02-03";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "e16cb07240903999e8c62e6d27b4aee8146d29fc";
-      sha256 = "10ms35xl218kr5n02y353kg535icj0zzyrsxzzlmn99w90hbnkl7";
+      rev = "b2bda998c0e141ee9215ccc123fb7d8ddc8c9d16";
+      sha256 = "1lrhydjjriczcf05sj1gzs8yasnixar40mlbzph5fnx4d044jsk4";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -2220,12 +2256,12 @@ let
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs-nvim";
-    version = "2021-01-27";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "0c45512ffabc6997f74c26b9c87d4b3cb021ab19";
-      sha256 = "0m4iscxwdglvlkxhzs9gzx1iqvnvgknqxgss5k00wr0nrax8q3pl";
+      rev = "2410236d448aa8f407f6a203d90282c34d48b52a";
+      sha256 = "0kkg7nbnqj1v46bqq73l58m743p0p7jcbgpscjb16n9ab0n8jqns";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
@@ -2268,24 +2304,24 @@ let
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga-nvim";
-    version = "2021-02-18";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "lspsaga.nvim";
-      rev = "ef1997dea263b7043d424034e9c4f5150105b911";
-      sha256 = "113y7mbvcqc13ffxcaj468ldfrxq6p3jifv5cjgf33wkjjd1hclf";
+      rev = "1fb30cb0334a0b12aa1dbf40a00e7a06c9539f44";
+      sha256 = "0kvfbcck0f3nj5fb08yr2yfpp0cszxxp556jix59g3y6drah6bnn";
     };
     meta.homepage = "https://github.com/glepnir/lspsaga.nvim/";
   };
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine-nvim";
-    version = "2021-02-17";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "hoob3rt";
       repo = "lualine.nvim";
-      rev = "0dd0a23cac1adeaa4dbfc15b4a5cabe44ed59401";
-      sha256 = "11bl6gs63wkvb0pjxpx03ls8s27z1rn9llbrrcaf3fbkff2qbrsy";
+      rev = "e59ac51ca90fe1b914e94be2f38292c81388912c";
+      sha256 = "0v1ijxmqyjk05xzcx2nycrpqbyahai8y380qd9xyl4gmgyfmhvs9";
     };
     meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
   };
@@ -2352,12 +2388,12 @@ let
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap-vim";
-    version = "2021-02-11";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "05a9ef7981ff6438e3de5e30323474092badccb8";
-      sha256 = "1nr40222fcf1zfacwn2qdzzr074kvcp0p50ii8s6na99qp00nq78";
+      rev = "fcf8aa05f3a3c128011236147b4cd1ced718b671";
+      sha256 = "1ya5scd3rwiypiwj3xgwr153n3a1d4mg9r5m1wbj3cb7x0s6ddjk";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -2580,12 +2616,12 @@ let
 
   neco-ghc = buildVimPluginFrom2Nix {
     pname = "neco-ghc";
-    version = "2020-12-19";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "eagletmt";
       repo = "neco-ghc";
-      rev = "ba23875fadc5e9022acb9d746b99f6fe5155d586";
-      sha256 = "08q3wlaq6a8acfcbhh3gdhzwn5rr7w18aqqww0z76hgblav11a4k";
+      rev = "699897c2f4ba82c4fd2be6b93c9a2e8e548efe4e";
+      sha256 = "03g2mky83a5zd54wzjhc1cv4pwkzcadskjm1c7b36k85yw35v88a";
     };
     meta.homepage = "https://github.com/eagletmt/neco-ghc/";
   };
@@ -2916,12 +2952,12 @@ let
 
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
-    version = "2021-02-15";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-compe";
-      rev = "3ce7f98158e604d4578f44ed4181b6f9a4d37900";
-      sha256 = "0plkpb1rk82q5plsjnqkwwpdp4knbn93ai6b2c83kwbfiqrka31i";
+      rev = "c1764beef2ceba2adb62de5ed89475c71f183a57";
+      sha256 = "0h8b2hnqn21lyzla8w79sl8r702702dyi0q8jr1kpqny0s57s0jg";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
   };
@@ -2964,12 +3000,12 @@ let
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2021-02-15";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "53fc0cee121ef05e719b1df1beacfe0dc07c4520";
-      sha256 = "0ldyr1s5zr67viywkwzmjvrb8fi4il00w6ps4kddw2g4fp8ilk8n";
+      rev = "b70aa802940db871b6a6b1e9668c5a3052327134";
+      sha256 = "0ihij29p38669bdkc5mpbrdszs6iijsbm835n5qp6gj16768jasw";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
@@ -3036,12 +3072,12 @@ let
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-02-17";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "443d7552aca03c03a59e2c084c2e851c281e51de";
-      sha256 = "0rh3c52wpgqsvhnsfmp8764d92lckz2c9bzi7kgpjmya4ynr5gzj";
+      rev = "a21a509417aa530fb7b54020f590fa5ccc67de77";
+      sha256 = "1xlksbcv6va3ih9zg6yw5x6q2d76pr5cs942lh5gcypkx9m2f6r5";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -3060,24 +3096,24 @@ let
 
   nvim-peekup = buildVimPluginFrom2Nix {
     pname = "nvim-peekup";
-    version = "2021-02-17";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "gennaro-tedesco";
       repo = "nvim-peekup";
-      rev = "a89aed9833e71d9065ba80c4237a8e4dec2034b1";
-      sha256 = "1jsphd9ghwzfzl8plxjvra2b5q3zxlv1679r9mxsp9nz33h1jblr";
+      rev = "dde78e4adba0192c3986b20de28d26eca315dec6";
+      sha256 = "1hmdrw60glr0lgixwblns73xzc6l5i1yfl7g64lp9plm8gkzb48b";
     };
     meta.homepage = "https://github.com/gennaro-tedesco/nvim-peekup/";
   };
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-01-09";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "426fc6549aff1d5a1b84127dd80807a4f134d4ab";
-      sha256 = "0yadrawg9q49fiizn4k8ng9hsp9vi2l0bw73s6ib0szg641k1w42";
+      rev = "ae7b979a87ff284c2381e6b6d36ac35ac0bbfd84";
+      sha256 = "0dh2wspygagcxzscl2626nhb8pnwqyjzsgivy162xmmy3g0sbppw";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -3096,24 +3132,24 @@ let
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2021-02-16";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "58a5e4ab48f201a80d58af965cbaa8468ad64144";
-      sha256 = "12dz1x36dwr0wfilb5va42mmqvdar4ibgzanqf80myv0zjg1wc03";
+      rev = "905afba20900caea1e6f0f541c2ed7302de9f598";
+      sha256 = "1hcqplvlk2cymxv7lx0yv7m5gc8p4281q1s3rhizvf4jvv973g59";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-02-17";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "5757f8a50d5d26b8c184b3a51713db763cdd9702";
-      sha256 = "077h9j4rk4fckr3zw61hvyp0b22z0wlpdysjl8dc7f69cfxa42ix";
+      rev = "2d82a7fe07f3e4959219e231a58e0707d577262e";
+      sha256 = "0qzv0vr89mj58aas30bqh3w479njd84qw7c965f9489p5sg9wg8x";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -3288,12 +3324,12 @@ let
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer-nvim";
-    version = "2021-02-15";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "19d24934cf6f132e84a03e722eb20458c4061870";
-      sha256 = "0gq2xznchnb2wqqz79qdvv2cfn1adrgy8n8drq5p7cxs067nx4bl";
+      rev = "e6b4bacf355c9ef2daed4ff40887f949da9da019";
+      sha256 = "1x7m2pw2klk4m4hv0h5cjxzr46ljiyxrmwq4c38zbk2x5mncy5jr";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -3384,12 +3420,12 @@ let
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2021-02-12";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "877f7997c61bba8efa55950761dd23403ca3bc1e";
-      sha256 = "11z44n8f2jmzi6m88g6r9zvgszkbnjrm9y7a247imcfq40p7yyma";
+      rev = "116aedc7fb327eda6e7c05915f3d97088569c0e8";
+      sha256 = "1mnf12bzdcpy0sgwl45sjxvzzifyy9k8mx7ffr7q8ddxwvbmmakp";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3757,12 +3793,12 @@ let
 
   sideways-vim = buildVimPluginFrom2Nix {
     pname = "sideways-vim";
-    version = "2021-02-13";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "sideways.vim";
-      rev = "3cb3b47646c95316a739e660d1501d7a85d7f2e5";
-      sha256 = "0a9d4m2gjn9kajfl3dzdxxahly5lrfn46wj0nyfscx0ypz38fr7a";
+      rev = "1a7f12cb1f878063d675924ac97f242950805541";
+      sha256 = "1nmicnq2b6n8a9zmgqqkzd9y47x2d11n75ix114qv3xyin0vqnqc";
     };
     meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
   };
@@ -3815,6 +3851,18 @@ let
     meta.homepage = "https://github.com/gorkunov/smartpairs.vim/";
   };
 
+  snippets-nvim = buildVimPluginFrom2Nix {
+    pname = "snippets-nvim";
+    version = "2021-02-23";
+    src = fetchFromGitHub {
+      owner = "norcalli";
+      repo = "snippets.nvim";
+      rev = "7b5fd8071d4fb6fa981a899aae56b55897c079fd";
+      sha256 = "1fdsx7d5nyhhklwidgh387ijd485g2836rwd5i1r0di777mp7w80";
+    };
+    meta.homepage = "https://github.com/norcalli/snippets.nvim";
+  };
+
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
     version = "2021-02-14";
@@ -3913,12 +3961,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2021-02-13";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "966a3123a7d80333878443c0011e451c29f157cb";
-      sha256 = "19kjvx49vpnl5xs5bib7xqrl5vnqqzavndkwl3cg34mnhnjfzka3";
+      rev = "df823938421e66adbd6c570bacdc3ce85d6c776c";
+      sha256 = "02hcdsdvbdybcpamj304jld4sh3mxp3j78idzv7ybkizvp8wjlpd";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -3948,6 +3996,18 @@ let
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
 
+  stan-vim = buildVimPluginFrom2Nix {
+    pname = "stan-vim";
+    version = "2020-08-05";
+    src = fetchFromGitHub {
+      owner = "eigenfoo";
+      repo = "stan-vim";
+      rev = "9d3b6ec149f9559bd9bd021dfa827c29c5d1dc38";
+      sha256 = "0qv748m1vrp1qcl41y7fj2jm8cac9b01ljq6ydq3z4syxdf7yzcc";
+    };
+    meta.homepage = "https://github.com/eigenfoo/stan-vim/";
+  };
+
   starsearch-vim = buildVimPluginFrom2Nix {
     pname = "starsearch-vim";
     version = "2014-09-21";
@@ -4106,12 +4166,12 @@ let
 
   telescope-frecency-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-frecency-nvim";
-    version = "2021-02-10";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "ffa2027102f75e28dd8d8c2a97f3b9163dd80b56";
-      sha256 = "1ipxqkfaqc75qzpj7vg3gr44r8fcx979pyf84wibxic3kby9qp7y";
+      rev = "8b584bd88fbbeac0ce5c52af1ce7c1fecb7155b6";
+      sha256 = "0a6sz6gx1qnr0ka9510mchca3b94553liw8ng386h60kh6lbc1k5";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -4143,12 +4203,12 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2021-02-12";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "1c5e42a6a5a6d29be8fbf8dcefb0d8da535eac9a";
-      sha256 = "088scjf7iz4j3l0zl3sn4db6w6h456wrlz1g30fgz378cs022d35";
+      rev = "d7c02e3b52b5a13265e071d0de2d6a989110a515";
+      sha256 = "1xd080ysfi9mvxhv717cgsah7qk5z7ci0gxmq9sls6rsjrk8dykv";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -4924,12 +4984,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-02-16";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "3985754b78d05858ec24538a708a6fcaed0ea2ad";
-      sha256 = "1zsh1h6abrcry32hcrkxys182g098vrs4k74wisk5mcwd3wvgarx";
+      rev = "b6d82bc748a80577a31f2a40eb36947d70197a67";
+      sha256 = "0w7yhqzdiknqm2y2cyx04sqmyr0sixfk1lrxbmra01d4sv4p7lis";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -5200,12 +5260,12 @@ let
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2021-02-02";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "0329d89c5114dc285939050fd5777dbcc450ddd7";
-      sha256 = "0g8pipayg643xjs3dmpbwp91ycyg8b20qgr0mnmxzll0nan8zjny";
+      rev = "4d14cb82cf7381c2f8eca284d1a757faaa73b159";
+      sha256 = "1wwqchf50c19a5d5g037rjjpskn7dpsq9alhzim2x6bgffb5yamd";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -5428,12 +5488,12 @@ let
 
   vim-erlang-tags = buildVimPluginFrom2Nix {
     pname = "vim-erlang-tags";
-    version = "2021-02-03";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "vim-erlang";
       repo = "vim-erlang-tags";
-      rev = "125d494953da1746bc16cb716019a3d855fd3536";
-      sha256 = "1kaihn3bnw9pdr18vg09ya4ijjv0an6jzzva96v06lid2i66i9wi";
+      rev = "d7eaa8f6986de0f266dac48b7dcfbf41d67ce611";
+      sha256 = "03wxy29z0rjnf3hilap7c86di7dkjwb8sdlfh74ch8vhan8h6rv0";
     };
     meta.homepage = "https://github.com/vim-erlang/vim-erlang-tags/";
   };
@@ -5560,12 +5620,12 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-02-18";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "c831ca0d8918fc7dcee78c9d3cce60ed926b88e9";
-      sha256 = "0gd3qsfdmamvd7arlg8b364hzyhph8ci7n9vf3rl4g70lyk7zlm1";
+      rev = "c66412d238bd2e6c7b84c01a7e92b399bfbf1915";
+      sha256 = "0mlvm6x754251pcd9hdwwnjfbwnvkbpywfnyp090dkvhlx19rm0w";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -5608,12 +5668,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-02-16";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "c63bc47c44f4ad259300549fc02939ab2401ba79";
-      sha256 = "1kmxm6spwzgyskdk8s32k93v8k0njfka3gq28wxnbswydnzszgrz";
+      rev = "6c4c7c9aebc4c65c13f94597e4c9352dbba21fa5";
+      sha256 = "09q6ijr3f6aaki17cpidn02lxk00gficsclg1zcprxcq8fp8v8d1";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -5680,12 +5740,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2021-02-16";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "b90aad666aa7163b08d744d4585eefa4eaabb6ad";
-      sha256 = "1jz9rvkyd05jw6mwcp96j0wscxnkm95g55pvzkidfn2fcjnl9ab6";
+      rev = "1283ec1670d1f4fce37213c5d66924088b2e730c";
+      sha256 = "1h5jh38ihbyy95cm57ppb6m871010pk521ygss2drcriwnx4agd2";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -5728,12 +5788,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-02-14";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "08615366d82d0ceaee73a995e8dab75df63e2897";
-      sha256 = "0fn0hi0irmb4ri4skdandahzl6zn916fxi31f8mhcrws72izqxzj";
+      rev = "755b498c7604e7aee4d001d2a78c2d1e079eb8d5";
+      sha256 = "048xqia30alvcshvmbqlqvvslk19zvqmsdy50ww8rzz9yzhff5bw";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -6354,12 +6414,12 @@ let
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2020-06-30";
+    version = "2021-02-18";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "ac6444afb5fd11e3f7750f696a0c6b8b0b6ec116";
-      sha256 = "182fvmfnpcqda0cm878lk79iprxsd7nb9r97jmr7lx5agdcvzaqb";
+      rev = "0206f5f5a8721cc8c5c84ebb8ab2886e9afcd0ac";
+      sha256 = "1zin6pk581cnkivm2kgks0wrvpxjcl1y3x46wpkzdqg1hhif2129";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -6390,12 +6450,12 @@ let
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-02-12";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "6f8dfe19d59041a606f30b7764ccd51d4299d0e5";
-      sha256 = "0rqlzp5qbidd1f02yx1l1cf0a5bdl7ha4wsixakixdrsy4ws68fh";
+      rev = "a78536ad745852c73cdf2d0defffd6b81bc377f0";
+      sha256 = "06xpv6k80jyrd6psjhrwq84a4dm2kn7c1a89yhql7jqkrsx0iyy2";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -6475,12 +6535,12 @@ let
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-01-29";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "52b3ec1ee8d0f78c69bae6cc32f3c2d1a023a8c8";
-      sha256 = "1hn3w4hzx444cz5z7g2lkpzr90r9ngjpy5jirgs3c947njc24kr7";
+      rev = "b131a5b35707eb0bf0cf088d85a8f100b4609332";
+      sha256 = "0j8pryc4g0w329d27likagxg6ww9lll4fj653i3ka0cffb01jjri";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -6715,12 +6775,12 @@ let
 
   vim-ocaml = buildVimPluginFrom2Nix {
     pname = "vim-ocaml";
-    version = "2021-01-10";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "ocaml";
       repo = "vim-ocaml";
-      rev = "f51b69f46d5eb0ebbdfcd39b5aa36bfd9454eafd";
-      sha256 = "0fs5pn2hhi0mnjz0xpjl0sh4032s4n4afzjrnhygw9l9a5m51dm4";
+      rev = "ba6a32d0d079b3670cc3c02257dccea4808fdfa1";
+      sha256 = "0h4k9p5r7xwwwbi28p013dqhpl75k8458xiisl5ncswyw4wva75v";
     };
     meta.homepage = "https://github.com/ocaml/vim-ocaml/";
   };
@@ -7183,12 +7243,12 @@ let
 
   vim-ragtag = buildVimPluginFrom2Nix {
     pname = "vim-ragtag";
-    version = "2021-02-17";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-ragtag";
-      rev = "703965fde904fbf29defed3b230e51ef60e9dc90";
-      sha256 = "0vj2kqjr03hpgkmnkj1c2icsgli04993vjf56ncwhjg0p707v8v7";
+      rev = "b8966c4f6503a8baaec39e17bd0bf38b2aadc9b2";
+      sha256 = "0q4blsgnl4l2bkhgjry6xnszhsswdand52gc6gdjffwlzwa9jczy";
     };
     meta.homepage = "https://github.com/tpope/vim-ragtag/";
   };
@@ -7591,12 +7651,12 @@ let
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2021-01-11";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "37ab78eb837e3004e3cfb3a8e5ed8f8740f27f13";
-      sha256 = "0x3h47hdbg2gp0ahf0ixkj3nks7qbnm25bmd7hq9k3c7b6912b5a";
+      rev = "af70d17a863c9a33def9cafbb3911195a571c686";
+      sha256 = "078xq6bwkbwsjajyq3c9bn8b3r0da6j70vp1ba934a6jjdv6vrj4";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -7902,6 +7962,18 @@ let
     meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
+  vim-tpipeline = buildVimPluginFrom2Nix {
+    pname = "vim-tpipeline";
+    version = "2021-02-19";
+    src = fetchFromGitHub {
+      owner = "vimpostor";
+      repo = "vim-tpipeline";
+      rev = "753c64f356da0e1bed43ce0b9e8923b1e9fc0670";
+      sha256 = "06j03r6hqb72ahmdpwxxys9nw86b8c63zsxhrlngzqa5z02z6k9c";
+    };
+    meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
+  };
+
   vim-trailing-whitespace = buildVimPluginFrom2Nix {
     pname = "vim-trailing-whitespace";
     version = "2020-11-18";
@@ -8288,12 +8360,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-02-16";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "85ca867cc25ab5e9ef9353158e8b786806ba005b";
-      sha256 = "0zmy4dkc23i1lvdgjd4ras85q01pahfynajzf5v9lifn1dmyfrl3";
+      rev = "6fac220ee55af66c0c2ab3dae630086da5b0263f";
+      sha256 = "0q7zj8wmg88wzhjr4xz2rkcvw091jdi3mfyv8rn09plf2w4bkszy";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -8301,24 +8373,24 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-02-12";
+    version = "2021-02-22";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "4ff3e993ef17c7101d8db9de79674e320a20fcec";
-      sha256 = "1zx45jyddxx0gqwgwf426ybv1dgghjls685ngsq3j8yhzj3mldfr";
+      rev = "d99f8ff57a13323d5d2fe7f3163679848bca334e";
+      sha256 = "12h180awhpaj6x0aq8vfzdxp5w474lgncb1yl0ccj6kblkr1pp32";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
 
   vimux = buildVimPluginFrom2Nix {
     pname = "vimux";
-    version = "2021-02-18";
+    version = "2021-02-19";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "vimux";
-      rev = "9214bf95784d330fe7e076e26aee9e3048f99253";
-      sha256 = "1hl8zlqvlxjv671ih7q0gvxsa3r1yq4c3zaizja2lbf7l57as071";
+      rev = "3bfe0ea285031f40f1a1e8e00f57a933eb8a8325";
+      sha256 = "1jl9a1fms4vaq5fhi40dvk5nwfy7n0gzj75dmfyfyb41j0c2a5hl";
     };
     meta.homepage = "https://github.com/preservim/vimux/";
   };
@@ -8531,24 +8603,24 @@ let
 
   zephyr-nvim = buildVimPluginFrom2Nix {
     pname = "zephyr-nvim";
-    version = "2021-02-08";
+    version = "2021-02-20";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "zephyr-nvim";
-      rev = "e3646fc3124e33da4909e30caaad1167523e0c53";
-      sha256 = "0a200497js325343prx638rkzg6544lxrrr3ij5g0i6dvazzwg21";
+      rev = "79c05946ade40f211ca058e5c4678b438f6242e1";
+      sha256 = "0p41dmhasl1xlsi2wvng35nb3rdz4yw36gdn5n6m744dha0z9khm";
     };
     meta.homepage = "https://github.com/glepnir/zephyr-nvim/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2021-01-19";
+    version = "2021-02-23";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "17170fd1c31f00132a91fb1598d0f3df5927e28d";
-      sha256 = "0k8s5via1frpgdb94kgsk29g7h6fjq3cazyfa8zww7vra418acsh";
+      rev = "fcafb4b64ffe6d308f5e312ddd1672e69e09fb1c";
+      sha256 = "0bsz046sbf5g6lkgcjyllc8knbiqdcglpkf1wbzn7zi7whdhjxdx";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index c52fc140c97..bfe9006506b 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -101,6 +101,7 @@ easymotion/vim-easymotion
 editorconfig/editorconfig-vim
 edwinb/idris2-vim
 ehamberg/vim-cute-python
+eigenfoo/stan-vim
 eikenb/acp
 elixir-editors/vim-elixir
 elmcast/elm-vim
@@ -135,6 +136,7 @@ GEverding/vim-hocon
 gfanto/fzf-lsp.nvim@main
 gibiansky/vim-textobj-haskell
 gioele/vim-autoswap
+glepnir/dashboard-nvim
 glepnir/galaxyline.nvim@main
 glepnir/lspsaga.nvim@main
 glepnir/oceanic-material
@@ -409,6 +411,7 @@ nixprime/cpsm
 NLKNguyen/papercolor-theme
 noc7c9/vim-iced-coffee-script
 norcalli/nvim-terminal.lua
+norcalli/snippets.nvim
 npxbr/glow.nvim
 ntpeters/vim-better-whitespace
 numirias/semshi
@@ -448,6 +451,7 @@ pearofducks/ansible-vim
 peitalin/vim-jsx-typescript
 peterbjorgensen/sved
 peterhoeg/vim-qml
+phaazon/hop.nvim
 phanviet/vim-monokai-pro
 plasticboy/vim-markdown
 ponko2/deoplete-fish
@@ -553,6 +557,7 @@ svermeulen/vim-subversive
 t9md/vim-choosewin
 t9md/vim-smalls
 takac/vim-hardtime
+tami5/compe-conjure
 tami5/lispdocs.nvim
 tami5/sql.nvim
 tbodt/deoplete-tabnine
@@ -678,6 +683,7 @@ vim-utils/vim-husk
 Vimjas/vim-python-pep8-indent
 vimlab/split-term.vim
 vimoutliner/vimoutliner
+vimpostor/vim-tpipeline
 vimwiki/vimwiki
 vito-c/jq.vim
 vmchale/ats-vim
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 8c8e646964d..644309813ca 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -189,6 +189,22 @@ let
         };
       };
 
+      dracula-theme.theme-dracula = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "theme-dracula";
+          publisher = "dracula-theme";
+          version = "2.22.3";
+          sha256 = "0wni9sriin54ci8rly2s68lkfx8rj1cys6mgcizvps9sam6377w6";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/dracula-theme.theme-dracula/changelog";
+          description = "Dark theme for many editors, shells, and more";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula";
+          homepage = "https://draculatheme.com/";
+          license = licenses.mit;
+        };
+      };
+
       eamodio.gitlens = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "gitlens";
@@ -276,6 +292,18 @@ let
         };
       };
 
+      formulahendry.code-runner = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "code-runner";
+          publisher = "formulahendry";
+          version = "0.11.2";
+          sha256 = "0qwcxr6m1xwhqmdl4pccjgpikpq1hgi2hgrva5abn8ixa2510hcy";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       freebroccolo.reasonml = buildVscodeMarketplaceExtension {
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/freebroccolo.reasonml/changelog";
@@ -595,6 +623,18 @@ let
         };
       };
 
+      rubbersheep.gi = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gi";
+          publisher = "rubbersheep";
+          version = "0.2.11";
+          sha256 = "0j9k6wm959sziky7fh55awspzidxrrxsdbpz1d79s5lr5r19rs6j";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       ryu1kn.partial-diff = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "partial-diff";
@@ -715,6 +755,18 @@ let
         };
       };
 
+      usernamehw.errorlens = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "errorlens";
+          publisher = "usernamehw";
+          version = "3.2.4";
+          sha256 = "0caxmf6v0s5kgp6cp3j1kk7slhspjv5kzhn4sq3miyl5jkrn95kx";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       vadimcn.vscode-lldb = callPackage ./vscode-lldb { };
 
       vincaslt.highlight-matching-tag = buildVscodeMarketplaceExtension {
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
index 16a3c7477cd..39dd6f90b80 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.6.0";
+    version = "2.7.0";
   };
 
   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 = "1zg90x2asl6gakd2w8fn4imllqgrzdb1dn3728s63blmml42a1xp";
+    sha256 = "0lpsng7rd88ppjybmypzw42czr6swwin5cyl78v36z3wjwqx26xp";
   };
 
   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 84a626b17de..3d5cc51fe2a 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 1de8aab..e2b3a3e 100644
+index 375048c..fa5eff0 100644
 --- a/out/extension.js
 +++ b/out/extension.js
-@@ -204,19 +204,7 @@ function pathToBinary() {
+@@ -209,20 +209,7 @@ function pathToBinary() {
          if (!_pathToBinaryPromise) {
              let command = vscodeUtils_1.config('terraform').get('languageServer.pathToBinary');
              if (!command) { // Skip install/upgrade if user has set custom binary path
@@ -13,6 +13,7 @@ index 1de8aab..e2b3a3e 100644
 -                }
 -                catch (err) {
 -                    vscode.window.showErrorMessage(err);
+-                    reporter.sendTelemetryException(err);
 -                    throw err;
 -                }
 -                finally {
diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
index dc17f7f1696..62f95ef5322 100644
--- a/pkgs/os-specific/linux/ena/default.nix
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.0";
+  version = "2.4.1";
   name = "ena-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "amzn";
     repo = "amzn-drivers";
     rev = "ena_linux_${version}";
-    sha256 = "sha256-ho6yKCgYo3p50leQUCmzNO/3wqzSzs27Eash3AWBaiE=";
+    sha256 = "0f3i878g11yfw6n68p3qf125jsnggy706jhc8sc0z1xgap6qgh09";
   };
 
   hardeningDisable = [ "pic" ];
@@ -19,23 +19,28 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
 
   configurePhase = ''
+    runHook preConfigure
     cd kernel/linux/ena
     substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion}
+    runHook postConfigure
   '';
 
   installPhase = ''
+    runHook preInstall
     strip -S ena.ko
     dest=$out/lib/modules/${kernel.modDirVersion}/misc
     mkdir -p $dest
     cp ena.ko $dest/
     xz $dest/ena.ko
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Amazon Elastic Network Adapter (ENA) driver for Linux";
     homepage = "https://github.com/amzn/amzn-drivers";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.eelco ];
     platforms = platforms.linux;
+    broken = kernel.kernelOlder "4.5";
   };
 }
diff --git a/pkgs/os-specific/linux/gradm/default.nix b/pkgs/os-specific/linux/gradm/default.nix
index cdfc91a6837..7d2660ad26e 100644
--- a/pkgs/os-specific/linux/gradm/default.nix
+++ b/pkgs/os-specific/linux/gradm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gradm";
-  version = "3.1-201903191516";
+  version = "3.1-202012071814";
 
   src  = fetchurl {
     url    = "http://grsecurity.net/stable/${pname}-${version}.tar.gz";
-    sha256 = "1wszqwaswcf08s9zbvnqzmmfdykyfcy16w8xjia20ypr7wwbd86k";
+    sha256 = "sha256-ghl9P2IYsSHcJsVxJbFwfFS1CTZ2xLxdvyhdk/1OZG4=";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 1fb714354fa..ef32e465835 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,26 +1,26 @@
 {
     "4.14": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.14.221-hardened1.patch",
-        "sha256": "167pazgz6xa0xmvkqdk0a9z1gp9ria0mm2wmq6g41wzhcy20zrfz",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.221-hardened1/linux-hardened-4.14.221-hardened1.patch"
+        "name": "linux-hardened-4.14.222-hardened1.patch",
+        "sha256": "1p692sn0d6cwmilgpi8chs99m0c36pd2rphrljz7b8ywc394jxsb",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.222-hardened1/linux-hardened-4.14.222-hardened1.patch"
     },
     "4.19": {
         "extra": "-hardened1",
-        "name": "linux-hardened-4.19.176-hardened1.patch",
-        "sha256": "0h6jv38n98dp395hs9s29yszbr9zj7rwiv9hny82nffllw6d3vxk",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.176-hardened1/linux-hardened-4.19.176-hardened1.patch"
+        "name": "linux-hardened-4.19.177-hardened1.patch",
+        "sha256": "1l9qic5ggak9qa04bhxrwsrdi6ih9a8dvnzv0l2dfrp7f5z4zmj9",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.177-hardened1/linux-hardened-4.19.177-hardened1.patch"
     },
     "5.10": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.10.17-hardened1.patch",
-        "sha256": "0c3q7a85vfcq8yc2ig4qv7ix7v5wrj3968cj9j4zgg5537da6cp5",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.17-hardened1/linux-hardened-5.10.17-hardened1.patch"
+        "name": "linux-hardened-5.10.18-hardened1.patch",
+        "sha256": "19z1dlwqfwaxi72yr6yh9dzqqrk1v3za3i6qz95xyz5afwn8vp33",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.18-hardened1/linux-hardened-5.10.18-hardened1.patch"
     },
     "5.4": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.4.99-hardened1.patch",
-        "sha256": "0a70n90757kk79wva72ywkn4yy7d2mp6rq1x4cnk0mgpf80lsrdr",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.99-hardened1/linux-hardened-5.4.99-hardened1.patch"
+        "name": "linux-hardened-5.4.100-hardened1.patch",
+        "sha256": "0wr6lgb1xkj11y08y0v58ipkwifs56vy4bd3h70i52b7vhqwsb19",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.100-hardened1/linux-hardened-5.4.100-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 787bc5accca..3716ee9eb6f 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.221";
+  version = "4.14.222";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1sf7sagy88p20310klbxdacyalg3q6zg870c709nz17lbw3m88nf";
+    sha256 = "0i67va37ca3avalgh2ab797c6w2v0h41y1mh4fql73lz7nq84h3k";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 64633e9cc33..e4b81530e95 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.176";
+  version = "4.19.177";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0wv0hb25c5jgw6h3zwbb24mfnn19yr0sgcmk1g2xa6x33g9bihz1";
+    sha256 = "0z9m081jg84mzp639ifx3321bpysfs3rpcrsx9mwdsh19rwv63mc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index eba19be1c20..f066bf3ad18 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.257";
+  version = "4.4.258";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0njb4gf77vix2xgnyhmrzf67czpqfng9np644l9j18dn4mb7q1iy";
+    sha256 = "0rb6sww4yd2m4a4v12klx29nyxb66f55ziv8xcihgf2iw4d62h8c";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index f53d39b20b5..bdd84a83f2f 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.257";
+  version = "4.9.258";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0kynyqk62hkfmamhvfp98i9kyr395chnwghslcbq5pl1zkzq1rwm";
+    sha256 = "1kf8wlcf8gkpnglx1ggn1c3xfz4yx9995yb919mvin7nd7hghy6l";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 569f1a61003..0ee5cad28ff 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.17";
+  version = "5.10.18";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "05289lr531piv1ncisbazfk0lj0q7gxflqkb0bn4c95vx0y64kp8";
+    sha256 = "04dnkg5j73f6cd8ws1prrrjx37srz7rm66bj6slmnfzp3cmyxh9v";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.11.nix b/pkgs/os-specific/linux/kernel/linux-5.11.nix
index b7603c174a4..000d6e64d77 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";
+  version = "5.11.1";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1d37w0zvmf8c1l99xvy1hy6p55icjhmbsv7f0amxy2nly1a7pw04";
+    sha256 = "1gmrckvl3039z80rr740c0d5knwgj6p1dmhw4x9gwc7rxli6az85";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 31a1c602a72..31e84a37d59 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.99";
+  version = "5.4.100";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "09qs6nqzq7hsaq928jvbri4nfjm0m6rf0lfx6vc30g95d4nd3njv";
+    sha256 = "02i47fmx2jbnjr3sd1bvldf9vc712528phpnybsbq8h8lqd6hpbr";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-lqx.nix b/pkgs/os-specific/linux/kernel/linux-lqx.nix
index c8575907f43..b437bb49888 100644
--- a/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,8 +1,8 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.10.15";
-  suffix = "lqx2";
+  version = "5.11.1";
+  suffix = "lqx1";
 in
 
 buildLinux (args // {
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "11dgaqj1xr5hq6wxscrkln68dwqq4lakvfkr646x2yfynry1jqjk";
+    sha256 = "00cji0dkfsjz6agwvcqpy7771hqbzcxk8awpbhlhpwa5j161r7l4";
   };
 
   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 17c865a6e08..4fb6c3e916d 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.16-rt30"; # updated by ./update-rt.sh
+  version = "5.10.17-rt32"; # 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 = "0dqa40yd1yf488pd5vv8c30wsnqazykv7lvi6lmwgz1v4zmf6vsk";
+    sha256 = "05289lr531piv1ncisbazfk0lj0q7gxflqkb0bn4c95vx0y64kp8";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "152kcx7hxrg77wmrhmsi249y9p42y7hykamypfg25wllmz361azc";
+      sha256 = "1mffl1pvi7ijc3xws32bk8grs27ka2bd9bwl6h99vjn3dnkmkrfr";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 0a658b73343..e54a05c6e8e 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,8 +1,8 @@
 { lib, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.10.15";
-  suffix = "zen2";
+  version = "5.11.1";
+  suffix = "zen1";
 in
 
 buildLinux (args // {
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "18qgh79hi1ph6x16sbvq36icv7c5bkdvh193wqjnbvwf0yph09as";
+    sha256 = "10xpb6r1ccqy2lsndf16dksi40z1cgm3wqjp3yjwzhad8zdjlm5d";
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/mcelog/default.nix b/pkgs/os-specific/linux/mcelog/default.nix
index de2c1afb065..b20632be334 100644
--- a/pkgs/os-specific/linux/mcelog/default.nix
+++ b/pkgs/os-specific/linux/mcelog/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mcelog";
-  version = "173";
+  version = "175";
 
   src = fetchFromGitHub {
     owner  = "andikleen";
     repo   = "mcelog";
     rev    = "v${version}";
-    sha256 = "1ili11kqacn6jkjpk11vhycgygdl92mymgb1sx22lcwq2x0d248m";
+    sha256 = "sha256-Xzbck/nRdTR9H5o2XVFlFdNLz2ve65KEcefKAKe0eW8=";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/powerstat/default.nix b/pkgs/os-specific/linux/powerstat/default.nix
index 12a92c36c69..f80b7425cd4 100644
--- a/pkgs/os-specific/linux/powerstat/default.nix
+++ b/pkgs/os-specific/linux/powerstat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.24";
+  version = "0.02.25";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0yrc1xi9flxn2mvmzp0b0vd0md5z4p8fd4y8bszc67xy12qiqy0j";
+    sha256 = "sha256-C6MCOXnElDI69QkLKd2X2SLved8cRCN0Q6BhUvvqsTY=";
   };
 
   installFlags = [ "DESTDIR=${placeholder "out"}" ];
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 36223562578..e6b7de29fd2 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20210124";
+  version = "1.0.20210219";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "sha256-ZiHnKDYziiNvNV1/HjEluC83600RYCvgbUuPiRATRYE=";
+    sha256 = "sha256-ZYZBnfX8DP0IV3VEBSzg7wnFCnlCzOT6Ql3kFZ0klfQ=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index ee8b26c384d..607b273135a 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -31,6 +31,11 @@ stdenv.mkDerivation rec {
       url = "https://w1.fi/security/2020-2/0001-P2P-Fix-copying-of-secondary-device-types-for-P2P-gr.patch";
       sha256 = "19f4hx0p547mdx8y8arb3vclwyy4w9c8a6a40ryj7q33730mrmn4";
     })
+    # P2P: Fix a corner case in peer addition based on PD Request (https://w1.fi/security/2021-1/)
+    (fetchurl {
+      url = "https://w1.fi/security/2021-1/0001-P2P-Fix-a-corner-case-in-peer-addition-based-on-PD-R.patch";
+      sha256 = "04cnds7hmbqc44jasabjvrdnh66i5hwvk2h2m5z94pmgbzncyh3z";
+    })
   ];
 
   # TODO: Patch epoll so that the dbus actually responds
@@ -118,7 +123,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://hostap.epitest.fi/wpa_supplicant/";
+    homepage = "https://w1.fi/wpa_supplicant/";
     description = "A tool for connecting to WPA and WPA2-protected wireless networks";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marcweber ];
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index cdfc78d6222..188c3f77cb6 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.8.1";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-F4YiLjWrAjCNorR5dHQ2nzEBVWvJVuDDmAbUXruaPYQ=";
+    sha256 = "sha256-aE+kw854/wjFJqiRC/1gLzRpaVa6EPJPJaKqXtFM+Sw=";
   };
 
-  vendorSha256 = "sha256-QvT1vnvF+gvABh2SzR6vUsj3KCD8ABqZwXQUm3NldM0=";
+  vendorSha256 = "sha256-1+WgBsknyPcZhvQLffhlWBH1o0pYTFoOG5BviUJYxyA=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 8954c9fcd89..a945198af6d 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -17,11 +17,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.2.1";
+  version = "5.3.0";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "aa37b744c400f437acba7a54aebcbdbe722ece743d342cbc39f2dd8087f05826";
+    sha256 = "fb6cb2c03f4fffbdd8a0098127383d03b14cf7d6abf3a0cd229fb13ff68ee33e";
   };
 
   outputs = [ "out" "dev" ];
@@ -43,7 +43,8 @@ unwrapped = stdenv.mkDerivation rec {
     # some tests have issues with network sandboxing, apparently
   + optionalString doInstallCheck ''
     echo 'os.exit(77)' > daemon/lua/trust_anchors.test/bootstrap.test.lua
-    sed '/^[[:blank:]]*test_dstaddr,$/d' -i tests/config/doh2.test.lua
+    sed '/^[[:blank:]]*test_dstaddr,$/d' -i \
+      tests/config/doh2.test.lua modules/http/http_doh.test.lua
   '';
 
   preConfigure = ''
diff --git a/pkgs/servers/gemini/agate/default.nix b/pkgs/servers/gemini/agate/default.nix
index be3012740f5..9890f4ac06c 100644
--- a/pkgs/servers/gemini/agate/default.nix
+++ b/pkgs/servers/gemini/agate/default.nix
@@ -1,23 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "agate";
-  version = "2.5.0";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "mbrubeck";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mnatEvojma1+cOVllTAzDVxl5luRGleLE6GNPnQUNWQ=";
+    sha256 = "sha256-IapgDqRZ7VMWerusWcv++Ky4yWgGLMaq8rFhbPshFjE=";
   };
 
-  cargoSha256 = "sha256-B07itUftDj3yVMDc/2VetwYs74fZBa1tmeELbbQ39P0=";
+  cargoSha256 = "sha256-+Ch6nEGxYm2L4S9FkIkenDQovMZvQUJGOu5mR9T8r/Y=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with lib; {
-    homepage = "https://proxy.vulpes.one/gemini/gem.limpet.net/agate";
-    changelog = "https://proxy.vulpes.one/gemini/gem.limpet.net/agate";
+    homepage = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
+    changelog = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
     description = "Very simple server for the Gemini hypertext protocol";
     longDescription = ''
       Agate is a server for the Gemini network protocol, built with the Rust
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
       static files. It uses async I/O, and should be quite efficient even when
       running on low-end hardware and serving many concurrent requests.
     '';
-    license = licenses.asl20;
+    license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ jk ];
   };
 }
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index b7d50719305..62b711af67a 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gpsd";
-  version = "3.21";
+  version = "3.22";
 
   src = fetchurl {
-    url = "https://download-mirror.savannah.gnu.org/releases/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "14gyqrbrq6jz4y6x59rdpv9d4c3pbn0vh1blq3iwrc6kz0x4ql35";
+    url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "18rplv1cd76ndb2wc91jarjmfm2nk508pykv1hir79bqbwmdygvq";
   };
 
   nativeBuildInputs = [
@@ -46,15 +46,12 @@ stdenv.mkDerivation rec {
     ./sconstruct-env-fixes.patch
   ];
 
-  postPatch = ''
-    sed -i -e '17i#include <sys/sysmacros.h>' serial.c
-  '';
-
   # - leapfetch=no disables going online at build time to fetch leap-seconds
   #   info. See <gpsd-src>/build.txt for more info.
   preBuild = ''
     patchShebangs .
-    sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConstruct
+    sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConscript
+    export TAR=noop
 
     sconsFlags+=" udevdir=$out/lib/udev"
     sconsFlags+=" python_libdir=$out/lib/${python3Packages.python.libPrefix}/site-packages"
@@ -104,7 +101,8 @@ stdenv.mkDerivation rec {
       diagnostic monitoring and profiling of receivers and feeding
       location-aware applications GPS/AIS logs for diagnostic purposes.
     '';
-    homepage = "http://catb.org/gpsd/";
+    homepage = "https://gpsd.gitlab.io/gpsd/index.html";
+    changelog = "https://gitlab.com/gpsd/gpsd/-/blob/release-${version}/NEWS";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor rasendubi ];
diff --git a/pkgs/servers/gpsd/sconstruct-env-fixes.patch b/pkgs/servers/gpsd/sconstruct-env-fixes.patch
index e90bd04b634..d11ad1299f0 100644
--- a/pkgs/servers/gpsd/sconstruct-env-fixes.patch
+++ b/pkgs/servers/gpsd/sconstruct-env-fixes.patch
@@ -1,6 +1,7 @@
---- SConstruct.orig	2020-12-03 12:39:40.759793977 -0600
-+++ gpsd-3.21/SConstruct	2020-12-03 12:44:30.858761753 -0600
-@@ -516,9 +516,11 @@
+diff -Naur gpsd-3.22.orig/SConscript gpsd-3.22/SConscript
+--- gpsd-3.22.orig/SConscript	2021-01-09 05:35:30.000000000 +0300
++++ gpsd-3.22/SConscript	2021-02-25 21:06:47.921044438 +0300
+@@ -518,9 +518,11 @@
      'CWRAPPERS_CONFIG_DIR',      # pkgsrc
      # Variables used in testing
      'WRITE_PAD',       # So we can test WRITE_PAD values on the fly.
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index febfc7fdea7..b2427bb69f5 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -723,7 +723,7 @@
     "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
     "seven_segments" = ps: with ps; [ pillow ];
     "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track
-    "sharkiq" = ps: with ps; [ ]; # missing inputs: sharkiqpy
+    "sharkiq" = ps: with ps; [ sharkiqpy ];
     "shell_command" = ps: with ps; [ ];
     "shelly" = ps: with ps; [ aioshelly ];
     "shiftr" = ps: with ps; [ paho-mqtt ];
@@ -745,7 +745,7 @@
     "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ pysma ];
-    "smappee" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pysmappee
+    "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
@@ -866,13 +866,13 @@
     "trend" = ps: with ps; [ numpy ];
     "tts" = ps: with ps; [ aiohttp-cors mutagen ];
     "tuya" = ps: with ps; [ tuyaha ];
-    "twentemilieu" = ps: with ps; [ ]; # missing inputs: twentemilieu
+    "twentemilieu" = ps: with ps; [ twentemilieu ];
     "twilio" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
     "twinkly" = ps: with ps; [ ]; # missing inputs: twinkly-client
     "twitch" = ps: with ps; [ python-twitch-client ];
-    "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
+    "twitter" = ps: with ps; [ twitterapi ];
     "ubus" = ps: with ps; [ ];
     "ue_smart_radio" = ps: with ps; [ ];
     "uk_transport" = ps: with ps; [ ];
@@ -896,7 +896,7 @@
     "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
     "velbus" = ps: with ps; [ python-velbus ];
     "velux" = ps: with ps; [ pyvlx ];
-    "venstar" = ps: with ps; [ ]; # missing inputs: venstarcolortouch
+    "venstar" = ps: with ps; [ venstarcolortouch ];
     "vera" = ps: with ps; [ pyvera ];
     "verisure" = ps: with ps; [ jsonpath vsure ];
     "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
@@ -906,7 +906,7 @@
     "vicare" = ps: with ps; [ ]; # missing inputs: PyViCare
     "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client
     "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek
-    "vizio" = ps: with ps; [ ]; # missing inputs: pyvizio
+    "vizio" = ps: with ps; [ pyvizio ];
     "vlc" = ps: with ps; [ python-vlc ];
     "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
     "voicerss" = ps: with ps; [ ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 754b752cbed..d5f609eed9d 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -85,6 +85,7 @@ in with py.pkgs; buildPythonApplication rec {
     substituteInPlace setup.py \
       --replace "attrs==19.3.0" "attrs>=19.3.0" \
       --replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \
+      --replace "awesomeversion==21.2.2" "awesomeversion>=21.2.2" \
       --replace "cryptography==3.2" "cryptography" \
       --replace "pip>=8.0.3,<20.3" "pip" \
       --replace "pytz>=2020.5" "pytz>=2020.4" \
diff --git a/pkgs/servers/http/jetty/default.nix b/pkgs/servers/http/jetty/default.nix
index d95740b6d15..1a43f259282 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.36.v20210114";
+  version = "9.4.37.v20210219";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
-    sha256 = "1bsqxzjcdgdg2qdgc64pvrimkn9j2di2s3prlgdpbwi566744q54";
+    sha256 = "sha256-Jyg0cQBnwYtcVJnr2uWwE/9yC3wq+CLTTGKtv3BsZs8=";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index 11e213f0136..fd8b1202fd0 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.17.15";
+  version = "0.17.311";
 
   src = fetchurl {
     url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
-    sha256 = "1pp5pnnmy8m0jvpxrldshcx71dl5g16dqvnnzaqhvs4cjhpgq8fw";
+    sha256 = "sha256-hYOjKWtClhiU3rXzcPW7rkVqSNhA02bpONMcZ1s1ZYE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/mastodon/default.nix b/pkgs/servers/mastodon/default.nix
index b8582f68ebc..1abedead87d 100644
--- a/pkgs/servers/mastodon/default.nix
+++ b/pkgs/servers/mastodon/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
       fi
       chmod -R u+w node_modules
       rake webpacker:compile
+      rails assets:precompile
     '';
 
     installPhase = ''
diff --git a/pkgs/servers/mattermost/matterircd.nix b/pkgs/servers/mattermost/matterircd.nix
index 3abb728bec1..fd950cb6355 100644
--- a/pkgs/servers/mattermost/matterircd.nix
+++ b/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "matterircd";
-  version = "0.20.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "0rnkzxf953nd67w33ghmrfjfg099cd21nldm31q8pk7fs1mgjnld";
+    sha256 = "sha256-0HeqKnFOrXcoXKEkWxNfoRv77As86aLUAgH/+ZUymAs=";
   };
 
   goPackagePath = "github.com/42wim/matterircd";
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 10105e3b27b..4fa8620503b 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio";
-  version = "2021-02-19T04-38-02Z";
+  version = "2021-02-24T18-44-45Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-Swm8gQeSN84SYE0M03Se9n/clYVT/W/v0GAmRRsL674=";
+    sha256 = "sha256-htrIRZXpr3V7GoeldeULndSfJNMmLKPVOimg3l+UisA=";
   };
 
-  vendorSha256 = "sha256-7WvR6WHiaFHHBhpPoqnkr9pzFxNpLpZuaB1a/SkLBtc=";
+  vendorSha256 = "sha256-m2Nv3OcPq/qc+4Cu/JUut59fZTDZwJn9gyG4jQ5n6Pg=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index b34f6207491..9af9ddd66ed 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -114,13 +114,13 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.22.4";
+      version = "0.22.5";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "sha256-CVi+fcmFMJMv7X4okALlVsxqsuUsirHgQT61IHdrBNE=";
+        sha256 = "sha256-CKNw3K/z5UrTIp9ryWq7UaTz768AigaoCIcoJ4iW1j4=";
       };
 
       buildInputs = [
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index 9eac9e2f256..e35aac3be1b 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl, lua, pkg-config, systemd, jemalloc, nixosTests
+{ lib, stdenv, fetchurl, lua, pkg-config, systemd, nixosTests
 , tlsSupport ? true, openssl
 }:
 
 stdenv.mkDerivation rec {
-  version = "6.0.10";
   pname = "redis";
+  version = "6.2.0";
 
   src = fetchurl {
-    url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "1gc529nfh8frk4pynyjlnmzvwa0j9r5cmqwyd7537sywz6abifvr";
+    url = "https://download.redis.io/releases/${pname}-${version}.tar.gz";
+    sha256 = "1jnv6acjlljvrlxmz0mqarsx1fl5vwss24l8zy5dcawnbp129mk7";
   };
 
   # Cross-compiling fixes
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [ "-std=c11" ];
+
   doCheck = false; # needs tcl
 
   passthru.tests.redis = nixosTests.redis;
@@ -44,7 +46,8 @@ stdenv.mkDerivation rec {
     homepage = "https://redis.io";
     description = "An open source, advanced key-value store";
     license = licenses.bsd3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ berdario globin ];
+    platforms = platforms.all;
+    changelog = "https://github.com/redis/redis/raw/${version}/00-RELEASENOTES";
+    maintainers = with maintainers; [ berdario globin marsam ];
   };
 }
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index c5dc1a8219d..64cf975ac45 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -85,7 +85,6 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [
       badmutex
-      colemickens
       forkk
       lnl7
       pjones
diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix
index 22223f2a27e..cd19c77cab3 100644
--- a/pkgs/servers/rippled/default.nix
+++ b/pkgs/servers/rippled/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchgit, fetchurl, runCommand, git, cmake, pkg-config
+{ lib, stdenv, fetchgit, fetchurl, git, cmake, pkg-config
 , openssl,  zlib, boost, grpc, c-ares, abseil-cpp, protobuf3_8, libnsl }:
 
 let
diff --git a/pkgs/servers/rtsp-simple-server/default.nix b/pkgs/servers/rtsp-simple-server/default.nix
index 4ea79ffe468..1cb5e37cb94 100644
--- a/pkgs/servers/rtsp-simple-server/default.nix
+++ b/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rtsp-simple-server";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "aler9";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+odGLuUU6KWcSukt/WpZnO1KMRTGY2fzPsXTL1xhlrk=";
+    sha256 = "sha256-pnMUUxV4DM2YClwc24l+5Ehh5zc+qEOLTtiqh7c+8PI=";
   };
 
-  vendorSha256 = "sha256-P8NYnTItayuWLQpwl5D6I8K5MVm2Qh1hWl2c78n8CJo=";
+  vendorSha256 = "sha256-oWWUEPEpMLqXucQwUvM6fyGCwttTIV6ZcCM2VZXnKuM=";
 
   # Tests need docker
   doCheck = false;
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index 80033e406ee..0cf704d5f2a 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "monetdb";
-  version = "11.39.11";
+  version = "11.39.13";
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2";
-    sha256 = "1b70r4b5m0r0xpy7i76xx0xsmwagsjdcp5j6nqfjcyn1m65ydzvs";
+    sha256 = "sha256-e30Vykwk6U83/0pS3OWPJ2Oq2SAtNc1S6c1ZO42k39c=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/sql/patroni/default.nix b/pkgs/servers/sql/patroni/default.nix
index 8da0213a2aa..e02d386126a 100644
--- a/pkgs/servers/sql/patroni/default.nix
+++ b/pkgs/servers/sql/patroni/default.nix
@@ -5,13 +5,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "patroni";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "zalando";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IlRltJrEMrRiwVVMYQywb0MqwEoL8MX3do2GlHXjuPc=";
+    sha256 = "048g211njwmgl2v7nx6x5x82b4bbp35n234z7ah10aybm3yrxnc7";
   };
 
   # cdiff renamed to ydiff; remove when patroni source reflects this.
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index d10907805aa..69e140058f0 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.0.1";
+  version = "2.1.0";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "105zc5m3zvnrqr8409qdbycb4yp7znxmna76ri1m2djkdp5rh4q1";
+    sha256 = "03bsvf5iwgiwxq4p1pxri795n3qm70gvd1sz9p0dxixxsjl34vxf";
   };
 
   # -DWARNINGS_AS_ERRORS=OFF to be removed once https://github.com/timescale/timescaledb/issues/2770 is fixed in upstream
diff --git a/pkgs/servers/swego/default.nix b/pkgs/servers/swego/default.nix
index 83416af3177..184c54ba9ca 100644
--- a/pkgs/servers/swego/default.nix
+++ b/pkgs/servers/swego/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "swego";
-  version = "0.91";
+  version = "0.92";
 
   src = fetchFromGitHub {
     owner = "nodauf";
     repo = "Swego";
     rev = "v${version}";
-    sha256 = "sha256-cNsVRYKnzsxYnTkPRfX3ga0eGd09uJ0dyJj1doxfCrg=";
+    sha256 = "sha256-SiB0Z6Eqbn/6VGDTt5bQtgcT4V4AjRIIYYk98EW7ss4=";
   };
 
   vendorSha256 = "sha256-EPcyhnTis7g0uVl+cJdG7iMbisjh7iuMhpzM/SSOeFI=";
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index eb47593c596..32c5a23a9a7 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-zrKkBbsvIqJkPysKx3nJ3EIbePWMZCX9eegekAoqMqk=";
+    sha256 = "sha256-PMBlvres95UIbd3uqZWPE3OzyrEAGEXit/Z7X1p46GY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index 100b021d9ce..8650ff108eb 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -41,21 +41,29 @@ buildGoPackage rec {
     popd
   '';
 
-  dontStrip = true;
+  # Reduce closure size for client machines
+  outputs = [ "out" "client" ];
+
+  buildTargets = [ "full" ];
+
+  postInstall = ''
+    install -Dm755 -t $client/bin $out/bin/tsh
+  '';
 
   doInstallCheck = true;
 
   installCheckPhase = ''
     $out/bin/tsh version | grep ${version} > /dev/null
+    $client/bin/tsh version | grep ${version} > /dev/null
     $out/bin/tctl version | grep ${version} > /dev/null
     $out/bin/teleport version | grep ${version} > /dev/null
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A SSH CA management suite";
     homepage = "https://gravitational.com/teleport/";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ sigma tomberek ];
-    platforms = lib.platforms.unix;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ sigma tomberek freezeboy ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/xmpp/biboumi/default.nix b/pkgs/servers/xmpp/biboumi/default.nix
index 762154f018c..74d8d9ae520 100644
--- a/pkgs/servers/xmpp/biboumi/default.nix
+++ b/pkgs/servers/xmpp/biboumi/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, fetchgit, cmake, libuuid, expat, sqlite, libidn,
-  libiconv, botan2, systemd, pkg-config, udns, pandoc, coreutils } :
+  libiconv, botan2, systemd, pkg-config, udns, coreutils, python3Packages } :
 
 stdenv.mkDerivation rec {
   pname = "biboumi";
-  version = "8.5";
+  version = "9.0";
 
   src = fetchurl {
     url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
-    sha256 = "0rn9p99iqdyvxjzjq9w0ra7pkk0mngjy65nlg3hqfdw8kq9mv5qf";
+    sha256 = "1jvygri165aknmvlinx3jb8cclny6cxdykjf8dp0a3l3228rmzqy";
   };
 
   louiz_catch = fetchgit {
@@ -18,9 +18,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./catch.patch ];
 
-  nativeBuildInputs = [ cmake pkg-config pandoc ];
+  nativeBuildInputs = [ cmake pkg-config python3Packages.sphinx ];
   buildInputs = [ libuuid expat sqlite libiconv libidn botan2 systemd
     udns ];
+  buildFlags = [ "all" "man" ];
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
diff --git a/pkgs/servers/xmpp/pyIRCt/default.nix b/pkgs/servers/xmpp/pyIRCt/default.nix
deleted file mode 100644
index ebb817f1645..00000000000
--- a/pkgs/servers/xmpp/pyIRCt/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, fetchurl, xmpppy, pythonIRClib, python, pythonPackages, runtimeShell } :
-
-stdenv.mkDerivation rec {
-  pname = "pyIRCt";
-  version = "0.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/xmpppy/irc-transport-${version}.tar.gz";
-    sha256 = "0gbc0dvj1p3088b6x315yjrlwnc5vvzp0var36wlf9z60ghvk8yb";
-  };
-
-  buildInputs = [ pythonPackages.wrapPython ];
-
-  pythonPath = [
-    xmpppy pythonIRClib
-  ];
-
-  # phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/irc.py" a.pythonWrapperArguments)];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/${pname}-${version}
-    sed -e 's@/usr/bin/@${python}/bin/@' -i irc.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyIRCt.xml"]' -i config.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-irc-transport.xml"]' -i config.py
-    sed -e '/configFiles/iimport os' -i config.py
-    cp * $out/share/${pname}-${version}
-    cat > $out/bin/pyIRCt <<EOF
-      #!${runtimeShell}
-      cd $out/share/${pname}-${version}
-      ./irc.py \"$@\"
-    EOF
-    chmod a+rx  $out/bin/pyIRCt $out/share/${pname}-${version}/irc.py
-    wrapPythonPrograms
-  '';
-
-  meta = with lib; {
-    description = "IRC transport module for XMPP";
-    platforms = platforms.unix;
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/servers/xmpp/pyMAILt/default.nix b/pkgs/servers/xmpp/pyMAILt/default.nix
deleted file mode 100644
index 03ded7a5d5c..00000000000
--- a/pkgs/servers/xmpp/pyMAILt/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, stdenv, python, xmpppy, pythonPackages, fetchcvs, runtimeShell } :
-
-stdenv.mkDerivation rec {
-  pname = "pyMAILt";
-  version = "20090101";
-
-  src = fetchcvs {
-    cvsRoot = ":pserver:anonymous@xmpppy.cvs.sourceforge.net:/cvsroot/xmpppy";
-    module = "xmpppy/mail-transport";
-    date = "2009-01-01";
-    sha256 = "15301252e52b4ccb2156baefed8982a2a0cce3ae8eae3caf3cc28dfa615c8d6e";
-  };
-
-  pythonPath = [ xmpppy ];
-  buildInputs = [ pythonPackages.wrapPython ];
-
-  installPhase = ''
-    cd mail-transport
-    mkdir -p $out/bin $out/share/${pname}-${version}
-    sed -e 's@/usr/bin/@${python}/bin/@' -i mail.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyMAILt.xml"]' -i config.py
-    sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-mail-transport.xml"]' -i config.py
-    sed -e '/configFiles/iimport os' -i config.py
-    cp * $out/share/$name
-    cat > $out/bin/pyMAILt <<EOF
-      #!${runtimeShell}
-      cd $out/share/${pname}-${version}
-      ./mail.py \"$@\"
-    EOF
-    chmod a+rx  $out/bin/pyMAILt $out/share/${pname}-${version}/mail.py
-    wrapPythonPrograms
-  '';
-
-  meta = with lib; {
-    description = "Email transport module for XMPP";
-    platforms = platforms.unix;
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/shells/any-nix-shell/default.nix b/pkgs/shells/any-nix-shell/default.nix
index 3a9f0a0bfbd..3bd41a53844 100644
--- a/pkgs/shells/any-nix-shell/default.nix
+++ b/pkgs/shells/any-nix-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "any-nix-shell";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "haslersn";
     repo = "any-nix-shell";
     rev = "v${version}";
-    sha256 = "05xixgsdfv0qk648r74nvazw16dpw49ryz8dax9kwmhqrgkjaqv6";
+    sha256 = "0q27rhjhh7k0qgcdcfm8ly5za6wm4rckh633d0sjz87faffkp90k";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index e957457c8c3..c7d5ba0e773 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-02-09";
+  version = "2021-02-21";
   pname = "oh-my-zsh";
-  rev = "f21e646ce6c09198f7f625c597f08af49551fdb0";
+  rev = "9a9f3831925432fdf4352c24a002506a06d329c1";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "14m932zbzdbwyfqkn882jarpw4dbmxkfna5pakd4n5b123drjz46";
+    sha256 = "befalsEX/o5WwVn0bzDnMVhlZawmpGV4AGzvxl7UHLI=";
   };
 
   installPhase = ''
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index e170aae7370..7fa7f2305e8 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -16,8 +16,8 @@ let
   allowUnfree = config.allowUnfree or false
     || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1";
 
-  whitelist = config.whitelistedLicenses or [];
-  blacklist = config.blacklistedLicenses or [];
+  allowlist = config.allowlistedLicenses or config.whitelistedLicenses or [];
+  blocklist = config.blocklistedLicenses or config.blacklistedLicenses or [];
 
   onlyLicenses = list:
     lib.lists.all (license:
@@ -27,19 +27,19 @@ let
     ) list;
 
   areLicenseListsValid =
-    if lib.mutuallyExclusive whitelist blacklist then
-      assert onlyLicenses whitelist; assert onlyLicenses blacklist; true
+    if lib.mutuallyExclusive allowlist blocklist then
+      assert onlyLicenses allowlist; assert onlyLicenses blocklist; true
     else
-      throw "whitelistedLicenses and blacklistedLicenses are not mutually exclusive.";
+      throw "allowlistedLicenses and blocklistedLicenses are not mutually exclusive.";
 
   hasLicense = attrs:
     attrs ? meta.license;
 
-  hasWhitelistedLicense = assert areLicenseListsValid; attrs:
-    hasLicense attrs && lib.lists.any (l: builtins.elem l whitelist) (lib.lists.toList attrs.meta.license);
+  hasAllowlistedLicense = assert areLicenseListsValid; attrs:
+    hasLicense attrs && lib.lists.any (l: builtins.elem l allowlist) (lib.lists.toList attrs.meta.license);
 
-  hasBlacklistedLicense = assert areLicenseListsValid; attrs:
-    hasLicense attrs && lib.lists.any (l: builtins.elem l blacklist) (lib.lists.toList attrs.meta.license);
+  hasBlocklistedLicense = assert areLicenseListsValid; attrs:
+    hasLicense attrs && lib.lists.any (l: builtins.elem l blocklist) (lib.lists.toList attrs.meta.license);
 
   allowBroken = config.allowBroken or false
     || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
@@ -91,10 +91,10 @@ let
   pos_str = meta: meta.position or "«unknown-file»";
 
   remediation = {
-    unfree = remediate_whitelist "Unfree" remediate_unfree_predicate;
-    broken = remediate_whitelist "Broken" (x: "");
-    unsupported = remediate_whitelist "UnsupportedSystem" (x: "");
-    blacklisted = x: "";
+    unfree = remediate_allowlist "Unfree" remediate_unfree_predicate;
+    broken = remediate_allowlist "Broken" (x: "");
+    unsupported = remediate_allowlist "UnsupportedSystem" (x: "");
+    blocklisted = x: "";
     insecure = remediate_insecure;
     broken-outputs = remediateOutputsToInstall;
     unknown-meta = x: "";
@@ -112,14 +112,14 @@ let
   remediate_unfree_predicate = attrs:
     ''
 
-      Alternatively you can configure a predicate to whitelist specific packages:
+      Alternatively you can configure a predicate to allow specific packages:
         { nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
             "${lib.getName attrs}"
           ];
         }
     '';
 
-  remediate_whitelist = allow_attr: rebuild_amendment: attrs:
+  remediate_allowlist = allow_attr: rebuild_amendment: attrs:
     ''
       a) To temporarily allow ${remediation_phrase allow_attr}, you can use an environment variable
          for a single invocation of the nix tools.
@@ -141,7 +141,7 @@ let
       Known issues:
     '' + (lib.concatStrings (map (issue: " - ${issue}\n") attrs.meta.knownVulnerabilities)) + ''
 
-        You can install it anyway by whitelisting this package, using the
+        You can install it anyway by allowing this package, using the
         following methods:
 
         a) To temporarily allow all insecure packages, you can use an environment
@@ -268,7 +268,7 @@ let
   #
   # Return { valid: Bool } and additionally
   # { reason: String; errormsg: String } if it is not valid, where
-  # reason is one of "unfree", "blacklisted", "broken", "insecure", ...
+  # reason is one of "unfree", "blocklisted", "broken", "insecure", ...
   # Along with a boolean flag for each reason
   checkValidity = attrs:
     {
@@ -277,10 +277,10 @@ let
       unsupported = hasUnsupportedPlatform attrs;
       insecure = isMarkedInsecure attrs;
     }
-    // (if hasDeniedUnfreeLicense attrs && !(hasWhitelistedLicense attrs) then
+    // (if hasDeniedUnfreeLicense attrs && !(hasAllowlistedLicense attrs) then
       { valid = false; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; }
-    else if hasBlacklistedLicense attrs then
-      { valid = false; reason = "blacklisted"; errormsg = "has a blacklisted license (‘${showLicense attrs.meta.license}’)"; }
+    else if hasBlocklistedLicense attrs then
+      { valid = false; reason = "blocklisted"; errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; }
     else if !allowBroken && attrs.meta.broken or false then
       { valid = false; reason = "broken"; errormsg = "is marked as broken"; }
     else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then
diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index 30d74c14ce5..e661af0f949 100644
--- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "amazon-ecr-credential-helper";
-  version = "0.4.0";
+  version = "0.5.0";
 
   goPackagePath = "github.com/awslabs/amazon-ecr-credential-helper";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "awslabs";
     repo = "amazon-ecr-credential-helper";
     rev = "v${version}";
-    sha256 = "1whwxjzlyzyvrf2mzbd7my2kdz5fdbr79g18g9h4xrg8xyzk1k5q";
+    sha256 = "sha256-GmGse+N7QeG2sAjCumGkUAWu/KfhnMltzeh+s8o+tiw=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/admin/aws-mfa/default.nix b/pkgs/tools/admin/aws-mfa/default.nix
index 12f63e627e6..53855b6d28d 100644
--- a/pkgs/tools/admin/aws-mfa/default.nix
+++ b/pkgs/tools/admin/aws-mfa/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, pkgs
 , boto3
 }:
 
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index defb46b4443..a3470214964 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -4,7 +4,6 @@
 , groff
 , less
 }:
-
 let
   py = python3.override {
     packageOverrides = self: super: {
@@ -26,21 +25,20 @@ let
     };
   };
 
-in with py.pkgs; buildPythonApplication rec {
+in
+with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.19.5"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.19.12"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-SwYL2ViwazP2MDZbW9cRThvg6jVOMlkfsbpY6QDsjQY=";
+    sha256 = "sha256-Tj9+UtYSL5yls7AxV7shABcOMhS12VXlpDNdxz8Ns5w=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
-  # https://github.com/aws/aws-cli/pull/5887
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "docutils>=0.10,<0.16" "docutils>=0.10" \
-      --replace "PyYAML>=3.10,<5.4" "PyYAML>=3.10"
+      --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   # No tests included
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 6db3e80d3f8..9460144998e 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FJqUYQDDOuO0EcZ8+el/MUcJJzWL7vgGhEFo7v4HpOw=";
+    sha256 = "sha256-uGvcr7TG/NCi0YoYZnQU11zOxXDhFTnCmLQVxOqmXLY=";
   };
 
   vendorSha256 = "sha256-CO4U8uSQeHXLPj5PH/SsOI/LjT2Rs/mBHsvNTudx72I=";
diff --git a/pkgs/tools/admin/netplan/default.nix b/pkgs/tools/admin/netplan/default.nix
new file mode 100644
index 00000000000..b9dc2c07073
--- /dev/null
+++ b/pkgs/tools/admin/netplan/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, glib
+, pandoc
+, systemd
+, libyaml
+, python3
+, libuuid
+, bash-completion
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "netplan";
+  version = "0.101";
+
+  src = fetchFromGitHub {
+    owner = "CanonicalLtd";
+    repo = "netplan";
+    rev = version;
+    hash = "sha256-bCK7J2pCQUwjZu8c1n6jhF6T/gvUGwydqAXpxUMLgMc=";
+    fetchSubmodules = false;
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    glib
+    pandoc
+  ];
+
+  buildInputs = [
+    systemd
+    glib
+    libyaml
+    (python3.withPackages (p: with p; [ pyyaml netifaces ]))
+    libuuid
+    bash-completion
+  ];
+
+  postPatch = ''
+    substituteInPlace netplan/cli/utils.py --replace "/lib/netplan/generate" "$out/lib/netplan/generate"
+    substituteInPlace netplan/cli/utils.py --replace "ctypes.util.find_library('netplan')" "\"$out/lib/libnetplan.so\""
+
+    substituteInPlace Makefile --replace 'SYSTEMD_GENERATOR_DIR=' 'SYSTEMD_GENERATOR_DIR ?= ' \
+        --replace 'SYSTEMD_UNIT_DIR=' 'SYSTEMD_UNIT_DIR ?= ' \
+        --replace 'BASH_COMPLETIONS_DIR=' 'BASH_COMPLETIONS_DIR ?= '
+  '';
+
+  makeFlags = [
+    "PREFIX="
+    "DESTDIR=$(out)"
+    "SYSTEMD_GENERATOR_DIR=lib/systemd/system-generators/"
+    "SYSTEMD_UNIT_DIR=lib/systemd/units/"
+    "BASH_COMPLETIONS_DIR=share/bash-completion/completions"
+  ];
+
+  meta = with lib; {
+    description = "Backend-agnostic network configuration in YAML";
+    homepage = "https://netplan.io";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/ssh-import-id/default.nix b/pkgs/tools/admin/ssh-import-id/default.nix
index b6ca3135f56..031bb316ca5 100644
--- a/pkgs/tools/admin/ssh-import-id/default.nix
+++ b/pkgs/tools/admin/ssh-import-id/default.nix
@@ -2,22 +2,24 @@
 , lib
 , fetchgit
 , requests
+, distro
 , makeWrapper
 , extraHandlers ? []
 }:
 
 buildPythonPackage rec {
   pname = "ssh-import-id";
-  version = "5.8";
+  version = "5.11";
 
   src = fetchgit {
     url = "https://git.launchpad.net/ssh-import-id";
     rev = version;
-    sha256 = "0l9gya1hyf2qfidlmvg2cgfils1fp9rn5r8sihwvx4qfsfp5yaak";
+    sha256 = "sha256-tYbaJGH59qyvjp4kwo3ZFVs0EaE0Lsd2CQ6iraFkAdI=";
   };
 
   propagatedBuildInputs = [
     requests
+    distro
   ] ++ extraHandlers;
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 1478aa8c1e3..df4211ad039 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.01.25";
+  version = "2021.02.21";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "1c2jx03ssm9yyv6rgr5wfv88ivfgdgq3889yaghjyvllm3nv9380";
+    sha256 = "10fa2g8vsz0y7kb0wxnz857r2gd9b0b278j0a5ipjaa7cjd0gi1b";
   };
 
   # There is also a file called "makefile" which seems to be preferred by the standard build phase
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index d531b22738b..5f22ffa9602 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,7 +1,6 @@
 { stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
 , pythonPackages, imagemagick, gobject-introspection, gst_all_1
 , runtimeShell
-, fetchpatch
 , unstableGitUpdater
 
 # Attributes needed for tests of the external plugins
diff --git a/pkgs/tools/backup/btrbk/default.nix b/pkgs/tools/backup/btrbk/default.nix
index 63808d48512..c619a69c111 100644
--- a/pkgs/tools/backup/btrbk/default.nix
+++ b/pkgs/tools/backup/btrbk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, coreutils, bash, btrfs-progs, openssh, perl, perlPackages
+{ lib, stdenv, fetchurl, bash, btrfs-progs, openssh, perl, perlPackages
 , util-linux, asciidoc, asciidoctor, mbuffer, makeWrapper }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch b/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch
new file mode 100644
index 00000000000..148b9a1a957
--- /dev/null
+++ b/pkgs/tools/backup/restic/0001-Skip-testing-restore-with-permission-failure.patch
@@ -0,0 +1,25 @@
+From 8e6186be04e2819b6e3586e5d1aeb8a824e1979f Mon Sep 17 00:00:00 2001
+From: Simon Bruder <simon@sbruder.de>
+Date: Thu, 25 Feb 2021 09:20:51 +0100
+Subject: [PATCH] Skip testing restore with permission failure
+
+The test fails in sandboxed builds.
+---
+ cmd/restic/integration_test.go | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cmd/restic/integration_test.go b/cmd/restic/integration_test.go
+index 7d198d33..1588ccb1 100644
+--- a/cmd/restic/integration_test.go
++++ b/cmd/restic/integration_test.go
+@@ -1170,6 +1170,7 @@ func TestRestoreLatest(t *testing.T) {
+ }
+ 
+ func TestRestoreWithPermissionFailure(t *testing.T) {
++	t.Skip("Skipping testing restore with permission failure")
+ 	env, cleanup := withTestEnvironment(t)
+ 	defer cleanup()
+ 
+-- 
+2.29.2
+
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index 3317ada541a..65ff53bf677 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -3,16 +3,21 @@
 
 buildGoModule rec {
   pname = "restic";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "restic";
     repo = "restic";
     rev = "v${version}";
-    sha256 = "13zmx9wzv29z0np3agx4rsz1j9pgrvlnngjsb971i1dnzwv5l3hf";
+    sha256 = "07gxf56g45gj2arvdnrr9656i9ykhy1y6k6zdlni1sa3aa2x2bbf";
   };
 
-  vendorSha256 = "09sa5jpdj73w595c063mib14132zacswh54nmjqp2n440cflmwjh";
+  patches = [
+    # The TestRestoreWithPermissionFailure test fails in Nix’s build sandbox
+    ./0001-Skip-testing-restore-with-permission-failure.patch
+  ];
+
+  vendorSha256 = "14z22lmdd681rn61alpqbn3i9fn0kcc74321vjvhz2ix2mch3c1z";
 
   subPackages = [ "cmd/restic" ];
 
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index d820e5e68e2..e9248fface1 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.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "09k7479gd9rlzmxhcvc1b3ajy8frzd6881vnlvk3z9818n4aq7qc";
+    sha256 = "sha256-BZOKZMSUpMSoxmgk/S2MOJfKeYSuqw9YdS3v+Jy/kaU=";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index 368f62f2196..6da9b9c92a9 100644
--- a/pkgs/tools/filesystems/mergerfs/default.nix
+++ b/pkgs/tools/filesystems/mergerfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mergerfs";
-  version = "2.32.2";
+  version = "2.32.3";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ybDVBcPkjsW2OxNxUmn5hG/qLEjxF9vqR8pZdb9tIBs=";
+    sha256 = "sha256-loOBMrAtvJAcFdcgwzEEko7TMM07Ocx+1umxjnLB1uY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/s3fs/default.nix b/pkgs/tools/filesystems/s3fs/default.nix
index 4ff36e3b1d8..e80e6530371 100644
--- a/pkgs/tools/filesystems/s3fs/default.nix
+++ b/pkgs/tools/filesystems/s3fs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s3fs-fuse";
-  version = "1.88";
+  version = "1.89";
 
   src = fetchFromGitHub {
     owner  = "s3fs-fuse";
     repo   = "s3fs-fuse";
     rev    = "v${version}";
-    sha256 = "sha256-LxqTKu9F8FqHnjp1a9E/+WbH1Ol6if/OpY7LGsVE9Bw=";
+    sha256 = "sha256-Agb0tq7B98Ioe0G/XEZCYcFQKnMuYXX9x0yg4Gvu3/k=";
   };
 
   buildInputs = [ curl openssl libxml2 ]
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index de866221267..7449eedb3a7 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "sha256-dBgDIS6U2iKzyo5nO0NOD488zfEbaZJH7luJN6khrnc=";
+    sha256 = "sha256-Cm/w0bwDMu5REsQpkwMBgnROxpI+nMQwC16dY/VdOFU=";
   };
 
-  cargoSha256 = "sha256-/i5ZBCWFlhoheHsCI5f9yJ7sa6l/DB4AJckq5orinwI=";
+  cargoSha256 = "sha256-fy8apB1UbpBAnp8mFnL7rNj/GSSUkNz/trqsVrAfFfI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index 301e760cb56..df0983b2d64 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "zbar";
-  version = "0.23.1";
+  version = "0.23.90";
 
   outputs = [ "out" "lib" "dev" "doc" "man" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "mchehab";
     repo = "zbar";
     rev = version;
-    sha256 = "0l4nxha8k18iqzrbqpgca49lrf1gigy3kpbzl3ldw2lw8alwy8x2";
+    sha256 = "sha256-FvV7TMc4JbOiRjWLka0IhtpGGqGm5fis7h870OmJw2U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 0daeaa794ce..1b76cec554d 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, fetchurl
 , fetchFromGitHub
 , cmake
 , extra-cmake-modules
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
index 6184ea36549..560393b3193 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-lua";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-lua";
     rev = version;
-    sha256 = "sha256-lFlHn2q/kpq1EIKKhYVdJofXqtOHnpLz7PoWuNAhmhE=";
+    sha256 = "sha256-46s3F3NHGuef0wPhYiPocms0jv5Vo+cVRd5FzlfjMZY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 8e5254b75c4..f8601a64e2a 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.0.3";
+  version = "5.0.4";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-rime";
     rev = version;
-    sha256 = "sha256-mPNZ/B5bpxua+E1T+oz9v2QKAzGraA2cfT8oJacC35U=";
+    sha256 = "sha256-WB+bWvJxL2yywictNN8Zy0OYxiCRErQGL2dGH4zQPp8=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 4feae0d4acc..5e42016ec7c 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-table-other";
     rev = version;
-    sha256 = "sha256-P+KaUmjAHe1CZ5rNMQAxwKSW5ZMVgQcwkgdlungXTLM=";
+    sha256 = "sha256-jJTFAOrBeRBoUn0mqqkX0z1zQnDOh7otMHDPmjuZbWw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index c555c507d7b..a0aea92ea4a 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -60,13 +60,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus";
-  version = "1.5.23";
+  version = "1.5.24";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus";
     rev = version;
-    sha256 = "0qnblqhz8wyhchnm36zrxhbvi9g4fcwcgmw7p60yjybdlhq4asc7";
+    sha256 = "sha256-1qx06MlEUjSS067FdQG1Bdi4ZAh3hPcNjUX5PIiC3Sk=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/anystyle-cli/Gemfile b/pkgs/tools/misc/anystyle-cli/Gemfile
new file mode 100644
index 00000000000..be47216200d
--- /dev/null
+++ b/pkgs/tools/misc/anystyle-cli/Gemfile
@@ -0,0 +1,37 @@
+source 'https://rubygems.org'
+gemspec
+
+
+group :development, :test do
+  #gem 'anystyle-data', github: 'inukshuk/anystyle-data'
+  #gem 'wapiti', github: 'inukshuk/wapiti-ruby'
+  gem 'bibtex-ruby'
+  gem 'rake'
+  gem 'rspec', '~>3.0'
+  gem 'language_detector', github: 'feedbackmine/language_detector'
+  gem 'unicode-scripts'
+  gem 'edtf'
+  gem 'citeproc'
+  gem 'unicode_utils' if RUBY_VERSION < '2.4'
+end
+
+group :coverage do
+  gem 'simplecov', require: false
+  gem 'coveralls', require: false if ENV['CI']
+end
+
+group :debug do
+  gem 'byebug', require: false
+end
+
+group :profile do
+  gem 'ruby-prof', require: false
+  gem 'gnuplot', require: false
+end
+
+group :extra do
+  gem 'lmdb'
+  gem 'redis'
+  gem 'redis-namespace'
+  gem 'yard'
+end
diff --git a/pkgs/tools/misc/anystyle-cli/Gemfile.lock b/pkgs/tools/misc/anystyle-cli/Gemfile.lock
new file mode 100644
index 00000000000..8d28ef80894
--- /dev/null
+++ b/pkgs/tools/misc/anystyle-cli/Gemfile.lock
@@ -0,0 +1,99 @@
+GIT
+  remote: https://github.com/feedbackmine/language_detector.git
+  revision: 89102790194150b3a8110ce691f9989b8ce70f8d
+  specs:
+    language_detector (0.1.2)
+
+PATH
+  remote: .
+  specs:
+    anystyle (1.3.10)
+      anystyle-data (~> 1.2)
+      bibtex-ruby (~> 5.0)
+      gli (~> 2.17)
+      namae (~> 1.0)
+      wapiti (~> 1.0, >= 1.0.2)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (6.0.3.2)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+      zeitwerk (~> 2.2, >= 2.2.2)
+    anystyle-data (1.2.0)
+    bibtex-ruby (5.1.4)
+      latex-decode (~> 0.0)
+    builder (3.2.4)
+    byebug (11.1.3)
+    citeproc (1.0.10)
+      namae (~> 1.0)
+    concurrent-ruby (1.1.7)
+    diff-lcs (1.4.4)
+    docile (1.3.2)
+    edtf (3.0.5)
+      activesupport (>= 3.0, < 7.0)
+    gli (2.19.2)
+    gnuplot (2.6.2)
+    i18n (1.8.5)
+      concurrent-ruby (~> 1.0)
+    latex-decode (0.3.1)
+    lmdb (0.5.3)
+    minitest (5.14.1)
+    namae (1.0.1)
+    rake (13.0.1)
+    redis (4.2.1)
+    redis-namespace (1.8.0)
+      redis (>= 3.0.4)
+    rspec (3.9.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+    rspec-core (3.9.2)
+      rspec-support (~> 3.9.3)
+    rspec-expectations (3.9.2)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-support (3.9.3)
+    ruby-prof (1.4.1)
+    simplecov (0.19.0)
+      docile (~> 1.1)
+      simplecov-html (~> 0.11)
+    simplecov-html (0.12.2)
+    thread_safe (0.3.6)
+    tzinfo (1.2.7)
+      thread_safe (~> 0.1)
+    unicode-scripts (1.6.0)
+    wapiti (1.0.7)
+      builder (~> 3.2)
+    yard (0.9.25)
+    zeitwerk (2.4.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  anystyle!
+  bibtex-ruby
+  byebug
+  citeproc
+  edtf
+  gnuplot
+  language_detector!
+  lmdb
+  rake
+  redis
+  redis-namespace
+  rspec (~> 3.0)
+  ruby-prof
+  simplecov
+  unicode-scripts
+  yard
+
+BUNDLED WITH
+   2.1.4
diff --git a/pkgs/tools/misc/anystyle-cli/anystyle.gemspec b/pkgs/tools/misc/anystyle-cli/anystyle.gemspec
new file mode 100644
index 00000000000..57db427fb02
--- /dev/null
+++ b/pkgs/tools/misc/anystyle-cli/anystyle.gemspec
@@ -0,0 +1,52 @@
+# -*- encoding: utf-8 -*-
+lib = File.expand_path('../lib/', __FILE__)
+$:.unshift lib unless $:.include?(lib)
+
+require 'anystyle/version'
+
+Gem::Specification.new do |s|
+  s.name         = 'anystyle'
+  s.version      = AnyStyle::VERSION.dup
+  s.platform     = Gem::Platform::RUBY
+  s.authors      = ['Sylvester Keil']
+  s.email        = ['http://sylvester.keil.or.at']
+  s.homepage     = 'http://anystyle.io'
+  s.summary      = 'Smart and fast bibliography parser.'
+  s.description  = 'A sophisticated parser for academic reference lists and bibliographies based on machine learning algorithms using conditional random fields.'
+  s.license      = 'BSD-2-Clause'
+  s.executables  = []
+  s.require_path = 'lib'
+
+  s.required_ruby_version = '>= 2.2'
+
+  s.add_runtime_dependency('bibtex-ruby', '~>5.0')
+  s.add_runtime_dependency('anystyle-data', '~>1.2')
+  s.add_runtime_dependency('gli', '~>2.17')
+  s.add_runtime_dependency('wapiti', '~>1.0', '>=1.0.2')
+  s.add_runtime_dependency('namae', '~>1.0')
+
+  s.files =
+    `git ls-files`.split("\n") - `git ls-files spec`.split("\n") - %w{
+      .coveralls.yml
+      .gitignore
+      .rspec
+      .simplecov
+      .travis.yml
+      Gemfile
+      Rakefile
+      appveyor.yml
+      anystyle.gemspec
+      res/core.xml
+    }
+
+  s.rdoc_options = %w{
+    --line-numbers
+    --inline-source
+    --title "AnyStyle"
+    --main README.md
+  }
+  s.extra_rdoc_files = %w{README.md LICENSE}
+
+end
+
+# vim: syntax=ruby
diff --git a/pkgs/tools/misc/anystyle-cli/default.nix b/pkgs/tools/misc/anystyle-cli/default.nix
new file mode 100644
index 00000000000..7a437cafc28
--- /dev/null
+++ b/pkgs/tools/misc/anystyle-cli/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildRubyGem
+, bundlerEnv
+, ruby
+, poppler_utils
+}:
+let
+  deps = bundlerEnv rec {
+    name = "anystyle-cli-${version}";
+    source.sha256 = lib.fakeSha256;
+    version = "1.3.1";
+    inherit ruby;
+    gemdir = ./.;
+    gemset = lib.recursiveUpdate (import ./gemset.nix) {
+      anystyle.source = {
+        remotes = ["https://rubygems.org"];
+        sha256 = "1w79zcia60nnnyrmyvpd10pmxrpk5c7lj9gmmblhwi8x5mfq9k0n";
+        type = "gem";
+      };
+    };
+  };
+in
+buildRubyGem rec {
+  inherit ruby;
+  gemName = "anystyle-cli";
+  pname = gemName;
+  version = "1.3.1";
+  source.sha256 = "1a3ifwxwqkp5dnfk9r8qq8kgfb8k1pl7jjdghbb8ixbxz9ac7awy";
+
+  propagatedBuildInputs = [ deps ];
+
+  preFixup = ''
+    wrapProgram $out/bin/anystyle --prefix PATH ${poppler_utils}/bin
+  '';
+
+  meta = with lib; {
+    description = "Command line interface to the AnyStyle Parser and Finder";
+    homepage    = "https://anystyle.io/";
+    license     = licenses.bsd2;
+    maintainers = with maintainers; [ shamilton ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/anystyle-cli/gemset.nix b/pkgs/tools/misc/anystyle-cli/gemset.nix
new file mode 100644
index 00000000000..46444760b7b
--- /dev/null
+++ b/pkgs/tools/misc/anystyle-cli/gemset.nix
@@ -0,0 +1,1570 @@
+{
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
+      type = "gem";
+    };
+    version = "6.0.3.2";
+  };
+  anystyle = {
+    dependencies = ["anystyle-data" "bibtex-ruby" "gli" "namae" "wapiti"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      path = ./.;
+      type = "path";
+    };
+    version = "1.3.10";
+  };
+  anystyle-data = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ry6836mq48d85hjcfp7xiw0yk3ivpiwjvmdwv5jag30ijfyaccy";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  bibtex-ruby = {
+    dependencies = ["latex-decode"];
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00zwmmmjrbrxhajdvn1d4rnv2qw00arcj021cwyx3hl6dsv22l2w";
+      type = "gem";
+    };
+    version = "5.1.4";
+  };
+  builder = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  byebug = {
+    groups = ["debug"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+      type = "gem";
+    };
+    version = "11.1.3";
+  };
+  citeproc = {
+    dependencies = ["namae"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  concurrent-ruby = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      type = "gem";
+    };
+    version = "1.1.7";
+  };
+  diff-lcs = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  docile = {
+    groups = ["coverage" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  edtf = {
+    dependencies = ["activesupport"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xknzamagsx68iq7zdiswr077sxirig77yggbcsw51m8365ajzpc";
+      type = "gem";
+    };
+    version = "3.0.5";
+  };
+  gli = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q598mvl20isn3ja1ya0p72svmqwx3m6fjp5slnv0b2c5mh0ahvv";
+      type = "gem";
+    };
+    version = "2.19.2";
+  };
+  gnuplot = {
+    groups = ["profile"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cvb84lahhy6qxkkgg0pfk9b85qrb1by2p3jlpqgczl6am58vhnj";
+      type = "gem";
+    };
+    version = "2.6.2";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  language_detector = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      fetchSubmodules = false;
+      rev = "89102790194150b3a8110ce691f9989b8ce70f8d";
+      sha256 = "0wxs9i0wqmwysrz1c1i85i4f670m217y12rj5slcmd1y4ylsmvyi";
+      type = "git";
+      url = "https://github.com/feedbackmine/language_detector.git";
+    };
+    version = "0.1.2";
+  };
+  latex-decode = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dqanr69as05vdyp9gx9737w3g44rhyk7x96bh9x01fnf1yalyzd";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  lmdb = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qk2ycgyyk052dvbgik35mr4n9im4k1j6v7anbjqhx52y5f07sfg";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  minitest = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      type = "gem";
+    };
+    version = "5.14.1";
+  };
+  namae = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00w0dgvmdy8lw2b5q9zvhqd5k98a192vdmka96qngi9cvnsh5snw";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  rake = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      type = "gem";
+    };
+    version = "13.0.1";
+  };
+  redis = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19hm66kw5vx1lmlh8bj7rxlddyj0vfp11ajw9njhrmn8173d0vb5";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xndkv5cz763wh30x7hdqw6k7zs8xfh0f86amra9agwn44pcqs0y";
+      type = "gem";
+    };
+    version = "3.9.2";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bxkv25qmy39jqrdx35bfgw00g24qkssail9jlljm7hywbqvr9bb";
+      type = "gem";
+    };
+    version = "3.9.2";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      type = "gem";
+    };
+    version = "3.9.1";
+  };
+  rspec-support = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dandh2fy1dfkjk8jf9v4azbbma6968bhh06hddv0yqqm8108jir";
+      type = "gem";
+    };
+    version = "3.9.3";
+  };
+  ruby-prof = {
+    groups = ["profile"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cd91m08ih0imfpy4k87618hd4mhyz291a6bx2hcskza4nf6d27";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html"];
+    groups = ["coverage"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b082xrklq6k755cc3rzpnfdjv5338rlky9him36jasw8s9q68mr";
+      type = "gem";
+    };
+    version = "0.19.0";
+  };
+  simplecov-html = {
+    groups = ["coverage" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v7b4mf7njw8kv4ghl4q7mwz3q0flbld7v8blp4m4m3n3aq11bn9";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  thread_safe = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  unicode-scripts = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04xfy4f61xf7qnbfa68aqscmyxk7wx3swn571cijsfqalhz8swjg";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  wapiti = {
+    dependencies = ["builder"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "maglev";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.8";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "1.9";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.0";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.1";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.2";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.3";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.4";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.5";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "maglev";
+      version = "2.6";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+    } {
+      engine = "rbx";
+      version = "1.8";
+    } {
+      engine = "rbx";
+      version = "1.9";
+    } {
+      engine = "rbx";
+      version = "2.0";
+    } {
+      engine = "rbx";
+      version = "2.1";
+    } {
+      engine = "rbx";
+      version = "2.2";
+    } {
+      engine = "rbx";
+      version = "2.3";
+    } {
+      engine = "rbx";
+      version = "2.4";
+    } {
+      engine = "rbx";
+      version = "2.5";
+    } {
+      engine = "rbx";
+      version = "2.6";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.8";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "1.9";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.0";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.1";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.2";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.3";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.4";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.5";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    } {
+      engine = "ruby";
+      version = "2.6";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1aw2l759cfmii9a67pn8pswip11v08nabkzm825mrmxa6r91izqs";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  yard = {
+    groups = ["extra"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "126m49mvh4lbvlvrprq7xj2vjixbq3xqr8dwr089vadvs0rkn4rd";
+      type = "gem";
+    };
+    version = "0.9.25";
+  };
+  zeitwerk = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+}
+
diff --git a/pkgs/tools/misc/aspcud/default.nix b/pkgs/tools/misc/aspcud/default.nix
index 4c5622fab09..a50bc311f24 100644
--- a/pkgs/tools/misc/aspcud/default.nix
+++ b/pkgs/tools/misc/aspcud/default.nix
@@ -3,12 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.9.4";
+  version = "1.9.5";
   pname = "aspcud";
 
   src = fetchzip {
     url = "https://github.com/potassco/aspcud/archive/v${version}.tar.gz";
-    sha256 = "0vrf7h7g99vw1mybqfrpxamsnf89p18czlzgjmxl1zkiwc7vjpzw";
+    sha256 = "sha256-d04GPMoz6PMGq6iiul0zT1C9Mljdl9uJJ2C8MIwcmaw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/bdf2sfd/default.nix b/pkgs/tools/misc/bdf2sfd/default.nix
index 1d8bd38c1e1..735508fed21 100644
--- a/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "1bpadw25barzmmsz9bkrsj3iwbgf945zqfakbgq1yscfb85bfgsp";
+    sha256 = "sha256-f3IdTk1GEo1GlbiJMCpqwheNJrndm7aCojA+GuKMTao=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index f196bb5af03..51fbba8d706 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -2,14 +2,14 @@
 
 
 stdenv.mkDerivation rec {
-  version = "1.4.1";
+  version = "1.6.0";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "13vv2xmfh0dr949bh75448lidvzwxks6f1mjawdg1q8qwzxhzry4";
+    sha256 = "sha256-GaXVMM23U3M+qNJrWYR+DLiCmILcuX5EIkQqzwN/l1Y=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/pkgs/tools/misc/dijo/default.nix b/pkgs/tools/misc/dijo/default.nix
index b8dc950773b..3ecb201468a 100644
--- a/pkgs/tools/misc/dijo/default.nix
+++ b/pkgs/tools/misc/dijo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, rustPlatform, fetchFromGitHub, ncurses, CoreServices }:
-let version = "0.2.5"; in
+let version = "0.2.6"; in
 rustPlatform.buildRustPackage {
   pname = "dijo";
   inherit version;
@@ -8,9 +8,9 @@ rustPlatform.buildRustPackage {
     owner = "NerdyPepper";
     repo = "dijo";
     rev = "v${version}";
-    sha256 = "sha256-DdK9qdF+rFtAhemPwMpiZrtUdgD0iFqjgiZ3Yp/vLAI=";
+    sha256 = "sha256-fdPl+3NjgVE2MRopzeN/bxbVP6HaTnyJTGFWsLhlRoQ=";
   };
-  cargoSha256 = "sha256-bdSXyxiHwGtdyce2YyPKq+3RfZIL425RvwRfKi59RVI=";
+  cargoSha256 = "sha256-45YfZWncT7hNiOhlAatpdFdxgBaF83sih67B/DPNHcs=";
 
   meta = with lib; {
     description = "Scriptable, curses-based, digital habit tracker";
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index b808d88888f..f0bb6905b43 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.11.0";
+  version = "2.11.1";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "sha256-c+3zB0bxohQQsOjcTLHgRQamJfm7iUdz79t8q8wAFL8=";
+    sha256 = "sha256-pjFApZQJqw0fJmJteO7VZWRLogV3rO5XDagZd1MliZg=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-ORkj6T9O/NKuaILm5NFGePYxKMaCAAydascelaEvYVw=";
+  cargoSha256 = "sha256-xsTScRAu0SF1xtjUwBtNJUNIItoR0jjEd2CuSmmeh9c=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index aa9f175e900..a504efbf1eb 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,18 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.6.8";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "1k8ghz8xwy7v4y4r4xc690ig7qmn0mkvynplwn66j44fgdpg0v1s";
+    sha256 = "1xzbsnij0xsgd5j11frkf35w8rkr55hq2yl7myaxrgzh686a8law";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
 
-  patches = [ ./fix-luajit-darwin.patch ];
+  patches = lib.optionals stdenv.isDarwin [ ./fix-luajit-darwin.patch ];
+
+  # _FORTIFY_SOURCE requires compiling with optimization (-O)
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-O";
 
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
diff --git a/pkgs/tools/misc/gammy/default.nix b/pkgs/tools/misc/gammy/default.nix
index 9f9a73a989e..374f93fb0ae 100644
--- a/pkgs/tools/misc/gammy/default.nix
+++ b/pkgs/tools/misc/gammy/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "gammy";
-  version = "0.9.62";
+  version = "0.9.63";
 in
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "Fushko";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fyr+khLgaX5xbKCW3pqt6fFvZBHGEVs1BsMireZDxP0=";
+    sha256 = "sha256-KG9XoE8Ja+P/Z311D1Vfio7QVT8EPCylEbLTT4Ln+OU=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook ];
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 6ad09f42074..b5fc2d0d2bc 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.155.2";
+  version = "0.157.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YbB5mJNfGei72brV1br1dvbxrbWkqnsbuA5/o+fD0Fc=";
+    sha256 = "sha256-wUlAllWBGJBZ98lbf2pOfW3a31r74py5Zh7uszkRYqA=";
   };
 
-  vendorSha256 = "sha256-d6l+d59DZDVCMhdjwRz7BKcxGXl1L2kdFCk82NS2XmA=";
+  vendorSha256 = "sha256-8SOUFlbwGwRuOB50V9eXE9KQWGiSexTZct6Rux6Stuw=";
 
   buildFlagsArray = [
     "-ldflags="
diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock
index 3bd45730313..81d5b763ca3 100644
--- a/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -6,7 +6,7 @@ GEM
     ethon (0.12.0)
       ffi (>= 1.3.0)
     ffi (1.14.2)
-    html-proofer (3.18.5)
+    html-proofer (3.18.6)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
@@ -15,13 +15,15 @@ GEM
       typhoeus (~> 1.3)
       yell (~> 2.0)
     mercenary (0.4.0)
-    mini_portile2 (2.4.0)
-    nokogiri (1.10.10)
-      mini_portile2 (~> 2.4.0)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.1)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
     nokogumbo (2.0.4)
       nokogiri (~> 1.8, >= 1.8.4)
     parallel (1.20.1)
     public_suffix (4.0.6)
+    racc (1.5.2)
     rainbow (3.0.0)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix
index 92ce4b8bf82..b0571be30ad 100644
--- a/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/pkgs/tools/misc/html-proofer/gemset.nix
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bz0041fizdmggc5k9an4s3qk6diyybn2agcia2wr96vymfb2qjh";
+      sha256 = "0x8yq7hiv5wd44a0d0xhrqkjgaz3i1zjr2p6c0i7fbhq1wi8zy07";
       type = "gem";
     };
-    version = "3.18.5";
+    version = "3.18.6";
   };
   mercenary = {
     groups = ["default"];
@@ -57,21 +57,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.5.0";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["mini_portile2" "racc"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      sha256 = "1ajwkqr28hwqbyl1l3czx4a34c88acxywyqp8cjyy0zgsd6sbhj2";
       type = "gem";
     };
-    version = "1.10.10";
+    version = "1.11.1";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -104,6 +104,16 @@
     };
     version = "4.0.6";
   };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
   rainbow = {
     groups = ["default"];
     platforms = [];
diff --git a/pkgs/tools/misc/memtest86-efi/default.nix b/pkgs/tools/misc/memtest86-efi/default.nix
index dc29aad2a54..125f8f35acc 100644
--- a/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/pkgs/tools/misc/memtest86-efi/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "memtest86-efi";
-  version = "8.3";
+  version = "8.4";
 
   src = fetchzip {
     # TODO: We're using the previous version of memtest86 because the
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     # binaries that we make sure to version, then we could probably keep up
     # with the latest versions released by the company.
     url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
-    sha256 = "0aldz7rvnfnzb4h447q10k9c9p5ghwzdyn7f6g5lrxiv5vxf3x96";
+    sha256 = "sha256-jh4FKCYZbOQhRv6B7N8Hmw6RQCQvbBGaGFTMLwM1nk8=";
     stripRoot = false;
   };
 
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
+
     # memtest86 is distributed as a bootable USB image.  It contains the actual
     # memtest86 EFI app.
     #
@@ -50,6 +52,8 @@ stdenv.mkDerivation rec {
     ')
     mkdir $out
     mcopy -vsi $IMG@@$ESP_OFFSET ::'/EFI/BOOT/*' $out/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index 26056364b77..9d2e64d6b70 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -3,7 +3,7 @@
 , gnome2, gdk-pixbuf, gtk3, pango, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
 
 let
-  version = "1.23.0";
+  version = "1.24.6";
 
   rpath = lib.makeLibraryPath [
     alsaLib
@@ -49,7 +49,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "1kmhki4kq28z8h249p4imcpb0nz2dx5bmpv8ldhhqh3rcq5vzxsv";
+        sha256 = "sha256-GTMJ3Mu0vym2u4uZcq5LnbOod1yanCWHbGLXjVq30Hc=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/misc/mslink/default.nix b/pkgs/tools/misc/mslink/default.nix
new file mode 100644
index 00000000000..56354ff2527
--- /dev/null
+++ b/pkgs/tools/misc/mslink/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, lib
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mslink";
+  version = "1.3";
+
+  src = fetchurl {
+    url = "http://www.mamachine.org/mslink/mslink_v${version}.tar.gz";
+    sha256 = "1qiwqa6w2in6gk4sxiy37c2wwpakin6l2ad2cf5s7ij96z2ijgqg";
+  };
+
+  preBuild = ''
+    rm mslink # clean up shipped executable
+  '';
+
+  installPhase = ''
+    install -D mslink $out/bin/mslink
+  '';
+
+  meta = with lib; {
+    description = "Create Windows Shortcut Files (.LNK) without using Windows";
+    homepage = "http://www.mamachine.org/mslink/index.en.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index d5aef2f5ffe..1209ab9d254 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "parallel";
-  version = "20210122";
+  version = "20210222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "1wxkqz6ld1bp0ilvc04vhq99qjay1nl6pbk3qzvp3sjavv9vdwdl";
+    sha256 = "sha256-TmmwCuti906i/cZXnTHStKTMCmT+dc9hkmMSQC8b5ys=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index 04f1c5ec33e..a943f94a182 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.0.1";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YQrANrCd0nFdn98LfHH/Ishm+fDb12cUAkxlwtZ1ng8=";
+    sha256 = "sha256-r6qD7KyuBj67c+nhaRLHP5B46JV8VP9MKCloqYLua+Q=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index 0443deae077..70a95957855 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -16,7 +16,14 @@ stdenv.mkDerivation rec {
     "--enable-colors256"
   ];
 
-  patches = lib.optional stdenv.hostPlatform.isMusl
+  patches = [
+    (fetchpatch {
+      # Fixes denial of services in encoding.c, remove > 4.8.0
+      name = "CVE-2021-26937.patch";
+      url = "https://salsa.debian.org/debian/screen/-/raw/master/debian/patches/99_CVE-2021-26937.patch";
+      sha256 = "05f3p1c7s83nccwkhmavjzgaysxnvq41c7jffs31ra65kcpabqy0";
+    })
+  ] ++ lib.optional stdenv.hostPlatform.isMusl
     (fetchpatch {
       url = "https://gist.githubusercontent.com/yujinakayama/4608863/raw/76b9f89af5e5a2e97d9a0f36aac989fb56cf1447/gistfile1.diff";
       sha256 = "0f9bf83p8zdxaa1pr75jyf5g8xr3r8kv7cyzzbpraa1q4j15ss1p";
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 1cfc039273e..8d8e587879b 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 = "2.8";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "1977xyxi9jfj7qra1sz7c9lk885cadpci66jvbzvnwm6d60m05lb";
+    sha256 = "1k7829sgvs2ihnf8d3zrqk99ifm9867wcn6f8zg628h8aqsif4fc";
   };
 
   pythonPaths = [ pycrypto pyyaml requests ];
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 014fdad13dc..6dc47e31725 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "6.5.2";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7tgYVxZ4E6qi/HLgfC0ZreHuXgtd3JMg4ENQL50YWr4=";
+    sha256 = "sha256-YMg5HWDvBsYJZCxYrQuQqU4xLY8DORKYkK319pryA5I=";
   };
 
-  cargoSha256 = "sha256-xxJfNFegvtHJno7o54Rqai9DvvffrkxTFci673Yq/NI=";
+  cargoSha256 = "sha256-G6ToQzPxuKpe1YQ4nLDJLjb3qx8D3VpuigXfdf7RHCQ=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/pkgs/tools/misc/vsh/default.nix b/pkgs/tools/misc/vsh/default.nix
index f3eb1f9ad8e..0393ca356dc 100644
--- a/pkgs/tools/misc/vsh/default.nix
+++ b/pkgs/tools/misc/vsh/default.nix
@@ -2,21 +2,17 @@
 
 buildGoModule rec {
   pname = "vsh";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "fishi0x01";
     repo = "vsh";
     rev = "v${version}";
-    sha256 = "1f6szcdakfx3zap1zpkrcs134plv7vnyilzcxs5jbhrrbr6q1807";
+    sha256 = "16q0pkmdzhq0bqy4lnnlxrc29gszca6vwajj2bg6sylcvi94x80d";
   };
 
-  vendorSha256 = "0a2kjql4ibglxkq5dgzr2sxxxm38nf83s4rsk2gd1cf7v0flr02j";
-
-  # vendor dir in vsh repo is incomplete
-  deleteVendor = true;
-
-  runVend = true;
+  # vendor directory is part of repository
+  vendorSha256 = null;
 
   # make sure version gets set at compile time
   buildFlagsArray = [ "-ldflags=-s -w -X main.vshVersion=v${version}" ];
diff --git a/pkgs/tools/misc/z-lua/default.nix b/pkgs/tools/misc/z-lua/default.nix
index 64ae387e1a6..79be68c8d56 100644
--- a/pkgs/tools/misc/z-lua/default.nix
+++ b/pkgs/tools/misc/z-lua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z-lua";
-  version = "1.8.11";
+  version = "1.8.12";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "sha256-k3Q4Fc2T7ElZb98+DVodC7zMHv5yfdwOIkSk0k04WCo=";
+    sha256 = "sha256-q4hJ6QAR8cXjXM2e5Et1/DzyEw9L0120sgpTtqGG5wQ=";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/networking/argus-clients/default.nix b/pkgs/tools/networking/argus-clients/default.nix
index ead19b17926..cd935a5f5d7 100644
--- a/pkgs/tools/networking/argus-clients/default.nix
+++ b/pkgs/tools/networking/argus-clients/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkg-config, perl }:
+{ lib, stdenv, fetchurl, libpcap, bison, flex, cyrus_sasl, tcp_wrappers, pkg-config, perl, libtirpc, libnsl }:
 
 stdenv.mkDerivation rec {
   pname = "argus-clients";
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "1c9vj6ma00gqq9h92fg71sxcsjzz912166sdg90ahvnmvmh3l1rj";
   };
 
-  patchPhase = ''
+  NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+
+  postPatch = ''
     for file in ./examples/*/*.pl; do
       substituteInPlace $file \
         --subst-var-by PERLBIN ${perl}/bin/perl
@@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-perl=${perl}/bin/perl" ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libpcap bison cyrus_sasl tcp_wrappers flex ];
+  buildInputs = [ libpcap bison cyrus_sasl tcp_wrappers flex libnsl ];
 
   meta = with lib; {
     description = "Clients for ARGUS";
diff --git a/pkgs/tools/networking/cassowary/default.nix b/pkgs/tools/networking/cassowary/default.nix
index b918516f926..f0aecf7363a 100644
--- a/pkgs/tools/networking/cassowary/default.nix
+++ b/pkgs/tools/networking/cassowary/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cassowary";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "rogerwelin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1so9EMry7U6GfpxgqLpcqC+ZaWAn4qAsnyDZvo0FAZY=";
+    sha256 = "sha256-IaS2QU9DBupv06AMzJXBM2iZkNVw31Pt1bOMQNBEiq0=";
   };
 
-  vendorSha256 = "sha256-d8JPsHBGkZ/MeoHTCLxi6JeNomER/0veWjqmqGal8eE=";
+  vendorSha256 = "sha256-RuwrnuTNfiYpIuohw7OQv95hjOAeWCMuajsZVUUDxBQ=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
index a3b43e0bd2e..2091a4aa549 100644
--- a/pkgs/tools/networking/clash/default.nix
+++ b/pkgs/tools/networking/clash/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yTj3kXG7xB1+PhaiGgQR4bUcKkdk5eiF4bGXmxuMMsg=";
+    sha256 = "sha256-T6oBdhBX850GXb19MTOFVo9LRfOgCyMW3GIljMMeGmg=";
   };
 
   vendorSha256 = "sha256-HqlHUVWwvO15nitpwIh/u0GfF8wqJqkviyxOp7QHYz8=";
@@ -23,7 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "A rule-based tunnel in Go";
     homepage = "https://github.com/Dreamacro/clash";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ contrun Br1ght0ne ];
   };
 }
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 4a4578a7356..79f78c8fff4 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.7";
+  version = "8.6.8";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Hsxu/gqMKRWBJT7JqOw8Ck+5fQG0D3wSJBb9fgkPsw=";
+    sha256 = "sha256-ierNKZ14F3EKtQRdOd7D4jhaA7M6zwnFVSk6aUh4VPc=";
   };
 
-  vendorSha256 = "sha256-ULXC8lVu/TTSzYJ4EpAQvDwntRV0+Vmr8VPaEe54qdA=";
+  vendorSha256 = "sha256-F/Vxl9Z5LgAmnRt/FOdW9eVN7IVb1ZEKiYOSpT9+L0E=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 480a64127ca..681f6002ca6 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eM3XTZ/Y0Kk5bdC+xskS/btGEVrC50342YBYJdXAlDg=";
+    sha256 = "sha256-mZJyxbxMIw3jr7ASzYKEfZFh4GS6ZfGKsRkzOtUCYOA=";
   };
 
-  cargoSha256 = "sha256-U3WXb6qGGshaWJ3GIC+c3W9Y8Cz0O23J7mVojCwitlk=";
+  cargoSha256 = "sha256-JIyv21u+r2CpgsiW5O7Fy4CWXpkW4jRDrH0CSY2CgiU=";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optional stdenv.isDarwin Security;
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index 59315c4bf4b..f6263f187bf 100644
--- a/pkgs/tools/networking/isync/default.nix
+++ b/pkgs/tools/networking/isync/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "0pkqvsdmi85xrhzzc7mz87vdvvvp01lf8akhfdnmsdlks8zbzy44";
+    sha256 = "0l01880fcyqn6xq9n8236ha5n2a3wl5g8rmv22z8nv5hgfsxndhd";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index d32c2f5cc57..064aa162fba 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "1.8.2";
+  version = "1.9.3";
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0f8x1blfmbcak0cd21jm1zpz4w8iimldhjilwkwgvmmrxnmsfv28";
+    sha256 = "sha256-gEuEbqvy/YpXfNkeNcaobI5gH2AvlL6E/lm2HfPATZ8=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/pkgs/tools/networking/keepalived/default.nix b/pkgs/tools/networking/keepalived/default.nix
index 7ce5e0ccbf0..a805fe7e9e6 100644
--- a/pkgs/tools/networking/keepalived/default.nix
+++ b/pkgs/tools/networking/keepalived/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.1.5";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "0zdh3g491mlc0x4g8q09vq62a7pb8n13a39jnfdgrm9k29khn0sj";
+    sha256 = "sha256-Cupi5arScECKmHCBcC0Cmm/64JhidMyNUB75YmGMJag=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix
index 18ae090f211..f34b43f3c32 100644
--- a/pkgs/tools/networking/lldpd/default.nix
+++ b/pkgs/tools/networking/lldpd/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lldpd";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "1qc7k83zpcq27hpjv1lmgrj4la2zy1gspwk5jas43j49siwr3xqx";
+    sha256 = "sha256-mNIA524w9iYsSkSTFIwYQIJ4mDKRRqV6NPjw+SjKPe8=";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix
index bda3d36c245..4a0b3c13394 100644
--- a/pkgs/tools/networking/slirp4netns/default.nix
+++ b/pkgs/tools/networking/slirp4netns/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "06813k8a1gpakgykz5h75qpdlhrci9r39309n3qqh34ynbjil468";
+    sha256 = "sha256-jUxAkC9nMiDiHKyKtmdtOEyb9jqOEiy5D3NqymluX28=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/networking/tcpflow/default.nix b/pkgs/tools/networking/tcpflow/default.nix
index 74c7f0f1135..cc923c0daf6 100644
--- a/pkgs/tools/networking/tcpflow/default.nix
+++ b/pkgs/tools/networking/tcpflow/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "tcpflow";
-  version = "1.5.2";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner  = "simsong";
     repo   = pname;
     rev    = "${pname}-${version}";
-    sha256 = "063n3pfqa0lgzcwk4c0h01g2y5c3sli615j6a17dxpg95aw1zryy";
+    sha256 = "0vbm097jhi5n8pg08ia1yhzc225zv9948blb76f4br739l9l22vq";
     fetchSubmodules = true;
   };
 
@@ -23,8 +23,10 @@ stdenv.mkDerivation rec {
     substituteInPlace bootstrap.sh \
       --replace ".git" "" \
       --replace "/bin/rm" "rm"
-    substituteInPlace configure.ac \
-      --replace "1.5.1" "1.5.2"
+    # Temporary fix for a build error:
+    # https://src.fedoraproject.org/rpms/tcpflow/blob/979e250032b90de2d6b9e5b94b5203d98cccedad/f/tcpflow-1.6.1-format.patch
+    substituteInPlace src/datalink.cpp \
+      --replace 'DEBUG(6)(s.c_str());' 'DEBUG(6) ("%s", s.c_str());'
   '';
 
   preConfigure = "bash ./bootstrap.sh";
@@ -38,7 +40,7 @@ stdenv.mkDerivation rec {
     '';
     inherit (src.meta) homepage;
     license     = licenses.gpl3;
-    maintainers = with maintainers; [ primeos raskin obadz ];
+    maintainers = with maintainers; [ raskin obadz ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/tendermint/default.nix b/pkgs/tools/networking/tendermint/default.nix
index 13c7f6a1d5b..b97c49dd9c9 100644
--- a/pkgs/tools/networking/tendermint/default.nix
+++ b/pkgs/tools/networking/tendermint/default.nix
@@ -2,22 +2,24 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.34.7";
+  version = "0.34.8";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nucfxQYjUKm9c1vn7c4w0Mxkf+rU1qEZ1bjzcL258MQ=";
+    sha256 = "sha256:03k44w23167az2kk6ccp3139kykzkhack4w2vy0wvs2lb67xiqd9";
   };
 
   vendorSha256 = "sha256-0Y9QDBVNYE2x3nY3loRKTCtYWXRnK7v+drRVvTMY4Dg=";
 
-  doCheck = false;
-
   subPackages = [ "cmd/tendermint" ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}" ];
+  preBuild = ''
+    makeFlagsArray+=(
+      "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}"
+    )
+  '';
 
   meta = with lib; {
     description = "Byzantine-Fault Tolerant State Machines. Or Blockchain, for short";
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index 24b17af3d3e..232e049e456 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -18,6 +18,9 @@
   #
 , withSystemd ? false
 , systemd ? null
+  # optionally support DNS-over-HTTPS as a server
+, withDoH ? false
+, libnghttp2
 }:
 
 stdenv.mkDerivation rec {
@@ -31,7 +34,9 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
-  buildInputs = [ openssl nettle expat libevent ] ++ lib.optionals withSystemd [ pkg-config systemd ];
+  buildInputs = [ openssl nettle expat libevent ]
+    ++ lib.optionals withSystemd [ pkg-config systemd ]
+    ++ lib.optionals withDoH [ libnghttp2 ];
 
   configureFlags = [
     "--with-ssl=${openssl.dev}"
@@ -47,6 +52,8 @@ stdenv.mkDerivation rec {
     "--disable-flto"
   ] ++ lib.optionals withSystemd [
     "--enable-systemd"
+  ] ++ lib.optionals withDoH [
+    "--with-libnghttp2=${libnghttp2.dev}"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 1e401deaa26..5cfb61d7fbf 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -13,11 +13,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20200827";
+  version = "1.0.20210223";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "1d8rs1g6zy3kz327cc3hzkk5a44278x9p32gxasz6i94bq0b2bs3";
+    sha256 = "sha256-YlqviVEYrGYZAJtUg2zAU8AzsQotxguljltC3N2ruUc=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix
index 668a623ee2a..f171a150045 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/tools/package-management/cargo-deb/default.nix
@@ -8,24 +8,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.24.0";
+  version = "1.29.1";
 
   src = fetchFromGitHub {
     owner = "mmstick";
     repo = pname;
-    rev = "b49351f6770aa7aeb053dd1d4a02d6b086caad2a";
-    sha256 = "1hs96yv0awgi7ggpxp7k3n21jpv642sm0529b21hs9ib6kp4vs8s";
+    rev = "v${version}";
+    sha256 = "sha256-oWivGy2azF9zpeZ0UAi7Bxm4iXFWAjcBG0pN7qtkSU8=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "1vqnnqn6rzkdi239bh3lk7gaxr7w6v3c4ws4ya1ah04g6v9hkzlw";
-
-  checkType = "debug";
+  cargoSha256 = "0j9frvcmy9hydw73v0ffr0bjvq2ykylnpmiw700z344djpaaa08y";
 
   preCheck = ''
     substituteInPlace tests/command.rs \
-      --replace 'target/debug' "target/${rust.toRustTarget stdenv.buildPlatform}/debug"
+      --replace 'target/debug' "target/${rust.toRustTarget stdenv.buildPlatform}/release"
+
+    # This is an FHS specific assert depending on glibc location
+    substituteInPlace src/dependencies.rs \
+      --replace 'assert!(deps.iter().any(|d| d.starts_with("libc")));' '// no libc assert here'
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 9ab08007ec7..50eb8d1a47e 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -22,7 +22,7 @@ common =
   , stateDir
   , confDir
   , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
-  , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
+  , withAWS ? !enableStatic && !stdenv.hostPlatform.isMusl && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
   , enableStatic ? stdenv.hostPlatform.isStatic
   , name, suffix ? "", src
   , patches ? [ ]
diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index 72c0bc204f8..0ae04ddb30f 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , pkg-config
+, gobject-introspection
 , meson
 , ninja
 , perl
@@ -11,9 +11,10 @@
 , libxslt
 , docbook-xsl-nons
 , docbook_xml_dtd_412
+, fetchurl
 , glib
+, gusb
 , dbus
-, dbus-glib
 , polkit
 , nss
 , pam
@@ -24,52 +25,41 @@
 
 stdenv.mkDerivation rec {
   pname = "fprintd";
-  version = "1.90.1";
+  version = "1.90.9";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "libfprint";
     repo = pname;
-    rev = version;
-    sha256 = "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg";
+    rev = "v${version}";
+    sha256 = "rOTVThHOY/Q2IIu2RGiv26UE2V/JFfWWnfKZQfKl5Mg=";
   };
 
-  patches = [
-    # Fixes issue with ":" when there is multiple paths (might be the case on NixOS)
-    # https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/50
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/d7fec03f24d10f88d34581c72f0eef201f5eafac.patch";
-      sha256 = "0f88dhizai8jz7hpm5lpki1fx4593zcy89iwi4brsqbqc7jp9ls0";
-    })
-
-    # Fix locating libpam_wrapper for tests
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/40.patch";
-      sha256 = "0qqy090p93lzabavwjxzxaqidkcb3ifacl0d3yh1q7ms2a58yyz3";
-    })
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f401f399a85dbeb2de165b9b9162eb552ab6eea7.patch";
-      sha256 = "1bc9g6kc95imlcdpvp8qgqjsnsxg6nipr6817c1pz5i407yvw1iy";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
     ninja
-    perl
+    perl # for pod2man
     gettext
     gtk-doc
     libxslt
-    dbus
+    # TODO: apply this to D-Bus so that other packages can benefit.
+    # https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/202
+    (dbus.overrideAttrs (attrs: {
+      postInstall = attrs.postInstall or "" + ''
+        ln -s ${fetchurl {
+          url = "https://gitlab.freedesktop.org/dbus/dbus/-/raw/b207135dbd8c09cf8da28f7e3b0a18bb11483663/doc/catalog.xml";
+          sha256 = "1/43XwAIcmRXfM4OXOPephyQyUnW8DSveiZbiPvW72I=";
+        }} $out/share/xml/dbus-1/catalog.xml
+      '';
+    }))
     docbook-xsl-nons
     docbook_xml_dtd_412
   ];
 
   buildInputs = [
     glib
-    dbus-glib
     polkit
     nss
     pam
@@ -78,11 +68,13 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = with python3.pkgs; [
+    gobject-introspection # for setup hook
     python-dbusmock
     dbus-python
     pygobject3
     pycairo
     pypamtest
+    gusb # Required by libfprint’s typelib
   ];
 
   mesonFlags = [
@@ -103,13 +95,15 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postPatch = ''
-    patchShebangs po/check-translations.sh
+    patchShebangs \
+      po/check-translations.sh \
+      tests/unittest_inspector.py
   '';
 
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
     description = "D-Bus daemon that offers libfprint functionality over the D-Bus interprocess communication bus";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar elyhaka ];
   };
diff --git a/pkgs/tools/security/gitjacker/default.nix b/pkgs/tools/security/gitjacker/default.nix
index 0b8c087eccd..53350f01317 100644
--- a/pkgs/tools/security/gitjacker/default.nix
+++ b/pkgs/tools/security/gitjacker/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gitjacker";
-  version = "0.0.2";
+  version = "0.0.3";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = "gitjacker";
     rev = "v${version}";
-    sha256 = "0fg95i2y8sj7dsvqj8mx0k5pps7d0h1i4a3lk85l8jjab4kxx8h9";
+    sha256 = "sha256-cMjjVjHGTVT33bknAo2DVH/qPSeazVIIw3RpXGDxF5E=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix
index c208b44bfd6..9f6a65962ff 100644
--- a/pkgs/tools/security/gopass/default.nix
+++ b/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.12.0";
+  version = "1.12.1";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y3dcikw6gl436mhza5j0b3lm49jzl590a9ry53rkmzrv2lqx9w6";
+    sha256 = "0ickzq2swhabxqcg32n1i99bam6ip7c0mhhncgvmw332w6pzgvlb";
   };
 
-  vendorSha256 = "09lbkm7c361c2s87qi1wpfsqgpp3r862wcn98dzdg5j6pvpgwbag";
+  vendorSha256 = "0i0dhipp1gdn0xdl4bpi13ksxf7dc9biz9riapm988bldcr5s1kr";
 
   subPackages = [ "." ];
 
@@ -41,6 +41,7 @@ buildGoModule rec {
   );
 
   postInstall = ''
+    HOME=$TMPDIR
     for shell in bash fish zsh; do
       $out/bin/gopass completion $shell > gopass.$shell
       installShellCompletion gopass.$shell
diff --git a/pkgs/tools/security/honggfuzz/default.nix b/pkgs/tools/security/honggfuzz/default.nix
index 081e26e34ab..62b335ef5c7 100644
--- a/pkgs/tools/security/honggfuzz/default.nix
+++ b/pkgs/tools/security/honggfuzz/default.nix
@@ -5,13 +5,13 @@
 let
   honggfuzz = stdenv.mkDerivation rec {
     pname = "honggfuzz";
-    version = "2.3.1";
+    version = "2.4";
 
     src = fetchFromGitHub {
       owner = "google";
       repo = pname;
       rev = version;
-      sha256 = "0dcl5a5jykgfmnfj42vl7kah9k26wg38l2g6yfh5pssmlf0nax33";
+      sha256 = "sha256-sU5lmlfmvVWo4K96sI+xQsPfTMd1wsLbihcKI4aTj6g=";
     };
 
     postPatch = ''
diff --git a/pkgs/tools/security/kbs2/default.nix b/pkgs/tools/security/kbs2/default.nix
index 80e6e25518e..4e9b24818b4 100644
--- a/pkgs/tools/security/kbs2/default.nix
+++ b/pkgs/tools/security/kbs2/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kbs2";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "woodruffw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jilsczz22fyqbgz43gl5ilz62gfqsahfk30gayj7q5bx9k35m4w";
+    sha256 = "sha256-PtXTC0VufUR5kle9C5KhCHHEQtQZvTTU1Q/cRMCB1g0=";
   };
 
-  cargoSha256 = "1gvvmfavaq29p40p5mq1phpp2a1nw04dz4975pzm1b6z89p0jlzl";
+  cargoSha256 = "sha256-S2czYglyHRkRN3Dq5reXFOaB1i/oIHXTY8Ile+Twvzo=";
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optionals stdenv.isLinux [ python3 ];
diff --git a/pkgs/tools/security/libtpms/default.nix b/pkgs/tools/security/libtpms/default.nix
new file mode 100644
index 00000000000..71966a934d6
--- /dev/null
+++ b/pkgs/tools/security/libtpms/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config, autoreconfHook
+, openssl, perl
+, tpm2Support ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libtpms";
+  version = "0.7.4";
+
+  src = fetchFromGitHub {
+    owner = "stefanberger";
+    repo = "libtpms";
+    rev = "v${version}";
+    sha256 = "sha256-nZSBD3WshlZHVMBFmDBBdFkhBjNgtASfg6+lYOOAhZ8=";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    perl # needed for pod2man
+  ];
+  buildInputs = [ openssl ];
+
+  outputs = [ "out" "lib" "man" "dev" ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--with-openssl"
+  ] ++ lib.optionals tpm2Support [
+    "--with-tpm2" # TPM2 support is flagged experimental by upstream
+  ];
+
+  meta = with lib; {
+    description = "The libtpms library provides software emulation of a Trusted Platform Module (TPM 1.2 and TPM 2.0)";
+    homepage = "https://github.com/stefanberger/libtpms";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.baloo ];
+  };
+}
diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix
index 0fd14901d0d..11b4eecd14d 100644
--- a/pkgs/tools/security/pass/extensions/import.nix
+++ b/pkgs/tools/security/pass/extensions/import.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pass, fetchFromGitHub, pythonPackages, makeWrapper, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, pythonPackages, makeWrapper, fetchpatch }:
 
 let
   pythonEnv = pythonPackages.python.withPackages (p: [
diff --git a/pkgs/tools/security/saml2aws/default.nix b/pkgs/tools/security/saml2aws/default.nix
index 57a92ef4b99..e2f1ab7cdb6 100644
--- a/pkgs/tools/security/saml2aws/default.nix
+++ b/pkgs/tools/security/saml2aws/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.27.1";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "1ffq7jh14cj45wn5rx9awh5k8hqbfwm4fjz0a0rq22yqfwbbkkj2";
+    sha256 = "sha256-2t1MytLjAxhVVsWyMYcQZ9c+ox+X2OszG5mLAv8c7xE=";
   };
 
   runVend = true;
-  vendorSha256 = "1w7vnpv36lhxpaljdhslbckkr7p81nzc91a0503wk8nrrc4ljsyy";
+  vendorSha256 = "sha256-8Kox01iyWhv/Fp7jHPeNXxc/K2TT1WPyWFieHZkqLho=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index 2fdc42e5280..a7ef677759f 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "jtesta";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h739r5nv5zkmjyyjwkw8r6d4avddjjxsamc5rffwfxi1kjavpxm";
+    sha256 = "sha256-Xq1q/i43vZAv8BayVOdKuZ3+mJcQQ0x4Kc3WlASE6m8=";
   };
 
   checkInputs = with python3Packages; [
diff --git a/pkgs/tools/security/ssh-to-pgp/default.nix b/pkgs/tools/security/ssh-to-pgp/default.nix
index 487cc44cdd7..fc07714b55b 100644
--- a/pkgs/tools/security/ssh-to-pgp/default.nix
+++ b/pkgs/tools/security/ssh-to-pgp/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-pgp";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-pgp";
     rev = version;
-    sha256 = "sha256-TDrpnWAez8muysMdmKFBDZfK8CyhGn1VqHB8+zD6jSk=";
+    sha256 = "sha256-5Wg0ItAkAb0zlhzcuDT9o0XIIbG9kqk4mIYb6hSJlsI=";
   };
 
-  vendorSha256 = "sha256-ZF/WsmqmGHZIAGTPKJ70UhtmssNhiInEZfzrKxQLw9I=";
+  vendorSha256 = "sha256-OMWiJ1n8ynvIGcmotjuGGsRuAidYgVo5Y5JjrAw8fpc=";
 
   checkInputs = [ gnupg ];
   checkPhase = ''
diff --git a/pkgs/tools/security/swtpm/default.nix b/pkgs/tools/security/swtpm/default.nix
new file mode 100644
index 00000000000..2bd0326d4d9
--- /dev/null
+++ b/pkgs/tools/security/swtpm/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, libtasn1, openssl, fuse, glib, libseccomp
+, libtpms
+, unixtools, expect, socat
+, gnutls
+, perl
+, python3, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "swtpm";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "stefanberger";
+    repo = "swtpm";
+    rev = "v${version}";
+    sha256 = "sha256-KY5V4z/8I15ePjorgZueNahlD/xvFa3tDarA0tuRxFk=";
+  };
+
+  pythonPath = with python3Packages; requiredPythonModules [
+    setuptools
+    cryptography
+  ];
+
+  patches = [
+    # upstream looks for /usr directory in $prefix to check
+    # whether or not to proceed with installation of python
+    # tools (swtpm_setup utility).
+    ./python-installation.patch
+  ];
+
+  prePatch = ''
+    patchShebangs src/swtpm_setup/setup.py
+    patchShebangs samples/setup.py
+  '';
+
+  nativeBuildInputs = [
+    pkg-config unixtools.netstat expect socat
+    perl # for pod2man
+    autoreconfHook
+    python3
+  ];
+  buildInputs = [
+    libtpms
+    openssl libtasn1 libseccomp
+    fuse glib
+    gnutls
+    python3.pkgs.wrapPython
+  ];
+  propagatedBuildInputs = pythonPath;
+
+  configureFlags = [
+    "--with-cuse"
+  ];
+
+  postInstall = ''
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+    wrapPythonProgramsIn $out/share/swtpm "$out $pythonPath"
+  '';
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "man" ];
+
+  meta = with lib; {
+    description = "Libtpms-based TPM emulator";
+    homepage = "https://github.com/stefanberger/swtpm";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.baloo ];
+  };
+}
diff --git a/pkgs/tools/security/swtpm/python-installation.patch b/pkgs/tools/security/swtpm/python-installation.patch
new file mode 100644
index 00000000000..d2689f051c5
--- /dev/null
+++ b/pkgs/tools/security/swtpm/python-installation.patch
@@ -0,0 +1,60 @@
+commit 353794feb596d95e3f8893e39b174c5a89d1013e
+Author: Arthur Gautier <baloo@superbaloo.net>
+Date:   Wed Feb 17 02:27:40 2021 +0000
+
+    python-install
+    
+    Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
+
+diff --git a/samples/Makefile.am b/samples/Makefile.am
+index 7d69bf8..1803bb9 100644
+--- a/samples/Makefile.am
++++ b/samples/Makefile.am
+@@ -39,19 +39,9 @@ python-uninstall:
+ 	$(PIP3) uninstall -y $(PY_PACKAGE_NAME)
+ 
+ if PYTHON_INSTALLATION
+-install-exec-local: $(PY_PACKAGE)
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Warning: Not installing python package to $(DESTDIR)$(bindir)"; \
+-	else \
+-		$(MAKE) python-install; \
+-	fi
++install-exec-local: python-install
+ 
+-uninstall-local:
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Cleanup for distcheck build not implemented" ; \
+-	else \
+-		$(MAKE) python-uninstall; \
+-	fi
++uninstall-local: python-uninstall
+ endif
+ 
+ 
+diff --git a/src/swtpm_setup/Makefile.am b/src/swtpm_setup/Makefile.am
+index 529eefe..533b1b3 100644
+--- a/src/swtpm_setup/Makefile.am
++++ b/src/swtpm_setup/Makefile.am
+@@ -29,19 +29,9 @@ python-uninstall:
+ 	$(PIP3) uninstall -y $(PY_PACKAGE_NAME)
+ 
+ if PYTHON_INSTALLATION
+-install-exec-local: $(PY_PACKAGE)
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Warning: Not installing python package to $(DESTDIR)$(bindir)"; \
+-	else \
+-		$(MAKE) python-install; \
+-	fi
++install-exec-local: python-install
+ 
+-uninstall-local:
+-	@if ! test $(findstring /usr, "$(DESTDIR)$(bindir)"); then \
+-		echo "Cleanup for distcheck build not implemented" ; \
+-	else \
+-		$(MAKE) python-uninstall; \
+-	fi
++uninstall-local: python-uninstall
+ endif
+ 
+ # for out-of-tree builds we need to clean up
diff --git a/pkgs/tools/security/teler/default.nix b/pkgs/tools/security/teler/default.nix
index 2ca92c909b3..e2a895f0747 100644
--- a/pkgs/tools/security/teler/default.nix
+++ b/pkgs/tools/security/teler/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "teler";
-  version = "1.0.2-dev";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "kitabisa";
     repo = "teler";
     rev = "v${version}";
-    sha256 = "sha256-Hmoj44/rprM9oSFAsRWLszew0RvCTjdHISUSrx/4IPs=";
+    sha256 = "sha256-6OeGlpimQtw4w26HRzw2wmd3wjASY199p8XXPD/JMy8=";
   };
 
   vendorSha256 = "sha256-L+wjurURpesCA2IK0r1sxvOUvNJT1wiRp75kpe6LH5s=";
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 51261768550..0b6c95cafd2 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.6.2";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "1g6fz6dl90cb5pnvvmkndqgncfjy50j9jw3xzn8s91yzvvld8ds7";
+    sha256 = "0ffynqk16bnc4nqnffbid4v72mxafzi0fy4cbrzfs9qfi56vcbm9";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
@@ -32,6 +32,6 @@ buildGoPackage rec {
     changelog = "https://github.com/hashicorp/vault/blob/v${version}/CHANGELOG.md";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.mpl20;
-    maintainers = with maintainers; [ rushmorem lnl7 offline pradeepchhetri ];
+    maintainers = with maintainers; [ rushmorem lnl7 offline pradeepchhetri Chili-Man ];
   };
 }
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index b30f8d1af13..59082c89f7d 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.6.2";
+  version = "1.6.3";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "1vcxnky8qnn2ib33r9604cbjrgm939ddrhwqcjylbv217cmc9alf";
+      sha256 = "0ijc80r9rbbbblmf5s3j5b2kk6zsriyxwhsijhgy86rr6bvdljl4";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0mcav36dcmvky8v4y65jvh837i72aqz7arv2ivjpajym3gf7qrq1";
+      sha256 = "1blma0ywkmv8ykqc4sgcbk1g9jb9rjxqk2b6kmp5z31lilg4a7my";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "1is7s445jc4ll2lyfxgjwwl89fly1l8kskqp2p8z179d8hhgd0ms";
+      sha256 = "1mzkj7ixpzfhn9i4092qw8g38dx4lh3kzp6g4fr5x84sbs6anl3j";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "0i5d87a393464r68rjv83bjhg51yaysccqbwaaydmzk1m45icg7x";
+      sha256 = "14l8ic5hgsbq4q1b6832ss1wyrgqwyvgkrvcxbw5nqy5la95fl8i";
     };
   };
 
diff --git a/pkgs/tools/system/bpytop/default.nix b/pkgs/tools/system/bpytop/default.nix
index 9a010153960..f10c3f628b8 100644
--- a/pkgs/tools/system/bpytop/default.nix
+++ b/pkgs/tools/system/bpytop/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.62";
+  version = "1.0.63";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ds+N0z7Vfw7xv+nE8RIfFjel81mJgIo1u1KspOHLxKc=";
+    sha256 = "sha256-5KTqiPqYBDI1KFQ+2WN7QZFL/YSb+MPPWbKzJTUa8Zw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/system/clinfo/default.nix b/pkgs/tools/system/clinfo/default.nix
index dbcbae6eaa9..9c5b54f554b 100644
--- a/pkgs/tools/system/clinfo/default.nix
+++ b/pkgs/tools/system/clinfo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clinfo";
-  version = "3.0.20.11.20";
+  version = "3.0.21.02.21";
 
   src = fetchFromGitHub {
     owner = "Oblomov";
     repo = "clinfo";
     rev = version;
-    sha256 = "052xfkbmgfpalmhfwn0dj5114x2mzwz29y37qqhhsdpaxsz0y422";
+    sha256 = "sha256-0ijfbfv1F6mnt1uFH/A4yOADJoAFrPMa3yAOFJW53ek=";
   };
 
   buildInputs = [ ocl-icd opencl-headers ];
diff --git a/pkgs/tools/system/daemon/default.nix b/pkgs/tools/system/daemon/default.nix
index 58f8da3ce4f..13b19775dec 100644
--- a/pkgs/tools/system/daemon/default.nix
+++ b/pkgs/tools/system/daemon/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "daemon";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchurl {
     url = "http://libslack.org/daemon/download/daemon-${version}.tar.gz";
-    sha256 = "0b17zzl7bqnkn7a4pr3l6fxqfmxfld7izphrab5nvhc4wzng4spn";
+    sha256 = "sha256-uh9tyHUyyFK/uPQ2F5zWYcNFj/iY9ndnxBQSMZhibf0=";
   };
 
   makeFlags = [
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index 1051d48b8a5..c26db13300b 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "4.6.3";
+  version = "4.6.4";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vz8qqsFc1CETnrqStLyiGZ6w0jy+y5GlwQQgxdyJ5aY=";
+    sha256 = "sha256-d7rUvRHijBoot6OKsKjASNoSbuE7YIGXbRsIRZG7CFQ=";
   };
 
-  vendorSha256 = "sha256-kIMd0xzQ+c+jCpX2+qdD/GcFEirR15PMInbEV184EBU=";
+  vendorSha256 = "sha256-QiO5p0x8kmIN6f0uYS0IR2MlWtRYTHeZpW6Nmupjias=";
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/dundee/gdu/build.Version=${version}" ];
 
diff --git a/pkgs/tools/system/logrotate/default.nix b/pkgs/tools/system/logrotate/default.nix
index e91cd6da6b9..f8f3cabdb9c 100644
--- a/pkgs/tools/system/logrotate/default.nix
+++ b/pkgs/tools/system/logrotate/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.17.0";
+  version = "3.18.0";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "133k4y24p918v4dva6dh70bdfv13jvwl2vlhq0mybrs3ripvnh4h";
+    sha256 = "sha256-OFGXwaTabyuIgeC2ON68m83rzVxomk8QL6xwyrVV654=";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 09050868826..bd360a24261 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -15,14 +15,14 @@ with lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.29.2";
+  version = "1.29.3";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "sha256-Y949jHIX3VOwaxeaBqqTZUx66Sd0s27kMCCjcnJORO4=";
+    sha256 = "sha256-GWIQZEC5agJ+Zw7l58IIAJhXP6dxirCmWVBJulzBO5Q=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/text/mark/default.nix b/pkgs/tools/text/mark/default.nix
index dbfb85fc583..5989750ea95 100644
--- a/pkgs/tools/text/mark/default.nix
+++ b/pkgs/tools/text/mark/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mark";
-  version = "5.2";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner  = "kovetskiy";
     repo   = "mark";
     rev    = version;
-    sha256 = "sha256-bjDQwtIsY+Dvv270DACvyU+MNPyI7EZcob6F/aebVac=";
+    sha256 = "sha256-eRKUoRr0FPVNUZV5WenA7GlpYPAVRNKe0uRxOzFjhVE=";
   };
 
   vendorSha256 = "sha256-l6zHsis2fais5HQJQdfsSC0sPdcF4BeWoUznpl3Fh1g=";
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 98fb6e69be5..838cdf075bd 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-cS2fME3X8bFmEz6czoL+2ZFbflJP58+lIeC5SVleCNg=";
+    sha256 = "sha256-51S4I1YIbdgXkhuT7KnhJe71nGCQmr9JmuGtp7Bcxqo=";
   };
 
-  cargoSha256 = "sha256-iuJyprLp6HofcdH0NgNK2Vl+1FtdAvZPcltPUb5B2XU=";
+  cargoSha256 = "sha256-2kBJcImytsSd7Q0kj1bsP/NXxyy2Pr8gHb8iNf6h3/4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/podiff/default.nix b/pkgs/tools/text/podiff/default.nix
index b44003a9f0d..8db0085a70e 100644
--- a/pkgs/tools/text/podiff/default.nix
+++ b/pkgs/tools/text/podiff/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "podiff";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
-    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.2.tar.gz";
-    sha256 = "1l2b4hh53xlx28riigwarzkhxpv1pcz059xj1ka33ccvxc6c20k9";
+    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.3.tar.gz";
+    sha256 = "sha256-7fpix+GkXsfpRgnkHtk1iXF6ILHri7BtUhNPK6sDQFA=";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index 83cb0e46388..5806723a043 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.1.0";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08pq759f2vvdbig64y3k9kicvgr2d5x8ara7b182dcm3slbpib3l";
+    sha256 = "sha256-nCpU4GBJ/4c/70hgVKfO1995XCyDRLVUeczsqnlkkFM=";
   };
 
   buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
index 805373e8ee6..1040532eb3e 100644
--- a/pkgs/tools/typesetting/lowdown/default.nix
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.8.1";
+  version = "0.8.2";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "28kwj053lm3510cq7pg4rqx6linv5zphhm2h6r9icigclfq7j9ybnd7vqbn2v4ay0r8ghac5cjbqab5zy8cjlgllwhwsxg0dnk75x2i";
+    sha512 = "07xy6yjs24zkwrr06ly4ln5czvm3azw6iznx6m8gbrmzblkcp3gz1jcl9wclcyl8bs4xhgmyzkf5k67b95s0jndhyb9ap5zy6ixnias";
   };
 
   nativeBuildInputs = [ which ]
diff --git a/pkgs/tools/video/vcsi/default.nix b/pkgs/tools/video/vcsi/default.nix
index 84e6c2e6d41..f4f3043f34f 100644
--- a/pkgs/tools/video/vcsi/default.nix
+++ b/pkgs/tools/video/vcsi/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "vcsi";
-  version = "7.0.12";
+  version = "7.0.13";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+    sha256 = "01qwbb2l8gwf622zzhh0kzdzw3njvsdwmndwn01i9bn4qm5cas8r";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -17,6 +17,9 @@ python3Packages.buildPythonApplication rec {
     parsedatetime
   ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "vcsi" ];
+
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
 
   meta = with lib; {
diff --git a/pkgs/tools/virtualization/aws/default.nix b/pkgs/tools/virtualization/aws/default.nix
index 4766be90a6d..d3a5cbf10e1 100644
--- a/pkgs/tools/virtualization/aws/default.nix
+++ b/pkgs/tools/virtualization/aws/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, perl, curl }:
 
 stdenv.mkDerivation {
-  name = "aws-1.75";
+  name = "aws-2019.06.18";
 
   src = fetchurl {
-    url = "https://raw.github.com/timkay/aws/2f2ff99f9f5111ea708ae6cd14d20e264748e72b/aws";
-    sha256 = "0d5asv73a58yb1bb1jpsw3c7asd62y86z5fwpg4llhjzkx79maj6";
+    url = "https://raw.github.com/timkay/aws/ac68eb5191c52f069b9aa0c9a99808f8a4430833/aws";
+    sha256 = "02bym9wicqpdr7mdim13zw5ssh97xfswzab9q29rsbg7058ddbil";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/virtualization/shipyard/default.nix b/pkgs/tools/virtualization/shipyard/default.nix
index 89ea852334f..028d05e633b 100644
--- a/pkgs/tools/virtualization/shipyard/default.nix
+++ b/pkgs/tools/virtualization/shipyard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "shipyard";
-  version = "0.2.1";
+  version = "0.2.9";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shipyard-run";
     repo = pname;
-    sha256 = "sha256-eTwl2tMrhLPeHI0C76Rvm/OOt02OtDtejXYr4N6IWcg=";
+    sha256 = "sha256-S2nH1E20frsJzW2RCn+eJ9ylVdhVbo4wesNwlQll9S4=";
   };
   vendorSha256 = "sha256-rglpY7A0S56slL+mXFRgaZwS0bF1b9zxxmNYiX6TJzs=";
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index a9a13aaa6b1..812f5cf49b4 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -769,6 +769,9 @@ mapAliases ({
   xbmcPlain = kodiPlain; # added 2018-04-25
   xbmcPlugins = kodiPlugins; # added 2018-04-25
   xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01
+  xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only";
+  pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";
+  pyMAILt = throw "pyMAILt has been removed from nixpkgs as it is unmaintained and python2-only";
   xf86_video_nouveau = xorg.xf86videonouveau; # added 2015-09
   xf86_input_mtrack = throw ("xf86_input_mtrack has been removed from nixpkgs as it hasn't been maintained"
     + "and is broken. Working alternatives are libinput and synaptics.");
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fba1a0f30f7..a1ee44f8c19 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2914,6 +2914,8 @@ in
 
   mstflint = callPackage ../tools/misc/mstflint { };
 
+  mslink = callPackage ../tools/misc/mslink { };
+
   mcelog = callPackage ../os-specific/linux/mcelog {
     util-linux = util-linuxMinimal;
   };
@@ -3068,6 +3070,8 @@ in
 
   anydesk = callPackage ../applications/networking/remote/anydesk { };
 
+  anystyle-cli = callPackage ../tools/misc/anystyle-cli { };
+
   atool = callPackage ../tools/archivers/atool { };
 
   bash_unit = callPackage ../tools/misc/bash_unit { };
@@ -3143,6 +3147,8 @@ in
 
   checkinstall = callPackage ../tools/package-management/checkinstall { };
 
+  checkmake = callPackage ../development/tools/checkmake { };
+
   chit = callPackage ../development/tools/chit { };
 
   chkrootkit = callPackage ../tools/security/chkrootkit { };
@@ -3289,6 +3295,8 @@ in
 
   netevent = callPackage ../tools/inputmethods/netevent { };
 
+  netplan = callPackage ../tools/admin/netplan { };
+
   skktools = callPackage ../tools/inputmethods/skk/skktools { };
   skk-dicts = callPackage ../tools/inputmethods/skk/skk-dicts { };
 
@@ -8219,6 +8227,13 @@ in
 
   swec = callPackage ../tools/networking/swec { };
 
+  swtpm = callPackage ../tools/security/swtpm { };
+  swtpm-tpm2 = swtpm.override {
+    libtpms = libtpms.override {
+      tpm2Support = true;
+    };
+  };
+
   svn2git = callPackage ../applications/version-management/git-and-tools/svn2git {
     git = gitSVN;
   };
@@ -8972,6 +8987,11 @@ in
     withSystemd = true;
   };
 
+  unbound-full = unbound.override {
+    withSystemd = true;
+    withDoH = true;
+  };
+
   unicorn = callPackage ../development/libraries/unicorn { };
 
   units = callPackage ../tools/misc/units {
@@ -9208,8 +9228,6 @@ in
     w3m = w3m-batch;
   };
 
-  xmpppy = pythonPackages.xmpppy;
-
   xiccd = callPackage ../tools/misc/xiccd { };
 
   xidlehook = callPackage ../tools/X11/xidlehook {
@@ -11349,6 +11367,8 @@ in
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
   };
 
+  octavePackages = recurseIntoAttrs octave.pkgs;
+
   ocropus = callPackage ../applications/misc/ocropus { };
 
   pachyderm = callPackage ../applications/networking/cluster/pachyderm { };
@@ -12370,6 +12390,8 @@ in
 
   gputils = callPackage ../development/tools/misc/gputils { };
 
+  gpuvis = callPackage ../development/tools/misc/gpuvis { };
+
   gradleGen = callPackage ../development/tools/build-managers/gradle {
     java = jdk8; # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
   };
@@ -12475,6 +12497,8 @@ in
 
   augustus = callPackage ../games/augustus { };
 
+  k2tf = callPackage ../development/tools/misc/k2tf { };
+
   kafkacat = callPackage ../development/tools/kafkacat { };
 
   kati = callPackage ../development/tools/build-managers/kati { };
@@ -12561,9 +12585,7 @@ in
   massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
 
   maven = maven3;
-  maven3 = callPackage ../development/tools/build-managers/apache-maven {
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  maven3 = callPackage ../development/tools/build-managers/apache-maven { };
 
   mavproxy = python3Packages.callPackage ../applications/science/robotics/mavproxy { };
 
@@ -14679,7 +14701,7 @@ in
   libbacktrace = callPackage ../development/libraries/libbacktrace { };
 
   libbap = callPackage ../development/libraries/libbap {
-    inherit (ocaml-ng.ocamlPackages_4_07) bap ocaml findlib ctypes;
+    inherit (ocaml-ng.ocamlPackages) bap ocaml findlib ctypes;
   };
 
   libbass = (callPackage ../development/libraries/audio/libbass { }).bass;
@@ -15602,6 +15624,8 @@ in
     libtoxcore_0_1 libtoxcore_0_2;
   libtoxcore = libtoxcore_0_2;
 
+  libtpms = callPackage ../tools/security/libtpms { };
+
   libtap = callPackage ../development/libraries/libtap { };
 
   libtgvoip = callPackage ../development/libraries/libtgvoip { };
@@ -16007,7 +16031,9 @@ in
 
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
-  notcurses = callPackage ../development/libraries/notcurses { };
+  notcurses = callPackage ../development/libraries/notcurses {
+    readline = readline80;
+  };
 
   ncurses5 = ncurses.override {
     abiVersion = "5";
@@ -18463,10 +18489,6 @@ in
 
   pure-ftpd = callPackage ../servers/ftp/pure-ftpd { };
 
-  pyIRCt = callPackage ../servers/xmpp/pyIRCt {};
-
-  pyMAILt = callPackage ../servers/xmpp/pyMAILt {};
-
   pypolicyd-spf = python3.pkgs.callPackage ../servers/mail/pypolicyd-spf { };
 
   qpid-cpp = callPackage ../servers/amqp/qpid-cpp {
@@ -19771,6 +19793,8 @@ in
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
   open-vm-tools-headless = open-vm-tools.override { withX = false; };
 
+  air = callPackage ../development/tools/air { };
+
   delve = callPackage ../development/tools/delve { };
 
   dep = callPackage ../development/tools/dep { };
@@ -19843,6 +19867,8 @@ in
 
   gopls = callPackage ../development/tools/gopls { };
 
+  gops = callPackage ../development/tools/gops { };
+
   gore = callPackage ../development/tools/gore { };
 
   gotests = callPackage ../development/tools/gotests { };
@@ -20140,11 +20166,13 @@ in
     ubootClearfog
     ubootGuruplug
     ubootJetsonTK1
+    ubootNanoPCT4
     ubootNovena
     ubootOdroidC2
     ubootOdroidXU3
     ubootOrangePiPc
     ubootOrangePiZeroPlus2H5
+    ubootOrangePiZero
     ubootPcduino3Nano
     ubootPine64
     ubootPine64LTS
@@ -21487,6 +21515,8 @@ in
 
   bviplus = callPackage ../applications/editors/bviplus { };
 
+  caerbannog = callPackage ../applications/misc/caerbannog { };
+
   cage = callPackage ../applications/window-managers/cage { };
 
   calf = callPackage ../applications/audio/calf {
@@ -21864,6 +21894,8 @@ in
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
 
+  ebumeter = callPackage ../applications/audio/ebumeter { };
+
   echoip = callPackage ../servers/echoip { };
 
   eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse {
@@ -21907,7 +21939,6 @@ in
     Xaw3d = null;
     gconf = null;
     alsaLib = null;
-    imagemagick = null;
     acl = null;
     gpm = null;
     inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
@@ -21947,27 +21978,9 @@ in
   };
 
   emacsPackagesFor = emacs: import ./emacs-packages.nix {
-    inherit lib newScope stdenv pkgs;
-    inherit fetchFromGitHub fetchurl;
-    inherit emacs texinfo makeWrapper runCommand writeText;
-    inherit (xorg) lndir;
-
-    trivialBuild = callPackage ../build-support/emacs/trivial.nix {
-      inherit emacs;
-    };
-
-    melpaBuild = callPackage ../build-support/emacs/melpa.nix {
-      inherit emacs;
-    };
-
-    external = {
-      inherit (haskellPackages)
-        ghc-mod structured-haskell-mode Agda hindent;
-      inherit
-        autoconf automake editorconfig-core-c git libffi libpng pkg-config
-        poppler rtags w3m zlib substituteAll rustPlatform cmake llvmPackages
-        libtool zeromq openssl ott;
-    };
+    inherit (lib) makeScope makeOverridable;
+    inherit emacs;
+    pkgs' = pkgs;  # default pkgs used for bootstrapping the emacs package set
   };
 
   inherit (gnome3) empathy;
@@ -23535,6 +23548,8 @@ in
 
   ltc-tools = callPackage ../applications/audio/ltc-tools { };
 
+  lscolors = callPackage ../applications/misc/lscolors { };
+
   lumail = callPackage ../applications/networking/mailreaders/lumail {
     lua = lua5_1;
   };
@@ -24998,16 +25013,12 @@ in
 
   linuxstopmotion = libsForQt5.callPackage ../applications/video/linuxstopmotion { };
 
-  sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d {
-    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  })
-                                 // (callPackage ../applications/misc/sweethome3d/editors.nix {
-                                      jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-                                      jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-                                      sweethome3dApp = sweethome3d.application;
-                                    })
-                                 );
+  sweethome3d = recurseIntoAttrs (
+    (callPackage ../applications/misc/sweethome3d { }) //
+    (callPackage ../applications/misc/sweethome3d/editors.nix {
+      sweethome3dApp = sweethome3d.application;
+    })
+  );
 
   swingsane = callPackage ../applications/graphics/swingsane { };
 
@@ -26152,6 +26163,10 @@ in
 
   xdotool = callPackage ../tools/X11/xdotool { };
 
+  xed-editor = callPackage ../applications/editors/xed-editor {
+    xapps = cinnamon.xapps;
+  };
+
   xenPackages = recurseIntoAttrs (callPackage ../applications/virtualization/xen/packages.nix {});
 
   xen = xenPackages.xen-vanilla;
@@ -26254,6 +26269,13 @@ in
   xpra = callPackage ../tools/X11/xpra { };
   libfakeXinerama = callPackage ../tools/X11/xpra/libfakeXinerama.nix { };
 
+
+  xplayer = callPackage ../applications/video/xplayer {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+    inherit (cinnamon) xapps;
+  };
+  libxplayer-plparser = callPackage ../applications/video/xplayer/plparser.nix { };
+
   xrectsel = callPackage ../tools/X11/xrectsel { };
 
   xrestop = callPackage ../tools/X11/xrestop { };
@@ -30052,6 +30074,8 @@ in
 
   bemenu = callPackage ../applications/misc/bemenu { };
 
+  _9menu = callPackage ../applications/misc/9menu { };
+
   dapper = callPackage ../development/tools/dapper { };
 
   kube3d =  callPackage ../applications/networking/cluster/kube3d {};
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index 329fb572582..67f4d116dfd 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -21,58 +21,42 @@
   (package-initialize)
 */
 
-## FOR CONTRIBUTORS
-#
-# When adding a new package here please note that
-# * please use `elpaBuild` for pre-built package.el packages and
-#   `melpaBuild` or `trivialBuild` if the package must actually
-#   be built from the source.
-# * lib.licenses are `with`ed on top of the file here
-# * both trivialBuild and melpaBuild will automatically derive a
-#   `meta` with `platforms` and `homepage` set to something you are
-#   unlikely to want to override for most packages
-
-{ lib, newScope, stdenv, fetchurl, fetchFromGitHub, runCommand, writeText
-
-, emacs, texinfo, lndir, makeWrapper
-, trivialBuild
-, melpaBuild
-
-, external
-, pkgs
-}:
+{ pkgs', makeScope, makeOverridable, emacs }:
 
 let
 
-  mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
-    inherit lib stdenv texinfo writeText;
+  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/elpa-packages.nix {
+    inherit (pkgs) stdenv texinfo writeText;
+    inherit lib;
   };
 
   # Contains both melpa stable & unstable
-  melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix {
-    inherit external lib pkgs;
+  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs-modes/melpa-packages.nix {
+    inherit lib pkgs;
   };
-  mkMelpaStablePackages = melpaGeneric "stable";
-  mkMelpaPackages = melpaGeneric "unstable";
 
-  mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix {
+  mkOrgPackages = { lib }: import ../applications/editors/emacs-modes/org-packages.nix {
     inherit lib;
   };
 
-  emacsWithPackages = import ../build-support/emacs/wrapper.nix {
-    inherit lib lndir makeWrapper runCommand;
+  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/manual-packages.nix {
+    inherit lib pkgs;
   };
 
-  mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix {
-    inherit external lib pkgs;
+  emacsWithPackages = { pkgs, lib }: import ../build-support/emacs/wrapper.nix {
+    inherit (pkgs) makeWrapper runCommand;
+    inherit (pkgs.xorg) lndir;
+    inherit lib;
   };
 
-in lib.makeScope newScope (self: lib.makeOverridable ({
-  elpaPackages ? mkElpaPackages self
-  , melpaStablePackages ? mkMelpaStablePackages self
-  , melpaPackages ? mkMelpaPackages self
-  , orgPackages ? mkOrgPackages self
-  , manualPackages ? mkManualPackages self
+in makeScope pkgs'.newScope (self: makeOverridable ({
+  pkgs ? pkgs'
+  , lib ? pkgs.lib
+  , elpaPackages ? mkElpaPackages { inherit pkgs lib; } self
+  , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
+  , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
+  , orgPackages ? mkOrgPackages { inherit lib; } self
+  , manualPackages ? mkManualPackages { inherit pkgs lib; } self
 }: ({}
   // elpaPackages // { inherit elpaPackages; }
   // melpaStablePackages // { inherit melpaStablePackages; }
@@ -80,8 +64,27 @@ in lib.makeScope newScope (self: lib.makeOverridable ({
   // orgPackages // { inherit orgPackages; }
   // manualPackages // { inherit manualPackages; }
   // {
-    inherit emacs melpaBuild trivialBuild;
-    emacsWithPackages = emacsWithPackages self;
-    withPackages = emacsWithPackages self;
+
+    inherit emacs;
+
+    trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
+      inherit (self) emacs;
+    };
+
+    melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
+      inherit (self) emacs;
+    };
+
+    emacsWithPackages = emacsWithPackages { inherit pkgs lib; } self;
+    withPackages = emacsWithPackages { inherit pkgs lib; } self;
+
+  }// {
+
+    # Package specific priority overrides goes here
+
+    # Telega uploads packages incompatible with stable tdlib to melpa
+    # Prefer the one from melpa stable
+    inherit (melpaStablePackages) telega;
+
   })
 ) {})
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 5f250d79af2..0b2c548c1e0 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -917,6 +917,8 @@ let
       inherit (pkgs) postgresql;
     };
 
+    ppx_bap = callPackage ../development/ocaml-modules/ppx_bap { };
+
     ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix { };
 
     ppxfind = callPackage ../development/ocaml-modules/ppxfind { };
@@ -1415,7 +1417,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_12 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.12.nix { });
 
-  ocamlPackages_latest = ocamlPackages_4_11;
+  ocamlPackages_latest = ocamlPackages_4_12;
 
   ocamlPackages = ocamlPackages_4_10;
 }
diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix
new file mode 100644
index 00000000000..6278a7042e1
--- /dev/null
+++ b/pkgs/top-level/octave-packages.nix
@@ -0,0 +1,224 @@
+# This file contains the GNU Octave add-on packages set.
+# Each attribute is an Octave library.
+# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
+
+# When contributing a new package, if that package has a dependency on another
+# octave package, then you DO NOT need to explicitly list it as such when
+# performing the callPackage. It will be passed implicitly.
+# In addition, try to use the same dependencies as the ones octave needs, which
+# should ensure greater compatibility between Octave itself and its packages.
+
+# Like python-packages.nix, packages from top-level.nix are not in the scope
+# of the `callPackage` used for packages here. So, when we do need packages
+# from outside, we can `inherit` them from `pkgs`.
+{ pkgs
+, lib
+, stdenv
+, fetchurl
+, newScope
+, octave
+}:
+
+with lib;
+
+makeScope newScope (self:
+  let
+    inherit (octave) blas lapack gfortran python texinfo gnuplot;
+
+    callPackage = self.callPackage;
+
+    buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
+      inherit lib stdenv;
+      inherit octave;
+      inherit computeRequiredOctavePackages;
+    };
+
+    wrapOctave = callPackage ../development/interpreters/octave/wrap-octave.nix {
+      inherit octave;
+      inherit (pkgs) makeSetupHook makeWrapper;
+    };
+
+    # Given a list of required Octave package derivations, get a list of
+    # ALL required Octave packages needed for the ones specified to run.
+    computeRequiredOctavePackages = drvs: let
+      # Check whether a derivation is an octave package
+      hasOctavePackage = drv: drv?isOctavePackage;
+      packages = filter hasOctavePackage drvs;
+    in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
+
+  in {
+
+    inherit callPackage buildOctavePackage computeRequiredOctavePackages;
+
+    inherit (callPackage ../development/interpreters/octave/hooks { })
+      writeRequiredOctavePackagesHook;
+
+    arduino = callPackage ../development/octave-modules/arduino {
+      inherit (pkgs) arduino;
+    };
+
+    audio = callPackage ../development/octave-modules/audio { };
+
+    bim = callPackage ../development/octave-modules/bim { };
+
+    bsltl = callPackage ../development/octave-modules/bsltl { };
+
+    cgi = callPackage ../development/octave-modules/cgi { };
+
+    communications = callPackage ../development/octave-modules/communications { };
+
+    control = callPackage ../development/octave-modules/control { };
+
+    data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
+
+    database = callPackage ../development/octave-modules/database { };
+
+    dataframe = callPackage ../development/octave-modules/dataframe { };
+
+    dicom = callPackage ../development/octave-modules/dicom { };
+
+    divand = callPackage ../development/octave-modules/divand { };
+
+    doctest = callPackage ../development/octave-modules/doctest { };
+
+    econometrics = callPackage ../development/octave-modules/econometrics { };
+
+    fem-fenics = callPackage ../development/octave-modules/fem-fenics {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+      ffc = null;
+    };
+
+    fits = callPackage ../development/octave-modules/fits { };
+
+    financial = callPackage ../development/octave-modules/financial { };
+
+    fpl = callPackage ../development/octave-modules/fpl { };
+
+    fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
+
+    ga = callPackage ../development/octave-modules/ga { };
+
+    general = callPackage ../development/octave-modules/general {
+      nettle = pkgs.nettle;
+    };
+
+    generate_html = callPackage ../development/octave-modules/generate_html { };
+
+    geometry = callPackage ../development/octave-modules/geometry { };
+
+    gsl = callPackage ../development/octave-modules/gsl {
+      inherit (pkgs) gsl;
+    };
+
+    image = callPackage ../development/octave-modules/image { };
+
+    image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
+
+    instrument-control = callPackage ../development/octave-modules/instrument-control { };
+
+    io = callPackage ../development/octave-modules/io {
+      inherit (octave) enableJava;
+    };
+
+    interval = callPackage ../development/octave-modules/interval { };
+
+    level-set = callPackage ../development/octave-modules/level-set { };
+
+    linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
+
+    lssa = callPackage ../development/octave-modules/lssa { };
+
+    ltfat = callPackage ../development/octave-modules/ltfat {
+      inherit (octave) fftw fftwSinglePrec portaudio jdk;
+      inherit (pkgs) fftwFloat fftwLongDouble;
+    };
+
+    mapping = callPackage ../development/octave-modules/mapping { };
+
+    matgeom = callPackage ../development/octave-modules/matgeom { };
+
+    miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
+
+    msh = callPackage ../development/octave-modules/msh {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+    };
+
+    mvn = callPackage ../development/octave-modules/mvn { };
+
+    nan = callPackage ../development/octave-modules/nan { };
+
+    ncarray = callPackage ../development/octave-modules/ncarray { };
+
+    netcdf = callPackage ../development/octave-modules/netcdf {
+      inherit (pkgs) netcdf;
+    };
+
+    nurbs = callPackage ../development/octave-modules/nurbs { };
+
+    ocl = callPackage ../development/octave-modules/ocl { };
+
+    octclip = callPackage ../development/octave-modules/octclip { };
+
+    octproj = callPackage ../development/octave-modules/octproj { };
+
+    optics = callPackage ../development/octave-modules/optics { };
+
+    optim = callPackage ../development/octave-modules/optim { };
+
+    optiminterp = callPackage ../development/octave-modules/optiminterp { };
+
+    parallel = callPackage ../development/octave-modules/parallel { };
+
+    quaternion = callPackage ../development/octave-modules/quaternion { };
+
+    queueing = callPackage ../development/octave-modules/queueing { };
+
+    signal = callPackage ../development/octave-modules/signal { };
+
+    sockets = callPackage ../development/octave-modules/sockets { };
+
+    sparsersb = callPackage ../development/octave-modules/sparsersb {
+      librsb = null;
+      # TODO: Package the librsb library to build this package.
+      # http://librsb.sourceforge.net/
+    };
+
+    stk = callPackage ../development/octave-modules/stk { };
+
+    splines = callPackage ../development/octave-modules/splines { };
+
+    statistics = callPackage ../development/octave-modules/statistics { };
+
+    strings = callPackage ../development/octave-modules/strings { };
+
+    struct = callPackage ../development/octave-modules/struct { };
+
+    symbolic = callPackage ../development/octave-modules/symbolic {
+      inherit (octave) python;
+    };
+
+    tisean = callPackage ../development/octave-modules/tisean { };
+
+    tsa = callPackage ../development/octave-modules/tsa { };
+
+    vibes = callPackage ../development/octave-modules/vibes {
+      vibes = null;
+      # TODO: Need to package vibes:
+      # https://github.com/ENSTABretagneRobotics/VIBES
+    };
+
+    video = callPackage ../development/octave-modules/video { };
+
+    vrml = callPackage ../development/octave-modules/vrml {
+      freewrl = null;
+    };
+
+    windows = callPackage ../development/octave-modules/windows { };
+
+    zeromq = callPackage ../development/octave-modules/zeromq {
+      inherit (pkgs) zeromq;
+    };
+
+  })
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f9034877ecb..c8229a8c61b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -878,7 +878,7 @@ in {
 
   bandit = callPackage ../development/python-modules/bandit { };
 
-  bap = callPackage ../development/python-modules/bap { bap = pkgs.ocaml-ng.ocamlPackages_4_07.bap; };
+  bap = callPackage ../development/python-modules/bap { inherit (pkgs.ocaml-ng.ocamlPackages) bap; };
 
   baron = callPackage ../development/python-modules/baron { };
 
@@ -2483,6 +2483,8 @@ in {
 
   futures = callPackage ../development/python-modules/futures { };
 
+  fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
+
   fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
   fx2 = callPackage ../development/python-modules/fx2 { };
@@ -3393,12 +3395,16 @@ in {
 
   jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
+  jsonpath-ng = callPackage ../development/python-modules/jsonpath-ng { };
+
   jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
   jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
   jsonref = callPackage ../development/python-modules/jsonref { };
 
+  json-rpc = callPackage ../development/python-modules/json-rpc { };
+
   jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
   jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
@@ -6009,6 +6015,8 @@ in {
 
   pysma = callPackage ../development/python-modules/pysma { };
 
+  pysmappee = callPackage ../development/python-modules/pysmappee { };
+
   pysmb = callPackage ../development/python-modules/pysmb { };
 
   pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkg-config; };
@@ -6604,6 +6612,8 @@ in {
 
   pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
 
+  pyvizio = callPackage ../development/python-modules/pyvizio { };
+
   pyvips = callPackage ../development/python-modules/pyvips {
     inherit (pkgs) pkg-config vips glib;
   };
@@ -7231,6 +7241,8 @@ in {
 
   sharedmem = callPackage ../development/python-modules/sharedmem { };
 
+  sharkiqpy = callPackage ../development/python-modules/sharkiqpy { };
+
   sh = callPackage ../development/python-modules/sh { };
 
   shellingham = callPackage ../development/python-modules/shellingham { };
@@ -7782,6 +7794,8 @@ in {
 
   terminaltables = callPackage ../development/python-modules/terminaltables { };
 
+  termplotlib = callPackage ../development/python-modules/termplotlib { };
+
   termstyle = callPackage ../development/python-modules/termstyle { };
 
   teslajsonpy = callPackage ../development/python-modules/teslajsonpy { };
@@ -7878,8 +7892,6 @@ in {
 
   tinyobjloader-py = callPackage ../development/python-modules/tinyobjloader-py { };
 
-  tiros = callPackage ../development/python-modules/tiros { };
-
   tissue = callPackage ../development/python-modules/tissue { };
 
   titlecase = callPackage ../development/python-modules/titlecase { };
@@ -7942,6 +7954,8 @@ in {
 
   tox = callPackage ../development/python-modules/tox { };
 
+  tpm2-pytss = callPackage ../development/python-modules/tpm2-pytss { };
+
   tqdm = callPackage ../development/python-modules/tqdm { };
 
   traceback2 = callPackage ../development/python-modules/traceback2 { };
@@ -8013,6 +8027,8 @@ in {
 
   tweepy = callPackage ../development/python-modules/tweepy { };
 
+  twentemilieu = callPackage ../development/python-modules/twentemilieu { };
+
   twiggy = callPackage ../development/python-modules/twiggy { };
 
   twilio = callPackage ../development/python-modules/twilio { };
@@ -8039,6 +8055,8 @@ in {
 
   twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
 
+  twitterapi = callPackage ../development/python-modules/twitterapi { };
+
   twofish = callPackage ../development/python-modules/twofish { };
 
   txaio = callPackage ../development/python-modules/txaio { };
@@ -8218,6 +8236,8 @@ in {
 
   vega_datasets = callPackage ../development/python-modules/vega_datasets { };
 
+  venstarcolortouch = callPackage ../development/python-modules/venstarcolortouch { };
+
   venusian = callPackage ../development/python-modules/venusian { };
 
   verboselogs = callPackage ../development/python-modules/verboselogs { };
@@ -8512,8 +8532,6 @@ in {
 
   xmodem = callPackage ../development/python-modules/xmodem { };
 
-  xmpppy = callPackage ../development/python-modules/xmpppy { };
-
   xnd = callPackage ../development/python-modules/xnd { };
 
   xpybutil = callPackage ../development/python-modules/xpybutil { };